MESI協議

MESI協議中的狀態

CPU中每個緩存行(caceh line)使用4種狀態進行標記(使用額外的兩位(bit)表示):

M: 被修改(Modified)

該緩存行只被緩存在該CPU的緩存中,並且是被修改過的(dirty),即與主存中的數據不一致,該緩存行中的內存需要在未來的某個時間點(允許其它CPU讀取請主存中相應內存之前)寫回(write back)主存。當被寫回主存之後,該緩存行的狀態會變成獨享(exclusive)狀態。

E: 獨享的(Exclusive)

該緩存行只被緩存在該CPU的緩存中,它是未被修改過的(clean),與主存中數據一致。該狀態可以在任何時刻當有其它CPU讀取該內存時變成共享狀態(shared)。同樣地,當CPU修改該緩存行中內容時,該狀態可以變成Modified狀態。

S: 共享的(Shared)

該狀態意味着該緩存行可能被多個CPU緩存,並且各個緩存中的數據與主存數據一致(clean),當有一個CPU修改該緩存行中,其它CPU中該緩存行可以被作廢(變成無效狀態(Invalid))。

I: 無效的(Invalid)

該緩存是無效的(可能有其它CPU修改了該緩存行)。

| | M | E | S |I | |:------- | :------- | ----: | :---: | |M | X | X | X |V| | E| X | X | X |V| | S| X |X | V |V| |I |V |V|V|V| 狀態之間的轉換

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章