二級緩存

二級緩存

臨時存儲器
CPU緩存(Cache Memory)位于CPU與内存之間的臨時存儲器,它的容量比内存小但交換速度快。在緩存中的數據是内存中的一小部分,但這一小部分是短時間内CPU即将訪問的,當CPU調用大量數據時,就可避開内存直接從緩存中調用,從而加快讀取速度。最初緩存隻有一級,二級緩存(L2CACHE)出現是為了協調一級緩存與内存之間的速度。二級緩存比一級緩存速度更慢,容量更大,主要就是做一級緩存和内存之間數據臨時交換的地方用。實際上,現在Intel和AMD處理器在一級緩存的邏輯結構設計上有所不同,所以二級緩存對CPU性能的影響也不盡相同。[1]
    中文名:二級緩存 外文名: 别名: 英文名:Cache Memory 分類:電腦術語

簡介

CPU緩存(Cache Memory)位于CPU與内存之間的臨時存儲器,它的容量比内存小但交換速度快。在緩存中的數據是内存中的一小部分,但這一小部分是短時間内CPU即将訪問的,當CPU調用大量數據時,就可避開内存直接從緩存中調用,從而加快讀取

速度。由此可見,在CPU中加入緩存是一種高效的解決方案,這樣整個内存儲器(緩存+内存)就變成了既有緩存的高速度,又有内存的大容量的存儲系統了。緩存對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可達90%左右),也就是說CPU下一次要讀取的數據90%都在緩存中,隻有大約10%需要從内存讀取。這大大節省了CPU直接讀取内存的時間,也使CPU讀取數據時基本無需等待。總的來說,CPU讀取數據的順序是先緩存後内存。

發展

最早先的CPU緩存是個整體的,而且容量很低,英特爾公司從P

entium時代開始把緩存進行了分類。當時集成在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面積上集成更大的緩存,對制造工藝的要求也就越高。

雙核心CPU二級緩存

雙核心CPU的二級緩存比較特殊,和以前的單核心CPU相比,最重要的就是兩個内核的緩存所保存的數據要保持一緻,否則就會出現錯誤,為了解決這個問題不同的CPU使用了不同的辦法:

Intel雙核心處理器的二級緩存

目前Intel的雙核心CPU主要有Pentium D、Pentium EE、Core Duo三種,其中Pentium D、Pentium EE的二級緩存方式完全相同。Pentium D和Pentium EE的二級緩存都是CPU内部兩個内核具有互相獨立的二級緩存,其中,8xx系列的Smithfield核心CPU為每核心1MB,而9xx系列的Presler核心CPU為每核心2MB。這種CPU内部的兩個内核之間的緩存數據同步是依靠位于主闆北橋芯片上的仲裁單元通過前端總線在兩個核心之間傳輸來實現的,所以其數據延遲問題比較嚴重,性能并不盡如人意。

Core Duo使用的核心為Yonah,它的二級緩存則是兩個核心共享2MB的二級緩存,共享式的二級緩存配合Intel的“Smart cache”共享緩存技術,實現了真正意義上的緩存數據同步,大幅度降低了數據延遲,減少了對前端總線的占用,性能表現不錯,是目前雙核心處理器上最先進的二級緩存架構。今後Intel的雙核心處理器的二級緩存都會采用這種兩個内核共享二級緩存的“Smart cache”共享緩存技術。

AMD雙核心處理器的二級緩存

Athlon 64 X2 CPU的核心主要有Manchester和Toledo兩種,他們的二級緩存都是CPU内部兩個内核具有互相獨立的二級緩存,其中,Manchester核心為每核心512KB,而Toledo核心為每核心1MB。

處理器内部的兩個内核之間的緩存數據同步是依靠CPU内置的System Request Interface(系統請求接口,SRI)控制,傳輸在CPU内部即可實現。這樣一來,不但CPU資源占用很小,而且不必占用内存總線資源,數據延遲也比Intel的Smithfield核心和Presler核心大為減少,協作效率明顯勝過這兩種核心。不過,由于這種方式仍然是兩個内核的緩存相互獨立,從架構上來看也明顯不如以Yonah核心為代表的Intel的共享緩存技術Smart Cache。

相關詞條

相關搜索

其它詞條