<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/oai-pmh.xsl"?>
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
  <responseDate>2026-09-20T12:23:41Z</responseDate>
  <request identifier="oai:www.ideals.illinois.edu:2142/18363" metadataPrefix="etdms" verb="GetRecord">https://www.ideals.illinois.edu/oai-pmh</request>
  <GetRecord>
    <record>
      <header>
        <identifier>oai:www.ideals.illinois.edu:2142/18363</identifier>
        <datestamp>2023-07-10</datestamp>
        <setSpec>col_2142_10761</setSpec>
        <setSpec>col_2142_5131</setSpec>
        <setSpec>com_2142_10755</setSpec>
        <setSpec>com_2142_234</setSpec>
        <setSpec>com_2142_5130</setSpec>
      </header>
      <metadata>
        <thesis xmlns="http://www.ndltd.org/standards/metadata/etdms/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dc="http://purl.org/dc/elements/1.1/" xsi:schemaLocation="http://www.ndltd.org/standards/metadata/etdms/1.1/ http://www.ndltd.org/standards/metadata/etdms/1.1/etdms11.xsd http://purl.org/dc/elements/1.1/ http://www.ndltd.org/standards/metadata/etdms/1.1/etdmsdc.xsd">
          <dc:contributor>Adve, Sarita V.</dc:contributor>
          <dc:creator>Komuravelli, Rakesh</dc:creator>
          <dc:date>2011-01-14T22:47:45Z</dc:date>
          <dc:date>2011-01-14T22:47:45Z</dc:date>
          <dc:date>2011-01-14T22:47:45Z</dc:date>
          <dc:description>With the advent of multicores, parallel programming has gained a lot of
importance. For parallel programming to be viable for the predicted hundreds of
cores per chip, shared memory programming languages and environments must
evolve to enforce disciplined practices like ``determinism-by-default
semantics'' and ban ``wild shared-memory behaviors'' like arbitrary data races
and potential non-determinism everywhere. This evolution can not only benefit
software development, but can also greatly reduce the complexity in hardware.
DeNovo is a hardware architecture designed from the ground up to exploit the
opportunities exposed by such disciplined software models to make the hardware
much simpler and efficient at the same time.
This thesis describes an effort to formally verify and evaluate the DeNovo
cache coherence protocol. By using a model checking tool, we uncovered three
bugs in the protocol implementation which had not been found either in the
testing phase or in the simulation runs. All of these bugs were caused by
errors in translating the high level description into the implementation.
Surprisingly, we also found six bugs in a state-of-the-art implementation of
the widely used MESI protocol. Most of these bugs were hard to analyze and took
several days to fix. We provide quantitative evidence that DeNovo is a much
simpler protocol by showing that the DeNovo protocol has about 15X fewer
reachable states when compared to MESI when using the Murphi model checking
tool for verification. This translates to about 20X difference in the runtime
of the tool. Finally, we show that this simplicity of the DeNovo protocol does
not compromise performance for the applications we evaluated.  On the contrary,
for some applications, DeNovo achieves up to 67\% reduction in memory stall
time and up to 70\% reduction in network traffic when compared to MESI.</dc:description>
          <dc:description>Item withdrawn by Mark Zulauf (zulauf@illinois.edu) on 2010-12-08T15:25:33Z
Item was in collections:
University of Illinois Theses &amp; Dissertations (ID: 1)
No. of bitstreams: 2
Komuravelli_Rakesh.pdf: 331335 bytes, checksum: fe62075a7e7b9ea3581b8735bd16761a (MD5)
Komuravelli_Rakesh.pdf: 327701 bytes, checksum: b1666afc43f7077ef8de9bde38bfb933 (MD5)</dc:description>
          <dc:description>Made available in DSpace on 2011-01-14T22:47:45Z (GMT). No. of bitstreams: 2
Komuravelli_Rakesh.pdf: 327736 bytes, checksum: 46a4a6b6bc12b30fa0866d882fd460a9 (MD5)
license.txt: 4068 bytes, checksum: 2e6e513e925a804c57795abef7074c1c (MD5)</dc:description>
          <dc:identifier>http://hdl.handle.net/2142/18363</dc:identifier>
          <dc:language>en</dc:language>
          <dc:rights>Copyright 2010 Rakesh Komuravelli</dc:rights>
          <dc:subject>Cache Coherence protocol</dc:subject>
          <dc:subject>software-hardware co-design</dc:subject>
          <dc:subject>multicores</dc:subject>
          <dc:subject>shared memory system</dc:subject>
          <dc:subject>compilers, hardware</dc:subject>
          <dc:title>Verification and Performance of the DeNovo cache coherence protocol</dc:title>
          <dc:date>2010-12</dc:date>
          <degree>
            <department>Computer Science</department>
            <departmentCode>1434</departmentCode>
            <discipline>Computer Science</discipline>
            <disciplineCode>0112</disciplineCode>
            <grantor>University of Illinois at Urbana-Champaign</grantor>
            <level>Thesis</level>
            <name>M.S.</name>
            <program>PHD:Computer Science -UIUC</program>
            <programCode>10KS0112PHD</programCode>
          </degree>
        </thesis>
      </metadata>
    </record>
  </GetRecord>
</OAI-PMH>
