A Proof of Correctness for the Tardis Cache Coherence Protocol

We prove the correctness of a recently-proposed cache coherence protocol, Tardis, which is simple, yet scalable to high processor counts, because it only requires O(logN) storage per cacheline for an N-processor system. We prove that Tardis follows the sequential consistency model and is both deadlock- and livelock-free. Our proof is based on simple and intuitive invariants of the system and thus applies to any system scale and many variants of Tardis.

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

[2]  Mike O'Connor,et al.  Cache coherence for GPU architectures , 2013, 2013 IEEE 19th International Symposium on High Performance Computer Architecture (HPCA).

[3]  Adam Chlipala,et al.  Modular Deductive Verification of Multiprocessor Hardware Designs , 2015, CAV.

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

[5]  Vijay Nagarajan,et al.  TSO-CC: Consistency directed cache coherence for TSO , 2014, 2014 IEEE 20th International Symposium on High Performance Computer Architecture (HPCA).

[6]  Kenneth L. McMillan,et al.  Verification of Infinite State Systems by Compositional Model Checking , 1999, CHARME.

[7]  Giorgio Delzanno Automatic Verification of Parameterized Cache Coherence Protocols , 2000, CAV.

[8]  Robert J. Safranek,et al.  Intel® QuickPath Interconnect Architectural Features Supporting Scalable System Architectures , 2010, 2010 18th IEEE Symposium on High Performance Interconnects.

[9]  Leslie Lamport,et al.  Checking Cache-Coherence Protocols with TLA+ , 2003, Formal Methods Syst. Des..

[10]  Ganesh Gopalakrishnan,et al.  Symbolic Partial Order Reduction for Rule Based Transition Systems , 2005, CHARME.

[11]  Vineet Kahlon,et al.  Exact and Efficient Verification of Parameterized Cache Coherence Protocols , 2003, CHARME.

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

[13]  Ganesh Gopalakrishnan,et al.  Exploiting Symmetry and Transactions for Partial Order Reduction of Rule Based Specifications , 2006, SPIN.

[14]  George Chrysos,et al.  Intel® Xeon Phi coprocessor (codename Knights Corner) , 2012, 2012 IEEE Hot Chips 24 Symposium (HCS).

[15]  Srinivas Devadas,et al.  Memory coherence in the age of multicores , 2011, 2011 IEEE 29th International Conference on Computer Design (ICCD).

[16]  Meng Zhang,et al.  PVCoherence: Designing flat coherence protocols for scalable verification , 2014, 2014 IEEE 20th International Symposium on High Performance Computer Architecture (HPCA).

[17]  LamportLeslie,et al.  Checking Cache-Coherence Protocols with TLA+ , 2003 .

[18]  Paul Hudak,et al.  Memory coherence in shared virtual memory systems , 1989, TOCS.

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

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

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

[22]  Mark D. Hill,et al.  Lamport clocks: verifying a directory cache-coherence protocol , 1998, SPAA '98.

[23]  Leslie Lamport,et al.  Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers [Book Review] , 2002, Computer.

[24]  Yehuda Afek,et al.  Lazy caching , 1993, TOPL.

[25]  Yu Yang,et al.  Efficient methods for formally verifying safety properties of hierarchical cache coherence protocols , 2010, Formal Methods Syst. Des..

[26]  David A. Wood,et al.  A Primer on Memory Consistency and Cache Coherence , 2012, Synthesis Lectures on Computer Architecture.

[27]  Calvin K. Tang Cache system design in the tightly coupled multiprocessor system , 1976, AFIPS '76.

[28]  Meng Zhang,et al.  Fractal Coherence: Scalably Verifiable Cache Coherence , 2010, 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture.

[29]  Alan L. Cox,et al.  TreadMarks: Distributed Shared Memory on Standard Workstations and Operating Systems , 1994, USENIX Winter.

[30]  Chung-Wah Norris Ip,et al.  State reduction methods for automatic formal verification , 1996 .

[31]  George Kurian,et al.  ATAC: A 1000-core cache-coherent processor with on-chip optical network , 2010, 2010 19th International Conference on Parallel Architectures and Compilation Techniques (PACT).

[32]  Srinivas Devadas,et al.  TARDIS: Timestamp based Coherence Algorithm for Distributed Shared Memory , 2015, ArXiv.

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

[34]  Milo M. K. Martin,et al.  Token Coherence: decoupling performance and correctness , 2003, 30th Annual International Symposium on Computer Architecture, 2003. Proceedings..

[35]  Ranjit Jhala,et al.  Microarchitecture Verification by Compositional Model Checking , 2001, CAV.

[36]  Charles E. Leiserson,et al.  A consistency architecture for hierarchical shared caches , 2008, SPAA '08.