來源知乎: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.形態:分支預測器主要由兩個大塊組成(教科書上有可能不是這樣分),其qi中zhong一yi塊kuai是shi曆li史shi記ji錄lu表biao,記ji錄lu以yi往wang執zhi行xing過guo的de分fen支zhi指zhi令ling的de偏pian向xiang情qing況kuang,幫bang助zhu未wei來lai的de預yu測ce,本ben質zhi上shang也ye是shi一yi塊kuai高gao速su緩huan存cun。另ling一yi塊kuai是shi預yu測ce器qi的de邏luo輯ji部bu分fen,這zhe一yi部bu分fen用yong來lai維wei護hu記ji錄lu表biao,依yi據ju記ji錄lu表biao裏li麵mian的de記ji錄lu情qing況kuang預yu測ce將jiang來lai的de分fen支zhi走zou向xiang。
3.預測方法舉例。birushuoyouyitiaofenzhizhiling,zhixingleshijicidoushitiaozhuan,nameyuceqijiuhuipanduan,jianglaipengdaozhetiaozhilingshi,tarengjiuhuitiaozhuan。dangzhetiaozhilingdeyucejieguolianxuliangcichucuodeshihou,yuceqijiuhuitiaozhengzijideyucejieguo,gaiweipanduantabutiaozhuan。zheyiyucefangfashixianjinrengzaiyanyongde2-bit計數器陣列,源於前CDC公司的JamesSmith(現為WISC-Madison的榮譽教授)在上世紀80年代初左右的發明,實測結果表明它的預測準確率基本上能到80%甚至90%上下。
4.後記:到了九十年代初期,這個圈子裏一個叫做YalePatt的大牌教授引領了幾乎十年的分支預測研究浪潮,他們做的預測器比JamesSmith的先進很多,被稱為自適應預測,可以捕捉住更多的分支曆史模式。(在Patt手下做預測的那個博士生Tse-YuYeh後來參加一個學術會議,Intel的人看到了他們做的東西,直接把人給挖走了,那個預測器用在了P6微結構裏麵,後來Tse-YuYeh離開Intel到了PASemi,現在好像是在Apple的CPU設計團隊。)
後來又有很多人加入進來做分支預測的研究,做出了關聯性分支預測、fanhuizhanyucedengdengfeichangbangdeyuceqi,xianzaidefenzhiyuceqijiegoutongchangshijingbiaosaishidefuhefenzhiyuceqi,birudangguanlianxingfenzhiyuceqidejinqizhunquelvbijiaogaoshi,youxiancaiyongta,ruguoyouqitayuceqidejinqizhunquelvgenggao,jiufangqita。houlaideyanjiuyuelaiyuejingxi,zhenduifenzhiyucezuolehenduohenduodetiaoyou,birushuoruhezaiyouxiandekongjianlimianjinkenengjianshaodaliangfenzhizhilingduilishijilubiaodezhengqiang、嚐(chang)試(shi)對(dui)分(fen)支(zhi)指(zhi)令(ling)進(jin)行(xing)分(fen)類(lei),每(mei)一(yi)類(lei)使(shi)用(yong)專(zhuan)門(men)的(de)預(yu)測(ce)器(qi)進(jin)行(xing)預(yu)測(ce)等(deng)等(deng),現(xian)在(zai)的(de)分(fen)支(zhi)預(yu)測(ce)器(qi)非(fei)常(chang)強(qiang)大(da),麵(mian)對(dui)各(ge)種(zhong)各(ge)樣(yang)的(de)程(cheng)序(xu),預(yu)測(ce)準(zhun)確(que)率(lv)都(dou)能(neng)非(fei)常(chang)堅(jian)挺(ting)地(di)保(bao)持(chi)在(zai)95%以上。
微結構上的推測執行技術有很多種,分支預測引領的控製流相關的推測執行可能是其中最成功的一種。
[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可編程電源,賦能高端裝備製造
技術文章更多>>
- 一秒檢測,成本降至萬分之一,光引科技把幾十萬的台式光譜儀“搬”到了手腕上
- AI服務器電源機櫃Power Rack HVDC MW級測試方案
- 突破工藝邊界,奎芯科技LPDDR5X IP矽驗證通過,速率達9600Mbps
- 通過直接、準確、自動測量超低範圍的氯殘留來推動反滲透膜保護
- 從技術研發到規模量產:恩智浦第三代成像雷達平台,賦能下一代自動駕駛!
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
按鈕開關
白色家電
保護器件
保險絲管
北鬥定位
北高智
貝能科技
背板連接器
背光器件
編碼器型號
便攜產品
便攜醫療
變容二極管
變壓器
檳城電子
並網
撥動開關
玻璃釉電容
剝線機
薄膜電容
薄膜電阻
薄膜開關
捕魚器
步進電機
測力傳感器
測試測量
測試設備
拆解
場效應管
超霸科技




