Using Lamport clocks to reason about relaxed memory models
- 1 January 1999
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
Abstract
Cache coherence protocols of current shared-memory multiprocessors are difficult to verify. Our previous work proposed an extension of Lamport's logical clocks for showing that multiprocessors can implement sequential consistency (SC) with an SGI Origin 2000-like directory protocol and a Sun Gigaplane-like split-transaction bus protocol. Many commercial multiprocessors, however, implement more relaxed models, such as SPARC Total Store Order (TSO), a variant of processor consistency, and Compaq (DEC) Alpha, a variant of weak consistency. This paper applies Lamport clocks to both a TSO and an Alpha implementation. Both implementations are based on the same Sun Gigaplane-like split-transaction bus protocol we previously used, but the TSO implementation places a first-in-first-out write buffer between a processor and its cache, while the Alpha implementation uses a coalescing write buffer. Both write buffers satisfy read requests for pending writes (i.e., do bypassing) without requiring the write to be immediately written to cache. Analysis shows how to apply Lamport clocks to verify TSO and Alpha specifications at the architectural level.Keywords
This publication has 11 references indexed in Scilit:
- Weak ordering-a new definitionPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Memory consistency and event ordering in scalable shared-memory multiprocessorsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- A Correctness Condition for High-Performance MultiprocessorsSIAM Journal on Computing, 1998
- Design verification of the S3.mp cache-coherent shared-memory systemIEEE Transactions on Computers, 1998
- The SGI OriginACM SIGARCH Computer Architecture News, 1997
- An executable specification, analyzer and verifier for RMO (relaxed memory order)Published by Association for Computing Machinery (ACM) ,1995
- Simulating synchronized clocks and common knowledge in distributed systemsJournal of the ACM, 1993
- Memory access buffering in multiprocessorsACM SIGARCH Computer Architecture News, 1986
- How to Make a Multiprocessor Computer That Correctly Executes Multiprocess ProgramsIEEE Transactions on Computers, 1979
- Time, clocks, and the ordering of events in a distributed systemCommunications of the ACM, 1978