CPU的性能與什么相關(guān)
CPU的性能與什么相關(guān)
大家都知道cpu性能很重要,但是你知道CPU的性能與什么有關(guān)?下面是學(xué)習(xí)啦小編收集整理關(guān)于CPU的性能的資料以供大家參考學(xué)習(xí),希望大家喜歡。
CPU的性能與什么有關(guān)
你是不是對(duì)Alpha CPU能夠達(dá)到非常高的時(shí)鐘頻率感到驚奇?為什么Intel采用P6核心的CPU速度可以達(dá)到800MHz,但K6核心的CPU卻很難達(dá)到這個(gè)速度?為什么AMD聲稱(chēng)K7能夠在更高時(shí)鐘頻率下工作?想知道答案嗎?請(qǐng)看下文??
一、大不相同的CPU
如果你平時(shí)很關(guān)注CPU的話,你也許會(huì)發(fā)現(xiàn)一個(gè)非常有趣的情況:當(dāng)AMD CPU還在450MHz、Intel CPU在500MHz時(shí),Alpha CPU已經(jīng)達(dá)到了700MHz。如果你還知道Alpha 533~600MHz CPU使用的竟然是0.35μm工藝時(shí),那就更顯得與眾不同了。AMD和Cyrix在使用0.35μm工藝時(shí),絞盡腦汁也沒(méi)有將它們的CPU速度提高到233MHz以上!
有人說(shuō),如果要使CPU達(dá)到高時(shí)鐘頻率,主要因素有以下三個(gè)方面:
1.更好的制造能力;
2.很小的芯片面積(Die Size)和更低的功率消耗;
3.更長(zhǎng)的流水線(Pipelines)。
事實(shí)是這樣的嗎?讓我們還是先來(lái)看看表1中的這些CPU。
產(chǎn)品發(fā)表時(shí)間工藝(μm)芯片面積(mm2)最高頻率(MHz)
Intel PⅡ19970.35203300
AMD K619970.35168233
Sun Ut pare IIi19980.35156360
DEC Alpha 21164a19970.35209600
DEC Alpha 2116419980.25302667
HP PJA-RISC 820019970.5345220
你可以看到,先進(jìn)的制造技術(shù)并不能使Intel CPU的時(shí)鐘頻率運(yùn)行得比Alpha CPU高。實(shí)際上,DEC還有幾次請(qǐng)Intel替過(guò)工,因?yàn)镮ntel的工藝更好。
更小的芯片面積?Alpha和HP的芯片面積更大!因此,那也不是理由。IDT winchip的芯片面積是很小的,而且AMD CPU的芯片面積總是比Intel同級(jí)的CPU小,但它們卻不能在時(shí)鐘頻率上領(lǐng)先Intel。
更長(zhǎng)的流水線?這是一個(gè)使人糊涂的答案。更長(zhǎng)的流水線能幫助我們達(dá)到更高的時(shí)鐘頻率嗎?等等,想知道什么是流水線?請(qǐng)繼續(xù)往下讀。
二、你自己的CPU
為了把問(wèn)題說(shuō)清楚,我們先來(lái)設(shè)計(jì)一個(gè)微處理器。首先,你必須知道,微處理器中最重要的地方是ALU (Arithmetic Logical Unit,算術(shù)邏輯單元),它是CPU真正處理數(shù)據(jù)的地方。ALU使用的數(shù)據(jù)來(lái)自寄存器(Register),它讀取寄存器中的數(shù)據(jù)并進(jìn)行一些計(jì)算(如對(duì)兩個(gè)數(shù)據(jù)相加、加1、對(duì)兩個(gè)數(shù)據(jù)進(jìn)行邏輯或運(yùn)算等等),然后把計(jì)算結(jié)果返回到寄存器中,最后再把寄存器中的結(jié)果返回到主內(nèi)存中(通過(guò)Cache)。寄存器的讀寫(xiě)速度必須非??欤駝tALU將等待數(shù)據(jù)輸入或把結(jié)果輸出,這就要求寄存器能夠在一個(gè)時(shí)鐘周期內(nèi)完成讀和寫(xiě)的工作。我們來(lái)看看我們的CPU在每個(gè)時(shí)鐘周期中在做什么?
每個(gè)微處理器都要使用時(shí)鐘信號(hào),也就是一串電脈沖。在脈沖的下降沿,我們要設(shè)置好寄存器的門(mén)電路(寄存器下方兩側(cè)的小箭頭),換句話說(shuō),我們要確信來(lái)自L1 Cache中的數(shù)據(jù)(寄存器左邊的箭頭)將被寫(xiě)入到正確的寄存器中。還有,你看到了ALU邊上的4條水平箭頭嗎?它們代表著指令控制線,指令將決定ALU做什么樣的運(yùn)算(就這個(gè)CPU而言,我們可以給出24=16條指令)。設(shè)置好所有這些信號(hào)只需花很少的時(shí)間,只是CPU時(shí)鐘周期的一小部分(△Sig)。
然后,我們要把正確的數(shù)據(jù)通過(guò)總線(寄存器右邊的箭頭)送到ALU。這些數(shù)據(jù)必須通過(guò)總線傳輸,而且也只花費(fèi)很少一點(diǎn)時(shí)間,因?yàn)樵贏LU運(yùn)算前,數(shù)據(jù)信號(hào)還有一個(gè)穩(wěn)定期(△B)。一旦這些步驟完成后,ALU就開(kāi)始工作。當(dāng)計(jì)算任務(wù)結(jié)束后(△ALU),運(yùn)算結(jié)果必須又通過(guò)總線傳輸,花費(fèi)的時(shí)間段為△R。最后,寄存器將在下一個(gè)脈沖周期的上升沿裝入新的計(jì)算結(jié)果。
這就是ALU在一個(gè)時(shí)鐘周期中能夠從寄存器中輸入數(shù)據(jù)并輸出數(shù)據(jù)到寄存器的方法。
三、提高CPU速度的方法
還是回到我們的主題上吧:我們?cè)鯓荧@得快如閃電的高速呢?很明顯,高時(shí)鐘速度意味著兩個(gè)脈沖之間的時(shí)間間隔必須盡可能地短,但我們不能使時(shí)鐘周期比△Sig+△B+△ALU+△R的和小(否則我們?cè)诎呀Y(jié)果送到寄存器之前就裝入了新的數(shù)據(jù),那肯定會(huì)錯(cuò)得一塌糊涂)。下面是三個(gè)可能的解決方案:
1讓數(shù)據(jù)傳輸更快;2讓ALU計(jì)算速度更快;3減少在一個(gè)時(shí)鐘周期中的工作量。
1.更快的傳輸速度
讓數(shù)據(jù)快速傳輸不是件容易的事,在電信號(hào)的傳輸過(guò)程中要盡可能減少傳送障礙,這就依賴(lài)于芯片制造廠所使用的技術(shù)和硅片工作溫度。例如,Intel有非常好的制造技術(shù),它的大部分CPU都可以運(yùn)行在450MHz下。硅片的工作溫度也會(huì)影響到傳輸速度,硅片中的原子有一個(gè)確定的位置,它們?cè)谶@個(gè)位置附近振蕩。當(dāng)芯片溫度上升的時(shí)候,原子的振蕩加劇并使電子有機(jī)會(huì)脫離它原有的理想路徑(即電子熱漂移)。如果你能使溫度降下來(lái),電子(數(shù)據(jù)流)將傳輸?shù)酶交?。這就是為什么經(jīng)特殊冷凍散熱技術(shù)的CPU可以跑得更快的原因(最近Intel使它的CPU跑到了1000MHz)。
接下來(lái)還要縮短數(shù)據(jù)流傳輸路徑的距離,要努力縮短晶體管本身及它們之間的距離,方法是采用更小的線寬,那就是AMD和Intel制造600MHz CPU的前提,它們將使用更小的0.18μm工藝來(lái)取代0.25μm工藝。
2.更快的計(jì)算速度
如果ALU可以并行工作,那么速度就會(huì)提高。因此加上一個(gè)復(fù)雜的附加電路單元可以使ALU運(yùn)算得更快,使△ALU時(shí)間減少。不過(guò)有得必有失,復(fù)雜附加電路單元的加入會(huì)使芯片體積加大。
3.在一個(gè)時(shí)鐘周期中做更少的工作
舉個(gè)例來(lái)說(shuō),我們可以在一個(gè)時(shí)鐘周期里做1步的工作而不是原來(lái)的7步。也許有人問(wèn):這不是把原來(lái)的時(shí)間延長(zhǎng)了7倍后才能得到結(jié)果嗎?在工廠流水線上工作過(guò)的人都知道,如果一個(gè)工位上只擰1顆螺釘而不是原來(lái)的7顆,速度當(dāng)然快得多,雖然這樣做使得流水線加長(zhǎng)、人員增多,但在速度至上的芯片業(yè)中,這實(shí)在是很劃算的。因此,如果能在每個(gè)時(shí)鐘周期中只做一件事,那么我們就可以把脈沖間隔縮短,工作頻率就能大幅提升。而且,通過(guò)使用流水線技術(shù),使每個(gè)周期都有結(jié)果輸出。
流水線可以使CPU中的每個(gè)單元在每個(gè)時(shí)鐘周期中同時(shí)工作。以我們的CPU為例,它有4個(gè)主要的單元:
引入單元(Fetcher),它負(fù)責(zé)查詢(xún)下一條指令;
解碼單元(Decoder),它搞清指令的含義;
ALU,執(zhí)行指令;
引出單元(Retire),它將結(jié)果寫(xiě)回到存儲(chǔ)器中。
從表2中可以看到,在同一時(shí)鐘周期中,引入單元引入指令4時(shí),解碼單元在對(duì)指令3解碼,ALU執(zhí)行指令2,而指令1的結(jié)果由引出單元寫(xiě)到存儲(chǔ)器中。也就是說(shuō),從第四個(gè)時(shí)鐘周期開(kāi)始,每個(gè)時(shí)鐘周期都有指令任務(wù)完成。從外面來(lái)看,CPU可以在每個(gè)時(shí)鐘周期完成一個(gè)指令,當(dāng)我們?cè)谝粋€(gè)時(shí)鐘周期中做的事越少,時(shí)鐘速度就能更高。
時(shí)鐘周期引入解碼執(zhí)行引出
1指令1
2指令2指令1
3指令3指令2指令1
4指令4指令3指令2指令1
5指令5指令4指令3指令2
6指令6指令5指令4指令3
7指令7指令6指令5指令4
8指令8指令7指令6指令5
9指令9指令8指令7指令6
也許你會(huì)問(wèn),為什么不造一個(gè)具有20個(gè)工位或更長(zhǎng)的超級(jí)流水線的CPU呢?實(shí)際上,太長(zhǎng)的流水線會(huì)加大出現(xiàn)停頓的可能性。我們假設(shè)指令2由B=A+1組成,指令1由A=C×2組成。如果計(jì)算A要花20個(gè)周期,指令2就不能立即開(kāi)始執(zhí)行,因?yàn)橹噶?需要指令1的計(jì)算結(jié)果,這將使指令2要在二十幾個(gè)時(shí)鐘周期后才能開(kāi)始執(zhí)行。如果流水線更長(zhǎng),造成延遲的后果就會(huì)更嚴(yán)重。而且,加長(zhǎng)流水線并不是得到高時(shí)鐘頻率的唯一方法,你還可以讓更多的工作并行進(jìn)行。
我們知道K6系列CPU有一條6工位的流水線,而PⅡ的流水線的工位有12個(gè)!盡管K6有一個(gè)更好的ALU(它的△ALU時(shí)間更短)和更好的解碼器(并行工作更多),但在使用同樣的制造工藝下,K6-3要達(dá)到PⅡ同樣的時(shí)鐘速度則更困難一些。0.35μm的K6的最高時(shí)鐘頻率為233MHz,而同時(shí),0.35μm的PⅡ的最高時(shí)鐘頻率為300MHz。
Ultrasparc Ⅱ CPU使用了9工位流水線,但它是RISC CPU,不需要像PⅡ這么多的解碼工作,在PⅡ中,引入和解碼單元就占了7個(gè)工位,而Ultrasparc Ⅱ只有3個(gè),從這個(gè)意義上講(即只比較RISC核心),Ultrasparc Ⅱ流水線的長(zhǎng)度比PⅡ還要長(zhǎng)。Alpha CPU的流水線有7個(gè)工位(FPU有10個(gè)),但同PⅡ比較仍然具有很少的解碼指令。Alpha的工程師很精通于讓每個(gè)工位盡可能地簡(jiǎn)單,每個(gè)部分盡可能多地并行工作。但它也帶來(lái)了價(jià)格上的問(wèn)題:芯片面積太大!
在每個(gè)時(shí)鐘周期中,K7的FPU比K6-2的FPU做的工作要少,因而K7有可能達(dá)到更高的時(shí)鐘頻率。10工位的整數(shù)流水線(FPU流水線有15個(gè)工位)將讓K7的時(shí)鐘速度達(dá)到K6核心從未達(dá)到的速度。Cyrix也在對(duì)它的Jalapeno (M7?)做同樣的改進(jìn)。
當(dāng)然,時(shí)鐘速度高并不是決定CPU高性能的唯一因素,我們下次再來(lái)討論這個(gè)問(wèn)題。
CPU的性能與什么相關(guān)相關(guān)文章:
1.什么cpu性能好