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 operat...
Abstract As the multi-core processor is widely used and advanced high-trusted software is required, ...
Computer architects have often used trace-driven simulations to evaluate the performance of new arch...
A cache coherence protocol is a vital component of a multiprocessor to maintain the data consistency...
There are few published examples of the proof of correctness of a cache-coherence protocol expressed...
It has become fairly standard in the programming-languages research world to verify functional progr...
For power and performance reasons, multicores have become the dominant microprocessor architecture. ...
In the age of submicron technology a single chip may contain tens or even hundreds of millions trans...
In the ever-developing world of technology, more and more situations arise where the life of many pe...
Modern out-of-order processor architectures focus significantly on the high performance execution of...
Scalable shared-memory multiprocessors provide a flexible programming model with good performance sc...
This paper describes our experience applyingformal verification to the cache coherence protocol of t...
Perhaps the most difficult aspect of designing a shared memory multiprocessor is the hardware protoc...
Abstract. In shared-memory multiprocessors sequential consistency o ers a natural tradeo between the...
Software is large, complex, and error-prone. According to the US National Institute of Standards and...
This work reports an effective design of cache system for Chip Multiprocessors (CMPs). It introduces...
Abstract As the multi-core processor is widely used and advanced high-trusted software is required, ...
Computer architects have often used trace-driven simulations to evaluate the performance of new arch...
A cache coherence protocol is a vital component of a multiprocessor to maintain the data consistency...
There are few published examples of the proof of correctness of a cache-coherence protocol expressed...
It has become fairly standard in the programming-languages research world to verify functional progr...
For power and performance reasons, multicores have become the dominant microprocessor architecture. ...
In the age of submicron technology a single chip may contain tens or even hundreds of millions trans...
In the ever-developing world of technology, more and more situations arise where the life of many pe...
Modern out-of-order processor architectures focus significantly on the high performance execution of...
Scalable shared-memory multiprocessors provide a flexible programming model with good performance sc...
This paper describes our experience applyingformal verification to the cache coherence protocol of t...
Perhaps the most difficult aspect of designing a shared memory multiprocessor is the hardware protoc...
Abstract. In shared-memory multiprocessors sequential consistency o ers a natural tradeo between the...
Software is large, complex, and error-prone. According to the US National Institute of Standards and...
This work reports an effective design of cache system for Chip Multiprocessors (CMPs). It introduces...
Abstract As the multi-core processor is widely used and advanced high-trusted software is required, ...
Computer architects have often used trace-driven simulations to evaluate the performance of new arch...
A cache coherence protocol is a vital component of a multiprocessor to maintain the data consistency...