MESI--CPU緩存一致性協(xié)議

概念

MESIModified Exclusive Shared Or Invalid)(也稱為伊利諾斯協(xié)議驾锰,是因?yàn)樵搮f(xié)議由伊利諾斯州立大學(xué)提出)是一種廣泛使用的支持寫回策略的緩存一致性協(xié)議。

MESI協(xié)議中的狀態(tài)

CPU中每個(gè)緩存行(caceh line)使用4種狀態(tài)進(jìn)行標(biāo)記(使用額外的兩位(bit)表示):

M: 被修改(Modified)

該緩存行只被緩存在該CPU的緩存中滚局,并且是被修改過的(dirty),即與主存中的數(shù)據(jù)不一致鹤耍,該緩存行中的內(nèi)存需要在未來的某個(gè)時(shí)間點(diǎn)(允許其它CPU讀取請(qǐng)主存中相應(yīng)內(nèi)存之前)寫回(write back)主存。

當(dāng)被寫回主存之后,該緩存行的狀態(tài)會(huì)變成獨(dú)享(exclusive)狀態(tài)宛乃。

E: 獨(dú)享的(Exclusive)

該緩存行只被緩存在該CPU的緩存中,它是未被修改過的(clean)蒸辆,與主存中數(shù)據(jù)一致烤惊。該狀態(tài)可以在任何時(shí)刻當(dāng)有其它CPU讀取該內(nèi)存時(shí)變成共享狀態(tài)(shared)。

同樣地吁朦,當(dāng)CPU修改該緩存行中內(nèi)容時(shí)柒室,該狀態(tài)可以變成Modified狀態(tài)。

S: 共享的(Shared)

該狀態(tài)意味著該緩存行可能被多個(gè)CPU緩存逗宜,并且各個(gè)緩存中的數(shù)據(jù)與主存數(shù)據(jù)一致(clean)雄右,當(dāng)有一個(gè)CPU修改該緩存行中,其它CPU中該緩存行可以被作廢(變成無效狀態(tài)(Invalid))纺讲。

I: 無效的(Invalid)

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

MESI狀態(tài)轉(zhuǎn)換圖[#]

image.png

狀態(tài)之間的相互轉(zhuǎn)換關(guān)系也可以使用下表進(jìn)行表示。


image.png
image.png

操作

在一個(gè)典型系統(tǒng)中熬甚,可能會(huì)有幾個(gè)緩存(在多核系統(tǒng)中逢渔,每個(gè)核心都會(huì)有自己的緩存)共享主存總線,每個(gè)相應(yīng)的CPU會(huì)發(fā)出讀寫請(qǐng)求乡括,而緩存的目的是為了減少CPU讀寫共享主存的次數(shù)肃廓。

一個(gè)緩存除在Invalid狀態(tài)外都可以滿足cpu的讀請(qǐng)求,一個(gè)Invalid的緩存行必須從主存中讀然迕凇(變成S或者 E狀態(tài))來滿足該CPU的讀請(qǐng)求盲赊。

一個(gè)寫請(qǐng)求只有在該緩存行是M或者E狀態(tài)時(shí)才能被執(zhí)行,如果緩存行處于S狀態(tài)敷扫,必須先將其它緩存中該緩存行變成Invalid狀態(tài)(也既是不允許不同CPU同時(shí)修改同一緩存行哀蘑,即使修改該緩存行中不同位置的數(shù)據(jù)也不允許)。該操作經(jīng)常作用廣播的方式來完成,例如:RequestFor Ownership (RFO)绘迁。

緩存可以隨時(shí)將一個(gè)非M狀態(tài)的緩存行作廢合溺,或者變成Invalid狀態(tài),而一個(gè)M狀態(tài)的緩存行必須先被寫回主存缀台。

一個(gè)處于M狀態(tài)的緩存行必須時(shí)刻監(jiān)聽所有試圖讀該緩存行相對(duì)就主存的操作棠赛,這種操作必須在緩存將該緩存行寫回主存并將狀態(tài)變成S狀態(tài)之前被延遲執(zhí)行。

一個(gè)處于S狀態(tài)的緩存行也必須監(jiān)聽其它緩存使該緩存行無效或者獨(dú)享該緩存行的請(qǐng)求将硝,并將該緩存行變成無效(Invalid)恭朗。

一個(gè)處于E狀態(tài)的緩存行也必須監(jiān)聽其它緩存讀主存中該緩存行的操作屏镊,一旦有這種操作依疼,該緩存行需要變成S狀態(tài)。

對(duì)于ME狀態(tài)而言總是精確的而芥,他們?cè)诤驮摼彺嫘械恼嬲隣顟B(tài)是一致的律罢。而S狀態(tài)可能是非一致的,如果一個(gè)緩存將處于S狀態(tài)的緩存行作廢了棍丐,而另一個(gè)緩存實(shí)際上可能已經(jīng)

獨(dú)享了該緩存行误辑,但是該緩存卻不會(huì)將該緩存行升遷為E狀態(tài),這是因?yàn)槠渌彺娌粫?huì)廣播他們作廢掉該緩存行的通知歌逢,同樣由于緩存并沒有保存該緩存行的copy的數(shù)量巾钉,因此(即使有這種通知)也沒有辦法確定自己是否已經(jīng)獨(dú)享了該緩存行。

從上面的意義看來E狀態(tài)是一種投機(jī)性的優(yōu)化:如果一個(gè)CPU想修改一個(gè)處于S狀態(tài)的緩存行秘案,總線事務(wù)需要將所有該緩存行的copy變成Invalid狀態(tài)砰苍,而修改E狀態(tài)的緩存不需要使用總線事務(wù)。

參考資料:
計(jì)算機(jī)體系結(jié)構(gòu)(第五版)-復(fù)習(xí)-MESI&MOESI協(xié)議
https://www.cnblogs.com/z00377750/p/9180644.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末阱高,一起剝皮案震驚了整個(gè)濱河市赚导,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌赤惊,老刑警劉巖吼旧,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異未舟,居然都是意外死亡圈暗,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門裕膀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來厂置,“玉大人,你說我怎么就攤上這事魂角£羌茫” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)访忿。 經(jīng)常有香客問我瞧栗,道長(zhǎng),這世上最難降的妖魔是什么海铆? 我笑而不...
    開封第一講書人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任迹恐,我火速辦了婚禮,結(jié)果婚禮上卧斟,老公的妹妹穿的比我還像新娘殴边。我一直安慰自己,他們只是感情好珍语,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開白布锤岸。 她就那樣靜靜地躺著,像睡著了一般板乙。 火紅的嫁衣襯著肌膚如雪是偷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評(píng)論 1 305
  • 那天募逞,我揣著相機(jī)與錄音蛋铆,去河邊找鬼。 笑死放接,一個(gè)胖子當(dāng)著我的面吹牛刺啦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播纠脾,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼玛瘸,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了乳乌?” 一聲冷哼從身側(cè)響起捧韵,我...
    開封第一講書人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎汉操,沒想到半個(gè)月后再来,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡磷瘤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年芒篷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片采缚。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡针炉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出扳抽,到底是詐尸還是另有隱情篡帕,我是刑警寧澤殖侵,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站镰烧,受9級(jí)特大地震影響拢军,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜怔鳖,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一茉唉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧结执,春花似錦度陆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至斜姥,卻和暖如春鸿竖,著一層夾襖步出監(jiān)牢的瞬間沧竟,已是汗流浹背铸敏。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留悟泵,地道東北人杈笔。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像糕非,于是被迫代替她去往敵國和親蒙具。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容