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.

DownReqmb: The memory requests a cache cell to downgrade from Migratory to Base.<br />

The message behaves as DownReqmw followed by aDownReqwb.<br />

In the remainder <strong>of</strong> this chapter, we rst design <strong>Cache</strong>t with only the basic messages. We<br />

then de ne the complete <strong>Cache</strong>t protocol by incorporating composite operations that use com-<br />

posite messages. The incorporation <strong>of</strong> composite operations can improve the performance <strong>of</strong><br />

the system but cannot compromise the soundness <strong>and</strong> liveness <strong>of</strong> the protocol. The notion <strong>of</strong><br />

composite messages <strong>and</strong> composite operations can remarkably simplify the design <strong>and</strong> veri ca-<br />

tion <strong>of</strong> sophisticated cache coherence protocols such as<strong>Cache</strong>t, since composite composite rules<br />

do not have to be considered throughout the veri cation. It su ces to verify the correctness in<br />

the presence <strong>of</strong> basic messages only.<br />

7.3 The Imperative Rules <strong>of</strong> the <strong>Cache</strong>t Protocol<br />

The imperative rules <strong>of</strong> <strong>Cache</strong>t contain three sets <strong>of</strong> rules, the processor rules, the cache engine<br />

rules <strong>and</strong> the memory engine rules.<br />

7.3.1 Imperative Processor Rules<br />

Figure 7.5 gives the imperative processor rules <strong>of</strong> <strong>Cache</strong>t. It includes the imperative proces-<br />

sor rules from the Base, WP <strong>and</strong> Migratory protocols. When an instruction is retired, it is<br />

removed from the processor-to-memory bu er while an appropriate reply is provided via the<br />

memory-to-processor bu er. The reply can be the requested data for a Loadl instruction, or<br />

the corresponding acknowledgment for a Storel, Commit <strong>and</strong> Reconcile instruction.<br />

A Loadl instruction can be completed if the address is cached in the Clean or Dirty state<br />

<strong>of</strong> any protocol.<br />

A Storel instruction can be completed if the address is cached in the Clean or Dirty state<br />

<strong>of</strong> any protocol. The cache state is set to Dirty while the cache value is updated.<br />

A Commit instruction can be completed if the addressed is uncached, or cached in the<br />

Clean state <strong>of</strong> any protocol or the Dirty state <strong>of</strong> the Migratory protocol.<br />

A Reconcile instruction can be completed if the address is uncached, or cached in the<br />

Dirty state <strong>of</strong> any protocol or the Clean state <strong>of</strong> the WP or Migratory protocol.<br />

7.3.2 Imperative <strong>Cache</strong> Engine Rules<br />

Figure 7.6 gives the imperative C-engine rules <strong>of</strong> <strong>Cache</strong>t. When a cache engine processes an<br />

incoming message, it immediately removes the message from the incoming queue.<br />

Acache can purge a clean Base cell (Rule IC1).<br />

A cache can write the dirty data<strong>of</strong> a Base cell back to the memory via a Wbb message<br />

<strong>and</strong> set the cache state to WbPending, indicating that a writeback operation is being<br />

140

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

Saved successfully!

Ooh no, something went wrong!