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