指令管線化 | Pipeline
RISC機器的五層管線示意圖(IF:讀取指令,ID:指令解碼,EX:執行,MEM:記憶體存取,WB:寫回暫存器)指令管線化(英語:Instructionpipeline)是為了讓計算機和其它數位電子裝置能夠加速指令的通過速度(單位時間內被執行的指令數量)而設計的技術。管線在處理器的內部被組織成層級,各個層級的管線能半獨立地單獨運作。每一個層級都被管理並且鏈結到一條「鏈」,因而每個層級的輸出被送到其它層級直至任務完成。處理器的這種組織方式能使總體的處理時間顯著縮短。未管線化的架構產生的效率低,因為有些CPU的模組在其他模組執行時...
RISC機器的五層管線示意圖(IF:讀取指令,ID:指令解碼,EX:執行,MEM:記憶體存取,WB:寫回暫存器)指令管線化(英語:Instruction pipeline)是為了讓計算機和其它數位電子裝置能夠加速指令的通過速度(單位時間內被執行的指令數量)而設計的技術。
管線在處理器的內部被組織成層級,各個層級的管線能半獨立地單獨運作。每一個層級都被管理並且鏈結到一條「鏈」,因而每個層級的輸出被送到其它層級直至任務完成。 處理器的這種組織方式能使總體的處理時間顯著縮短。
未管線化的架構產生的效率低,因為有些CPU的模組在其他模組執行時是閒置的。管線化雖並不會完全消除CPU的閒置時間,但是能夠讓這些模組並行運作而大幅提升程式執行的效率。差不多有些類似流水線工廠的概念。
但並不是所有的指令都是獨立的。在一條簡單的管線中,完成一個指令可能需要5層。如右圖所示,要在最佳效能下運算,當第一個指令被執行時,這個管線需要運行隨後4條獨立的指令。可是,如果隨後4條指令依賴於第一條指令的輸出,管線控制邏輯器,就必須插入延遲時脈周期到管線內,直到依賴被滿足。而轉發技術能顯著減少延時。憑藉多個層,雖然管線化在理論上能提高效能,優勝於無管線的核心(假設時脈也因應層的數量按比例增加),但事實上,許多指令碼設計中並不會考慮到理想的執行。
RISC機器的五層管線示意圖管線化是假設程式執行時有一連串的指令要被執行(垂直座標i是指令集,水平座標表時間t)。絕大多數當代的CPU都是利用時脈驅動。
而CPU是由內部的邏輯閘與正反器組成。當受到時脈觸發時,正反器得到新的數值,並且邏輯閘需要一段時間來解析出新的數值,而當受到下一個時脈觸發時正反器又得到新的數值,以此類推。而藉由邏輯閘分散成很多小區塊,再讓正反器鏈結這些小區塊組,使邏輯閘輸出正確數值的時間延遲得以減少,這樣一來就可以減少指令執行所需要的周期。
舉例來說,典型的RISC管線被分解成五個階段,每個階段之間使用正反器鏈結。
讀取指令 指令解碼與讀取暫存器 執行 記憶體存取 寫回暫存器並非在所有情況下管線技術都起作用。可能有一些缺點。如果一條指令管線能夠在每一個時脈週期接納一條新的指令,被稱為完整管線化(fully pip...