緩存+寫緩沖區+無效化隊列 == 緩存一致性協議+內存屏障


緩存+寫緩沖區+無效化隊列 == 緩存一致性協議+內存屏障

參考

計算機體系結構(第五版)-復習-MESI&MOESI協議

Java多線程編程實戰指南-核心篇 第11章前4節

介紹三種基本的地址映射方法

ARM的cache和寫緩沖器(write buffer

理解 Memory barrier(內存屏障)

計算機科學基礎知識(一):The Memory Hierarchy

intel軟件開發者指南

硬件

緩存+寫緩沖區+無效化隊列

指令

內存屏障指令

階段

緩存 == 緩存一致性協議
緩存+寫緩沖區+無效化隊列 == 緩存一致性協議+內存屏障

MESI將緩存條目的狀態划分為Modified,Exclusive,Shared,Invalid4種。並在此基礎上定義了一組消息,用於協調各個處理器的讀寫內存操作。

無效態(Invalid) 此緩存行內容無效(空行)

共享態(Shared)此緩存行內容同於主存,並且其他處理器上的緩存也可能包含內存地址對應的副本數據。

獨占態(Exclusive)此緩存行內容同於主存,並且這個內存地址的數據不存在與其他處理器緩存中。

修改態(Modified)此緩存行內容已被修改,不同於主存。

  • 處理器在讀寫操作時向總線發送特定的消息

  • 處理器嗅探總線中其他處理器發送的消息並回復。

緩存條目結構

緩存條目組成:tag+flag(緩存行狀態標志)+data block(緩存行)

緩存條目地址:如0x00-0xFF,同內存地址一樣連續的。

緩存條目地址對應存儲單元位數:tag的位數+flag的位數+緩存行的位數

內存地址位數:32位。

內存地址對應存儲單元位數:8位(4GB內存)

緩存行是緩存與cpu交換數據的單位。因為tag和flag的存在,緩存行的位數小於緩存條目的位數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM