思考:
1、為什么要學(xué)習(xí) MESI 協(xié)議?哪里用到了?你確定真的用到了?
2、MESI 只是一個協(xié)議,總得依賴一個硬件去執(zhí)行該協(xié)議吧,那么是誰來維護或執(zhí)行的呢?
3、你不理解的真的是 MESI 嗎,真的需要學(xué)習(xí) MESI 嗎?應(yīng)該是 cache 架構(gòu)吧
4、core0 和 core1 之間的一致性是 MESI?那 cluster0 和 cluster1 之間的呢?sytem1 和 sytem2 之間的呢?
5、MESI 協(xié)議中的 M、E、S、I 的比特位,都是存在哪里的?
1、系統(tǒng)中有哪些一致性需要維護
進入正文,我們來看現(xiàn)代 ARM 架構(gòu)體系(DynamIQ 架構(gòu))中的 cache 層級關(guān)系圖。注意 L1/L2 都在 core 中,L3 在 cluster 中。
所以從以下圖中就能夠直觀的看到答案了:
- (1)core0、core1… 之間的一致性 需要維護
- (2)cluster0 和 cluster1 之間的 L3 Cache 一致性 需要維護
- (3)system 之間的一致性需要維護

其中,core0、core1 之間的一致性是遵從 MESI 協(xié)議,而 cluster0/cluster1 之間的一致性、多個 system 之間的一致性并沒有遵從 MESI 協(xié)議。
所以本文重點介紹的,也就是 core0、core1 之間的一致性,即 MESI 協(xié)議。
2、core 硬件對 MESI 協(xié)議的支持
接下來,進入下一個問題, MESI 協(xié)議中的 M、E、S、I 的比特位都是存在哪里的?這個問題并不難,告別懶惰,多翻一翻 ARM TRM 手冊就能找到答案,如下是armv9 -- cortex-A710 TRM手冊中的,cache 的 TAG 里都有什么?
答案顯然易見,在 Cache 的 TAG 中,有兩個比特位表示了 MESI 的狀態(tài)

3、MESI 協(xié)議的原理
接下來進入本文的核心,MESI 協(xié)議到底是什么?怎樣維護一致性的?
(看以下圖表,我就不說話了)



Events
- RH = Read Hit
- RMS = Read miss, shared
- RME = Read miss, exclusive
- WH = Write hit
- WM = Write miss
- SHR = Snoop hit on read
- SHI = Snoop hit on invalidate
- LRU = LRU replacement
Bus Transactions
- Push = Write cache line back to memory
- Invalidate = Broadcast invalidate
- Read = Read cache line from memory
-
RMS
+關(guān)注
關(guān)注
2文章
158瀏覽量
37371 -
ARM架構(gòu)
+關(guān)注
關(guān)注
15文章
184瀏覽量
38884 -
Cortex-A7
+關(guān)注
關(guān)注
0文章
35瀏覽量
17043 -
cache技術(shù)
+關(guān)注
關(guān)注
0文章
41瀏覽量
1315 -
TRM
+關(guān)注
關(guān)注
0文章
13瀏覽量
3584
發(fā)布評論請先 登錄
介紹ARM存儲一致性模型的相關(guān)知識
C6678 多核程序的初始化及L1P cache一致性問題
c6678cache一致性
6678多核之間的L1 CACHE一致性是由硬件實現(xiàn)的嗎
順序一致性和TSO一致性分別是什么?SC和TSO到底哪個好?
改進的基于目錄的Cache一致性協(xié)議
一致性規(guī)劃研究
CMP中Cache一致性協(xié)議的驗證
DMR空中接口協(xié)議一致性測試技術(shù)
RFID協(xié)議一致性測試系統(tǒng)設(shè)計(二)
RFID協(xié)議一致性測試系統(tǒng)設(shè)計(三)
Cache一致性協(xié)議優(yōu)化研究
介紹下cpu緩存一致性(MESI協(xié)議)

淺析Cache多核之間的一致性MESI協(xié)議
評論