來源知乎:CPU的分支預測器是如何工作的?
發布時間:2014-08-26 責任編輯:sherryyu
【導讀】在CPU中(zhong)的(de)分(fen)支(zhi)預(yu)測(ce)器(qi)是(shi)具(ju)體(ti)在(zai)哪(na)個(ge)位(wei)置(zhi)?形(xing)態(tai)大(da)概(gai)是(shi)怎(zen)樣(yang)的(de)?它(ta)是(shi)怎(zen)麼(me)起(qi)到(dao)作(zuo)用(yong)的(de)?如(ru)果(guo)預(yu)測(ce)失(shi)敗(bai)它(ta)又(you)是(shi)怎(zen)樣(yang)繞(rao)過(guo)已(yi)經(jing)失(shi)敗(bai)的(de)預(yu)測(ce)從(cong)而(er)增(zeng)加(jia)重(zhong)新(xin)預(yu)測(ce)的(de)成(cheng)功(gong)率(lv)的(de)?小(xiao)編(bian)綜(zong)合(he)收(shou)集(ji)的(de)資(zi)料(liao)一(yi)一(yi)回(hui)答(da)這(zhe)些(xie)問(wen)題(ti)。
1.位置:分支預測器位於整個CPUhexinliushuixiandechabuduozuiqianduanbufen,yejiushikaojinyijizhilinghuancundeweizhi。congzhilinghuancunlimianduquzhilingshi,xuyaoyoufenzhiyuceqilaipanduancongnaliduqu。
2.形態:分支預測器主要由兩個大塊組成(教科書上有可能不是這樣分),qizhongyikuaishilishijilubiao,jiluyiwangzhixingguodefenzhizhilingdepianxiangqingkuang,bangzhuweilaideyuce,benzhishangyeshiyikuaigaosuhuancun。lingyikuaishiyuceqideluojibufen,zheyibufenyonglaiweihujilubiao,yijujilubiaolimiandejiluqingkuangyucejianglaidefenzhizouxiang。
3.預測方法舉例。比bi如ru說shuo有you一yi條tiao分fen支zhi指zhi令ling,執zhi行xing了le十shi幾ji次ci都dou是shi跳tiao轉zhuan,那na麼me預yu測ce器qi就jiu會hui判pan斷duan,將jiang來lai碰peng到dao這zhe條tiao指zhi令ling時shi,它ta仍reng舊jiu會hui跳tiao轉zhuan。當dang這zhe條tiao指zhi令ling的de預yu測ce結jie果guo連lian續xu兩liang次ci出chu錯cuo的de時shi候hou,預yu測ce器qi就jiu會hui調tiao整zheng自zi己ji的de預yu測ce結jie果guo,改gai為wei判pan斷duan它ta不bu跳tiao轉zhuan。這zhe一yi預yu測ce方fang法fa是shi現xian今jin仍reng在zai沿yan用yong的de2-bit計數器陣列,源於前CDC公司的JamesSmith(現為WISC-Madison的榮譽教授)在上世紀80年代初左右的發明,實測結果表明它的預測準確率基本上能到80%甚至90%上下。
4.後記:到了九十年代初期,這個圈子裏一個叫做YalePatt的大牌教授引領了幾乎十年的分支預測研究浪潮,他們做的預測器比JamesSmith的先進很多,被稱為自適應預測,可以捕捉住更多的分支曆史模式。(在Patt手下做預測的那個博士生Tse-YuYeh後來參加一個學術會議,Intel的人看到了他們做的東西,直接把人給挖走了,那個預測器用在了P6微結構裏麵,後來Tse-YuYeh離開Intel到了PASemi,現在好像是在Apple的CPU設計團隊。)
後來又有很多人加入進來做分支預測的研究,做出了關聯性分支預測、返fan回hui棧zhan預yu測ce等deng等deng非fei常chang棒bang的de預yu測ce器qi,現xian在zai的de分fen支zhi預yu測ce器qi結jie構gou通tong常chang是shi競jing標biao賽sai式shi的de複fu合he分fen支zhi預yu測ce器qi,比bi如ru當dang關guan聯lian性xing分fen支zhi預yu測ce器qi的de近jin期qi準zhun確que率lv比bi較jiao高gao時shi,優you先xian采cai用yong它ta,如ru果guo有you其qi他ta預yu測ce器qi的de近jin期qi準zhun確que率lv更geng高gao,就jiu放fang棄qi它ta。後hou來lai的de研yan究jiu越yue來lai越yue精jing細xi,針zhen對dui分fen支zhi預yu測ce做zuo了le很hen多duo很hen多duo的de調tiao優you,比bi如ru說shuo如ru何he在zai有you限xian的de空kong間jian裏li麵mian盡jin可ke能neng減jian少shao大da量liang分fen支zhi指zhi令ling對dui曆li史shi記ji錄lu表biao的de爭zheng搶qiang、changshiduifenzhizhilingjinxingfenlei,meiyileishiyongzhuanmendeyuceqijinxingyucedengdeng,xianzaidefenzhiyuceqifeichangqiangda,mianduigezhonggeyangdechengxu,yucezhunquelvdounengfeichangjiantingdibaochizai95%以上。
微結構上的推測執行技術有很多種,分支預測引領的控製流相關的推測執行可能是其中最成功的一種。
[page]
附:分支預測圖解,從簡單到最複雜的:

這個是最簡單的分支預測,根據當前指令的地址,放進PHT中,根據右邊的這張狀態機,來確定是跳轉還是不跳轉。優勢:簡單,具有相當的準確性。

兩級預測
這個預測機構比較複雜,擁有兩級分支,相比之前的方法,加入了BHT,可以根據指令地址,記錄一部分曆史記錄,然後再放進PHT中,決定跳轉還是不跳轉。優點在於可以記錄下某一些跳轉的關係,加強聯係。

混合預測,集合了上麵兩個的優點,加上自己設定的選擇器。
可ke以yi方fang便bian的de看kan到dao,基ji本ben上shang所suo有you的de預yu測ce機ji製zhi都dou是shi通tong過guo以yi往wang的de曆li史shi記ji錄lu來lai加jia強qiang或huo者zhe削xue弱ruo跳tiao轉zhuan關guan係xi。第di一yi種zhong方fang法fa很hen直zhi接jie,用yong一yi個ge狀zhuang態tai機ji來lai描miao述shu了le整zheng個ge機ji製zhi。第di二er個ge方fang法fa甚shen至zhi在zai第di一yi個ge的de基ji礎chu上shang記ji錄lu了leN多個跳轉的記錄。
判斷出是否跳轉之後,CPU需要知道跳轉到哪裏,因為不是每次跳轉的位置都是一樣的。所以在預測的基礎上又加上了BTB整個東西,這個東西記錄了之前跳轉的地址,因此CPU可以不計算跳轉的地址,直接預先load指令,如果出錯的話,將會刷新BTB,並且flush所有指令,重新load。
BTB的結構如下:

BTB的工作方式如下:

那麼如果將這些所有的東西結合到CPU的流水線上,將會變成如下的流程:

特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- e絡盟與Same Sky簽署全球分銷協議,拓展高性能元器件版圖
- 告別“偏色”煩惱:光譜傳感器如何重塑手機攝影的真實色彩
- 從“掃描”到“洞察”:Hyperlux ID iToF技術如何攻克30米測距極限
- 解鎖算力芯片的“速度密碼”:SmartDV全棧IP方案深度解析
- 發燒友福音!XMOS推出32段EQ調節與一鍵升頻功能
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索




