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.

Lemma 38 D is strongly terminating <strong>and</strong> con uent, that is, rewriting a Migratory term with<br />

respect to the draining rules always terminates <strong>and</strong> reaches the same normal form, regardless<br />

<strong>of</strong> the order in which the rules are applied.<br />

Pro<strong>of</strong> The termination is obvious because throughout the draining process, only one new<br />

message (Purge or Flush) can be generated for each cache cell, <strong>and</strong> each message is consumed<br />

when it is received. The con uence follows from the fact that the draining rules do not interfere<br />

with each other. 2<br />

Lemma39isobvious since the draining rules cannot modify the processor-to-memory bu ers,<br />

memory-to-processor bu ers <strong>and</strong> processors. Lemma 40 ensures that all the caches <strong>and</strong> message<br />

queues are empty in a drained term. The pro<strong>of</strong> follows from Lemma 36, which guarantees that<br />

all the messages can be consumed when they are received.<br />

Lemma 39 Given a Migratory term s,<br />

(1) Pmb id(s) = Pmb id(dr(s))<br />

(2) Mpb id(s) = Mpb id(dr(s))<br />

(3) Proc id(s) = Proc id(dr(s))<br />

Lemma 40 Given a Migratory term s,<br />

(1) <strong>Cache</strong> id(dr(s)) =<br />

(2) Min(dr(s)) =<br />

(3) Mout(dr(s)) =<br />

(4) Cin id(dr(s)) =<br />

(5) Cout id(dr(s)) =<br />

Lemma 41 ensures that, given a Migratory term, if an address is cached in some cache, then<br />

the memory cell <strong>of</strong> the address in the corresponding drained term contains the same value. The<br />

pro<strong>of</strong> simply follows from Lemma 36 <strong>and</strong> the con uence property <strong>of</strong> the draining rules.<br />

Lemma 41 Given a Migratory term s,<br />

(1) Cell(a,v,Clean) 2 <strong>Cache</strong> id(s) ) Cell(a,v,C[ ]) 2 Mem(dr(s))<br />

(2) Cell(a,v,Dirty) 2 <strong>Cache</strong> id(s) ) Cell(a,v,C[ ]) 2 Mem(dr(s))<br />

De nition 42 (Mapping from Migratory to CRF) Given a Migratory term s, the corre-<br />

sponding CRF term f(s) is the drained term dr(s) with all message queues <strong>and</strong> cache identi ers<br />

removed.<br />

6.4.3 Simulation <strong>of</strong> Migratory in CRF<br />

Theorem 43 (CRF Simulates Migratory) Given Migratory terms s1 <strong>and</strong> s2,<br />

s1 ! s2 in Migratory ) f(s1) ! f(s2) in CRF<br />

123

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

Saved successfully!

Ooh no, something went wrong!