A unified theory of shared memory consistency
- 1 September 2004
- journal article
- Published by Association for Computing Machinery (ACM) in Journal of the ACM
- Vol. 51 (5), 800-849
- https://doi.org/10.1145/1017460.1017464
Abstract
The traditional assumption about memory is that a read returns the value written by the most recent write. However, in a shared memory multiprocessor several processes independently and simultaneously submit reads and writes resulting in a partial order of memory operations. In this partial order, the definition of most recent write may be ambiguous. Memory consistency models have been developed to specify what values may be returned by a read given that memory operations may only be partially ordered. Before this work, consistency models were defined independently. Each model followed a set of rules which was separate from the rules of every other model. In our work, we have defined a set of four consistency properties. Any subset of the four properties yields a set of rules which constitute a consistency model. Every consistency model previously described in the literature can be defined based on our four properties. Therefore, we present these properties as a unfied theory of shared memory consistency.Our unified theory provides several benefits. First, we claim that these four properties capture the underlying structure of memory consistency. That is, the goal of memory consistency is to ensure certain declarative properties which can be intuitively understood by a programmer, and hence allow him or her to write a correct program. Our unified theory provides a uniform, formal definition of all previously described consistency models, and in addition some combinations of properties produce new models that have not yet been described. We believe these new models will prove to be useful because they are based on declarative properties which programmers desire to be enforced. Finally, we introduce the idea of selecting a consistency model as an on-line activity. Before our work, a shared memory program would run start to finish under a single consistency model. Our unified theory allows the consistency model to change as the program runs while maintaining a consistent definition of what values may be returned by each read.Keywords
This publication has 13 references indexed in Scilit:
- Location consistency-a new memory model and cache consistency protocolIEEE Transactions on Computers, 2000
- Adaptable distributed shared memory: A formal definitionPublished by Springer Science and Business Media LLC ,1998
- Shared memory consistency models: a tutorialComputer, 1996
- TreadMarks: shared memory computing on networks of workstationsComputer, 1996
- Techniques for reducing consistency-related communication in distributed shared-memory systemsACM Transactions on Computer Systems, 1995
- A unified formalization of four shared-memory modelsIEEE Transactions on Parallel and Distributed Systems, 1993
- Linearizability: a correctness condition for concurrent objectsACM Transactions on Programming Languages and Systems, 1990
- Memory access dependencies in shared-memory multiprocessorsIEEE Transactions on Software Engineering, 1990
- Memory access buffering in multiprocessorsACM SIGARCH Computer Architecture News, 1986
- Time, clocks, and the ordering of events in a distributed systemCommunications of the ACM, 1978