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.

INST Loadl(a) [] Storel(a,v)<br />

[] Commit(a) [] Reconcile(a)<br />

[] Fencerr(a1,a2) [] Fencerw(a1,a2)<br />

[] Fencewr(a1,a2) [] Fenceww(a1,a2)<br />

Figure 3.1: CRF Instructions<br />

proc proc proc<br />

pmb mpb pmb mpb pmb mpb<br />

sache sache sache<br />

memory<br />

SYS Sys(MEM, SITEs) System<br />

SITEs SITE [] SITE j SITEs Set <strong>of</strong> Sites<br />

SITE Site(SACHE, PMB, MPB, PROC) Site<br />

SACHE [] Cell(a,v,CSTATE) j SACHE Semantic <strong>Cache</strong><br />

CSTATE Clean [] Dirty <strong>Cache</strong> State<br />

PMB [] ht,INSTiPMB Processor-to-Memory Bu er<br />

MPB [] ht,REPLYijMPB Memory-to-Processor Bu er<br />

REPLY v [] Ack Reply<br />

Figure 3.2: System Con guration <strong>of</strong> CRF<br />

produced by one processor can be observed by another processor whenever necessary. CRF<br />

allows memory accesses to be reordered as long as data dependence constraints are preserved.<br />

The de nition <strong>of</strong> CRF includes two sets <strong>of</strong> rules. The rst set <strong>of</strong> rules speci es the execution<br />

<strong>of</strong> Loadl, Storel, Commit <strong>and</strong> Reconcile instructions. It also includes rules that govern the<br />

data propagation between semantic caches <strong>and</strong> memory. The second set <strong>of</strong> rules deals with<br />

instruction reordering <strong>and</strong> memory fences. We also refer to the rst set <strong>of</strong> rules as the Commit-<br />

Reconcile (CR) model, because these rules by themselves de ne a memory model which isthe<br />

same as CRF except that instructions are executed strictly in-order.<br />

3.1.1 The CR Model<br />

There are two states for sache cells, Clean <strong>and</strong> Dirty. The Clean state indicates that the data<br />

has not been modi ed since it was cached or last written back. The Dirty state indicates that<br />

the data has been modi ed <strong>and</strong> has not been written back to the memory since then. Note in<br />

CRF, di erent saches can have a cell with the same address but di erent values.<br />

50

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

Saved successfully!

Ooh no, something went wrong!