国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      分支轉(zhuǎn)移預(yù)測(cè)方法

      文檔序號(hào):6563869閱讀:1646來源:國(guó)知局
      專利名稱:分支轉(zhuǎn)移預(yù)測(cè)方法
      技術(shù)領(lǐng)域
      本發(fā)明屬于微處理器體系結(jié)構(gòu)領(lǐng)域,特別涉及一種微處理器的分支轉(zhuǎn)移預(yù)測(cè)方法。
      1993年Scott McFarling提出G-share方案(全稱為Global History withIndex Sharing),這是一種經(jīng)典的全局歷史記錄表預(yù)測(cè)方法。該方法被后來的諸多CPU所采用,成為用單預(yù)測(cè)器預(yù)測(cè)分支的經(jīng)典方案。
      在93年之后,很多體系結(jié)構(gòu)方面的專家著重于研究多個(gè)預(yù)測(cè)器共同完成對(duì)程序中分支的預(yù)測(cè),但在實(shí)際應(yīng)用中沒有取得重大的突破。
      在現(xiàn)有的處理器中,處理分支預(yù)測(cè)多采用雙值預(yù)測(cè)法,G-share方法和混合預(yù)測(cè)器。
      MIPS的R4000中采用暫停取指,直到分支結(jié)果產(chǎn)生的方法來處理分支,這種方法明顯會(huì)帶來流水線效率降低。
      MIPS的R10000中采用的是在分支結(jié)果產(chǎn)生之前,按預(yù)測(cè)的地址取址。這種方法在預(yù)測(cè)正確時(shí),并不增加延遲,但當(dāng)猜測(cè)錯(cuò)誤時(shí),取消已經(jīng)取進(jìn)的指令并重新取指,從而引起流水線的斷流,增加了很大的延遲。
      Alpha的21064、21164采用的是兩位的雙值預(yù)測(cè)器,Sun的UltraSparcIII采用的是標(biāo)準(zhǔn)G-share預(yù)測(cè)器(G-share Predictor);Alpha的21264采用的是混合預(yù)測(cè)器。
      但是上述方法主要有如下缺點(diǎn)有待改進(jìn)一、雙值預(yù)測(cè)器由于其命中率較低,不適用于多重循環(huán)。
      二、G-share方法的全局歷史記錄表中的高位,也就是離當(dāng)前預(yù)測(cè)的分支相對(duì)而言較遠(yuǎn)的分支結(jié)果,往往對(duì)當(dāng)前分支的方向指示并不是很強(qiáng),因此正確率不高。
      三、混合預(yù)測(cè)器過于復(fù)雜,而且控制邏輯非常龐大。
      本發(fā)明一種分支轉(zhuǎn)移預(yù)測(cè)方法,包含下列步驟a)當(dāng)系統(tǒng)遇到分支轉(zhuǎn)移指令時(shí),從程序計(jì)數(shù)器PC中獲取當(dāng)前指令的計(jì)數(shù)值,并從全局歷史記錄表中獲取歷史記錄;b)利用操作系統(tǒng)對(duì)系統(tǒng)空間和用戶空間的嚴(yán)格控制,使用程序計(jì)數(shù)器PC和前述步驟a)中獲得的歷史記錄拼接成新的全局記錄;c)前述步驟中得到的新的全局記錄取代傳統(tǒng)全局歷史預(yù)測(cè)方法中的全局歷史記錄,協(xié)同程序計(jì)數(shù)器PC進(jìn)行分支預(yù)測(cè)。
      利用PC中的含有重要信息的位,取代原有全局歷史記錄中的高位,再與原有的全局歷史記錄的剩余位拼接形成新的全局記錄。
      具體實(shí)施例方式
      請(qǐng)結(jié)合參閱圖2,本發(fā)明一種分支轉(zhuǎn)移預(yù)測(cè)方法,包含下列步驟a)當(dāng)系統(tǒng)遇到分支轉(zhuǎn)移指令時(shí),從程序計(jì)數(shù)器PC中獲取當(dāng)前指令的計(jì)數(shù)值,并從全局歷史記錄表中獲取歷史記錄;b)利用操作系統(tǒng)對(duì)系統(tǒng)空間和用戶空間的嚴(yán)格控制,使用程序計(jì)數(shù)器PC和前述步驟a)中獲得的歷史記錄拼接成新的全局記錄;c)前述步驟中得到的新的全局記錄取代傳統(tǒng)全局歷史預(yù)測(cè)方法中的全局歷史記錄,協(xié)同程序計(jì)數(shù)器PC進(jìn)行分支預(yù)測(cè)。
      利用PC中的含有重要信息的位(如圖2中的PC 31),取代原有全局歷史記錄中的高位,再與原有的全局歷史記錄的剩余位拼接形成新的全局記錄。
      G-share方法用分支指令的地址作為區(qū)分不同分支的重要標(biāo)志,將n位地址的高m位與歷史記錄的m位異或,然后再拼成新的n位地址去查尋分支模式表。在圖中,程序計(jì)數(shù)器的內(nèi)容是指等待預(yù)測(cè)的分支指令的PC地址,全局歷史記錄中記錄的是最近發(fā)生的分支結(jié)果。由于PC本身的最低兩位始終為零,因此選取程序計(jì)數(shù)器PC的n位(不包括低兩位無意義的0),用其中m位與全局歷史記錄的m位相異或,在拼接上余下的(n-m)位,形成n位分支模式表索引,對(duì)分支模式表進(jìn)行查找,決定分支轉(zhuǎn)移方向。
      本發(fā)明提出了一種全局分支預(yù)測(cè)方法,吸收了經(jīng)典全局表預(yù)測(cè)器G-share方法的思想,超越了傳統(tǒng)G-share方法。不再只使用全局歷史記錄和低位PC地址進(jìn)行預(yù)測(cè),而是通過對(duì)程序運(yùn)行中所處狀態(tài)空間的分析,在預(yù)測(cè)中加入程序所處狀態(tài)的信息,再配以全局歷史記錄和低位PC地址進(jìn)行預(yù)測(cè)。
      當(dāng)系統(tǒng)遇到分支轉(zhuǎn)移指令時(shí),從程序計(jì)數(shù)器PC中獲取當(dāng)前指令的計(jì)數(shù)值,并從全局歷史記錄表中獲取歷史記錄。
      首先利用操作系統(tǒng)對(duì)系統(tǒng)空間和用戶空間的嚴(yán)格控制,使用程序計(jì)數(shù)器PC和在全局歷史記錄表中獲得的歷史記錄拼接成新的全局記錄。
      前述步驟中得到的新的全局記錄取代傳統(tǒng)全局歷史預(yù)測(cè)方法中的全局歷史記錄,協(xié)同程序計(jì)數(shù)器PC進(jìn)行分支預(yù)測(cè)。
      其中,新的全局記錄的形成方法是,利用PC中的某些含有重要信息的位,如圖2中的PC 31,取代原有全局歷史記錄中的高位,再與原有的全局歷史記錄的剩余位拼接形成新的全局記錄。
      由于在預(yù)測(cè)時(shí)加入了程序所處狀態(tài)空間的有效信息,因此使用本發(fā)明的分支預(yù)測(cè)方法獲得的預(yù)測(cè)成功率比標(biāo)準(zhǔn)G-share方法有明顯的提高。
      有關(guān)本發(fā)明的詳細(xì)原理,下面舉一具體實(shí)例,并配合圖2進(jìn)行說明。
      圖2是本發(fā)明的分支預(yù)測(cè)器的示意圖。
      針對(duì)本發(fā)明所應(yīng)用的龍芯處理器和Linux(Unix)操作系統(tǒng),可以通過引入PC地址的最高位PC 31來實(shí)現(xiàn)前述方法。在圖2中,程序計(jì)數(shù)器的內(nèi)容是指等待預(yù)測(cè)的分支指令的PC地址,全局歷史記錄中記錄的是最近發(fā)生的分支結(jié)果。選取程序計(jì)數(shù)器PC的n位(不包括低兩位無意義的0),用其中m位與全局歷史記錄的m-1位加上PC的最高位PC 31所組成的新m位結(jié)果相異或,形成n位分支模式表索引,對(duì)分支模式表進(jìn)行查找,決定分支方向。
      因?yàn)樵谶@種操作系統(tǒng)中,PC 31是一個(gè)很重要的標(biāo)志,標(biāo)志著一個(gè)程序究竟是運(yùn)行在用戶空間中還是在系統(tǒng)空間中,因此在大多數(shù)情況下,他所包含的信息要遠(yuǎn)比離當(dāng)前分支指令較遠(yuǎn)的全局分支結(jié)果(即全局歷史記錄的高位)更有方向性,對(duì)預(yù)測(cè)更有好處,因此引入PC 31對(duì)系統(tǒng)的性能會(huì)有很大的提高。而在真實(shí)的系統(tǒng)中,由于程序在用戶空間和系統(tǒng)空間之間的切換是很頻繁的,因此作用就更加明顯了。實(shí)踐結(jié)果也證明了這一點(diǎn)。在實(shí)際系統(tǒng)中,本發(fā)明的預(yù)測(cè)準(zhǔn)確率比G-share方法有明顯的上升。
      在其他操作系統(tǒng)中,在PC地址中也可以找到相應(yīng)的標(biāo)記程序空間的信息位,利用上述思想進(jìn)行預(yù)測(cè),同樣可以提高系統(tǒng)的預(yù)測(cè)準(zhǔn)確率。
      由前述方法可知,本發(fā)明的優(yōu)點(diǎn)在于不需要增加任何額外的邏輯就可以獲得很好的性能提升,同時(shí)可以比正常G-share方法少需要至少一位全局歷史記錄。
      權(quán)利要求
      1.一種分支轉(zhuǎn)移預(yù)測(cè)方法,包含下列步驟a)當(dāng)系統(tǒng)遇到分支轉(zhuǎn)移指令時(shí),從程序計(jì)數(shù)器PC中獲取當(dāng)前指令的計(jì)數(shù)值,并從全局歷史記錄表中獲取歷史記錄;b)利用操作系統(tǒng)對(duì)系統(tǒng)空間和用戶空間的嚴(yán)格控制,使用程序計(jì)數(shù)器PC和前述步驟a)中獲得的歷史記錄拼接成新的全局記錄;c)前述步驟中得到的新的全局記錄取代傳統(tǒng)全局歷史預(yù)測(cè)方法中的全局歷史記錄,協(xié)同程序計(jì)數(shù)器PC進(jìn)行分支預(yù)測(cè)。
      2.根據(jù)權(quán)利要求1所述的分支轉(zhuǎn)移預(yù)測(cè)方法,其特征在于,利用PC中的含有重要信息的位,取代原有全局歷史記錄中的高位,再與原有的全局歷史記錄的剩余位拼接形成新的全局記錄。
      全文摘要
      一種分支轉(zhuǎn)移預(yù)測(cè)方法,屬于微處理器體系結(jié)構(gòu)領(lǐng)域;一種分支轉(zhuǎn)移預(yù)測(cè)方法,包含下列步驟a)當(dāng)系統(tǒng)遇到分支轉(zhuǎn)移指令時(shí),從程序計(jì)數(shù)器PC中獲取當(dāng)前指令的計(jì)數(shù)值,并從全局歷史記錄表中獲取歷史記錄;b)利用操作系統(tǒng)對(duì)系統(tǒng)空間和用戶空間的嚴(yán)格控制,使用程序計(jì)數(shù)器PC和前述步驟a)中獲得的歷史記錄拼接成新的全局記錄;c)前述步驟中得到的新的全局記錄取代傳統(tǒng)全局歷史預(yù)測(cè)方法中的全局歷史記錄,協(xié)同程序計(jì)數(shù)器PC進(jìn)行分支預(yù)測(cè)。
      文檔編號(hào)G06F9/42GK1447231SQ0210778
      公開日2003年10月8日 申請(qǐng)日期2002年3月22日 優(yōu)先權(quán)日2002年3月22日
      發(fā)明者馮雷 申請(qǐng)人:中國(guó)科學(xué)院計(jì)算技術(shù)研究所
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1