Design and Verification of Adaptive Cache Coherence Protocols ...
Design and Verification of Adaptive Cache Coherence Protocols ...
Design and Verification of Adaptive Cache Coherence Protocols ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
proc proc proc<br />
pmb mpb<br />
pmb mpb<br />
pmb mpb<br />
cache cache cache<br />
out in out in out in<br />
network<br />
in<br />
out<br />
memory<br />
SYS Sys(MSITE, SITEs) System<br />
MSITE Msite(MEM, IN, OUT) Memory Site<br />
MEM [] Cell(a,v) j MEM Memory<br />
SITEs SITE [] SITE j SITEs Set <strong>of</strong> <strong>Cache</strong> Sites<br />
SITE Site(id , CACHE, IN, OUT, PMB, MPB, PROC) <strong>Cache</strong> Site<br />
CACHE [] Cell(a,v,CSTATE) j CACHE <strong>Cache</strong><br />
IN [] MSG IN Incoming Queue<br />
OUT [] MSG OUT Outgoing Queue<br />
MSG Msg(src,dest,CMD,a,v) Message<br />
CSTATE Clean [] Dirty [] <strong>Cache</strong>Pending [] WbPending <strong>Cache</strong> State<br />
CMD <strong>Cache</strong>Req [] <strong>Cache</strong> [] Wb [] WbAck Comm<strong>and</strong><br />
Figure 4.2: System Con guration <strong>of</strong> Base<br />
Message passing can happen betweenacache <strong>and</strong> the memory. A message passing rule de-<br />
livers a message from the source's outgoing queue to the destination's incoming queue. Message<br />
passing can be non-FIFO orFIFO. Non-FIFO message passing allows messages to be delivered<br />
in arbitrary order, while FIFO message passing ensures messages between the same source <strong>and</strong><br />
destination to be received in the order in which they are issued.<br />
Message-<strong>Cache</strong>-to-Mem Rule<br />
Sys(Msite(mem, min, mout), Site(id , cache, cin, msg cout, pmb, mpb, proc) j sites)<br />
if Dest(msg)=H<br />
! Sys(Msite(mem, min msg, mout), Site(id , cache, cin, cout, pmb, mpb, proc) j sites)<br />
Message-Mem-to-<strong>Cache</strong> Rule<br />
Sys(Msite(mem, min, msg mout), Site(id , cache, cin, cout, pmb, mpb, proc) j sites)<br />
if Dest(msg)=id<br />
! Sys(Msite(mem, min, mout), Site(id , cache, cin msg, cout, pmb, mpb, proc) j sites)<br />
Non-FIFO vs. FIFO Message Passing We use outgoing queues to model non-FIFO <strong>and</strong><br />
FIFO networks. Non-FIFO message passing provides no guarantee on the order in which mes-<br />
sages are delivered. This can be e ectively characterized by allowing messages to be reordered<br />
68