Fractal Coherence: Scalably Verifiable Cache Coherence

We propose an architectural design methodology for designing formally verifiable cache coherence protocols, called Fractal Coherence. Properly designed to be fractal in behavior, the proposed family of cache coherence protocols can be formally verified correct for systems with an arbitrary number of cores, using existing, automated formal tools. We show, by designing and implementing a specific Fractal Coherence protocol, called Tree Fractal, that Fractal Coherence protocols can attain comparable performance to traditional snooping and directory protocols.

[1]  Radu Mateescu,et al.  CADP 2006: A Toolbox for the Construction and Analysis of Distributed Processes , 2007, CAV.

[2]  Milo M. K. Martin,et al.  Formal verification and its impact on the snooping versus directory protocol debate , 2005, 2005 International Conference on Computer Design.

[3]  Alan J. Hu,et al.  Improving multiple-CMP systems using token coherence , 2005, 11th International Symposium on High-Performance Computer Architecture.

[4]  B. Mandelbrot Fractal Geometry of Nature , 1984 .

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

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

[7]  Luiz André Barroso,et al.  Piranha: a scalable architecture based on single-chip multiprocessing , 2000, Proceedings of 27th International Symposium on Computer Architecture (IEEE Cat. No.RS00201).

[8]  Mark D. Hill,et al.  Virtual hierarchies to support server consolidation , 2007, ISCA '07.

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

[10]  Geoffrey Brown,et al.  Hardware Specification, Verification and Synthesis: Mathematical Aspects , 1990, Lecture Notes in Computer Science.

[11]  Bob Bentley Validating the Intel/sup (R)/ Pentium/sup (R)/ 4 microprocessor , 2001, 2001 International Conference on Dependable Systems and Networks.

[12]  Edmund M. Clarke,et al.  Formal Methods: State of the Art and Future Directions Working Group Members , 1996 .

[13]  David A. Wood,et al.  Variability in architectural simulations of multi-threaded workloads , 2003, The Ninth International Symposium on High-Performance Computer Architecture, 2003. HPCA-9 2003. Proceedings..

[14]  George J. Milne,et al.  Design for Verifiability , 1989, Hardware Specification, Verification and Synthesis.

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

[16]  Milo M. K. Martin,et al.  Multifacet's general execution-driven multiprocessor simulator (GEMS) toolset , 2005, CARN.

[17]  Randy H. Katz,et al.  Verifying a multiprocessor cache controller using random test generation , 1990, IEEE Design & Test of Computers.

[18]  Arvind,et al.  Getting Formal Verification into Design Flow , 2008, FM.

[19]  Fredrik Larsson,et al.  Simics: A Full System Simulation Platform , 2002, Computer.

[20]  Srivatsan Srinivasan,et al.  Formal verification of a snoop-based cache coherence protocol using symbolic model checking , 1999, Proceedings Twelfth International Conference on VLSI Design. (Cat. No.PR00013).

[21]  Anoop Gupta,et al.  The SPLASH-2 programs: characterization and methodological considerations , 1995, ISCA.

[22]  David L. Dill,et al.  Improved probabilistic verification by hash compaction , 1995, CHARME.

[23]  Seungjoon Park,et al.  A Simple Method for Parameterized Verification of Cache Coherence Protocols , 2004, FMCAD.

[24]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

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

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

[27]  Bob Bentley,et al.  Validating the Intel(R) Pentium(R) 4 microprocessor , 2001, Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232).

[28]  K. Gharachorloo,et al.  Architecture and design of AlphaServer GS320 , 2000, ASPLOS IX.

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

[30]  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.

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

[32]  Sebastian Burckhardt,et al.  Verifying Safety of a Token Coherence Implementation by Parametric Compositional Refinement , 2005, VMCAI.

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

[34]  Radu Mateescu,et al.  BISIMULATOR: A Modular Tool for On-the-Fly Equivalence Checking , 2005, TACAS.