Automatic synthesis of cache-coherence protocol processors using Bluespec

There are few published examples of the proof of correctness of a cache-coherence protocol expressed in an HDL. A designer generally shows the correctness of a protocol where many implementation details have been abstracted away. Abstract protocols are often expressed as a table of rules or state transition diagrams with an (implicit) model of atomic actions. There is enough of a semantic gap between these high-level abstract descriptions and HDLs that the task of showing the correctness of an implementation of a verified abstract protocol is as daunting as proving the abstract protocol's correctness in the first place. The main contribution of this paper is to show that this problem can be largely avoided by expressing the verified abstract protocol in Bluespec SystemVerilog (BSV), which is based on guarded atomic actions and is synthesizable into efficient hardware. Consequently, once a protocol has been verified at the rules-level, little verification effort is needed to verify the implementation. We illustrate our approach by synthesizing a non-blocking MSI cache-coherence protocol for distributed memory systems and discuss the performance of the resulting implementation.

[1]  David L. Dill,et al.  Verification of FLASH cache coherence protocol by aggregation of distributed transactions , 1996, SPAA '96.

[2]  Xiaowei Shen Speci � cation of Memory Models and Design of Provably Correct Cache Coherence Protocols , 2004 .

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

[4]  Leslie Lamport,et al.  Cache Coherence Verification with TLA+ , 1999, World Congress on Formal Methods.

[5]  James R. Larus,et al.  Teapot: language support for writing memory coherence protocols , 1996, PLDI '96.

[6]  Alan L. Cox,et al.  Adaptive protocols for software distributed shared memory , 1999 .

[7]  Anoop Gupta,et al.  Parallel computer architecture - a hardware / software approach , 1998 .

[8]  Xiaowei Shen,et al.  Design and verification of adaptive cache coherence protocols , 2000 .

[9]  James C. Hoe,et al.  Operation-centric hardware description and synthesis , 2004, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[10]  Larry Rudolph,et al.  CACHET: an adaptive cache coherence protocol for distributed shared-memory systems , 1999, ICS '99.

[11]  Daniel E. Lenoski,et al.  The design and analysis of DASH: a scalable directory-based multiprocessor , 1992 .

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

[13]  Nirav Hemant Dave Designing a Processor in Bluespec , 2005 .

[14]  D.A. Wood,et al.  Reactive NUMA: A Design For Unifying S-COMA And CC-NUMA , 1997, Conference Proceedings. The 24th Annual International Symposium on Computer Architecture.

[15]  Arvind,et al.  Modular scheduling of guarded atomic actions , 2004, Proceedings. 41st Design Automation Conference, 2004..

[16]  Xiaowei Shen,et al.  Proofs of Correctness of Cache-Coherence Protocols , 2001, FME.