星期五, 7月 08, 2011

Cache Coherence -- FireFly Protocol

Introduction
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 的狀態,則會

沒有留言:

張貼留言