Lecture Notes in Computer Science, 2002, Volume 2517/2002, 292-309, DOI: 10.1007/3-540-36126-X_18

A Specification and Verification Framework for Developing Weak Shared Memory Consistency Protocols

Prosenjit Chatterjee and Ganesh Gopalakrishnan

View Related Documents

Abstract

A specification and verification methodology for Distributed Shared Memory consistency protocols implementing weak shared memory consistency models is proposed. Our approach uniformly describes a wide range of weak memory models in terms of a single concept—the visibility order of loads, stores, and synchronization operations, as perceived by all the processors. A given implementation is correct with respect to a weak memory model if it produces executions satisfying the visibility order for that memory model. Given an implementation, the designer annotates it with events from the visibility order, and runs reachability analysis to verify it against a specification that is also similarly annotated. A specification is obtained in two stages: first, the designer reverse engineers an intermediate abstraction from the implementation by replacing the coherence network with a logically equivalent concurrent data structure. The replacement is selected in a standard way, depending almost exclusively on the memory model. Verification of the intermediate abstraction against a visibility order specification can be accomplished using theorem-proving. The methodology was applied to four snoopy-bus protocols implementing aspects of the Alpha and Itanium memory models, with encouraging results.
This work was supported by NSF Grants CCR-9987516 and CCR-0081406

Fulltext Preview

Image of the first page of the fulltext document