Testing Shared Memories
- 1 August 1997
- journal article
- Published by Society for Industrial & Applied Mathematics (SIAM) in SIAM Journal on Computing
- Vol. 26 (4) , 1208-1244
- https://doi.org/10.1137/s0097539794279614
Abstract
Sequential consistency is the most widely used correctness condition for multiprocessor memory systems. This paper studies the problem of testing shared-memory multiprocessors to determine if they are indeed providing a sequentially consistent memory. It presents the first formal study of this problem, which has applications to testing new memory system designs and realizations, providing run-time fault tolerance, and detecting bugs in parallel programs.A series of results are presented for testing an execution of a shared memory under various scenarios, comparing sequential consistency with linearizability, another well-known correctness condition. Linearizability imposes additional restrictions on the shared memory, beyond that of sequential consistency; these restrictions are shown to be useful in testing such memories.Keywords
This publication has 12 references indexed in Scilit:
- Computing with faulty shared objectsJournal of the ACM, 1995
- A new approach for the verification of cache coherence protocolsIEEE Transactions on Parallel and Distributed Systems, 1995
- On the complexity of concurrency control using semantic informationActa Informatica, 1995
- Checking the correctness of memoriesAlgorithmica, 1994
- Sequential consistency versus linearizabilityACM Transactions on Computer Systems, 1994
- Lazy cachingACM Transactions on Programming Languages and Systems, 1993
- The Stanford Dash multiprocessorComputer, 1992
- Linearizability: a correctness condition for concurrent objectsACM Transactions on Programming Languages and Systems, 1990
- The serializability of concurrent database updatesJournal of the ACM, 1979
- How to Make a Multiprocessor Computer That Correctly Executes Multiprocess ProgramsIEEE Transactions on Computers, 1979