Formal Specification of Memory Models
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.
KeywordsHardware Implementation Memory Model Critical Section Strong Consistency Execution Sequence
Unable to display preview. Download preview PDF.
- C. G. Bell and A. Newell, “Computer Structures: Readings and Examples”, McGraw-Hill, N.Y., 1971.Google Scholar
- S.V. Adve and M.D. Hill, “Weak Ordering—A new definition”, Proceedings of the 17th International Symposium on Computer Architecture, 1990.Google Scholar
- 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
- E. Dijkstra, “Solution of a problem in concurrent programming control”, CACM, Vol 8, No 9, September 1965.Google Scholar
- 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
- 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
- J. Goodman, “Cache consistency and sequential consistency”, Tech. Report 61, IEEE SCI Committee P1596.Google Scholar
- L. Lamport, “Time, Clocks, and the Ordering of Events in a Distributed System”, CACM, Vol 21, No 7, July 1978.Google Scholar
- L. Lamport, “How to make a multiprocessor computer that correctly executes multiprocess programs”, IEEE Trans on Computers, C-28(9), September 1979.Google Scholar
- B. Lampson, “Specifying Distributed Systems”, Tech. Report, Cambridge Research Laboratory, Digital Equipment Corp, November 1988.Google Scholar
- J. Misra, “Axioms for Memory Access in Asynchronous Hardware Systems”, ACM TOPLAS, Vol 8, No 1, January 1986.Google Scholar
- “SPARC Architecture Reference Manual V8”, Sun Microsystems, December 1990.Google Scholar