什麼是流水線處理?
流水線技術是一種將順序過程分解成小的片段或子操作的技術。每個子程式的執行都在某個專門的段中進行,該段與所有其他段一起工作。流水線包含一系列處理段,這些段有助於二進位制資訊的流動。
流水線的內部工作方式是這樣的:一個段的結果被傳遞到流水線的下一個段,直到獲得期望的結果。在資訊透過所有段處理後獲得結果。
術語“流水線”表示資訊的流動是並行的。流水線定義了處理的時序重疊。透過將暫存器與流水線中的每個段相關聯來完成處理的重疊。暫存器有助於在每個段之間提供隔離,以便每個段可以同時處理不同的資料。
一個段由一個輸入暫存器和一個組合電路組成。暫存器儲存資訊,組合電路在特定段中執行。一個段的組合電路的輸出被髮送到下一個段的輸入暫存器。為了執行每個段中的活動,為每個暫存器設定一個時鐘。
當我們考慮三個指令的順序執行時,每個指令都有三個執行階段,得到的順序是以下指令週期。
如果每個階段需要一個單位時間,並且每個動作都需要一個單獨的單元,那麼總共需要九個單位時間。對於相同指令集的流水線執行,該序列只需要五個單位時間。
該圖顯示了並行處理和順序處理之間的比較。
從圖中可以看出,透過使用流水線,我們可以節省大約 50% 的執行時間。
我們將用一個簡單的例子來說明流水線組織。假設我們需要對一系列數字執行組合的乘法和加法運算。
Ai * Bi + Ci 其中 i = 1,2,3 … 7
每個子操作都在流水線內的某個段中執行。每個段之間的分離由暫存器提供,以便每個段同時處理不同的資料。
每個段使用一個或三個暫存器和組合電路。R1 到 R7 是在每個時鐘脈衝中獲得新資訊的暫存器。組合電路是乘法器和加法器。
R1 ← Ai, R1 ← Bi 輸入 Ai 和 Bi
R3 ← R1 * R2, R4 ← Ci 乘法和輸入 Ci
R5 ← R3 + R4 將 Ci 加到乘積中