流水線生產廠家告訴你,當遇到流水線控制相關問題時,可以采用以下4種方法解決:
①延遲轉移技術。延遲轉移技術是在遇到轉移指令時,依靠編譯器把一條或幾條沒有數據相關或控制相關的指令調度到轉移指令的后面。當被調度的指令執(zhí)行完成后,轉移指令目標地址也已經計算出來了。
②靜態(tài)轉移預測技術。所謂靜態(tài)轉移預測是指在處理器的硬件或軟件設計完成后,轉移預測的方向就已經確定了,預測的方向可能是轉移成功的方向,也可能是轉移不成功的方向。在程序實際執(zhí)行過程中,轉移預測的方向不能改變。如果在硬件上設置一個目標緩沖棧及相應的控制邏輯,靜態(tài)轉移預測技術還可以在轉移成功和不成功兩個方向都預取指令。這樣,轉移造成的損失可以減少一些。
③動態(tài)轉移預測技術。流水線生產廠家告訴你,所謂動態(tài)預測技術是指控制器能夠根據程序的執(zhí)行過程動態(tài)地改變轉移的預測方向,根據近期轉移是否成功的歷史記錄來預測下一次的轉移目標。
④提前形成條件碼。對于一般的條件轉移指令,轉移條件碼是由上一條運算型指令產生的。對于大多數情況,不必等運算完成之后,而在運算實際開始之前或在運算中間就能產生條件碼,這樣,轉移的目標就已確定了,從而可確保預取指令的正確性。對于循環(huán)控制指令,可能通過編譯器將一般的循環(huán)控制指令轉變?yōu)閷iT的循環(huán)控制指令,并設置一個專門的條件碼寄存器,把產生條件碼的運算型指令和使用這個條件碼的條件轉移指令分離開,只要循環(huán)體長度不是很短,循環(huán)體中所有指令再加上兩條循環(huán)控制指令就可以充滿流水線,流水線就不會有“斷流”的情況發(fā)生,因些流水線的效率就不受影響。