Formal Specification of Memory Models

  • Pradeep S. Sindhu
  • Jean-Marc Frailong
  • Michel Cekleov


We introduce a formal framework for specifying the behavior of memory systems for shared memory multiprocessors. Specifications in this framework are axiomatic, thereby avoiding ambiguities inherent in most existing specifications, which are informal. The framework makes it convenient to construct correctness arguments for hardware implementations and to generate proofs of critical program fragments. By providing a common language in which a range of memory models can be specified, the framework also permits comparison of existing models and facilitates exploration of the space of possible models. The framework is illustrated with three examples: the well-known Strong Consistency model, and two store ordered models TSO and PSO defined by the Sun Microsystem’s SPARC architecture. The latter two models were developed using this framework.


Hardware Implementation Memory Model Critical Section Strong Consistency Execution Sequence 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    C. G. Bell and A. Newell, “Computer Structures: Readings and Examples”, McGraw-Hill, N.Y., 1971.Google Scholar
  2. [2]
    S.V. Adve and M.D. Hill, “Weak Ordering—A new definition”, Proceedings of the 17th International Symposium on Computer Architecture, 1990.Google Scholar
  3. [3]
    W. Collier, “Principles of architecture for systems of parallel processes”, Tech. Report TR00.3100, IBM T.J. Watson Research Center, Yorktown Heights, N.Y., March 1981.Google Scholar
  4. [4]
    E. Dijkstra, “Solution of a problem in concurrent programming control”, CACM, Vol 8, No 9, September 1965.Google Scholar
  5. [5]
    M. Dubois, C. Scheurich, and F. Briggs, “Synchronization, Coherence and Ordering of Events in a Multiprocessor”, IEEE Computer, Vol 21, No 2, February 1988.Google Scholar
  6. [6]
    K. Gharacharloo, D. Lenoski, J. Laudon, P. Gibbons, A. Gupta, and J. Hennessy, “Memory Consistency and Event Ordering in Scalable Shared-Memory Multiprocessors”, Proceedings of the 17th International Symposium on Computer Architecture, 1990.Google Scholar
  7. [7]
    J. Goodman, “Cache consistency and sequential consistency”, Tech. Report 61, IEEE SCI Committee P1596.Google Scholar
  8. [8]
    L. Lamport, “Time, Clocks, and the Ordering of Events in a Distributed System”, CACM, Vol 21, No 7, July 1978.Google Scholar
  9. [9]
    L. Lamport, “How to make a multiprocessor computer that correctly executes multiprocess programs”, IEEE Trans on Computers, C-28(9), September 1979.Google Scholar
  10. [10]
    B. Lampson, “Specifying Distributed Systems”, Tech. Report, Cambridge Research Laboratory, Digital Equipment Corp, November 1988.Google Scholar
  11. [11]
    J. Misra, “Axioms for Memory Access in Asynchronous Hardware Systems”, ACM TOPLAS, Vol 8, No 1, January 1986.Google Scholar
  12. [12]
    “SPARC Architecture Reference Manual V8”, Sun Microsystems, December 1990.Google Scholar

Copyright information

© Springer Science+Business Media New York 1992

Authors and Affiliations

  • Pradeep S. Sindhu
    • 1
  • Jean-Marc Frailong
    • 1
  • Michel Cekleov
    • 2
  1. 1.Xerox Palo Alto Research CenterPalo AltoUSA
  2. 2.Sun MicrosystemsViewUSA

Personalised recommendations