當前位置:成語大全網 - 漢語詞典 - CPU緩存是什麽意思?

CPU緩存是什麽意思?

CPU緩存是介於CPU和內存之間的臨時內存,容量比內存小,但交換速度更快。緩存中的數據是內存的壹小部分,但這壹小部分會在短時間內被CPU訪問。當CPU調用大量數據時,可以直接從緩存中調用,無需內存,從而加快讀取速度。可以看出,給CPU增加緩存是壹種高效的解決方案,這樣整個內存(緩存+內存)就變成了壹個高速的存儲系統,既有緩存又有內存。緩存對CPU的性能影響很大,主要是CPU的數據交換順序和CPU與緩存之間的帶寬造成的。

緩存的工作原理是,當CPU要讀取壹個數據時,先從緩存中查找,如果找到,就立即讀取並發送給CPU處理。如果沒有找到,會以相對較慢的速度從內存中讀取,並發送給CPU進行處理。同時,這個數據所在的數據塊會被轉移到緩存中,這樣以後就可以從緩存中讀取整個數據,而不需要調用內存。

正是這種讀取機制,使得CPU讀取緩存的命中率非常高(大部分CPU可以達到90%左右),也就是說,CPU下次讀取的數據有90%在緩存中,只有10%左右需要從內存中讀取。這大大節省了CPU直接讀取內存的時間,也使得CPU在讀取數據時基本上不需要等待。壹般來說,CPU讀取數據的順序是先緩存再內存。

最早的CPU緩存是壹個整體,容量很低。英特爾從奔騰時代就開始對高速緩存進行分類。當時集成在CPU核中的緩存還不足以滿足CPU的需求,制造工藝的限制也無法大幅提升緩存容量。因此,有壹個緩存與CPU集成在同壹個電路板或主板上。此時,與CPU內核集成的緩存稱為壹級緩存,而外部緩存稱為二級緩存。壹級緩存又分為數據緩存(D-Cache)和指令緩存(I-Cache)。它們分別用於存儲數據和執行這些數據的指令,並且可以同時被CPU訪問,減少了因爭用緩存而產生的沖突,提高了處理器效率。英特爾在推出奔騰4處理器時,將指令緩存替換為容量為12KμOps的全新壹級跟蹤緩存,這意味著它可以存儲12K條微指令。

隨著CPU制造技術的發展,二級緩存也可以很容易地集成到CPU內核中,其容量也在逐年增加。以是否集成在CPU中來定義壹級和二級緩存是不準確的。而且隨著二級緩存集成到CPU核中,二級緩存與CPU之間的大間隙分頻也發生了改變。此時與主頻同速工作,可以為CPU提供更高的傳輸速度。

二級緩存是CPU性能的關鍵之壹。在CPU核不變的情況下,增加二級緩存的容量可以大大提高性能。而同壹個核的高端和低端CPU在二級緩存上往往是不壹樣的,可見二級緩存對CPU的重要性。

當CPU在緩存中找到有用的數據時,稱為命中。當緩存中沒有CPU需要的數據時(這稱為未命中),CPU會訪問內存。理論上講,在壹個有二級緩存的CPU中,讀取壹級緩存的命中率是80%。也就是說,在CPU的壹級緩存中找到的有用數據占總數據的80%,剩下的20%是從二級緩存中讀取的。由於無法準確預測要執行的數據,讀取二級緩存的命中率也在80%左右(從二級緩存讀取的有用數據占總數據的16%)。然後壹些數據將不得不從內存中調用,但這已經是壹個相當小的比例。目前在更高端的CPU中會有三級緩存,是針對讀取二級緩存後丟失的數據而設計的。在具有三級緩存的CPU中,只有大約5%的數據需要從內存中調用,這進壹步提高了CPU的效率。

為了保證CPU訪問時的高命中率,緩存中的內容要按照壹定的算法進行替換。壹種常用的算法是最近最少使用算法(LRU算法),該算法消除最近最少訪問的行。因此,有必要為每壹行設置壹個計數器。LRU算法是將命中行的計數器清零,並將其他行的計數器加1。當需要替換時,行計數器的計數值最大的數據行被刪除。這是壹種高效科學的算法,其計數器清零過程可以在頻繁調用後從緩存中清除壹些不必要的數據,提高緩存的利用率。

在CPU產品中,壹級緩存的容量基本在4KB到64KB之間,二級緩存的容量分為128KB、256KB、512KB、1MB、2MB等。產品在壹級緩存容量上差別不大,而二級緩存容量才是提升CPU性能的關鍵。二級緩存容量的增加是由CPU的制造工藝決定的,容量的增加必然導致CPU中晶體管數量的增加。要在有限的CPU面積上集成更大的緩存,對制造工藝的要求更高。