Specifying memory consistency of write buffer multiprocessors

Write buffering is one of many successful mechanisms that improves the performance and scalability of multiprocessors. However, it leads to more complex memory system behavior, which cannot be described using intuitive consistency models, such as Sequential Consistency. It is crucial to provide programmers with a specification of the exact behavior of such complex memories. This article presents a uniform framework for describing systems at different levels of abstraction and proving their equivalence. The framework is used to derive and prove correct simple specifications in terms of program-level instructions of the sparc total store order and partial store order memories.The framework is also used to examine the sparc relaxed memory order. We show that it is not a memory consistency model that corresponds to any implementation on a multiprocessor that uses write-buffers, even though we suspect that the sparc version 9 specification of relaxed memory order was intended to capture a general write-buffer architecture. The same technique is used to show that Coherence does not correspond to a write-buffer architecture. A corollary, which follows from the relationship between Coherence and Alpha, is that any implementation of Alpha consistency using write-buffers cannot produce all possible Alpha computations. That is, there are some computations that satisfy the Alpha specification but cannot occur in the given write-buffer implementation.

[1]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[2]  Jalal Kawash,et al.  Memory Consistency and Process Coordination for SPARC Multiprocessors , 2000, HiPC.

[3]  Jalal Kawash,et al.  Java: Memory Consistency and Process Coordination (Extended Abstract) , 1998 .

[4]  Jalal Kawash,et al.  Limitations and capabilities of weak memory consistency systems , 2000 .

[5]  Leslie Lamport,et al.  How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs , 2016, IEEE Transactions on Computers.

[6]  Roy Friedman Implementing hybrid consistency with high-level synchronization operations , 1993, PODC '93.

[7]  James R. Goodman,et al.  Cache Consistency and Sequential Consistency , 1991 .

[8]  Roy Friedman,et al.  A Correctness Condition for High-Performance Multiprocessors , 1998, SIAM J. Comput..

[9]  Leslie Lamport,et al.  On interprocess communication , 1986, Distributed Computing.

[10]  Roy Friedman,et al.  A correctness condition for high-performance multiprocessors (extended abstract) , 1992, STOC '92.

[11]  Frank D. Anger,et al.  On Lamport's interprocessor communication model , 1989, TOPL.

[12]  Roy Friedman,et al.  Shared Memory Consistency Conditions for Nonsequential Execution: Definitions and Programming Strategies , 1998, SIAM J. Comput..

[13]  Leslie Lamport,et al.  How to Make a Correct Multiprocess Program Execute Correctly on a Multiprocessor , 1997, IEEE Trans. Computers.

[14]  Maurice Herlihy,et al.  Linearizability: a correctness condition for concurrent objects , 1990, TOPL.

[15]  A. Cozzolino,et al.  Powerpc microprocessor family: the programming environments , 1994 .

[16]  Corporate The SPARC architecture manual (version 9) , 1994 .

[17]  Barry J. Epstein,et al.  The Sparc Architecture Manual/Version 8 , 1992 .

[18]  Gil Neiger,et al.  Causal memory: definitions, implementation, and programming , 1995, Distributed Computing.

[19]  Leslie Lamport,et al.  The mutual exclusion problem: partII—statement and solutions , 1986, JACM.

[20]  Nancy A. Lynch,et al.  An introduction to input/output automata , 1989 .

[21]  Jayadev Misra Axioms for memory access in asynchronous hardware systems , 1986, TOPL.

[22]  Leslie Lamport A New Approach to Proving the Correctness of Multiprocess Programs , 1979, TOPL.

[23]  Seif Haridi,et al.  Distributed Algorithms , 1992, Lecture Notes in Computer Science.

[24]  Gil Neiger,et al.  A Characterization of Scalable Shared Memories , 1993, 1993 International Conference on Parallel Processing - ICPP'93.

[25]  David L. Dill,et al.  An Executable Specification and Verifier for Relaxed Memory Order , 1999, IEEE Trans. Computers.

[26]  David L Weaver,et al.  The SPARC architecture manual : version 9 , 1994 .

[27]  Corporate SPARC architecture manual - version 8 , 1992 .

[28]  Rida A. Bazzi,et al.  The power of processor consistency , 1993, SPAA '93.

[29]  Assaf Schuster,et al.  Java consistency: nonoperational characterizations for Java memory behavior , 2000, TOCS.

[30]  Charles Antony Richard Hoare Towards a theory of parallel programming , 2002 .

[31]  Matteo Frigo,et al.  The weakest reasonable memory model , 1998 .

[32]  Odo Diekmann,et al.  Exploring linear chain trickery for physiologically structured populations , 1989 .

[33]  Michel Dubois,et al.  Memory access buffering in multiprocessors , 1998, ISCA '98.

[34]  Roy Friedman,et al.  Shared memory consistency conditions for non-sequential execution: definitions and programming strategies , 1993, SPAA '93.

[35]  Jalal Y. Kawash Limitations and capabilities of weak memory consistency systems , 2000 .

[36]  Allon Adir,et al.  Information-Flow Models for Shared Memory with an Application to the PowerPC Architecture , 2003, IEEE Trans. Parallel Distributed Syst..

[37]  Jalal Kawash,et al.  Java: Memory Consistency and Process Coordination , 1998, DISC.

[38]  Roy Friedman,et al.  Programming DEC-Alpha based multiprocessors the easy way (extended abstract) , 1994, SPAA '94.

[39]  Michael Merritt,et al.  Specifying non-blocking shared memories (extended abstract) , 1992, SPAA '92.