分支預測

分支預測

分支預測(Branch Prediction):從P5時代開始的一種先進的,解決處理分支指令(if-then-else)導致流水線失敗的數據處理方法,由CPU來判斷程式分支的進行方向,能夠加快運算速度。分支預測技術包含編譯時進行的靜態分支預測和硬體在執行時進行的動態分支預測。當包含流水線技術的處理器處理分支指令時就會遇到一個問題,根據判定條件的真/假的不同,有可能會產生跳轉,而這會打斷流水線中指令的處理,因為處理器無法確定該指令的下一條指令,直到分支執行完畢。分支預測技術便是為解決這一問題而出現的。

原理

當包含流水線技術的處理器處理分支指令時就會遇到一個問題,根據判定條件的真/假的不同,有可能會產生跳轉,而這會打斷流水線中指令的處理,因為處理器無法確定該指令的下一條指令,直到分支執行完畢。流水線越長,處理器等待的時間便越長,因為它必須等待分支指令處理完畢,才能確定下一條進入流水線的指令。

分支預測技術便是為解決這一問題而出現的。

分支預測技術包含編譯時進行的靜態分支預測和硬體在執行時進行的動態分支預測。

靜態分支預測

最簡單的靜態分支預測方法就是任選一條分支。這樣平均命中率為50%。更精確的辦法是根據原先運行的結果進行統計從而嘗試預測分支是否會跳轉。

任何一種分支預測策略的效果都取決於該策略本身的精確度和條件分支的頻率。

相關詞條

相關搜尋

熱門詞條

聯絡我們