激情九九,六月婷婷七月丁香,天天五月天丁香婷婷深爱综合,国产色一区,国产一区二区三区免费在线观看,91最新网站

CPU的分支預測器是如何工作的?(配圖解)

來源:網(wǎng)絡

點擊:2115

A+ A-

所屬頻道:新聞中心

關鍵詞:CPU,微結構,緩存

      在CPU中的分支預測器是具體在哪個位置?形態(tài)大概是怎樣的?它是怎么起到作用的?如果預測失敗它又是怎樣繞過已經(jīng)失敗的預測從而增加重新預測的成功率的?小編綜合收集的資料一一回答這些問題。

      1.位置:分支預測器位于整個CPU核心流水線的差不多最前端部分,也就是靠近一級指令緩存的位置。從指令緩存里面讀取指令時,需要由分支預測器來判斷從哪里讀取。

      2.形態(tài):分支預測器主要由兩個大塊組成(教科書上有可能不是這樣分),其中一塊是歷史記錄表,記錄以往執(zhí)行過的分支指令的偏向情況,幫助未來的預測,本質(zhì)上也是一塊高速緩存。另一塊是預測器的邏輯部分,這一部分用來維護記錄表,依據(jù)記錄表里面的記錄情況預測將來的分支走向。

      3.預測方法舉例。比如說有一條分支指令,執(zhí)行了十幾次都是跳轉,那么預測器就會判斷,將來碰到這條指令時,它仍舊會跳轉。當這條指令的預測結果連續(xù)兩次出錯的時候,預測器就會調(diào)整自己的預測結果,改為判斷它不跳轉。這一預測方法是現(xiàn)今仍在沿用的2-bit計數(shù)器陣列,源于前CDC公司的JamesSmith(現(xiàn)為WISC-Madison的榮譽教授)在上世紀80年代初左右的發(fā)明,實測結果表明它的預測準確率基本上能到80%甚至90%上下。

      4.后記:到了九十年代初期,這個圈子里一個叫做YalePatt的大牌教授引領了幾乎十年的分支預測研究浪潮,他們做的預測器比JamesSmith的先進很多,被稱為自適應預測,可以捕捉住更多的分支歷史模式。(在Patt手下做預測的那個博士生Tse-YuYeh后來參加一個學術會議,Intel的人看到了他們做的東西,直接把人給挖走了,那個預測器用在了P6微結構里面,后來Tse-YuYeh離開Intel到了PASemi,現(xiàn)在好像是在Apple的CPU設計團隊。)

      后來又有很多人加入進來做分支預測的研究,做出了關聯(lián)性分支預測、返回棧預測等等非常棒的預測器,現(xiàn)在的分支預測器結構通常是競標賽式的復合分支預測器,比如當關聯(lián)性分支預測器的近期準確率比較高時,優(yōu)先采用它,如果有其他預測器的近期準確率更高,就放棄它。后來的研究越來越精細,針對分支預測做了很多很多的調(diào)優(yōu),比如說如何在有限的空間里面盡可能減少大量分支指令對歷史記錄表的爭搶、嘗試對分支指令進行分類,每一類使用專門的預測器進行預測等等,現(xiàn)在的分支預測器非常強大,面對各種各樣的程序,預測準確率都能非常堅挺地保持在95%以上。

      微結構上的推測執(zhí)行技術有很多種,分支預測引領的控制流相關的推測執(zhí)行可能是其中最成功的一種。

      附:分支預測圖解,從簡單到最復雜的:

      1.

    CPU的分支預測器是如何工作的?(配圖解)

      這個是最簡單的分支預測,根據(jù)當前指令的地址,放進PHT中,根據(jù)右邊的這張狀態(tài)機,來確定是跳轉還是不跳轉。優(yōu)勢:簡單,具有相當?shù)臏蚀_性。

      2.

    CPU的分支預測器是如何工作的?(配圖解)

      兩級預測

      這個預測機構比較復雜,擁有兩級分支,相比之前的方法,加入了BHT,可以根據(jù)指令地址,記錄一部分歷史記錄,然后再放進PHT中,決定跳轉還是不跳轉。優(yōu)點在于可以記錄下某一些跳轉的關系,加強聯(lián)系。

      3.

    CPU的分支預測器是如何工作的?(配圖解)

      混合預測,集合了上面兩個的優(yōu)點,加上自己設定的選擇器。

      可以方便的看到,基本上所有的預測機制都是通過以往的歷史記錄來加強或者削弱跳轉關系。第一種方法很直接,用一個狀態(tài)機來描述了整個機制。第二個方法甚至在第一個的基礎上記錄了N多個跳轉的記錄。

      判斷出是否跳轉之后,CPU需要知道跳轉到哪里,因為不是每次跳轉的位置都是一樣的。所以在預測的基礎上又加上了BTB整個東西,這個東西記錄了之前跳轉的地址,因此CPU可以不計算跳轉的地址,直接預先load指令,如果出錯的話,將會刷新BTB,并且flush所有指令,重新load。

      BTB的結構如下:

    CPU的分支預測器是如何工作的?(配圖解)

      BTB的工作方式如下:

    CPU的分支預測器是如何工作的?(配圖解)

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

    CPU的分支預測器是如何工作的?(配圖解)

     

    (審核編輯: Doris)

    聲明:除特別說明之外,新聞內(nèi)容及圖片均來自網(wǎng)絡及各大主流媒體。版權歸原作者所有。如認為內(nèi)容侵權,請聯(lián)系我們刪除。

    主站蜘蛛池模板: 国产精品999 | 久久天天躁狠狠躁夜夜不卡 | 日韩欧美视频二区 | 美女综合网 | 99热影院| 精品国产一区二区三区成人 | 免费二区 | 国产永久免费草莓网视频 | 成人黄色小电影 | 国产成人久久精品一区二区三区 | 9191亚洲高清国产 | 久久99九九99九九精品 | 色婷婷5月精品久久久久 | 成人伊人亚洲人综合网站222 | 99精品国产成人一区二区在线 | 日韩在线视 | 色播五月婷婷 | 99精品在线看 | 日本加勒比网站 | 成人青草亚洲国产 | 免费看羞羞无遮挡3d动漫 | 开心激情小说网 | 欧美午夜视频在线观看 | 视频二区在线 | 国产视频久久久久 | 99re热在线视频 | 99精品视频在线观看 | 国产成人久久 | 国产成人高清亚洲一区久久 | 日本不卡中文字幕 | 国产精品久久久久久久久久一区 | 97精品在线 | 精品国精品国产自在久国产应用 | 国产高清在线观看视频手机版 | 99久久综合给久久精品 | 五月婷婷激情 | 欧美成人一区二区 | 五月天激情影院 | 韩剧朋友在线免费观看 | 钢铁魔女一至四集 | 啪啪一级片 |