指令管線化

指令管線化  是爲了讓計算機和其它數位電子裝置能夠加速指令的通過速度 （ 單位時間內被執行的指令數量 ） 而設計的技術 。 管線在處理器的內部被組織成層級 ， 各個層級的管線能半獨立地單獨運作 。 每一個層級都被管理並且鏈接到一條 “ 鏈 ” ， 因而每個層級的輸出被送到其它層級直至任務完成 。 處理器的這種組織方式能使總體的處理時間顯著縮短 。 未管線化的架構產生的效率低 ， 因爲有些CPU的模組在其他模組執行時是閒置的 。 管線化雖並不會完全消除CPU的閒置時間 ， 但是能夠讓這些模組並行運作而大幅提升程式執行的效率 。 差不多有些類似流水線工廠的概念 。 但並不是所有的指令都是獨立的 。 在一條簡單的管線中 ， 完成一個指令可能需要5層 。 如右圖所示 ， 要在最佳性能下運算 ， 當第一個指令被執行時 ， 這個管線需要運行隨後4條獨立的指令 。 可是 ， 如果隨後4條指令依賴於第一條指令的輸出 ， 管線控制邏輯器 ， 就必須插入延遲時脈週期到管線內 ， 直到依賴被滿足 。 而轉發技術能顯著減少延時 。 憑藉多個層 ， 雖然管線化在理論上能提高效能 ， 優勝於無管線的內核 （ 假設時脈也因應層的數量按比例增加 ） ， 但事實上 ， 許多指令碼設計中並不會考慮到理想的執行 。