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.

Migratory Imperative Rule CRF Rules<br />

IP1 (Loadl-on-Clean) CRF-<strong>Cache</strong> + CRF-Loadl + CRF-Purge<br />

IP2 (Loadl-on-Dirty) CRF-<strong>Cache</strong> + CRF-Loadl + CRF-Purge<br />

IP3 (Storel-on-Clean) CRF-<strong>Cache</strong> + CRF-Storel + CRF-Writeback + CRF-Purge<br />

IP4 (Storel-on-Dirty) CRF-<strong>Cache</strong> + CRF-Storel + CRF-Writeback + CRF-Purge<br />

IP5 (Commit-on-Clean) CRF-Commit<br />

IP6 (Commit-on-Dirty) CRF-Commit<br />

IP7 (Commit-on-Invalid) CRF-Commit<br />

IP8 (Reconcile-on-Clean) CRF-Reconcile<br />

IP9 (Reconcile-on-Dirty) CRF-Reconcile<br />

IP10 (Reconcile-on-Invalid) CRF-Reconcile<br />

IC1 (C-Send-Purge)<br />

IC2 (C-Send-Flush)<br />

IC3 (C-Receive-<strong>Cache</strong>)<br />

IM1 (M-Send-<strong>Cache</strong>)<br />

IM2 (M-Receive-Purge)<br />

IM3 (M-Receive-Flush)<br />

Message-Mem-to-<strong>Cache</strong><br />

Message-<strong>Cache</strong>-to-Mem<br />

6.4.4 Soundness <strong>of</strong> Migratory<br />

Figure 6.6: Simulation <strong>of</strong> Migratory in CRF<br />

The Migratory protocol de ned in Figure 6.4 contains integrated rules that are derived from<br />

the imperative <strong>and</strong> directive rules <strong>of</strong> Migratory. The imperative rules are given in Section 6.2.<br />

There are four directive rules that can be used to generate or discard directive messages.<br />

C-Send-<strong>Cache</strong>Req Rule<br />

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

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

C-Receive-FlushReq Rule<br />

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

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

M-Send-FlushReq Rule<br />

Msite(mem, in, out)<br />

! Msite(mem, in, out Msg(H,id ,FlushReq,a))<br />

M-Receive-<strong>Cache</strong>Req Rule<br />

Msite(mem, Msg(id ,H,<strong>Cache</strong>Req,a) in, out)<br />

! Msite(mem, in, out)<br />

Figure 6.7 gives the imperative <strong>and</strong> directive rules used in the derivation for each Migratory<br />

rule. In the derivation, <strong>Cache</strong>Pending <strong>and</strong> T[id ] used in the integrated rules are mapped<br />

to Invalid <strong>and</strong> C[id ] <strong>of</strong> the imperative rules, respectively. Therefore, Migratory is a sound<br />

implementation <strong>of</strong> the CRF model.<br />

125

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

Saved successfully!

Ooh no, something went wrong!