智能鉆石俠需多大緩存?緩存前世今生
泡泡網CPU頻道8月4日 由于超頻的平民化,目前不少網友在選擇處理器時已經不再像以前那樣看中處理器的默認主頻了,“反正可以超上去的嘛”,而且由于睿頻智能加速和Turbo Core技術的逐漸成熟,CPU的主頻不再是一成不變的了。

CPU究竟需要多大緩存?
對處理器性能影響較大的另外一個因素是處理器的架構。由于處理器的架構更新較多的依賴技術進步,并且處理器的架構更新意味著產品線的變更、生產線的變動,這些都增加了處理器廠商的成本,而且企業不像某些組織可以宣稱自己不是以營利為目的的,廠商也要追求上代產品的利潤最大化,因此即便是處理器架構更新較頻繁的Intel也只是隔一年推出一個新架構,所以近期對處理器來說,一個關注的焦點開始落到了緩存容量上。
大緩存對于大會戰作用很大
在對近期上市的《星際爭霸Ⅱ》的相關測試中,我們可以看到,具有大容量緩存的CPU在面對大規模的會戰的時候,更能保證游戲的流暢性,那么究竟CPU的緩存經過了怎樣的發展變化呢?下面我們就一起回顧一下。
CPU緩存(Cache Memory)是位于CPU與內存之間的規模較小的但速度很高的臨時存儲器,它通常由SRAM(靜態隨機存儲器)組成。用來存放那些被CPU頻繁使用的數據,以便使CPU不必依賴于速度較慢的DRAM(動態隨機存儲器)。不過限于它的昂貴成本,一般容量比內存要小。
SRAM結構簡圖
緩存的設計思路是用少量的速度較快的SRAM作為CPU與DRAM存儲系統之間的緩沖區,起初是在芯片的外部,到了80486時期,這部分SRAM被集成到了芯片內,因此又叫片內Cache。
DRAM結構簡圖
片內Cache即是今天的一級緩存,這部分緩存的容量是很少的,486芯片內只有8KB,到了奔騰高檔芯片就升級到了16KB,Power PC可達32KB。后來Pentium微處理器改進片內Cache,采用數據和雙通道Cache技術非常靈活、方便,極大地提高了微處理器的性能。
可以說現在處理器廠商對產品的檔次劃分有著深入的研究,不只是可以按主頻的高低劃分,還可以按照緩存量的不同而區分開來,而且即使兩款處理器的其他參數完全一致,只緩存量略有出入,那么這兩款處理器的售價可以相差很多。

CPU的緩存量不同價格相差很大
緩存的容量目前一般都以MB計量,不同的處理器型號緩存量差別不小,有的擁有1MB二級緩存,而有些則可以高達12MB,而售價卻差了好幾倍,最高可以差十幾倍,那么緩存對處理器的售價影響可見一斑,同時也說明緩存對處理器的性能影響很大。

緩存存儲著CPU需要的數據
緩存的工作原理是當CPU要讀取一個數據時,首先會從緩存中查找,如果找到就立即讀取并送給CPU處理;如果沒有找到,就從速度相對慢得多的內存中讀取并送給CPU處理,同時把這個數據所在的數據塊調入緩存中,可以使得以后對整塊數據的讀取都從緩存中進行,不必再調用內存。有此可見緩存對處理器的性能有著重大的影響。
一般AMD的處理器相比Intel擁有更少的緩存,比如速龍64 X2 5000+緩存量為2X128KB+2X512KB=1.256MB,而定位在同檔次的Intel奔騰E5200的緩存量只二級緩存就達到了2MB,目前廣為人知的Intel的處理器性能相對更依賴緩存,1MB二級緩存的處理器要比同樣架構的、具有2MB二級緩存的處理器性能差很多。
Intel處理器比較依賴緩存
為什么Intel的處理器更依賴緩存呢?這主要在于Intel與AMD的緩存邏輯結構設計有關。一般CPU讀取的數據(包括指令)中有80%來自一級緩存,對于AMD來說一、二、三級緩存都是用來存儲CPU將要處理器的數據的,因此在一級緩存中未找到(命中)的數據可以去二級緩存,甚至三級緩存里去找,而Intel的結構不是這樣的。
Intel一級緩存采用“數據代碼指令追蹤緩存”架構
Intel的一級緩存采用“數據代碼指令追蹤緩存”架構,這種架構并不是直接存儲CPU可以直接用的數據,而且存儲該部分數據的地址(可以理解為目錄),而這部分數據則被存儲在二級緩存甚至三級緩存里,這樣CPU可以根據一級緩存的“目錄”來在緩存里面快速找到所需要的數據,因此理論上講對于Intel處理器二級緩存和三級緩存容量越大越好。
一般CPU中的一級緩存容量都很少,即使是售價高昂的六核酷睿i7-980X,一級緩存也只有2X 6X32KB=384KB,還不到512KB,既然都是最高端的旗艦了,那么為什么CPU廠商不多給這些CPU多設計些一級緩存呢?
酷睿i7-980X具有384KB一級緩存
前面也提到了一級緩存是集成在芯片內部的,因此就要占用一定的晶體管,這對于核心面積有限的處理器來說更多的緩存意味著要提供更多的地方來添加這些晶體管,其次更重要的是一級緩存的速度極快(達幾十GB/S,二級緩存一般為幾GB/S,一級緩存比二級緩存要快一個數量級)所以售價很昂貴,這就極大的限制了它的容量,最后緩存是處理器中的發熱大戶,設計太大容量所帶來的發熱量是很“可觀”的。

CPU緩存分級類似于ADSP-BF561的結構
那么如何應對這種情況呢?CPU廠商想出的一個辦法就是給緩存分級,也就是引入二級緩存,通俗來講,二級緩存即便是一級緩存的緩沖,主要用來存儲那些CPU處理時用到的、一級緩存無法存儲的數據(三級緩存相對二級緩存也類似),這樣采用緩存分級可以很好的解決延時問題而且效果不亞于增加一級緩存容量,成本也比較低。
酷睿2系列處理器的二級緩存容量從1MB到2MB、3MB、4MB再到6MB、8MB、12MB可以說讓人眼花繚亂,那么為何二級緩存到了12MB就沒有再增加了呢?
賽揚E3200具有1MB二級緩存
首先二級緩存屬于SRAM(靜態RAM),成本雖然相比一級緩存有所降低,但仍然意味著較大的成本,其次SRAM雖然有著相比DRAM更高的性能但是卻有它的缺點即集成度不如后者高,換句話說相同容量的DRAM內存可以設計得體積較小,而SRAM就需要很大的體積,這對于空間“寸土寸金、房價高昂”的CPU來說,顯然不能設計太大容量,最后前面已經提到了給緩存分級,采用多級組織可以有效降低延時,提高cache的命中率。
酷睿2 QX9650具有12MB二級緩存
二級緩存在達到了讓網友驚訝的12MB后就沒有再有增加,而且在增加L3緩存后容量有所降低,但是處理器的性能非但沒有降低,反而有了更大的提升,那么這又是怎么一回事呢?
三級緩存可以看做是二級緩存的緩沖器,使用較快速的儲存裝置直接從較慢的內存中讀取數據并進行拷貝,這對于有效得降低內存的延遲大有好處。

粉紅色部分即為三級緩存
其實最早的L3緩存被應用在AMD發布的K6-III處理器上,當時的L3緩存受限于制造工藝,并沒有被集成進芯片內部,而是集成在主板上。在只能夠和系統總線頻率同步的L3緩存同主內存其實差不了多少。后來使用L3緩存的是英特爾為服務器市場所推出的Itanium處理器,接著就是P4EE和至強MP。

酷睿i7二級緩存核心獨享
不過為什么酷睿i7的二級緩存反而隨著三級緩存的采用而減少了呢?仔細觀察酷睿i系列處理器的架構即可發現酷睿i7處理器的二級緩存不再是采用酷睿2處理器的共享設計,而是每顆核心具有自己獨立的二級緩存,這樣就沒有必要設計那么大容量的公用資源區了,而這一任務則交給了高達12MB的三級緩存,而且三級緩存和內存一樣,容量越大,成本越低,這樣將公用數據資源的任務交給L3緩存不僅同樣解決了延時,同時也有效降低了成本。
在Intel的酷睿i系列處理器中,三級緩存容量繼續延續了酷睿2時代L2緩存容量“百花齊放”的局面。

酷睿i3處理器具有4MB L3緩存
酷睿i3-530具有4MB三級緩存,酷睿i5-750具備8MB三級緩存,酷睿i7-980X具有12MB三級緩存,三級緩存容量隨核心數的增加而增加,可以簡單理解為,越多的核心可以應對更大的數據量處理,因此更大的三級緩存就很有必要了。
酷睿i5-760具有8MB三級緩存
那么三級緩存對處理器的性能影響到底有多大呢?實際上三級緩存的速度相比二級緩存要慢很多,但是三級緩存對于大數據量處理的貢獻是很大的,尤其是在一些較依賴緩存、運算量較大的游戲中如《英雄連》表現明顯,而且三級緩存在服務器處理器中的作用也更為明顯。
一般來講,緩存容量越大對處理器的性能提升越好,但是除了前面所說的成本、發熱量限制等因素外,緩存容量并不能純粹的保持越大越好。
未來會否有四級緩存?
在實際應用中,CPU處理的數據中大多數都是0KB~128KB大小的數據,128KB~256KB的數據約有10%,256KB~512KB的數據有5%,512KB~1MB的數據僅有3%左右。因此這對于CPU來說,二級緩存容量從0KB增加到256KB對CPU性能的提高幾乎是直線性的;增加到512KB對CPU性能的提高就要小一些;而從512KB增加到1MB,大多數情況下普通用戶就很難體會到CPU性能有多大提高了。
AMD羿龍II X6 1090T具有6MB三級緩存
而且經過實際測試,桌面級處理器的三級緩存從2MB增加到6MB只帶來大約5%的性能提升,再增加帶來的性能提升就更不明顯了,這從在多數測試中酷睿i3-530處理器都性能直追酷睿i5-750上可以看出來,而且相比羿龍II四核處理器,AMD羿龍II六核處理器似乎只是增加了1MB的二級緩存,三級緩存容量仍然保持在了6MB,這樣合理的控制緩存容量,不僅沒有降低多少處理器的性能,還能更好的控制處理器的成本,這對于應對競爭激烈的最高形式——價格戰是非常有利的。
● 總結
處理器的制造工藝不斷進步,處理器架構也不斷更新,緩存在處理器中將會有何種形式的調整恐怕只有兩大處理器巨頭的技術工程師知道了,不過緩存作為CPU和內存間的緩沖器的作用在內存的速度趕上處理器速度之前是很難發生改變的。■<
關注我們


