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