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.

If Rule IP2 (Loadl-on-Dirty) applies, then<br />

Cell(a,v,Dirty) 2 <strong>Cache</strong> id(s1) ^ Cell(a,v,Dirty) 2 <strong>Cache</strong> id(s2)<br />

) Cell(a,v,Dirty) 2 <strong>Cache</strong> id(dr(s1)) ^ Cell(a,v,Dirty) 2 <strong>Cache</strong> id (dr(s2)) (Lemma 7 )<br />

) f(s1) ! f(s2) (CRF-Loadl )<br />

If Rule IP3 (Storel-on-Clean) applies, then<br />

Cell(a,-,Clean) 2 <strong>Cache</strong> id(s1) ^ Cell(a,v,Dirty) 2 <strong>Cache</strong> id(s2)<br />

) Cell(a,-,Clean) 2 <strong>Cache</strong> id(dr(s1)) ^ Cell(a,v,Dirty) 2 <strong>Cache</strong> id(dr(s2)) (Lemma 7 )<br />

) f(s1) ! f(s2) (CRF-Storel )<br />

If Rule IP4 (Storel-on-Dirty) applies, then<br />

Cell(a,-,Dirty) 2 <strong>Cache</strong> id(s1) ^ Cell(a,v,Dirty) 2 <strong>Cache</strong> id(s2)<br />

) Cell(a,-,Dirty) 2 <strong>Cache</strong> id(dr(s1)) ^ Cell(a,v,Dirty) 2 <strong>Cache</strong> id(dr(s2)) (Lemma 7 )<br />

) f(s1) ! f(s2) (CRF-Storel )<br />

If Rule IP5 (Commit-on-Clean) applies, then<br />

Cell(a,v,Clean) 2 <strong>Cache</strong> id(s1) ^ Cell(a,v,Clean) 2 <strong>Cache</strong> id(s2)<br />

) Cell(a,v,Clean) 2 <strong>Cache</strong> id(dr(s1)) ^ Cell(a,v,Clean) 2 <strong>Cache</strong> id(dr(s2)) (Lemma 7 )<br />

) f(s1) ! f(s2) (CRF-Commit )<br />

If Rule IP6 (Commit-on-Invalid) applies, then<br />

a =2 <strong>Cache</strong> id(s1) ^ a =2 <strong>Cache</strong> id(s2)<br />

) a =2 <strong>Cache</strong> id(dr(s1)) ^ a =2 <strong>Cache</strong> id(dr(s2)) (Lemma 7 )<br />

) f(s1) ! f(s2) (CRF-Commit )<br />

If Rule IP7 (Reconcile-on-Dirty) applies, then<br />

Cell(a,v,Dirty) 2 <strong>Cache</strong> id(s1) ^ Cell(a,v,Dirty) 2 <strong>Cache</strong> id(s2)<br />

) Cell(a,v,Dirty) 2 <strong>Cache</strong> id(dr(s1)) ^ Cell(a,v,Dirty) 2 <strong>Cache</strong> id(dr(s2)) (Lemma 7 )<br />

) f(s1) ! f(s2) (CRF-Reconcile )<br />

If Rule IP8 (Reconcile-on-Invalid) applies, then<br />

a =2 <strong>Cache</strong> id(s1) ^ a =2 <strong>Cache</strong> id(s2)<br />

) a =2 <strong>Cache</strong> id(dr(s1)) ^ a =2 <strong>Cache</strong> id(dr(s2)) (Lemma 7 )<br />

) f(s1) ! f(s2) (CRF-Reconcile )<br />

Imperative C-engine Rules<br />

If Rule IC1 (C-Purge) applies, then<br />

Cell(a,-,Clean) 2 <strong>Cache</strong> id(s1) ^ a =2 <strong>Cache</strong> id(s2)<br />

) Cell(a,-,Clean) 2 <strong>Cache</strong> id(dr(s1)) ^ a =2 <strong>Cache</strong> id(dr(s2)) (Lemma 7 )<br />

) f(s1) ! f(s2) (CRF-Purge )<br />

Imperative M-engine Rules<br />

80

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

Saved successfully!

Ooh no, something went wrong!