L2 CACHE

L2 CACHE

L2 CACHE=二級快取 它是處理器內部的一些緩衝存儲器,其作用跟記憶體一樣。 大量使用二級快取帶來的結果是處理器運行效率的提升和成本價格的大幅度不等比提升。

介紹

它是怎么出現的呢? 要上溯到上個世紀80年代,由於處理器的運行速度越來越快,慢慢地,處理器需要從記憶體中讀取數據的速度需求就越來越高了。然而記憶體的速度提升速度卻很緩慢,而能高速讀寫數據的記憶體價格又非常高昂,不能大量採用。從性能價格比的角度出發,英特爾等處理器設計生產公司想到一個辦法,就是用少量的高速記憶體和大量的低速記憶體結合使用,共同為處理器提供數據。這樣就兼顧了性能和使用成本的最優。而那些高速的記憶體因為是處於CPU和記憶體之間的位置,又是臨時存放數據的地方,所以就叫做緩衝存儲器了,簡稱“快取”。它的作用就像倉庫中臨時堆放貨物的地方一樣,貨物從運輸車輛上放下時臨時堆放在快取區中,然後再搬到內部存儲區中長時間存放。貨物在這段區域中存放的時間很短,就是一個臨時貨場。 最初快取只有一級,後來處理器速度又提升了,一級快取不夠用了,於是就添加了二級快取。二級快取是比一級快取速度更慢,容量更大的記憶體,主要就是做一級快取和記憶體之間數據臨時交換的地方用。現在,為了適應速度更快的處理器P4EE,已經出現了三級快取了,它的容量更大,速度相對二級快取也要慢一些,但是比記憶體可快多了。 快取的出現使得CPU處理器的運行效率得到了大幅度的提升,這個區域中存放的都是CPU頻繁要使用的數據,所以快取越大處理器效率就越高,同時由於快取的物理結構比記憶體複雜很多,所以其成本也很高。

舉例

舉個例子,伺服器上用的至強處理器和普通的P4處理器其核心基本上是一樣的,就是二級快取不同。至強的二級快取是2MB~16MB,P4的二級快取是512KB,於是最便宜的至強也比最貴的P4貴,原因就在二級快取不同。

即L2 Cache。由於L1級高速快取容量的限制,為了再次提高CPU的運算速度,在CPU外部放置一高速存儲器,即二級快取。工作主頻比較靈活,可與CPU同頻,也可不同。CPU在讀取數據時,先在L1中尋找,再從L2尋找,然後是記憶體,在後是外存儲器。所以L2對系統的影響也不容忽視。

CPU快取(Cache Memory)位於CPU與記憶體之間的臨時存儲器,它的容量比記憶體小但交換速度快。在快取中的數據是記憶體中的一小部分,但這一小部分是短時間內CPU即將訪問的,當CPU調用大量數據時,就可避開記憶體直接從快取中調用,從而加快讀取速度。由此可見,在CPU中加入快取是一種高效的解決方案,這樣整個記憶體儲器(快取+記憶體)就變成了既有快取的高速度,又有記憶體的大容量的存儲系統了。快取對CPU的性能影響很大,主要是因為CPU的數據交換順序和CPU與快取間的頻寬引起的。

快取的工作原理是當CPU要讀取一個數據時,首先從快取中查找,如果找到就立即讀取並送給CPU處理;如果沒有找到,就用相對慢的速度從記憶體中讀取並送給CPU處理,同時把這個數據所在的數據塊調入快取中,可以使得以後對整塊數據的讀取都從快取中進行,不必再調用記憶體。

正是這樣的讀取機制使CPU讀取快取的命中率非常高(大多數CPU可達90%左右),也就是說CPU下一次要讀取的數據90%都在快取中,只有大約10%需要從記憶體讀取。這大大節省了CPU直接讀取記憶體的時間,也使CPU讀取數據時基本無需等待。總的來說,CPU讀取數據的順序是先快取後記憶體。

最早先的CPU快取是個整體的,而且容量很低,英特爾公司從Pentium時代開始把快取進行了分類。當時集成在CPU核心中的快取已不足以滿足CPU的需求,而製造工藝上的限制又不能大幅度提高快取的容量。因此出現了集成在與CPU同一塊電路板上或主機板上的快取,此時就把 CPU核心集成的快取稱為一級快取,而外部的稱為二級快取。一級快取中還分數據快取(Data Cache,D-Cache)和指令快取(Instruction Cache,I-Cache)。二者分別用來存放數據和執行這些數據的指令,而且兩者可以同時被CPU訪問,減少了爭用Cache所造成的衝突,提高了處理器效能。英特爾公司在推出Pentium 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面積上集成更大的快取,對製造工藝的要求也就越高

快取(Cache)大小是CPU的重要指標之一,其結構與大小對CPU速度的影響非常大。簡單地講,快取就是用來存儲一些常用或即將用到的數據或指令,當需要這些數據或指令的時候直接從快取中讀取,這樣比到記憶體甚至硬碟中讀取要快得多,能夠大幅度提升CPU的處理速度。

所謂處理器快取,通常指的是二級高速快取,或外部高速快取。即高速緩衝存儲器,是位於CPU和主存儲器DRAM(Dynamic RAM)之間的規模較小的但速度很高的存儲器,通常由SRAM(靜態隨機存儲器)組成。用來存放那些被CPU頻繁使用的數據,以便使CPU不必依賴於速度較慢的DRAM(動態隨機存儲器)。L2高速快取一直都屬於速度極快而價格也相當昂貴的一類記憶體,稱為SRAM(靜態RAM),SRAM(Static RAM)是靜態存儲器的英文縮寫。由於SRAM採用了與製作CPU相同的半導體工藝,因此與動態存儲器DRAM比較,SRAM的存取速度快,但體積較大,價格很高。

處理器快取的基本思想是用少量的SRAM作為CPU與DRAM存儲系統之間的緩衝區,即Cache系統。80486以及更高檔微處理器的一個顯著特點是處理器晶片內集成了SRAM作為Cache,由於這些Cache裝在晶片內,因此稱為片內Cache。486晶片內Cache的容量通常為8K。高檔晶片如Pentium為16KB,Power PC可達32KB。Pentium微處理器進一步改進片內Cache,採用數據和雙通道Cache技術,相對而言,片內Cache的容量不大,但是非常靈活、方便,極大地提高了微處理器的性能。片內Cache也稱為一級Cache。由於486,586等高檔處理器的時鐘頻率很高,一旦出現一級Cache未命中的情況,性能將明顯惡化。在這種情況下採用的辦法是在處理器晶片之外再加Cache,稱為二級Cache。二級Cache實際上是CPU和主存之間的真正緩衝。由於系統板上的回響時間遠低於CPU的速度,如果沒有二級Cache就不可能達到486,586等高檔處理器的理想速度。二級Cache的容量通常應比一級Cache大一個數量級以上。在系統設定中,常要求用戶確定二級Cache是否安裝及尺寸大小等。二級Cache的大小一般為128KB、256KB或512KB。在486以上檔次的微機中,普遍採用256KB或512KB同步Cache。所謂同步是指Cache和CPU採用了相同的時鐘周期,以相同的速度同步工作。相對於異步Cache,性能可提高30%以上。

現況

目前,PC及其伺服器系統的發展趨勢之一是CPU主頻越做越高,系統架構越做越先進,而主存DRAM的結構和存取時間改進較慢。因此,快取(Cache)技術愈顯重要,在PC系統中Cache越做越大。廣大用戶已把Cache做為評價和選購PC系統的一個重要指標。

現在的CPU普遍有一級快取和二級快取。一般來說,一級快取的數量比較少,而二級快取的數量一般比一級快取大幾倍。為什麼要快取呢,這主要是CPU廠家為了提高CPU的使用效率。因為,隨著CPU的速度的快速發展,目前的CPU速度已經達到一個令人驚訝的速度,據個例子來說,一個奔騰3-1G的CPU其運算速度為每秒鐘能夠完成10億次二進制計算,而一個奔騰4-3G則意味著每秒鐘能夠完成30億次二進制運算。當然由於CPU還要介入浮點數據轉換和介入控制主機板上的其他設備資源,實際真正用於數據處理的資源會受到較大影響,但總體來說,CPU的速度已經達到一個前所未有的程度。由於其他硬體在數據傳輸方面未能跟上,因此,CPU廠家就在CPU內封裝了快取,其中,一級快取主要將CPU的硬指令長期存儲,以便CPU在調用指令時不必再通過與記憶體交換數據來取得,另外,還將最近處理的進程數據(中間數據)存放在一級快取;而二級快取則是完全存放最近處理的進程數據(中間數據)和即將調用的數據。通過這樣一來設定,就可以避免CPU運算過程中要頻繁與記憶體交換數據,減少CPU的等待時間,提高CPU的利用效率。

相關詞條

相關搜尋

熱門詞條

聯絡我們