9. Conclusions
This paper presents a framework that can dynamically verify a wide range of consistency models and
comprehensively detect memory system errors. Our verification framework is modular, because it checks three
independent invariants that together are sufficient to
guarantee memory consistency. The modular design
makes it possible to replace any of our checking mechanisms with a different scheme to adapt to a specific system’s design. For example, the coherence checker
adapted from DVSC [16] can be replaced by the design
proposed by Cantin et al. [6]. Although we used conventional multiprocessor systems as example implementations, the framework is in no way limited to these types
of architectures. The simplicity of the proposed mechanisms suggests that they can be implemented with small
modifications to existing multithreaded systems.
Although simulation of a DVMC implementation shows
some decrease in performance, we expect the negative
impact to be outweighed by the benefit of an end-to-end
scheme for detecting memory system errors.