TY - GEN
T1 - TriCheck
T2 - 22nd International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2017
AU - Trippel, Caroline
AU - Manerkar, Yatin A.
AU - Lustig, Daniel
AU - Pellauer, Michael
AU - Martonosi, Margaret Rose
N1 - Publisher Copyright:
© 2017 ACM.
PY - 2017/4/4
Y1 - 2017/4/4
N2 - Memory consistency models (MCMs) which govern intermodule interactions in a shared memory system, are a significant, yet often under-appreciated, aspect of system design. MCMs are defined at the various layers of the hardwaresoftware stack, requiring thoroughly verified specifications, compilers, and implementations at the interfaces between layers. Current verification techniques evaluate segments of the system stack in isolation, such as proving compiler mappings from a high-level language (HLL) to an ISA or proving validity of a microarchitectural implementation of an ISA. This paper makes a case for full-stack MCM verification and provides a toolflow, TriCheck, capable of verifying that the HLL, compiler, ISA, and implementation collectively uphold MCM requirements. The work showcases TriCheck's ability to evaluate a proposed ISA MCM in order to ensure that each layer and each mapping is correct and complete. Specifically, we apply TriCheck to the open source RISCV ISA [55], seeking to verify accurate, efficient, and legal compilations from C11. We uncover under-specifications and potential inefficiencies in the current RISC-V ISA documentation and identify possible solutions for each. As an example, we find that a RISC-V-compliant microarchitecture allows 144 outcomes forbidden by C11 to be observed out of 1,701 litmus tests examined. Overall, this paper demonstrates the necessity of full-stack verification for detecting MCM-related bugs in the hardware-software stack.
AB - Memory consistency models (MCMs) which govern intermodule interactions in a shared memory system, are a significant, yet often under-appreciated, aspect of system design. MCMs are defined at the various layers of the hardwaresoftware stack, requiring thoroughly verified specifications, compilers, and implementations at the interfaces between layers. Current verification techniques evaluate segments of the system stack in isolation, such as proving compiler mappings from a high-level language (HLL) to an ISA or proving validity of a microarchitectural implementation of an ISA. This paper makes a case for full-stack MCM verification and provides a toolflow, TriCheck, capable of verifying that the HLL, compiler, ISA, and implementation collectively uphold MCM requirements. The work showcases TriCheck's ability to evaluate a proposed ISA MCM in order to ensure that each layer and each mapping is correct and complete. Specifically, we apply TriCheck to the open source RISCV ISA [55], seeking to verify accurate, efficient, and legal compilations from C11. We uncover under-specifications and potential inefficiencies in the current RISC-V ISA documentation and identify possible solutions for each. As an example, we find that a RISC-V-compliant microarchitecture allows 144 outcomes forbidden by C11 to be observed out of 1,701 litmus tests examined. Overall, this paper demonstrates the necessity of full-stack verification for detecting MCM-related bugs in the hardware-software stack.
KW - C11
KW - Compilation
KW - Computer architecture
KW - Heterogeneous parallelism
KW - Memory consistency
KW - RISC-V
KW - Shared memory
KW - Verification
UR - http://www.scopus.com/inward/record.url?scp=85022007771&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85022007771&partnerID=8YFLogxK
U2 - 10.1145/3037697.3037719
DO - 10.1145/3037697.3037719
M3 - Conference contribution
AN - SCOPUS:85022007771
T3 - International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS
SP - 119
EP - 133
BT - ASPLOS 2017 - 22nd International Conference on Architectural Support for Programming Languages and Operating Systems
PB - Association for Computing Machinery
Y2 - 8 April 2017 through 12 April 2017
ER -