初步认识Volatile-缓存一致性协议
生活随笔
收集整理的這篇文章主要介紹了
初步认识Volatile-缓存一致性协议
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
為了達到數據訪問的一致,需要各個處理器在訪問緩存時遵循一些協議,在讀寫時根據協議來操作,常見的協議有MSI,MESI,MOSI等。最常見的就是MESI協議。接下來給大家簡單講解一下MESI
MESI表示緩存行的四種狀態,分別是?
1. M(Modify)?表示共享數據只緩存在當前CPU緩存中,并且是被修改狀態,也就是緩存的數據和主內存中的數據不一致
2. E(Exclusive)?表示緩存的獨占狀態,數據只緩存在當前CPU緩存中,并且沒有被修改
3. S(Shared)?表示數據可能被多個CPU緩存,并且各個緩存中的數據和主內存數據一致?
4. I(Invalid)?表示緩存已經失效
在MESI協議中,每個緩存的緩存控制器不僅知道自己的讀寫操作,而且也監聽(snoop)其它Cache的讀寫操作
對于MESI協議,從CPU讀寫角度來說會遵循以下原則:?
CPU讀請求:緩存處于M、E、S狀態都可以被讀取,I狀態CPU只能從主存中讀取數據?
CPU寫請求:緩存處于M、E狀態才可以被寫。對于S狀態的寫,需要將其他CPU中緩存行置為無效才可寫
使用總線鎖和緩存鎖機制之后,CPU對于內存的操作大概可以抽象成下面這樣的結構。從而達到緩存一致性效果
?
?
?
總結
以上是生活随笔為你收集整理的初步认识Volatile-缓存一致性协议的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 初步认识Volatile-总线锁和缓存锁
- 下一篇: 初步认识Volatile-总结可见性的本