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.

Commit/Reconcile<br />

C-Receive-WbAck Rule<br />

Loadl/Commit/Reconcile Storel<br />

Loadl/Storel/Reconcile<br />

Invalid<br />

Send Purge<br />

Receive <strong>Cache</strong> Clean Receive WbAck<br />

Wb-<br />

Pending Send Wb Dirty<br />

Receive FlushAck<br />

Figure 5.3: <strong>Cache</strong> State Transitions <strong>of</strong> WP's Imperative Operations<br />

Site(id , Cell(a,v,WbPending) j cache, Msg(H,id ,WbAck,a) in, out, pmb, mpb, proc)<br />

! Site(id , Cell(a,v,Clean) j cache, in, out, pmb, mpb, proc)<br />

C-Receive-FlushAck Rule<br />

Site(id , Cell(a,-,WbPending) j cache, Msg(H,id ,FlushAck,a) in, out, pmb, mpb, proc)<br />

! Site(id , cache, in, out, pmb, mpb, proc)<br />

C-Receive-<strong>Cache</strong> Rule<br />

Site(id , cache, Msg(H,id ,<strong>Cache</strong>,a,v) in, out, pmb, mpb, proc)<br />

! Site(id , Cell(a,v,Clean) j cache, in, out, pmb, mpb, proc)<br />

M-engine Rules: The memory can send a data copy <strong>of</strong> an address to a cache in which the<br />

directory shows the address is not cached the directory is updated accordingly. When the<br />

memory receives a purge message, it simply deletes the cache identi er from the directory.<br />

When the memory receives a writeback message, it suspends the message <strong>and</strong> removes the<br />

corresponding cache identi er from the directory. A suspended writeback message can be re-<br />

sumed if the directory shows that the address is not cached in any cache. In this case, the<br />

memory updates its value <strong>and</strong> sends a ush acknowledgment back to the cache site. If the<br />

writeback message is the only suspended message, the memory can send a writeback acknowl-<br />

edgment instead <strong>of</strong> a ush acknowledgment toallowthecache to retain a clean copy.<br />

M-Send-<strong>Cache</strong> Rule<br />

Msite(Cell(a,v,T[dir, ]) j mem, in, out) if id =2 dir<br />

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

M-Receive-Purge Rule<br />

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

! Msite(Cell(a,v,T[dir,sm]) j mem, in, out)<br />

M-Receive-Wb Rule<br />

Msite(Cell(a,v1,T[id jdir,sm]) j mem, Msg(id ,H,Wb,a,v) in, out)<br />

! Msite(Cell(a,v1,T[dir,smj(id ,v)]) j mem, in, out)<br />

M-Send-FlushAck Rule<br />

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

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

89

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

Saved successfully!

Ooh no, something went wrong!