Prescott核心的Pentium 4處理器系列上市之初就受到了各方的質疑,因為相比上一代Northwood核心Pentium 4處理器的20級流水線,新Pentium 4處理器的流水線達到了創記錄的31級!究竟什么是流水線,為什么新Pentium 4處理器會采用超長流水線,它有什么樣的負面影響呢?
一、我們為什么需要流水線?
借鑒了工業流水線制造的思想,現代CPU也采用了流水線設計。在工業制造中采用流水線可以提高單位時間的生產量;同樣在CPU中采用流水線設計也有助于提高CPU的頻率。先讓我們以汽車裝配為例來解釋流水線的工作方式。假設裝配一輛汽車需要4個步驟:1.沖壓:制作車身外殼和底盤等部件,2.焊接:將沖壓成形后的各部件焊接成車身,3.涂裝:將車身等主要部件清洗、化學處理、打磨、噴漆和烘干,4.總裝:將各部件(包括發動機和向外采購的零部件)組裝成車;同時對應地需要沖壓、焊接、涂裝和總裝四個工人。如果不采用流水線,那么第一輛汽車依次經過上述四個步驟裝配完成之后,下一輛汽車才開始進行裝配,最早期的工業制造就是采用的這種原始的方式。
不久之后大家就發現,某個時段中一輛汽車在進行裝配時,其它三個工人處于閑置狀態,顯然這是對資源的極大浪費!于是大家開始思考能有效利用資源的方法:有什么辦法讓四個工人一起工作呢?那就是流水線!在第一輛汽車經過沖壓進入焊接工序的時候,立刻開始進行第二輛汽車的沖壓,而不是等到第一輛汽車經過全部四個工序后才開始。之后的每一輛汽車都是在前一輛沖壓完畢后立刻進入沖壓工序,這樣在后續生產中就能夠保證四個工人一直處于運行狀態,不會造成人員的閑置。這樣的生產方式就好似流水川流不息,因此被稱為流水線。
CPU的工作我們也可以大致分為指令的獲取、解碼、運算和結果的寫入四個步驟,采用流水線設計之后,指令(好比待裝配的汽車)就可以連續不斷地進行處理。在同一個較長的時間段內,顯然擁有流水線設計的CPU能夠處理更多的指令。
二、為什么要加長流水線?
Intel和AMD在桌面CPU市場上的激烈競爭,使雙方都千方百計地拿出更強大產品來壓制對方,而最引人矚目的就是CPU的頻率之爭。隨著CPU頻率不斷地攀升,Intel總是在自己某個核心的處理器到達極限之時采用新的、更長流水線的核心來消除頻率的瓶頸。那么流水線和頻率之間有什么關系呢?
還是以上面的例子來說明。假如沖壓、焊接、涂裝和總裝四個過程各自需要1個小時,現在我們把這四個工序細化:沖壓分為沖壓1(外殼)和沖壓2(底盤)兩個子工序,另外三個工序同樣各自分成兩個子工序,一共八個子工序。這樣一來,完成每個子工序平均只需要半個小時,因此每隔半個小時就有一輛汽車完成裝配,下線速度提高了一倍!如果再進一步細化,一分為二,那么完成每個工序平均只需要15分鐘,即每隔15分鐘就有一輛汽車下線,速度又提高了一倍(單輛汽車的生產時間仍是4個小時,但是兩輛汽車的生產間隙更小了)。所以工序分得越細,單位時間內(例如8個小時)生產的汽車就越多。
正是這樣,CPU廠商才試圖不斷加長流水線,以利于頻率的提升。那么為什么Prescott核心的處理器才31級流水線,流水線級數能不能無限增長呢?
三、長流水線帶來的問題
首先,由于現有芯片制造工藝的限制,頻率的提升帶來高功耗、高發熱量的問題。盡管流水線增長,頻率提升的空間相應增大,但是處理器頻率提升的其它瓶頸卻無法解決。而且過長的流水線意味著更加復雜的內部結構,生產的良品率也難以保證。
其次,在CPU的工作中,指令往往不是孤立的,許多指令按一定的順序執行才能完成一個任務。而一旦某個指令在運算過程中發生了錯誤,或者執行了沒有用的指令,那么其后與之相關的指令就都沒有用了。這些指令必須清除掉,然后再執行其它的指令,CPU相當于做了許多無用功!流水線越長,一旦出錯影響也就越大,比如一個指令在最后一級出錯,那么可能在后續流水線中的所有指令都要被清除,Northwood核心處理器要浪費20級工序的時間,而Prescott核心處理器就要浪費31級工序的時間!
圖. 標注:Northwood核心處理器和Prescott核心處理器工作效率(即IPC,每時鐘周期實際執行指令數)對比。
再者,由于任何電導體都會產生延時,流水線越長、級數越多就會導致延遲次數越多,總延時就越大,CPU完成單個任務的時間就會越長。基于以上兩個原因,人們才常常說Prescott核心處理器的效率低下,需要用更大的緩存和更先進的技術加以彌補。因此我們可以看到低頻率Prescott核心處理器與同頻的Northwood核心處理器相比在性能上比沒有什么優勢,只有在Prescott核心處理器的頻率不斷提升之后才能抵消長流水線帶來的負面影響并發揮出自身的優勢。
新聞熱點
疑難解答