A Knowledge Based Analysis of Cache Coherence

This paper presents a case study of the application of the knowledge-based approach to concurrent systems specification, design and verification. A highly abstract solution to the cache coherence problem is first presented, in the form of a knowledge-based program, that formalises the intuitions underlying the MOESI [Sweazey & Smith, 1986] characterisation of cache coherency protocols. It is shown that any concrete implementation of this knowledge-based program, which relates a cache’s actions to its knowledge about the status of other caches, is a correct solution of the cache coherence problem. Three existing protocols in the MOESI class are shown to be such implementations. The knowledge-based characterisation furthermore raises the question of whether these protocols are optimal in their use of information available to the caches. This question is investigated using by the model checker MCK, which is able to verify specifications in the logic of knowledge and time.

[1]  Hideo Aiso,et al.  Proceedings of the 16th annual international symposium on Computer architecture , 1986 .

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

[3]  Ronald Fagin,et al.  Reasoning about knowledge , 1995 .

[4]  Yoram Moses,et al.  Knowledge and the Logic of Local Propositions , 1998, TARK.

[5]  Gil Neiger,et al.  Simplifying the Design of Knowledge-Based Algorithms Using Knowledge Consistency , 1995, Inf. Comput..

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

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

[8]  Joost-Pieter Katoen,et al.  A probabilistic extension of UML statecharts: Specification and Verification. , 2002 .

[9]  Yoram Moses,et al.  On Refinement and Temporal Annotations , 2000, FTRTFT.

[10]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.

[11]  Yoram Moses,et al.  A Program Refinement Framework Supporting Reasoning about Knowledge and Time , 2000, FoSSaCS.

[12]  Frank Wolter,et al.  Monodic fragments of first-order temporal logics: 2000-2001 A.D , 2001, LPAR.

[13]  Amir Pnueli,et al.  Verifying sequentially consistent memory , 1994 .

[14]  Mahadev Satyanarayanan,et al.  Using belief to reason about cache coherence , 1994, PODC '94.

[15]  Ron van der Meyden,et al.  MCK: Model Checking the Logic of Knowledge , 2004, CAV.

[16]  Kai Engelhardt Towards a refinement theory that supports reasoning about knowledge and time for multiple agents , 2002, Electron. Notes Theor. Comput. Sci..

[17]  Jim Handy,et al.  The cache memory book , 1993 .

[18]  Maurice Herlihy,et al.  Linearizability: a correctness condition for concurrent objects , 1990, TOPL.

[19]  Yoram Moses,et al.  A Refinement Theory that Supports Reasoning About Knowledge and Time , 2001, LPAR.

[20]  Ronald Fagin,et al.  Knowledge-based programs , 1995, PODC '95.