A copy of this work was available on the public web and has been preserved in the Wayback Machine. The capture dates from 2016; you can also visit <a rel="external noopener" href="http://mrmgroup.cs.princeton.edu/papers/dlustig_MICRO14header.pdf">the original URL</a>. The file type is <code>application/pdf</code>.
<a target="_blank" rel="noopener" href="https://fatcat.wiki/container/sbn7zssnbfcjpjzmgy24brukwi" style="color: black;">2014 47th Annual IEEE/ACM International Symposium on Microarchitecture</a>
We present PipeCheck, a methodology and automated tool for verifying that a particular microarchitecture correctly implements the consistency model required by its architectural specification. PipeCheck adapts the notion of a "happens before" graph from architecture-level analysis techniques to the microarchitecture space. Each node in the "microarchitecturally happens before" (µhb) graph represents not only a memory instruction, but also a particular location (e.g., pipeline stage) within the<span class="external-identifiers"> <a target="_blank" rel="external noopener noreferrer" href="https://doi.org/10.1109/micro.2014.38">doi:10.1109/micro.2014.38</a> <a target="_blank" rel="external noopener" href="https://dblp.org/rec/conf/micro/LustigPM14.html">dblp:conf/micro/LustigPM14</a> <a target="_blank" rel="external noopener" href="https://fatcat.wiki/release/a5gu36zgsfhipimbsommyuwbn4">fatcat:a5gu36zgsfhipimbsommyuwbn4</a> </span>
more »... icroarchitecture. Architectural specifications such as "preserved program order" are then treated as propositions to be verified, rather than simply as assumptions. PipeCheck allows an architect to easily and rigorously test whether a microarchitecture is stronger than, equal in strength to, or weaker than its architecturally-specified consistency model. We also specify and analyze the behavior of common microarchitectural optimizations such as speculative load reordering which technically violate formal architecture-level definitions. We evaluate PipeCheck using a library of established litmus tests on a set of open-source pipelines. Using PipeCheck, we were able to validate the largest pipeline, the OpenSPARC T2, in just minutes. We also identified a bug in the O3 pipeline of the gem5 simulator. 47th Annual IEEE/ACM International Symposium on Microarchitecture, 2014
<a target="_blank" rel="noopener" href="https://web.archive.org/web/20160506021257/http://mrmgroup.cs.princeton.edu/papers/dlustig_MICRO14header.pdf" title="fulltext PDF download" data-goatcounter-click="serp-fulltext" data-goatcounter-title="serp-fulltext"> <button class="ui simple right pointing dropdown compact black labeled icon button serp-button"> <i class="icon ia-icon"></i> Web Archive [PDF] <div class="menu fulltext-thumbnail"> <img src="https://blobs.fatcat.wiki/thumbnail/pdf/94/9e/949e7d81a0b4fc04fbb0cdd320137664a726989f.180px.jpg" alt="fulltext thumbnail" loading="lazy"> </div> </button> </a> <a target="_blank" rel="external noopener noreferrer" href="https://doi.org/10.1109/micro.2014.38"> <button class="ui left aligned compact blue labeled icon button serp-button"> <i class="external alternate icon"></i> ieee.com </button> </a>