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