Modular Deductive Verification of Multiprocessor Hardware Designs
Author(s)
Vijayaraghavan, Muralidaran; Chlipala, Adam; Arvind, Arvind; Nirav, Dave
DownloadAccepted version (375.9Kb)
Terms of use
Metadata
Show full item recordAbstract
We present a new framework for modular verification of hardware designs in the style of the Bluespec language. That is, we formalize the idea of components in a hardware design, with well-defined input and output channels; and we show how to specify and verify components individually, with machine-checked proofs in the Coq proof assistant. As a demonstration, we verify a fairly realistic implementation of a multicore shared-memory system with two types of components: memory system and processor. Both components include nontrivial optimizations, with the memory system employing an arbitrary hierarchy of cache nodes that communicate with each other concurrently, and with the processor doing speculative execution of many concurrent read operations. Nonetheless, we prove that the combined system implements sequential consistency. To our knowledge, our memory-system proof is the first machine verification of a cache-coherence protocol parameterized over an arbitrary cache hierarchy, and our full-system proof is the first machine verification of sequential consistency for a multicore hardware design that includes caches and speculative processors. Keywords: Hardware Design; Label Transition System; Speculative Load; Program Counter; Coherence State
Date issued
2015-07Department
Massachusetts Institute of Technology. Computer Science and Artificial Intelligence LaboratoryJournal
CAV 2015: Computer Aided Verification
Publisher
Springer International Publishing
Citation
Vijayaraghavan, Muralidaran et al. "Modular Deductive Verification of Multiprocessor Hardware Designs." CAV 2015: Computer Aided Verification (July 2015): 109-127 © 2015 Springer International Publishing Switzerland
Version: Author's final manuscript
ISBN
9783319216676
9783319216683
ISSN
0302-9743
1611-3349