學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 電腦硬件知識(shí) > CPU知識(shí) > CPU的性能與什么相關(guān)

CPU的性能與什么相關(guān)

時(shí)間: 沈迪豪908 分享

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à),你也許會(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)的流水線(xiàn)(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)的流水線(xiàn)?這是一個(gè)使人糊涂的答案。更長(zhǎng)的流水線(xiàn)能幫助我們達(dá)到更高的時(shí)鐘頻率嗎?等等,想知道什么是流水線(xiàn)?請(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ě)速度必須非???,否則ALU將等待數(shù)據(jù)輸入或把結(jié)果輸出,這就要求寄存器能夠在一個(gè)時(shí)鐘周期內(nèi)完成讀和寫(xiě)的工作。我們來(lái)看看我們的CPU在每個(gè)時(shí)鐘周期中在做什么?

  每個(gè)微處理器都要使用時(shí)鐘信號(hào),也就是一串電脈沖。在脈沖的下降沿,我們要設(shè)置好寄存器的門(mén)電路(寄存器下方兩側(cè)的小箭頭),換句話(huà)說(shuō),我們要確信來(lái)自L1 Cache中的數(shù)據(jù)(寄存器左邊的箭頭)將被寫(xiě)入到正確的寄存器中。還有,你看到了ALU邊上的4條水平箭頭嗎?它們代表著指令控制線(xiàn),指令將決定ALU做什么樣的運(yùn)算(就這個(gè)CPU而言,我們可以給出24=16條指令)。設(shè)置好所有這些信號(hào)只需花很少的時(shí)間,只是CPU時(shí)鐘周期的一小部分(△Sig)。

  然后,我們要把正確的數(shù)據(jù)通過(guò)總線(xiàn)(寄存器右邊的箭頭)送到ALU。這些數(shù)據(jù)必須通過(guò)總線(xiàn)傳輸,而且也只花費(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ò)總線(xiàn)傳輸,花費(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ù)流傳輸路徑的距離,要努力縮短晶體管本身及它們之間的距離,方法是采用更小的線(xiàn)寬,那就是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é)果嗎?在工廠流水線(xiàn)上工作過(guò)的人都知道,如果一個(gè)工位上只擰1顆螺釘而不是原來(lái)的7顆,速度當(dāng)然快得多,雖然這樣做使得流水線(xiàn)加長(zhǎng)、人員增多,但在速度至上的芯片業(yè)中,這實(shí)在是很劃算的。因此,如果能在每個(gè)時(shí)鐘周期中只做一件事,那么我們就可以把脈沖間隔縮短,工作頻率就能大幅提升。而且,通過(guò)使用流水線(xiàn)技術(shù),使每個(gè)周期都有結(jié)果輸出。

  流水線(xiàn)可以使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í)流水線(xiàn)的CPU呢?實(shí)際上,太長(zhǎng)的流水線(xiàn)會(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í)行。如果流水線(xiàn)更長(zhǎng),造成延遲的后果就會(huì)更嚴(yán)重。而且,加長(zhǎng)流水線(xiàn)并不是得到高時(shí)鐘頻率的唯一方法,你還可以讓更多的工作并行進(jìn)行。

  我們知道K6系列CPU有一條6工位的流水線(xiàn),而PⅡ的流水線(xiàn)的工位有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工位流水線(xiàn),但它是RISC CPU,不需要像PⅡ這么多的解碼工作,在PⅡ中,引入和解碼單元就占了7個(gè)工位,而Ultrasparc Ⅱ只有3個(gè),從這個(gè)意義上講(即只比較RISC核心),Ultrasparc Ⅱ流水線(xiàn)的長(zhǎng)度比PⅡ還要長(zhǎng)。Alpha CPU的流水線(xiàn)有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ù)流水線(xiàn)(FPU流水線(xiàn)有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性能好

2.cpu性能由什么決定

3.什么cpu比較好點(diǎn)

4.cpu性能指標(biāo)有哪些及其概念是什么

5.什么手機(jī)cpu性能最好

6.cpu主要有什么性能指標(biāo)

2018303