Title :
Runtime validation of memory ordering using constraint graph checking
Author :
Chen, Kaiyu ; Malik, Sharad ; Patra, Priyadarsan
Author_Institution :
Dept. of Electr. Eng., Princeton Univ., Princeton, NJ
Abstract :
An important correctness issue for emerging multi/many-core shared memory systems is to ensure that the inter-processor communication through shared memory conforms to the memory ordering rules, as specified by the architecturepsilas memory consistency model. This presents a significant validation challenge. Growing system complexity makes it increasingly hard to identify all deep-state logic bugs in pre-silicon verification. Further, aggressive technology scaling makes hardware more vulnerable to dynamic errors that can only be detected at runtime. In this paper, we propose an approach for runtime validation of memory ordering. This allows us to survive bugs that escape pre-silicon verification, as well as deal with emerging dynamic errors. Our solution consists of two parts: 1) at the microarchitecture level, we add efficient hardware support to capture the observed ordering among shared-memory operations; 2) we perform online verification of the observed memory ordering by checking for cycles in the constraint graph. We combine these to achieve end-to-end correctness validation of the system execution with respect to the memory ordering specification. There are several challenges that need to be addressed to make this approach practical. We describe these, as well as optimization techniques for reducing the hardware overhead. Estimates obtained from preliminary chip multiprocessor simulation experiments show that the proposed techniques are very effective in achieving acceptable hardware overhead and minimal performance impact.
Keywords :
directed graphs; formal specification; program debugging; program verification; shared memory systems; storage management; system monitoring; constraint graph checking; deep-state logic bug; end-to-end correctness validation; inter-processor communication; memory ordering specification; microarchitecture level; multicore shared memory system; optimization technique; pre-silicon verification; runtime memory ordering validation; Computer bugs; Formal verification; Hardware; Logic; Memory architecture; Memory management; Microarchitecture; Protection; Runtime; Silicon;
Conference_Titel :
High Performance Computer Architecture, 2008. HPCA 2008. IEEE 14th International Symposium on
Conference_Location :
Salt Lake City, UT
Print_ISBN :
978-1-4244-2070-4
DOI :
10.1109/HPCA.2008.4658657