計算機組成原理——指令流水線
1. 綜述
為提高CPU利用率,加快執行速度,將指令分為若干個階段,可並行執行不同指令的不同階段,從而多個指令可以同時執行。在有效地控制了流水線阻塞的情況下,流水線可大大提高指令執行速度。博客園知識庫:CPU流水線的探秘之旅
經典的五級流水線:取址、譯碼/讀寄存器、執行/計算有效地址、訪問內存(讀或寫)、結果寫回寄存器。鏈接:史上最經典的5級流水線
流水線阻塞的情況有三種(baidu知道):
1. 結構相關:指令重疊執行的過程中,硬件資源滿足不了指令重疊執行的要求,發生資源沖突,這時將產生結構相關。解決的辦法是增加硬件資源,如解決訪存沖突就采用指令Cache和數據Cache分離的哈弗結構。
2. 數據相關:當一條指令需要前面某條指令的執行結果,而兩者正在並行執行的情況下,將產生數據相關。解決方式:數據重定向,或稱為旁路技術。
3. 控制相關:有跳轉語句、分支指令,或其他改變IP值的指令,將產生控制相關。解決方法:分支預測技術,投機執行,延遲分支。
若I1和I2數據相關,如I2需要I1的結果,則I2在其譯碼階段被阻塞,直到I1全部完成才恢復流動。