蘇州嘉邁包裝機材有限公司
電 話:0512-6578 1220
傳 真:0512-6590 6586
手 機:159 9576 8299
聯系人:金先生
郵箱:jin@jiamaipack.com
地 址:蘇州市相城區太平鎮興太路98號
流水線的主要問題及解決方案
流水過程中通常會出現以下三種相關沖突,使流水線斷流。
1、資源相關
資源相關是指多條指令進入流水線后在同一機器時鐘周期內爭用同一個功能部件所發生的沖突。假定一條指令流水線由五段組成。由下表可以看出,在時鐘4時,I1與I4兩條指令發生爭用存儲器資源的相關沖突。
兩條指令同時訪問內存發生資源相關沖突
解決資源相關沖突的辦法:
一是第I4條指令停頓一拍后再啟動;二是增設一個存儲器,將指令和數據分別放在兩個存儲器中。
2、數據相關
在一個程序中,如果必須等前一條指令執行完畢后,才能執行后一條指令,那么這兩條指令就是數據相關的。
在流水計算機中,指令的處理是重疊進行的,前一條指令還沒有結束,第二、三條指令就陸續地開始工作。由于多條指令的重疊處理,當后繼指令所需的操作數,剛好是前一指令的運算結果時,便發生數據相關沖突。如下表所示,ADD指令與SUB指令發生了數據相關沖突。
兩條指令發生數據相關沖突
解決數據相關沖突的辦法:
在流水CPU的運算器中設置若干運算結果緩沖寄存器,暫時保留運算結果,以便于后繼指令直接使用,這稱為“向前”或定向傳送技術。
3、控制相關
控制相關沖突是由轉移指令引起的。當執行轉移指令時,依據轉移條件的產生結果,可能為順序取下條指令;也可能轉移到新的目標地址取指令,從而使流水線發生斷流。
為了減小轉移指令對流水線性能的影響,常用以下兩種轉移處理技術:
延遲轉移法:由編譯程序重排指令序列來實現;舅枷胧恰跋葓绦性俎D移”,即發生轉移取時并不排空指令流水線,而是讓緊跟在轉移指令Ib之后已進入流水線的少數幾條指令繼續完成。如果這些指令是與Ib結果無關的有用指令,那么延遲損失時間片正好得到了有效的利用。
轉移預測法:用硬件方法來實現,依據指令過去的行為來預測將來的行為。通過使用轉移取和順序取兩路指令預取隊列器以及目標指令cache,可將轉移預測提前到取指階段進行,以獲得良好的效果。