多處理器系統MESI cache一致性協議
阿新 • • 發佈:2018-12-23
一致性要求是指,若cache中某個字被修改,那麼在主存(以及更高層次)上,該字的副本必須立即或最後加以修改,並確保它者引用主存上該字內容的正確性。 當代多處理器系統中,每個處理器大都有自己的cache。同一主存塊的拷貝能同時存於不同cache中,若允許處理器各自獨立地修改自己的cache,就會出現不一致問題。解決此問題有軟體辦法和硬體辦法。硬體辦法能動態地識別出不一致產生的條件並予以及時處理,從而使cache的使用有很高的效率。並且此辦法對程式設計師和系統軟體開發人員是透明的,減輕了軟體研製負擔,從而普遍被採用。
MESI協議是一種採用寫--無效方式的監聽協議。它要求每個cache
下面由圖的四個頂點出發,介紹轉換規則:(規則中與上圖的相應位置以*數字序號對照給出)*1 該無效行在自身Cache讀未命中將被相應記憶體塊填充以建立新行時,讀監聽命中,說明其它Cache正在讀同地址的記憶體塊,以建立新行。故為多Cache共享行,應為S狀態,並應繼續發出讀監聽廣播,使其它Cache的類似情況效仿。*2該無效行在自身Cache讀未命中將被相應記憶體塊填充以建立新行時,未讀監聽命中,為本
相似內容參考:Ulrich Drepper 神牛的文章《what every programmer should know about memory》第3.3.4節Multi-Processor Support