流水線深度

流水線深度一直是影響處理器效率的重要因素,流水線深度的增加可以讓處理器時鐘頻率進一步提高,但帶來的反面影響就是處理器的單周期執行效率降低、發熱量上升,同時容易產生分支預測等問題,因此流水線長度的尺度把握一直是處理器設計中的一個重要核心問題。

流水線深度一直是影響處理器效率的重要因素,流水線深度的增加可以讓處理器時鐘頻率進一步提高,但帶來的反面影響就是處理器的單周期執行效率降低、發熱量上升,同時容易產生分支預測等問題,因此流水線長度的尺度把握一直是處理器設計中的一個重要核心問題。早期的NetBurst架構的Pentium 4處理器,諸如Williamette和Northwood核心都只有21級的流水線長度,而到了Prescott核心則達到了驚人的31級流水線長度,這種長度要比當年的Pentium III和Athlon處理器高出許多。
管線中的“級”的任務包括分支下一步要執行的指令、分支數據的運算結果、分支結果的存儲位置、執行運算等等。最基礎的CPU管線可以被分為5級:取指令;解釋指令;演算出運算元;執行指令; 存儲到高速快取;當然現代的CPU不可能就這么單純的分配管線“級”,很多現代的處理器是這么分級的:取指令 1,取指令 2;解釋指令 1,譯解指令 2;演算出運算元;分派操作;確定時;執行指令;存儲到高速快取 1;存儲到高速快取 2。
兩者最終完成的結果是一樣的,只是前者只有5級操作,而後者則達到了10級操作,同樣的為了完成操作,前者的5級操作的的任何一級都要比10級操作中的任何一級來得操作多。因此,如果可能的話儘量採用5級操作似乎更加有優勢,因為數據填充以及控制都比10級操作來得簡單了許多。那么延長管線長度有什麼根本意義呢?最關鍵的因素在於管線長度並不是簡單的重複,可以說它把原來的每一級的工作細化,從而讓每一級的工作更加簡單,因此在“10級”模式下完成每一級工作的時間要明顯的快於“5級”模式。其實可以這樣理解CPU的效率看的是需要耗費最長操作那級的效率。
比如假設5級管線模式每1級需要1個時鐘周期來執行,最快可以在1ns內完成的話,那么基於這種管線結構的處理器的主頻可以達到1GHz的處理器(1/1ns = 1GHz)。現在的情況是CPU管線內的級數越來越多,為此必須明顯的縮短時鐘周期來提供等於或者高於較短管線處理器的性能。好在,較長管線中每個時鐘周期內所做的工作減少了,因此即時處理器頻率提升了,每個時鐘周期縮短了,每個“級”所用的時間也就相應的減少了,從而可以讓CPU運行在更高的頻率上了。如果採用10級管線模式可以可以讓處理器主頻提升到2GHz,那么我們應該可以得到相當於原來的處理器2倍的性能,如果管線一直保持滿載的話。當然以上僅僅是理想狀態下。
其實歸根結底,增加管線並不是為了徹底的提升處理器效率,最終要的因素還是可以更高的提升處理器頻率。但是效率卻會有一定的喪失,因為處理的分支多了,消耗的時間反而會高。但是不管性能是不是因為增加管線而獲得了提升,英特爾已經全面否定了NetBurst架構的設計理念,因為雖然這種架構對於提升工作頻率非常有幫助,但是其回響帶來的功耗提升卻也是非常巨大的,於是新一代的Core架構中,英特爾依舊會同Pentium M的英特爾移動架構那樣採用少流水線深度的設計。
在Core架構中,其指令流水線深度達到14級,這個深度是要高於Pentium M的12級,但是卻比AMD的K8處理器架構的17級要低上3級。目前的Core架構可能是兼顧執行效率和降低功耗的折中設計。

相關詞條

相關搜尋

熱門詞條

聯絡我們