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.

M<strong>and</strong>atory Processor Rules<br />

Instruction Cstate Action Next Cstate<br />

Loadl(a) Cell(a,v,Cleanb) retire Cell(a,v,Cleanb) P1 SF<br />

Cell(a,v,Dirtyb) retire Cell(a,v,Dirtyb) P2 SF<br />

Cell(a,v,Cleanw) retire Cell(a,v,Cleanw) P3 SF<br />

Cell(a,v,Dirtyw) retire Cell(a,v,Dirtyw) P4 SF<br />

Cell(a,v,Cleanm) retire Cell(a,v,Cleanm) P5 SF<br />

Cell(a,v,Dirtym) retire Cell(a,v,Dirtym) P6 SF<br />

Cell(a,v,WbPending) stall Cell(a,v,WbPending) P7<br />

Cell(a,-,<strong>Cache</strong>Pending) stall Cell(a,-,<strong>Cache</strong>Pending) P8<br />

a =2 cache stall, h<strong>Cache</strong>Req,ai !H Cell(a,-,<strong>Cache</strong>Pending) P9 SF<br />

Storel(a,v) Cell(a,-,Cleanb) retire Cell(a,v,Dirtyb) P10 SF<br />

Cell(a,-,Dirtyb) retire Cell(a,v,Dirtyb) P11 SF<br />

Cell(a,-,Cleanw) retire Cell(a,v,Dirtyw) P12 SF<br />

Cell(a,-,Dirtyw) retire Cell(a,v,Dirtyw) P13 SF<br />

Cell(a,-,Cleanm) retire Cell(a,v,Dirtym) P14 SF<br />

Cell(a,-,Dirtym) retire Cell(a,v,Dirtym) P15 SF<br />

Cell(a,v1,WbPending) stall Cell(a,v1,WbPending) P16<br />

Cell(a,-,<strong>Cache</strong>Pending) stall Cell(a,-,<strong>Cache</strong>Pending) P17<br />

a =2 cache stall, h<strong>Cache</strong>Req,ai !H Cell(a,-,<strong>Cache</strong>Pending) P18 SF<br />

Commit(a) Cell(a,v,Cleanb) retire Cell(a,v,Cleanb) P19 SF<br />

Cell(a,v,Dirtyb) stall, hWbb,a,vi!H Cell(a,v,WbPending) P20 SF<br />

Cell(a,v,Cleanw) retire Cell(a,v,Cleanw) P21 SF<br />

Cell(a,v,Dirtyw) stall, hDownwb,ai!H Cell(a,v,WbPending) P22 SF<br />

hWbb,a,vi!H<br />

Cell(a,v,Cleanm) retire Cell(a,v,Cleanm) P23 SF<br />

Cell(a,v,Dirtym) retire Cell(a,v,Dirtym) P24 SF<br />

Cell(a,v,WbPending) stall Cell(a,v,WbPending) P25<br />

Cell(a,-,<strong>Cache</strong>Pending) stall Cell(a,-,<strong>Cache</strong>Pending) P26<br />

a =2 cache retire a =2 cache P27 SF<br />

Reconcile(a) Cell(a,-,Cleanb) retire a =2 cache P28 SF<br />

Cell(a,v,Dirtyb) retire Cell(a,v,Dirtyb) P29 SF<br />

Cell(a,v,Cleanw) retire Cell(a,v,Cleanw) P30 SF<br />

Cell(a,v,Dirtyw) retire Cell(a,v,Dirtyw) P31 SF<br />

Cell(a,v,Cleanm) retire Cell(a,v,Cleanm) P32 SF<br />

Cell(a,v,Dirtym) retire Cell(a,v,Dirtym) P33 SF<br />

Cell(a,v,WbPending) stall Cell(a,v,WbPending) P34<br />

Cell(a,-,<strong>Cache</strong>Pending) stall Cell(a,-,<strong>Cache</strong>Pending) P35<br />

a =2 cache retire a =2 cache P36 SF<br />

Figure 7.11: Processor Rules <strong>of</strong> <strong>Cache</strong>t<br />

rules include the imperative cache engine rules, <strong>and</strong> additional rules to deal with downgrade<br />

requests from the memory. A cache processes a downgrade request as follows:<br />

When a cache receives a WP-to-Base downgrade request, if the address is cached under<br />

WP, the cache downgrades the cell to Base, <strong>and</strong> sends a Downwb message to the memory<br />

(Rules MC18 <strong>and</strong> MC19). However, if the address is cached under Base, or cached in the<br />

WbPending or <strong>Cache</strong>Pending state, or uncached, the cache simply discards the request<br />

(Rules MC16, MC17, MC20, MC21 <strong>and</strong> MC22). This is because the cache has already<br />

downgraded the cell before the downgrade request is received.<br />

When a cache receives a Migratory-to-WP downgrade request, if the address is cached<br />

under Migratory, the cache downgrades the cell to WP, <strong>and</strong> sends a Downmw or DownVmw<br />

message to the memory (Rules MC27 <strong>and</strong> MC28). However, if the address is cached under<br />

Base or WP, or cached in the WbPending or <strong>Cache</strong>Pending state, or uncached, the cache<br />

simply discards the request (Rules MC23, MC24, MC25, MC26, MC29, MC30 <strong>and</strong> MC31).<br />

148

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

Saved successfully!

Ooh no, something went wrong!