A Survey of Verification Techniques for Cache Coherence Protocols

In this paper, we present a comprehensive survey of various approaches for the verification of cache coherence protocols based on state enumeration , (symbolic) model checking andsymbolic state models . Since these techniques search the state space of the protocol exhaustively, the amount of memory required to manipulate the 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-calledstate space explosion problem. The emphasis of our discussion is on the underlying theory in each method to handle the state space explosion problem, and to formulate and check 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 andamenity for existing tools in each class of methods. No method is truly superior because each method has its own strengths and weaknesses. Finally, refinements which can further reduce the verification time and/or the memory requirement are also discussed. Corresponding author: Fong Pong. Email: fong.pong@eng.sun.com

[1]  David L. Dill,et al.  Verification of a Multiprocessor Cache Protocol Using Simulation Relations and Higher-Order Logic , 1990, CAV.

[2]  J. Kubiatowicz Closing the Window of Vulnerability in Multiphase memory transaction: The alewife transaction store , 1993 .

[3]  Michel Cekleov,et al.  Formal Specification of Memory Models , 1992 .

[4]  Laxmi N. Bhuyan,et al.  A Formal Specification and Verification Technique for Cache Coherence Protocols , 1992, ICPP.

[5]  Michel Dubois,et al.  Correct memory operation of cache-based multiprocessors , 1987, ISCA '87.

[6]  J. K. Archibald The cache coherence problem in shared-memory multiprocessors , 1987 .

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

[8]  Somesh Jha,et al.  Exploiting symmetry in temporal logic model checking , 1993, Formal Methods Syst. Des..

[9]  Pong Fong Symbolic state model: a new approach for the verification of cache coherence protocols , 1996 .

[10]  Robert K. Brayton,et al.  Automatic Reduction in CTL Compositional Model Checking , 1992, CAV.

[11]  藤田 昌宏,et al.  Evaluation and Improvements of Boolean Comparison Method Based on Binary Decision Diagrams , 1988 .

[12]  Carlos Rodriguez,et al.  What are the Limits of Model Checking Methods for the Verification of Real Life Protocols? , 1989, Automatic Verification Methods for Finite State Systems.

[13]  Michel Dubois,et al.  A New Approach for the Verification of Cache Coherence Protocols , 1995, IEEE Trans. Parallel Distributed Syst..

[14]  Chen-Shang Lin,et al.  On the OBDD-Representation of General Boolean Functions , 1992, IEEE Trans. Computers.

[15]  Anoop Gupta,et al.  The directory-based cache coherence protocol for the DASH multiprocessor , 1990, ISCA '90.

[16]  Kourosh Gharachorloo,et al.  Proving sequential consistency of high-performance shared memories (extended abstract) , 1991, SPAA '91.

[17]  Michael C. Browne,et al.  The S3.mp scalable shared memory multiprocessor , 1994, 1994 Proceedings of the Twenty-Seventh Hawaii International Conference on System Sciences.

[18]  Michel Dubois,et al.  Lockup-free Caches in High-Performance Multiprocessors , 1990, J. Parallel Distributed Comput..

[19]  A. Danthine,et al.  Protocol Representation with Finite-State Models , 1980, IEEE Trans. Commun..

[20]  Michel Dubois,et al.  Delayed consistency and its effects on the miss rate of parallel programs , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[21]  Claire Loiseaux,et al.  A Tool for Symbolic Program Verification and Abstration , 1993, CAV.

[22]  Patrice Godefroid Using Partial Orders to Improve Automatic Verification Methods , 1990, CAV.

[23]  Martin Peschke,et al.  Design and Validation of Computer Protocols , 2003 .

[24]  Kenneth J. Supowit,et al.  Finding the Optimal Variable Ordering for Binary Decision Diagrams , 1987, 24th ACM/IEEE Design Automation Conference.

[25]  Albert R. Wang,et al.  Logic verification using binary decision diagrams in a logic synthesis environment , 1988, [1988] IEEE International Conference on Computer-Aided Design (ICCAD-89) Digest of Technical Papers.

[26]  Michel Dubois,et al.  Memory Access Dependencies in Shared-Memory Multiprocessors , 1990, IEEE Trans. Software Eng..

[27]  Michel Dubois,et al.  The verification of cache coherence protocols , 1993, SPAA '93.

[28]  Gerard J. Holzmann,et al.  State-space caching revisited , 1992, Formal Methods Syst. Des..

[29]  Erik Hagersten,et al.  The Cache Coherence Protocol of the Data Diffusion Machine , 1989 .

[30]  Michel Dubois,et al.  Access ordering and coherence in shared memory multiprocessors , 1989 .

[31]  Olivier Coudert,et al.  Verifying Temporal Properties of Sequential Machines without Building Their State Diagrams , 1990, CAV.

[32]  Robert K. Brayton,et al.  Automatic compositional minimization in CTL model checking , 1992, ICCAD.

[33]  Larry Rudolph,et al.  Dynamic decentralized cache schemes for mimd parallel processors , 1984, ISCA '84.

[34]  Robert P. Kurshan,et al.  A structural induction theorem for processes , 1989, PODC.

[35]  Alan Jay Smith,et al.  A class of compatible cache consistency protocols and their support by the IEEE futurebus , 1986, ISCA '86.

[36]  James K. Archibald,et al.  Cache coherence protocols: evaluation using a multiprocessor simulation model , 1986, TOCS.

[37]  Susanne Graf,et al.  Verification of a Distributed Cache Memory by Using Abstractions , 1994, CAV.

[38]  Randal E. Bryant,et al.  Symbolic Boolean manipulation with ordered binary-decision diagrams , 1992, CSUR.

[39]  Alan J. Hu,et al.  Protocol verification as a hardware design aid , 1992, Proceedings 1992 IEEE International Conference on Computer Design: VLSI in Computers & Processors.

[40]  Andrew W. Wilson,et al.  Hierarchical cache/bus architecture for shared memory multiprocessors , 1987, ISCA '87.

[41]  P. Stenstrom A survey of cache coherence schemes for multiprocessors , 1990, Computer.

[42]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[43]  Jean Christophe Madre,et al.  Proving circuit correctness using formal comparison between expected and extracted behaviour , 1988, 25th ACM/IEEE, Design Automation Conference.Proceedings 1988..

[44]  King-Sun Fu,et al.  Data Coherence Problem in a Multicache System , 1985, IEEE Transactions on Computers.

[45]  A. Prasad Sistla,et al.  Symmetry and model checking , 1993, Formal Methods Syst. Des..

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

[47]  ShashaDennis,et al.  Efficient and correct execution of parallel programs that share memory , 1988 .

[48]  Pierre Wolper,et al.  Reliable Hashing without Collosion Detection , 1993, CAV.

[49]  Alan J. Hu,et al.  Higher-Level Specification and Verification with BDDs , 1992, CAV.

[50]  Thierry Jéron,et al.  Bounded-memory Algorithms for Verification On-the-fly , 1991, CAV.

[51]  Edmund M. Clarke,et al.  Automatic Verification of Sequential Circuits Using Temporal Logic , 1986, IEEE Transactions on Computers.

[52]  David B. Gustavson,et al.  Scalable Coherent Interface , 1990, COMPEURO'90: Proceedings of the 1990 IEEE International Conference on Computer Systems and Software Engineering@m_Systems Engineering Aspects of Complex Computerized Systems.

[53]  David L. Dill,et al.  Better verification through symmetry , 1996, Formal Methods Syst. Des..

[54]  M. Hill,et al.  Weak ordering-a new definition , 1990, [1990] Proceedings. The 17th Annual International Symposium on Computer Architecture.

[55]  Mark D. Hill,et al.  A Unified Formalization of Four Shared-Memory Models , 1993, IEEE Trans. Parallel Distributed Syst..

[56]  Yehuda Afek,et al.  A lazy cache algorithm , 1989, SPAA '89.

[57]  Pierre Wolper,et al.  Verifying Properties of Large Sets of Processes with Network Invariants , 1990, Automatic Verification Methods for Finite State Systems.

[58]  Michel Dubois,et al.  Verifying Distributed Directory-Based Cahce Coherence Protocols: S3.mp, a Case Study , 1995, Euro-Par.

[59]  Edmund M. Clarke,et al.  Reasoning about networks with many identical finite-state processes , 1986, PODC '86.

[60]  G. J. Holzmann,et al.  Tracing protocols , 1985, AT&T Technical Journal.

[61]  William W. Collier,et al.  Reasoning about parallel architectures , 1992 .

[62]  David L. Dill,et al.  Efficient verification of symmetric concurrent systems , 1993, Proceedings of 1993 IEEE International Conference on Computer Design ICCD'93.

[63]  M.C. Yuang,et al.  Survey of protocol verification techniques based on finite state machine models , 1988, [1988] Proceedings. Computer Networking Symposium.

[64]  Michel Dubois,et al.  Formal verification of delayed consistency protocols , 1996, Proceedings of International Conference on Parallel Processing.

[65]  Patrick Cousot,et al.  Abstract Interpretation Frameworks , 1992, J. Log. Comput..

[66]  Ingo Wegener The Size of Reduced OBDD's and Optimal Read-Once Branching Programs for Almost All Boolean Functions , 1994, IEEE Trans. Computers.

[67]  Erik Hagersten,et al.  The Cache Coherence Protocol of the Data Diffusion Machine , 1989, PARLE.

[68]  Kenneth L. McMillan,et al.  Symbolic model checking: an approach to the state explosion problem , 1992 .

[69]  Paul Feautrier,et al.  A New Solution to Coherence Problems in Multicache Systems , 1978, IEEE Transactions on Computers.

[70]  Michel Dubois,et al.  An Integrated Methodology for the Verification of Directory-Based Cache Protocols , 1994, 1994 International Conference on Parallel Processing Vol. 1.

[71]  Michel Dubois,et al.  Correctness of a directory-based cache coherence protocol: Early experience , 1993, Proceedings of 1993 5th IEEE Symposium on Parallel and Distributed Processing.

[72]  Randal E. Bryant,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 1986, IEEE Transactions on Computers.

[73]  Somesh Jha,et al.  Verification of the Futurebus+ cache coherence protocol , 1993, Formal Methods Syst. Des..

[74]  Fred Kröger,et al.  Temporal Logic of Programs , 1987, EATCS Monographs on Theoretical Computer Science.

[75]  Gregor von Bochmann,et al.  Formal Methods in Communication Protocol Design , 1980, IEEE Trans. Commun..

[76]  Olivier Coudert,et al.  Verification of Synchronous Sequential Machines Based on Symbolic Execution , 1989, Automatic Verification Methods for Finite State Systems.

[77]  Anoop Gupta,et al.  Comparative evaluation of latency reducing and tolerating techniques , 1991, ISCA '91.

[78]  Gerard J. Holzmann Algorithms for automated protocol verification , 1990, AT&T Technical Journal.

[79]  Anoop Gupta,et al.  Performance evaluation of memory consistency models for shared-memory multiprocessors , 1991, ASPLOS IV.

[80]  Mark D. Hill,et al.  Implementing Sequential Consistency in Cache-Based Systems , 1990, ICPP.

[81]  Stein Gjessing,et al.  A Top Down Approach to the Formal Specification of SCI Cache Coherence , 1991, CAV.

[82]  Michel Dubois,et al.  Combined performance gains of simple cache protocol extensions , 1994, ISCA '94.

[83]  Geoffrey M. Brown Asynchronous multicaches , 1990, Distributed Computing.

[84]  Alan J. Hu,et al.  Reducing BDD Size by Exploiting Functional Dependencies , 1993, 30th ACM/IEEE Design Automation Conference.

[85]  Alan J. Hu,et al.  Efficient Verification with BDDs using Implicitly Conjoined Invariants , 1993, CAV.

[86]  Donald E. Thomas,et al.  The Verilog® Hardware Description Language , 1990 .