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。