此事件測量由於預測失誤而執行完畢的所有失效的分支預測失誤。這包括:
錯誤預測為“執行”,而卻僅在失效之後才發現本“不應執行”的分支。
錯誤預測為“不執行”,而卻僅在失效之後才發現本應“執行”的分支。
這隻對宏分支有效。
要優化分支可預測性:
按照靜態分支預測假設(向後執行與向前不執行)調整程式碼結構,改善分支可預測性並優化指令預取效果。
避免混合使用遠、近呼叫與返回。
避免通過壓入返回地址並跳轉到目標來實現呼叫。硬體可以將呼叫與返回指令配對,從而改善可預測性。
在自旋等待循環中使用 "pause" 指令。
根據編碼建議內嵌函式。
消除分支。
避免間接呼叫。