CPU

熱心網友

流水線(pipeline)是 Intel首次在486芯片中開始使用的。流水線的工作方式就象工業生產上的裝配流水線。在CPU中由5~6個不同功能的電路單元組成一條指令處理流水線,然后將一條X86指令分成5~6步后再由這些電路單元分別執行,這樣就能實現在一個CPU時鐘周期完成一條指令,因此提高了CPU的運算速度。超流水線是指某型 CPU內部的流水線超過通常的5~6步以上,例如Pentium pro的流水線就長達14步。將流水線設計的步(級)數越多,其完成一條指令的速度越快,因此才能適應工作主頻更高的CPU。 如今Intel每次發布新處理器產品的時候,我們都有必要對處理器流水線的問題加以說明,以解釋為什么3GHz的P4會在性能上和2GHz的Athlon差不多。Prescott的流水線管長度比Northwood長了近55%,這讓我們老調重彈。   處理器的流水線好比汽車生產車間里的裝配線。但CPU的流水線并不是物理意義上的,數據也并不是從一端進入,另一端輸出。實際上它是一個指令處理的步驟集合,每一條指令必須經過相同的步驟,我們把它們稱為級數。流水線的級數給指令指明方向,告訴它們下面是進行加操作,還是存儲數據,并且給出地址。   最基本的CPU流水線分成5級,如果將每一步細化便可以擴展到10級。流水線必須實現相同的目標:引入指令,輸出結果,但級數的不同會讓效率發生變化。5級流水線每一步花費的工作量要比十級流水線更大。如果其他保持不變,那么我會選擇5級流水線,因為實現5級數據處理更加容易,如果每一級不能保持全速運算,那CPU的效率會大大下降。   選擇更多流水線的理由是,如果每一級的處理過程更簡單,那處理的速度會加快。最復雜的那一級會是整個運算中最慢的一環,它將決定整體的運行速度。   如果我們假設5級流水線的每一級都要花費1ns來完成,每一級運算的周期為一個時鐘頻率,那么我們得到了1GHz的處理速度。當我們增加線管級數時,這時很難保證每一級都全速運行,我們必須通過縮短每一級運算的周期來進行彌補。慶幸的是,由于每個時鐘頻率的工作量減少了,我們能有效縮短周期,在后者的設計中,時鐘周期可以縮短到0。5ns。   十級流水線實現了2GHz的運行頻率,它是前者運行頻率的兩倍。如果我們假定每一級流水線都全速工作,那么它的性能也將是前者的兩倍。但現實是,流水線不可能每刻都處于滿負荷狀態,因此市場上的2GHz CPU不可能有1GHz CPU兩倍的性能。 幾年前,1。4和1。5GHz Pentium 4處理器將流水線有PIII的10級提高到了20級,令人難堪的是,1。5GHz Pentium 4在性能上不能完勝1 GHz Pentium III,有些應用中甚至不如后者。直到今天,你依然不能簡單的認為Pentium 4 2。4C的性能會超出PentiumIII 1GHz兩倍之多,我們前面的論述已經給出的一定的解釋。   0。13微米制程的Northwood核心的最高頻率是3。6 - 3。8GHz。當轉入90nm制造工藝后,Prescott的功耗將降低,同時核心頻率也會更高,但這一切只是Intel的一廂情愿。當Intel轉向90nm制程時,他們將Prescott的微架構也進行了改動,將它的整數流水線增加到了31級。考慮到最初的流水線解碼級數,這樣整個流水線管長度甚至會超出31級。   增加流水線線管的直接好處是:提升運行頻率。在一年前的IDF論壇上,Intel曾指出Prescott的頻率可以上到4GHz-5GHz,如今Prescott越來越長流水線管正給出了最好的注解。   線管長度的增加向Intel提出了挑戰,Prescott在每個時鐘頻率上的運行效率肯定會比Northwood慢。要指出的是,一直到Pentium 4的頻率提升至2。4GHz,Intel才在性能上趕上了流水線管更短的Athlon XP。現在Intel又一次面對壓力,如果3。4GHz Prescott性能趕不上2。4GHz Northwood,Pentium 4的招牌會再一次黯然失色。   下面介紹的幾項技術改進讓Prescott在性能上至少不輸于同頻Northwood,如果不是這樣,Prescott恐怕會提前為Pentium 4劃上句號。   增加Prescott的流水線長度并不是一個容易下的決定,但是Intel的工程師覺得值得這么做。GPU的設計目前主要用硬件編譯語言完成,而CPU幾乎要靠手工設計。這解釋了為什么區區幾十級線管的P4能運行在GHz級別,而Radeon 9800 Pro只能運行在幾百MHZ。如果花六個月周期象設計GPU那樣來設計CPU,這幾乎是不可能完成的任務。。

熱心網友

流水線就像工廠的生產線。CPU的一個任務,或者說指令,被分為很多個步驟完成,就跟生產線上裝配汽車,分成若干個零件依次安裝。而CPU的主頻相當于流水線工作的統一節奏。你可以想象成主頻就是干活時候喊的號子,大家都跟著號子一步一步的干活。Intel:流水線較少,但是每條流水線的長度很長。可以想象成,Intel有較少的生產線,而每個生產線上把裝配一輛汽車分成了較多的步驟,所以生產線很長。這樣的有點是,生產線上的每個步驟需要完成的任務相對較少,這樣,工作的節奏很容易加快,也就是號子喊的可以快一些,所以Intel的P4主頻提高非常迅速。這種架構的缺點是,因為流水線太長,如果中間有一步發生錯誤,只有到最后一個工序才能發現。雖然這種錯誤幾率很小很小,但是不可避免,而且會被非常高的主頻放大無數倍,帶來的影響就是工作效率并沒有隨著節奏的加快而明顯提升,也就是Intel“高頻低能”的原因之一。Intel的Pentium M系列就沒有采用這種架構模式,而是采用類似AMD的短管線多管線模式。AMD:擁有較多的流水線,就是說,生產線較多,但是每條生產線的長度較短。帶來的影響是,在短生產線上裝備一輛汽車的話,每個工序需要干的活比較多,所以大家工作的節奏就不能太快。所以AMD的主頻提高非常困難。可是AMD較多的流水線同樣保證了指令執行數量,也就是裝配汽車的數量,效率較高。短的流水線受工序錯誤的影響也很低,因為流水線短,發現錯誤會更及時。主頻低,錯誤率被放大的也小。一些數據:Intel:五條流水線,每個流水線20步(二十個工序),prescott更是達到了每條流水線30步。AMD:K7 九條流水線,每條流水線11步。K8的情況還不知道,但是肯定是短流水線架構。其實Intel和AMD只是走了兩條不同的提高CPU性能的路而已。我的高主頻模式也能解決問題,你的低主頻模式也能解決問題罷了。如果不是Intel以往的主頻代表性能宣傳過分了,大家也不會說他高頻低能,只是看你喜歡那種模式的解決方案罷了。

熱心網友

樓上可真水,這是系統結構的概念。我來簡化一下上面的回答:每個程序是很多指令組成,每道指令是很多微指令組成,存儲在微指令存儲器中,流水線是多個執行部件,分工執行這些微指令,注意這些微指令未必是屬于同一條指令,以此來加快運行速度。其中,還涉及調度、循環、延時等等問題,見過程序流程圖嗎?和那個差不多。還是去查查資料吧。你學什么的,要研究這玩意?