Memory Consistency and Process Coordination for SPARC Multiprocessors

Simple and unified non-operational specifications of the three memory consistency models Total Store Ordering (TSO), Partial Store Ordering (PSO), and Relaxed Memory Order (RMO) of SPARC multiprocessors are presented and proved correct. The specifications are intuitive partial order constraints on possible computations and are derived from natural successive weakening of Lamport's Sequential Consistency. The formalisms are then used to determine the capabilities of each model to support solutions to critical section coordination and both set and queue variants of producer/consumer coordination without resorting to expensive synchronization primitives. Our results show that none of RMO, PSO nor TSO is capable of supporting a read/write solution to the critical section problem, but each can support such a solution to some variants of the producer/consumer problem. These results contrast with the two previous attempts to specify these machines, one of whichwould incorrectly imply a read/write solution to the critical section problem for TSO, and the other of which is too complicated to be useful to programmers. Our general framework for defining and proving the correctness of the memory consistency models was key in uncovering the previous error and in achieving our simplification, and hence may be of independent interest.

[1]  Edsger Wybe Dijkstra,et al.  Cooperating Sequential Processes, Technical Report EWD-123 , 1965 .

[2]  Edsger W. Dijkstra,et al.  Cooperating sequential processes , 2002 .

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

[4]  Michel Raynal,et al.  Algorithms for mutual exclusion , 1986 .

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

[6]  Assaf Schuster,et al.  Characterizations for Java memory behavior , 1998, Proceedings of the First Merged International Parallel Processing Symposium and Symposium on Parallel and Distributed Processing.

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

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

[9]  Jalal Kawash,et al.  Memory consistency and process coordination for SPARC v8 multiprocessors (brief announcement) , 2000, PODC '00.

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

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

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

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

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

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

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

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