The Firefly cache coherence protocol is the schema used in the DEC Fireflymultiprocessor workstation, developed by DEC Systems Research Center.
This protocol uses a write-through policy.
Statescache中的資料有四種狀態:
- Valid-Exclusive:
這個block只存在於這個cache,而且資料與記憶體的是同步的。 - Shared:
好幾個cache中都有這個block,而且資料跟記憶體是同步的。 - Dirty:
這個block只存在於這個cache,而且資料與記憶體的是不同步的。
這是唯一會將資料寫回記憶體(write-back)的狀態。
Transition
這個協定利用一個叫SharedLine的特殊bus來偵測cache中的block是否為分享的。
每個cache會偵測所有記憶體的操作,並且在他偵測到其他cache操作到的block自己也有時(snoop hit),啟動ShareLine。
以下介紹四種操作狀況
- Read Hit:
CPU讀取的資料自己的cache就有,讀了之後不用改變狀態。 - Read Miss:
CPU讀取的資料在cache中找不到時,會向其他的cache尋找。其他的cache偵測到read指令,如果自己有要求的block,就把啟動ShareLine,並且將資料傳給要求的cache(每一個有該筆資料的cache都會傳)。如果傳送的資料是Dirty的狀態,記憶體中的資料也會一併更新。之後所有有傳送資料的cache都改成Shared的狀態。
如果其他cache都沒有所需的資料,就從記憶體裡面拿,並且把狀態改成Valid-Exclusive。 - Write Hit:
如果要寫入的block是在dirty的狀態,則直接寫入。
如果是在Share 的狀態,則會
沒有留言:
張貼留言