A case study on the verification of cache coherence protocols

AbstractThis article presents a case study on verifying formally a multiprocessor system with shared memory using the model-checking technique. The system consists of a set of processors where each processor has its own cache, the shared main memory and the bus. The RTL (Register Transfer Level) design of the system is described in a Verilog-HDL code, and the behaviour is specified by a set of CTL (Computation Tree Logic) properties. We establish the effect of data width upon the reachability analysis. We successfully verify a set of critical safety and liveness properties for the system design. The experiments demonstrate the effectiveness of our methods. The verification results manifest the relationship between the state space, BDD (Binary Decision Diagram) size, and the verification time when the data width and the number of processors increase.

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

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

[3]  Michel Dubois,et al.  Formal Automatic Verification of Cache Coherence in Multiprocessors with Relaxed Memory Models , 2000, IEEE Trans. Parallel Distributed Syst..

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

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

[6]  Ganesh Gopalakrishnan,et al.  The 'Test Model-Checking' Approach to the Verification of Formal Memory Models of Multiprocessors , 1998, CAV.

[7]  Xiaoyu Song,et al.  Cache coherence protocol verification of a multiprocessor system with shared memory , 1998, Proceedings of the Tenth International Conference on Microelectronics (Cat. No.98EX186).

[8]  M. Gordon,et al.  Introduction to HOL: a theorem proving environment for higher order logic , 1993 .

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

[10]  Kenneth L. McMillan,et al.  Symbolic model checking , 1992 .

[11]  Per Stenström,et al.  A Survey of Cache Coherence Schemes for Multiprocessors , 1990, Computer.

[12]  Kenneth L. McMillan,et al.  Parameterized Verification of the FLASH Cache Coherence Protocol by Compositional Model Checking , 2001, CHARME.

[13]  Hussein Zedan,et al.  Proving the correctness of the interlock mechanism in processor design , 1997, CHARME.

[14]  Tiziano Villa,et al.  VIS: A System for Verification and Synthesis , 1996, CAV.

[15]  Paul Loewenstein Verification of a multiprocessor cache protocol using simulation relations and higher-order logic , 1992, Formal Methods Syst. Des..

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

[17]  Michel Dubois,et al.  Verification techniques for cache coherence protocols , 1997, CSUR.

[18]  Donald J. Patterson,et al.  Computer organization and design: the hardware-software interface (appendix a , 1993 .

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

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

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

[22]  Mark R. Greenstreet,et al.  Formal verification in hardware design: a survey , 1999, TODE.