Skip navigation
Please use this identifier to cite or link to this item: http://arks.princeton.edu/ark:/88435/dsp01nz806207p
Full metadata record
DC FieldValueLanguage
dc.contributor.advisorMartonosi, Margaret Ren_US
dc.contributor.authorLustig, Daniel Josephen_US
dc.contributor.otherElectrical Engineering Departmenten_US
dc.date.accessioned2015-12-08T15:22:58Z-
dc.date.available2015-12-08T15:22:58Z-
dc.date.issued2015en_US
dc.identifier.urihttp://arks.princeton.edu/ark:/88435/dsp01nz806207p-
dc.description.abstractIn modern hardware, inter-core communication takes place through shared virtual memory and according to the memory consistency model---the set of rules and guarantees about the ordering and visibility of memory accesses. Unfortunately, consistency models frequently suffer from a lack of formalism, precision, and/or completeness, resulting in situations in which the legal behavior(s) for a given program may be left underspecified and/or undefined. First, this thesis proposes Memory Ordering Specification Tables (MOSTs), a model-independent method for specifying memory ordering requirements, and it also proposes the ArMOR framework for systematically comparing and manipulating MOSTs. The architecture-independent approach used by MOSTs and ArMOR allows for direct comparison of preserved program order, fences, and other ordering enforcement mechanisms from different models. This thesis demonstrates the power of ArMOR by using it to produce optimized, self-contained translation engines called shims that automatically and dynamically translate code compiled under the assumptions of one memory model into code which can be executed by a (micro)architecture implementing a different model. Second, this thesis proposes PipeCheck, a framework for verifying the correctness of particular implementations of a given memory model. PipeCheck's domain-specific language allows it to explicitly specify and verify the behavior of common microarchitectural optimizations such as speculative load reordering, even though such optimizations are intentionally abstracted away by higher-level models. PipeCheck's fast constraint solver software quantifies in just minutes whether an implementation is stronger than, weaker than, or equal in strength to its memory model requirements. The PipeCheck approach reduces the problem of verifying memory model implementation correctness into the more tractable task of verifying a set of more localized, self-contained axioms about behaviors of the given implementation. In summary, this thesis presents architects with new techniques for reducing the complexity of defining memory consistency models and building systems that correctly implement them. As hardware and software complexity continues to grow, the techniques developed in this thesis will help designers avoid the memory model bugs that continue to appear in hardware even today, and they will present programmers, compiler writers, and runtime systems with usable, precise descriptions of the memory ordering behaviors of any computing system.en_US
dc.language.isoenen_US
dc.publisherPrinceton, NJ : Princeton Universityen_US
dc.relation.isformatofThe Mudd Manuscript Library retains one bound copy of each dissertation. Search for these copies in the library's main catalog: http://catalog.princeton.edu/en_US
dc.subjectComputer Architectureen_US
dc.subjectHeterogeneous Systemsen_US
dc.subjectMemory Consistency Modelsen_US
dc.subjectParallel Computingen_US
dc.subject.classificationComputer engineeringen_US
dc.subject.classificationComputer scienceen_US
dc.titleSpecifying, Verifying, and Translating Between Memory Consistency Modelsen_US
dc.typeAcademic dissertations (Ph.D.)en_US
pu.projectgrantnumber690-2143en_US
Appears in Collections:Electrical Engineering

Files in This Item:
File Description SizeFormat 
Lustig_princeton_0181D_11594.pdf2.34 MBAdobe PDFView/Download


Items in Dataspace are protected by copyright, with all rights reserved, unless otherwise indicated.