什么是分支預(yù)測
在超標(biāo)量的流水線架構(gòu)上,我們得知,CPU 在運行指令的時候,會在一個時鐘上做多個操作,也就是涉及到調(diào)用前后相關(guān)的指令,比如我們在一個簡單的判斷語句中。
if(n > 0){ n = 5;}else{ n = -5;}在執(zhí)行 if 語句的時候,一定會對判斷語句執(zhí)行結(jié)果后的下一條語句進行取址和譯碼,那么在還沒有判斷結(jié)果之前應(yīng)該對哪一個語句進行取址呢?這就是分支預(yù)測要解決的問題。
簡單說,分支預(yù)測就像我們鐵路分叉口上的操作員,操作員在沒有看到火車上面的轉(zhuǎn)向旗幟的情況下,到底應(yīng)該往哪邊搬動扳手呢?
對于 CPU 來說,他做不到鐵路系統(tǒng)中的提前通信告知,因此他只能根據(jù)歷史來進行推測,提前做選擇,如果選擇錯了,咱就讓列車停下,倒回來,重新開。
因此,分支預(yù)測會出現(xiàn)預(yù)測失敗的情況,而失敗后的回滾操作非常占用時間,所以我們需要避免分支預(yù)測失敗概率過大,或者說是把具有分支預(yù)測失敗情況的判斷放到循環(huán)內(nèi)部,讓失敗回滾多次循環(huán)。
-
處理器
+關(guān)注
關(guān)注
68文章
20255瀏覽量
252306 -
mcu
+關(guān)注
關(guān)注
147文章
18925瀏覽量
398232 -
cpu
+關(guān)注
關(guān)注
68文章
11279瀏覽量
225001 -
預(yù)測
+關(guān)注
關(guān)注
0文章
40瀏覽量
12605
發(fā)布評論請先 登錄
CPU分支預(yù)測對程序的影響
如何統(tǒng)計蜂鳥E203的分支預(yù)測率?
基于全局預(yù)測歷史的gshare分支預(yù)測器的實現(xiàn)細節(jié)
提高條件分支指令預(yù)測正確率的方法
蜂鳥E203簡單分支預(yù)測的改進
嵌入式處理器動態(tài)分支預(yù)測機制研究與設(shè)計
git merge后,原分支的內(nèi)容沒有出現(xiàn)在新的master分支中。
優(yōu)化技巧:提前if判斷幫助CPU分支預(yù)測
安騰處理器中多級分支預(yù)測機制
什么是CPU分枝預(yù)測和推測執(zhí)行技術(shù)?
EE-373:調(diào)整ADSP-BF70xBlackfin?處理器的動態(tài)分支預(yù)測器
CPU分支預(yù)測對程序的影響
應(yīng)對分支預(yù)測有哪些優(yōu)化措施
如何幫助提高CPU分支跳轉(zhuǎn)的正確率
CPU中什么是分支預(yù)測
評論