Welcome!
To use the personalized features of this site, please log in or register.
If you have forgotten your username or password, we can help.
My Menu
Saved Items

Verification of Cache Coherence Protocols by Aggregation of Distributed Transactions

S. Park1 and D. L. Dill1

(1)  Department of Computer Science, Stanford University, Stanford, CA 94305, USA spark@cs.stanford.edu dill@cs.stanford.edu, US
Abstract.    This paper presents a method to verify the correctness of protocols and distributed algorithms. The method compares a state graph of the implementation with a specification which is a state graph representing the desired abstract behavior. The steps in the specification correspond to atomic transactions, which are not atomic in the implementation.
The method relies on an aggregation function, which is a type of abstraction function that aggregates the steps of each transaction in the implementation into a single atomic transaction in the specification. The key idea in defining the aggregation function is that it must complete atomic transactions which have committed but are not finished.
This paper illustrates the method on a directory-based cache coherence protocol developed for the Stanford FLASH multiprocessor. The coherence protocol consisting of more than a hundred different kinds of implementation steps has been reduced to a specification with six kinds of atomic transactions. Based on the reduced behavior, it is very easy to prove crucial properties of the protocol including data consistency of cached copies at the user level. This is the first correctness proof verified by a theorem-prover for a cache coherence protocol of this complexity. The aggregation method is also used to prove that the reduced protocol satisfies a desired memory consistency model.
Received October 1996, and in final form August 1997.

Fulltext Preview (Small, Large)
Image of the first page of the fulltext


Export this article
Export this article as RIS | Text
 
Referenced by
3 newer articles

  1. Tasiran, S. (2004) Linking simulation with formal verification at a higher level. IEEE Design and Test of Computers 21(6)
    [CrossRef]
  2. Seungjoon Park (2000) Automatic checking of aggregation abstractions through state enumeration. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 19(10)
    [CrossRef]
  3. Subramaniam, Mahadevan (2007) A methodology for early validation of cache coherence protocols based on relational databases. Concurrency and Computation Practice and Experience 19(3)
    [CrossRef]
Remote Address: 38.107.191.106 • Server: mpweb17
HTTP User Agent: CCBot/1.0 (+http://www.commoncrawl.org/bot.html)