計算機體系結構中的流水線結構來源於生活中的流水線工廠,我們知道,計算機所有操作都需要指令來執行,那么指令執行的效率高低肯定會對計算機操作帶來很大的影響。至於產生流水線這種結構的初衷也是希望提高CPU的利用率和指令執行效率。早期CPU執行指令都是串行執行的(那時估計也還沒操作系統),就是一個時鍾周期完成一條指令,稱這種操作位單周期處理機模型,而且這種情況下每個周期又都是等長的,但指令的長度或者每個指令執行所花費的時間不同,勢必會造成CPU資源的浪費,出現空閑狀態。於是又出現了多周期處理機模型,這時候將主頻提高,即時鍾周期變短(將一個指令的完成分成多個周期來完成,有點時間片輪轉調度的意思)。再后來覺得想把執行速度進一步提高,就出現了現在的流水線結構。
流水線結構與多周期,其實都歸結於並行處理的類別,即CPU會在一個周期里處理多個子任務。流水線就類似於這樣,CPU任務的執行往往涉及到多個指令,多個指令的執行,必然會用到取指令寄存器呀,加法器呀,取數據寄存器呀,這些都是不同的硬件而且相對獨立,自然執行任務可以互不干涉。這里舉出一個例子,一個大任務包含A,B,C,D四個子任務,則這四個子任務完成即代表大任務完成,但這四個子任務都需要用到相同的5個寄存器,每個任務經過5個寄存器處理就可代表一個任務執行完成,但寄存器之間必須有先后處理之分,則時間如下圖所示:
圖中縱坐標代表的任務,橫坐標代表的是工序的執行流程,A,B,C,D代表四個子任務,數字1,2,3,4代表的就是4個寄存器,數字有重復的表示由於這時候寄存器沒有空出所以選擇等待,由於最后一個寄存器(工序)就是需要合並下前面子任務的結果,圖里沒給出,給出的話應該在D最后的位置,大任務就好比工廠的一個產品,4個子任務就好比產品的4個零件,5個寄存器就好比5道工序,這樣就清晰了。