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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Imperative Processor Rules<br />

Instruction Cstate Action Next Cstate<br />

Loadl(a) Cell(a,v,Clean) retire Cell(a,v,Clean) IP1<br />

Cell(a,v,Dirty) retire Cell(a,v,Dirty) IP2<br />

Storel(a,v) Cell(a,-,Clean) retire Cell(a,v,Dirty) IP3<br />

Cell(a,-,Dirty) retire Cell(a,v,Dirty) IP4<br />

Commit(a) Cell(a,v,Clean) retire Cell(a,v,Clean) IP5<br />

a =2 cache retire a =2 cache IP6<br />

Reconcile(a) Cell(a,v,Dirty) retire Cell(a,v,Dirty) IP7<br />

Cell(a,v,Clean) retire Cell(a,v,Clean) IP8<br />

a =2 cache retire a =2 cache IP9<br />

Imperative C-engine Rules<br />

Msg from H Cstate Action Next Cstate<br />

Cell(a,-,Clean) hPurge,ai!H a =2 cache IC1<br />

Cell(a,v,Dirty) hWb,a,vi!H Cell(a,v,WbPending) IC2<br />

hWbAck,ai Cell(a,v,WbPending) Cell(a,v,Clean) IC3<br />

hFlushAck,ai Cell(a,-,WbPending) a =2 cache IC4<br />

h<strong>Cache</strong>,a,vi a =2 cache Cell(a,v,Clean) IC5<br />

Imperative M-engine Rules<br />

Msg from id Mstate Action Next Mstate<br />

Cell(a,v,T[dir, ]) (id =2 dir) h<strong>Cache</strong>,a,vi !id Cell(a,v,T[id jdir, ]) IM1<br />

hPurge,ai Cell(a,v,T[id jdir,sm]) Cell(a,v,T[dir,sm]) IM2<br />

hWb,a,vi Cell(a,v1,T[id jdir,sm]) Cell(a,v1,T[dir,smj(id ,v)]) IM3<br />

Cell(a,-,T[ ,(id ,v)jsm]) hFlushAck,ai!id Cell(a,v,T[ ,sm]) IM4<br />

Cell(a,-,T[ ,(id ,v)]) hWbAck,ai !id Cell(a,v,T[id , ]) IM5<br />

Figure 5.4: Imperative Rules <strong>of</strong> WP<br />

M-Send-WbAck Rule<br />

Msite(Cell(a,-,T[ ,(id ,v)]) j mem, in, out)<br />

! Msite(Cell(a,v,T[id , ]) j mem, in, out Msg(H,id ,WbAck,a))<br />

Note that when a writeback message is suspended, the imperative rules rely on an oracle<br />

to inform the caches to purge or write back their copies so that the suspended message can be<br />

eventually resumed. The Imperative-&-Directive design methodology allows us to separate the<br />

soundness <strong>and</strong> liveness concerns.<br />

Figure 5.4 summarizes the imperative rules <strong>of</strong> WP. When an instruction is retired, it is re-<br />

moved from the processor-to-memory bu er while an appropriate response is supplied to the<br />

corresponding memory-to-processor bu er. When a message is received,itisremoved from the<br />

incoming queue.<br />

5.3 The WP Protocol<br />

The imperative rules de ne all the coherence actions that can a ect the soundness <strong>of</strong> the system<br />

they intentionally do not address the liveness issue. For example, when the memory receives a<br />

writeback message, it suspends the message in the memory state. A suspended message can be<br />

resumed when the directory shows that the address is no longer cached in any cache. However,<br />

the imperative rules do not specify how to bring the system to such a state that a suspended<br />

90

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

Saved successfully!

Ooh no, something went wrong!