1.1 為什么需要Cache?
因為隨著共計和設計的演進,CPU的計算性能其實發生了翻天覆地的變化,但DRAM的存儲性能沒有發展那么快。
由于大量循環的存在,我們訪問是數據其實在內存中的位置是相近的。換句專業點的話說,我們訪問數據有局部性。我們只需要將這些數據放入一個小而快的存儲中,這樣就可以快速訪問相關數據了。
總結起來Cache是為了給CPU提供高速存儲訪問,利用數據局部性而設計的小存儲單元。
1.2 實際系統中的Cache
整個系統的存儲架構包括了CPU寄存器,L1/L2/L3 Cache,DRAM和硬盤。
數據訪問時先找寄存器,寄存器里沒有找L1Cache,L1Cache沒有找L2Cache依次類推,最后找到硬盤中。
同時我們可以看到,速度與存儲容量的折中關系。容量越小,訪問速度越快!
其中,一個概念需要搞清楚。CPU和Cache是Word傳輸的,而Cache到主存儲是以塊傳輸的,一塊大約64Byte。
1.3 Cache的分類
按照數據類型劃分:
I-Cache、D-Cache。I-Cache負責放置指令,D-Cache負責放置數據
兩者最大的不同是D-Cache的數據可以寫回,I-Cache的數據是只讀的。
按照大小劃分:
分為small Cache/large Cache . 沒路組(后文組相連介紹)<4KB叫small Cache,多用于L1 Cache;>4KB叫large Cache,多用于L2及其他Cache。按照位置劃分:Inner Cache 和Outer Cache。一般獨屬于CPU微架構的叫Inner Cache,例如L1 L2Cache;不屬于CPU微架構的的叫Outer Cache。
按照數據關系劃分:Inclusive/exclusive Cache,下級Cache包含上級的數據叫Inclusive Cache.不包含叫exclusive Cache。

首頁 > 資源中心 > FAQ
