09.08.2013 Views

Design and Verification of Adaptive Cache Coherence Protocols ...

Design and Verification of Adaptive Cache Coherence Protocols ...

Design and Verification of Adaptive Cache Coherence Protocols ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

for computer architecture is the development <strong>of</strong> a set <strong>of</strong> integrated design tools for modeling,<br />

speci cation, veri cation, simulation <strong>and</strong> synthesis <strong>of</strong> computer systems.<br />

8.1 Future Work<br />

CRF Microprocessors We have used CRF as the speci cation for cache coherence proto-<br />

cols. The CRF model can be implemented on most modern microprocessors via appropriate<br />

translation schemes. However, it remains an open question how CRF instructions can be e ec-<br />

tively incorporated into modern microprocessors. For example, what is the proper granularity<br />

for commit, reconcile <strong>and</strong> fence instructions? What optimizations can be performed by the<br />

compiler to eliminate unnecessary synchronizations? Since ordinary load <strong>and</strong> store instructions<br />

are decomposed into ner-grain instructions, the instruction b<strong>and</strong>width needed to support a<br />

certain level <strong>of</strong> performance is likely to be high. This can have pr<strong>of</strong>ound impact on micro-<br />

architectures such as instruction dispatch, cache state access <strong>and</strong> cache snoopy mechanism.<br />

Another interesting question is the implementation <strong>of</strong> CRF instructions on architectures with<br />

malleable caches such as column <strong>and</strong> curious caching [29].<br />

Optimizations <strong>of</strong> <strong>Cache</strong>t The <strong>Cache</strong>t protocol can be extended in many aspects to incor-<br />

porate more adaptivity. For example, in <strong>Cache</strong>t, an instruction is always stalled when the<br />

cache cell is in a transient state. This constraint can be relaxed under certain circumstances:<br />

a Loadl instruction can complete if the cache state is WbPending, <strong>and</strong> a Commit instruction<br />

can complete if the cache state is <strong>Cache</strong>Pending.<br />

The <strong>Cache</strong>t protocol uses a general cache request that draws no distinction between di erent<br />

micro-protocols. Although a cache can indicate what copy it prefers as heuristic information,<br />

the memory decides what copy to supply to the cache. We can extend the protocol so that<br />

in addition to the general cache request, a cache can also send a speci c cache request for a<br />

speci c type <strong>of</strong> cache copy. This can be useful when caches have more knowledge than the<br />

memory about the access patterns <strong>of</strong> the program. Another advantage <strong>of</strong> having distinct cache<br />

requests is that a cache can send a request for a WP or Migratory copy while the address is<br />

cached in some Base state. In this case, the cache request behaves as an upgrade request from<br />

Base to WP or Migratory.<br />

It is worth noting that <strong>Cache</strong>t does not allow acache to request an upgrade operation from<br />

WP to Migratory instead the cache must rst downgrade the cell from WP to Base <strong>and</strong> then<br />

send a cache request to the memory (although the downgrade message can be piggybacked with<br />

the cache request). We can introduce an upgrade request message so that a cache can upgrade<br />

a WP cell to a Migratory cell without rst performing the downgrade operation (so that the<br />

memory does not need to send the data copy tothe cache).<br />

In <strong>Cache</strong>t, a cache can only receive a data copy from the memory, even though the most up-<br />

to-date data resides in another cache at the time. Therefore, a Migratory copy must be written<br />

back to the memory rst before the data can be supplied to another cache. The forwarding<br />

164

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!