Skip to main content

TriCheck: Memory model verification at the trisection of software, hardware, and ISA

Author(s): Trippel, C; Manerkar, YA; Lustig, D; Pellauer, M; Martonosi, Margaret R.

Download
To refer to this page use: http://arks.princeton.edu/ark:/88435/pr1037r
Full metadata record
DC FieldValueLanguage
dc.contributor.authorTrippel, C-
dc.contributor.authorManerkar, YA-
dc.contributor.authorLustig, D-
dc.contributor.authorPellauer, M-
dc.contributor.authorMartonosi, Margaret R.-
dc.date.accessioned2018-07-20T15:08:41Z-
dc.date.available2018-07-20T15:08:41Z-
dc.date.issued2017-04-04en_US
dc.identifier.citationTrippel, C, Manerkar, YA, Lustig, D, Pellauer, M, Martonosi, M. (2017). TriCheck: Memory model verification at the trisection of software, hardware, and ISA. Part F127193 (119 - 133. doi:10.1145/3037697.3037719en_US
dc.identifier.urihttp://arks.princeton.edu/ark:/88435/pr1037r-
dc.description.abstractMemory 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.en_US
dc.format.extent119 - 133en_US
dc.language.isoen_USen_US
dc.relation.ispartofInternational Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOSen_US
dc.rightsAuthor's manuscripten_US
dc.titleTriCheck: Memory model verification at the trisection of software, hardware, and ISAen_US
dc.typeConference Articleen_US
dc.identifier.doidoi:10.1145/3037697.3037719-
dc.date.eissued2017en_US
pu.type.symplectichttp://www.symplectic.co.uk/publications/atom-terms/1.0/conference-proceedingen_US

Files in This Item:
File Description SizeFormat 
TriCheck Memory model verification at the trisection of software hardware and ISA.pdf862.18 kBAdobe PDFView/Download


Items in OAR@Princeton are protected by copyright, with all rights reserved, unless otherwise indicated.