硬件機制--高速緩存

CPU和高速緩存、主內存之間的關系

  1. CPU只直接跟L1高速緩存交互,CPU不會直接操作主內存;每個CPU只直接操作各自的高速緩存,不能直接操作其他CPU的高速緩存;
  2. 高速緩存中的數據均來源于主內存,即是主內存中的數據的拷貝;
  3. 當高速緩存中的數據被CPU修改后,有兩種機制來實現高速緩存和主內存的通信:一個是write-through,另一個是write-back

write-through機制

write-through機制描述的是當CPU對高速緩存進行寫操作時,高速緩存如何跟主內存交互的。

image.png

特點如下:

  • 寫命中
    既寫高速緩存,也寫主內存;
  • 寫不命中
    使用非寫分配 not-write-allocat,即避開高速緩存,直接寫到主存;

write-back機制

write-back機制描述的是當CPU對高速緩存進行寫操作時,高速緩存如何跟主內存交互的。


write-back.png

特點如下:

  • 寫命中
    每個緩存行有一個有效位:0表示dirty/空, 1表示有效;只寫高速緩存,將相應的緩存行標記為臟,即dirty;只有當這個臟的緩存行要被替換掉時,才會寫到內存中去;
  • 寫不命中
    首先使用write-allocate的方式:從下一層存儲加載相應的塊到高速緩存,然后更新這個緩存塊;然后就使用寫命中機制了;

高速緩存結構

Intel-i7-cache-hierarchy.png
  1. CPU只直接和寄存器、L1緩存交互;
  2. 現代的L1緩存分為兩個單獨的物理塊:
    i-cache存儲指令,是read-only的;
    d-cache存儲數據,是read/write的;
  3. L2和L3緩存存儲指令和數據;
  4. 高速緩存的大小:Core i7的L1緩存大小為64KB, L2緩存是256KB,L3是8MB;
  5. 緩存是分塊,分組的;
  6. L1的訪問周期是4, L2是L1的3倍,L3是L2的3倍;一次內存訪問的時鐘周期是L3的3倍左右,和L1差2個數量級
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容