Intel 64 and IA-32 cache 術語

cache line fill

當處理器發現從內存讀取的操作數是cache-able,處理器會讀取整個cache line到相應的cache中(L1, L2, L3或者到全部Cache)。我們把這個操作叫做cache line fill


cache hit

如果包含操作數的內存仍然在cache中,那麼下一次處理器訪問這個操作數時,處理器就可以直接從cache中讀取,而不需要從相對慢速的系統內存中讀取。這個操作我們稱之爲cache命中


write hit

當處理器要寫一個操作數到cache-able的內存區域時,首先會檢查這塊內存是否已經在cache line中。如果cache line存在,那麼處理器可以把操作數寫到cache中,而不是寫到系統內存。這個操作稱之爲write hit


write missed

當處理器寫一個操作數到cache-able的內存區域時,如果這塊內存沒有對應有效的cache line,那麼就稱爲cache missed。此時處理器可移執行cache line填充,然後再把操作數寫到cache line中,然後(依賴於當前內存的寫策略)寫到store buffer中,然後在系統總線可用時,把 write buffer的內容寫到系統內存。注意對於Pentium處理器,write missed並不會導致cache line fill,而是直接寫回內存。對於這個處理器,只有read missed會導致cache line fill。


snoop

在MP (multi-processor)系統中,IA32和Intel 64處理器會snoop其他處理器對內存的訪問,通過這個能力,可以確保處理器保持他們內部的cache和 系統內存以及其他處理器的cache保持一致。

比如,Pentium和P6家族處理器,通過snooping,一個處理器可以檢測到另外一個處理器要寫系統內存,並且這塊內存恰好當前正在被cached在cache line中,執行snooping的處理器會無效自己的cache line,使得下一次這個處理器訪問這個內存位置時會執行一次cache line fill。



發佈了183 篇原創文章 · 獲贊 42 · 訪問量 142萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章