複製鏈接
請複製以下鏈接發送給好友

分支預測

鎖定
分支預測(Branch Prediction):從P5時代開始的一種先進的,解決處理分支指令(if-then-else)導致流水線失敗的數據處理方法,由CPU來判斷程序分支的進行方向,能夠加快運算速度。
中文名
分支預測
外文名
Branch Prediction
作    用
解決處理分支指令
實用性
近來的處理器已經嘗試採用

分支預測原理

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

分支預測靜態分支預測

最簡單的靜態分支預測方法就是任選一條分支。這樣平均命中率為50%。更精確的辦法是根據原先運行的結果進行統計從而嘗試預測分支是否會跳轉。
任何一種分支預測策略的效果都取決於該策略本身的精確度和條件分支的頻率。

分支預測動態分支預測

動態分支預測是近來的處理器已經嘗試採用的的技術。最簡單的動態分支預測策略是分支預測緩衝區(Branch Prediction Buff)或分支歷史表(branch history table)。
[1] 
參考資料
  • 1.    計算機體系結構--量化研究方法(英文版·第4版)[美] John L.Hennessy & David A.Patterson 著