什么是分支預測
在超標量的流水線架構上,我們得知,CPU 在運行指令的時候,會在一個時鐘上做多個操作,也就是涉及到調用前后相關的指令,比如我們在一個簡單的判斷語句中。
if(n > 0)
{
n = 5;
}
else
{
n = -5;
}
在執行 if 語句的時候,一定會對判斷語句執行結果后的下一條語句進行取址和譯碼,那么在還沒有判斷結果之前應該對哪一個語句進行取址呢?這就是分支預測要解決的問題。
簡單說,分支預測就像我們鐵路分叉口上的操作員,操作員在沒有看到火車上面的轉向旗幟的情況下,到底應該往哪邊搬動扳手呢?
對于 CPU 來說,他做不到鐵路系統中的提前通信告知,因此他只能根據歷史來進行推測,提前做選擇,如果選擇錯了,咱就讓列車停下,倒回來,重新開。
因此,分支預測會出現預測失敗的情況,而失敗后的回滾操作非常占用時間,所以我們需要避免分支預測失敗概率過大,或者說是把具有分支預測失敗情況的判斷放到循環內部,讓失敗回滾多次循環。
-
處理器
+關注
關注
68文章
19409瀏覽量
231196 -
mcu
+關注
關注
146文章
17324瀏覽量
352658 -
cpu
+關注
關注
68文章
10905瀏覽量
213031 -
預測
+關注
關注
0文章
38瀏覽量
12390
發布評論請先 登錄
相關推薦
CPU分支預測對程序的影響
Git命令之本地分支與遠程分支關聯和解除
![Git命令之本地<b class='flag-5'>分支</b>與遠程<b class='flag-5'>分支</b>關聯和解除](https://file1.elecfans.com/web2/M00/B5/86/wKgaomV7q8eADL5WAAAFmNUzbKw448.jpg)
嵌入式處理器動態分支預測機制研究與設計
git merge后,原分支的內容沒有出現在新的master分支中。
優化技巧:提前if判斷幫助CPU分支預測
安騰處理器中多級分支預測機制
什么是CPU分枝預測和推測執行技術?
Git分支,為何以及如何使用分支
電纜分支箱安裝_電纜分支箱的應用
EE-373:調整ADSP-BF70xBlackfin?處理器的動態分支預測器
![EE-373:調整ADSP-BF70xBlackfin?處理器的動態<b class='flag-5'>分支</b><b class='flag-5'>預測</b>器](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
CPU分支預測對程序的影響
應對分支預測有哪些優化措施
如何幫助提高CPU分支跳轉的正確率
![如何幫助提高<b class='flag-5'>CPU</b><b class='flag-5'>分支</b>跳轉的正確率](https://file1.elecfans.com/web2/M00/B4/A3/wKgaomV5IrGAXr8jAAO9z_4ff0E806.jpg)
評論