Verification techniques for cache coherence protocols
- 1 March 1997
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Computing Surveys
- Vol. 29 (1) , 82-126
- https://doi.org/10.1145/248621.248624
Abstract
In this article we present a comprehensive survey of various approaches for the verification of cache coherence protocols based on state enumeration, (symbolic model checking , and symbolic state models . Since these techniques search the state space of the protocol exhaustively, the amount of memory required to manipulate that state information and the verification time grow very fast with the number of processors and the complexity of the protocol mechanisms. To be successful for systems of arbitrary complexity, a verification technique must solve this so-called state space explosion problem. The emphasis of our discussion is onthe underlying theory in each method of handling the state space exposion problem, and formulationg and checking the safety properties (e.g., data consistency) and the liveness properties (absence of deadlock and livelock). We compare the efficiency and discuss the limitations of each technique in terms of memory and computation time. Also, we discuss issues of generality, applicability, automaticity, and amenity for existing tools in each class of methods. No method is truly superior because each method has its own strengths and weaknesses. Finally, refinements that can further reduce the verification time and/or the memory requirement are also discussed.Keywords
This publication has 30 references indexed in Scilit:
- A new approach for the verification of cache coherence protocolsIEEE Transactions on Parallel and Distributed Systems, 1995
- RPM: a rapid prototyping engine for multiprocessor systemsComputer, 1995
- The size of reduced OBDD's and optimal read-once branching programs for almost all Boolean functionsIEEE Transactions on Computers, 1994
- A unified formalization of four shared-memory modelsIEEE Transactions on Parallel and Distributed Systems, 1993
- On the OBDD-representation of general Boolean functionsIEEE Transactions on Computers, 1992
- Memory access dependencies in shared-memory multiprocessorsIEEE Transactions on Software Engineering, 1990
- Finding the optimal variable ordering for binary decision diagramsIEEE Transactions on Computers, 1990
- Asynchronous multicachesDistributed Computing, 1990
- Cache coherence protocols: evaluation using a multiprocessor simulation modelACM Transactions on Computer Systems, 1986
- Formal Methods in Communication Protocol DesignIEEE Transactions on Communications, 1980