摘要:提升處理器時鐘頻率和二級緩存的大小是提升CPU效率的方法。文章在對AMD Athlon 64實際測試的基礎上,概要地從理論上分別闡述了時鐘頻率和二級緩存對CPU效率影響的原理,側(cè)重分析了在不同應用環(huán)境中二級緩存和時鐘頻率的大小對CPU效率產(chǎn)生不同影響的原因,并提出了二級緩存對CPU效率影響的最佳容量的概念,可使大家對CPU的效率有一個更清楚的認識。
關鍵詞:時鐘頻率;二級緩存;CPU效能;IPC;最佳容量
0引言
從Intel和AMD之間的頻率之爭開始,到現(xiàn)在兩家公司都把設計重心轉(zhuǎn)向為以優(yōu)化處理器內(nèi)部架構、提升效率為主,大家都認識到了衡量處理器性能的應該是效率而不是頻率。處理器的頻率的高低并不能代表效率的高低。那么我們?nèi)绾蝸砗饬恳粋€處理器的效率以及研究提升效率的辦法呢?
1影響CPU性能的主要因素-IPC和f
一般我們會用下面這個公式來計算處理器的效率:
效率=執(zhí)行指令的數(shù)量/執(zhí)行時間=IPC*f
這里IPC(Instruction Per Clock)指在一個時鐘周期里執(zhí)行的指令數(shù)量;f指時鐘頻率。
從這個公式中我們很清楚地看到:如果想要獲得較大的CPU效率那就要提高公式中的兩個因子(IPC或f)。經(jīng)驗表明,提高CPU效率最直接的一個辦法是提高處理器的時鐘頻率(f),但是由于現(xiàn)有芯片制造工藝的限制,時鐘頻率提升帶來高功耗、高發(fā)熱量的問題,頻率不可能無限制地提升。這時我們就只有把目光放到公式中的另外一個因子IPC上了。提高IPC的方法有很多,比如優(yōu)化處理器的內(nèi)部架構。但是對CPU制造商來講,改進一種處理器的內(nèi)部架構需要耗費極大的人力、財力,于是本著“少花錢,多辦事”的原則,大家便不約而同地把目光放在了影響IPC的另一個因素-CPU緩存的大小上。
2 CPU的緩存怎樣影響到IPC
緩存的出現(xiàn)主要是為了解決CPU運算速度與內(nèi)存讀寫的速度不匹配的矛盾。因為CPU的運算速度要比內(nèi)存的讀寫速度快很多,這樣會使CPU花費很長的時間等待數(shù)據(jù)的到來或把數(shù)據(jù)寫入內(nèi)存。緩存中的數(shù)據(jù)是內(nèi)存中的一小部分CPU即將訪問的數(shù)據(jù),這時CPU就可以避開內(nèi)存直接從高速緩存中調(diào)用數(shù)據(jù),從而加快讀取的速度和在一個周期內(nèi)執(zhí)行指令的數(shù)量(IPC)。
處理器的內(nèi)部一級緩存(L1)的主要作用正是提供高效的數(shù)據(jù)存儲倉庫。為了及時快速地填滿這些存儲空間,我們還可以為它建立一個專用的倉庫,這正是二級緩存(L2)的主要作用。
由此我們很容易得出一個簡單的結論:這種專用倉庫的容量是越大越好。但是事實上并非如此,因為首先CPU緩存是由靜態(tài)隨機存儲器SRAM構成的,而每個SRAM都是由4-6個晶體管構成,增大緩存的容量同時也意味這CPU晶體管數(shù)目的增加和芯片核心面積的加大,這勢必造成生產(chǎn)成本的增加。同時當處理器執(zhí)行不同任務的時候,所需專用倉庫的最佳容量顯然是不同的。
3實測分析二級緩存與時鐘頻率對CPU效率的影響
為了分別比較增大二級緩存和提升時鐘頻率對CPU效率的影響,我們對AMD Athlon 64 4000+,3700+/3s00+,3200+/300HD+進行了實際的測試。這5款CPU內(nèi)部的架構完全一樣,只是實際頻率和二級緩存的容量不同。其中4000+和3700+為1Mb二級緩存,其余為512Kb二級緩存。
在測試中我們選擇了多種測試軟件,并進行了綜合性能,模擬實際工作情況和運行游戲的測試。為了能更加直觀地顯示測試結果,我們制作了2個統(tǒng)計圖來分析比較綜合性能測試,分別是FutureMark PCMark 2005和SiSoftware Sandra Lite2005的測試結果(如圖1、圖2所示)。
3.1增大二級緩存在不同應用場合中對CPU效能的影響
從測試的結果可以看到在處理數(shù)據(jù)流的情況下,比如視頻、音頻的編碼,多媒體的處理和力公應用中的數(shù)據(jù)處理,或者是模擬科學計算中,大緩存的優(yōu)勢并不明顯。原因也很簡單,這就像工廠生產(chǎn)一種原料單一、工藝過程很簡單的產(chǎn)品,它可以很容易地組織原料的供應和安排生產(chǎn)的進度,而不需要大的倉庫來堆放各種各樣的生產(chǎn)原料。也就是說,在這種情況下CPU能準確地預知下一時刻它需要何種數(shù)據(jù),因而能及時地提前調(diào)用這些數(shù)據(jù)到高速緩存里備用,而不需要大的存儲空間來存放更多的原始數(shù)據(jù)。
如果CPU很難預知下一時刻所要處理的事件,這時大緩存的優(yōu)勢就體現(xiàn)出來了,因為CPU要將更多的原始數(shù)據(jù)放在高速緩存中,以使數(shù)據(jù)的命中率提高。實際表明,在辦公應用、文檔處理和運行游戲的情況下,擁有1024kb二級緩存的AMD Athlon64優(yōu)勢比較明顯。
3.2提升時鐘頻率在不同應用場合中對CPU效能的影響
我們再來看看頻率提升對CPU性能的影響。從上面的統(tǒng)計圖中我們可以看到當增加時鐘頻率后,CPU的性能也都相應地按比例增加。同時我們也可以看到二級緩存容量的增大并沒有給測試結果帶來多大的變化。另外,值得注意的是在測試的CPU當中,實際運行頻率越高,相應的CPU效率也越高,而且每當實際運行頻率有200mHz提高的時候,CPU的效率大概也有5—10%的提升。所以從這個角度來看,增加CPU的實際頻率要比增大緩存容量對CPU的效率影響要大。
4二級緩存和時鐘頻率影響CPU效率的深層原因
實際上,我們在分析二級緩存對CPU效率影響的時候,不得不考慮到一級緩存(L1)的作用。從理論上來講CPU讀取的數(shù)據(jù)中有80%來自于一級緩存,也就是說全部數(shù)據(jù)量的80%都可以在一級緩存中找到,只剩下20%的總數(shù)據(jù)量才需要從二級緩存讀取。但是如果CPU不能準確預測將要執(zhí)行的數(shù)據(jù),這時二級緩存的作用便體現(xiàn)出來了,大容量的二級緩存就能保證更高的數(shù)據(jù)命中率,只有很少的數(shù)據(jù)才需要從內(nèi)存中調(diào)用。但是在實際應用當中,CPU處理的數(shù)據(jù)絕大多數(shù)都是0~128KB大小的數(shù)據(jù),128~256KB的數(shù)據(jù)約有10%,256~512KB的數(shù)據(jù)有5%,512KB一1Mb的數(shù)據(jù)僅有3%左右。很顯然512KB已經(jīng)是CPU二級緩存的最佳容量了。所以當CPU的二級緩存從0KB升到256KB時,對CPU效率的提升非常明顯,但從512KB增加到1MB時,普通的用戶就很難體會到CPU效率的提高了。這個時候,反而是直接增加CPU的時鐘頻率所帶來的效率提升更顯著一點。因此,從測試中我們可以看到把二級緩存從512KB增大到1MB并不能在所有的運用場合中提高CPU的效率,而且與提高CPU的時鐘頻率相比,增大緩存對提高CPU的效率并不是十分明顯。正是因為這個原因,從型號AMDAthlon 64 3200+開始實際頻率每提升200mHz,標稱值就增加300,而在實際運行頻率相同的情況下,增大一倍二級緩存后標稱值卻僅僅提高了200。但是在某些最典型的辦公應用和高端的游戲應用當中,擁有1024kb二級緩存的AMD Athlon64還是具有相當?shù)男阅軆?yōu)勢的。
5結束語
綜上所述,衡量CPU的效率不能只看二級緩存的大小或者是時鐘頻率的高低,必須綜合考慮CPU的內(nèi)部架構,各級緩存的最佳容量以及實際運用的場合。時鐘頻率作為提升CPU效率的“直接推動力”,將會隨著生產(chǎn)工藝的進步而不斷攀升。同時高速緩存作為CPU不可分割的一部分,已經(jīng)融入到CPU效率提升的考慮因素當中??梢灶A見未來的CPU緩存的級數(shù)還將會增加,容量也會進一步提高。作為CPU效率助推器的高速緩存,仍會在成本和功耗控制中發(fā)揮巨大的優(yōu)勢。
(注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文。)