轉(zhuǎn)移預(yù)測(cè)關(guān)鍵技術(shù)_第1頁
轉(zhuǎn)移預(yù)測(cè)關(guān)鍵技術(shù)_第2頁
轉(zhuǎn)移預(yù)測(cè)關(guān)鍵技術(shù)_第3頁
轉(zhuǎn)移預(yù)測(cè)關(guān)鍵技術(shù)_第4頁
轉(zhuǎn)移預(yù)測(cè)關(guān)鍵技術(shù)_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

動(dòng)態(tài)轉(zhuǎn)移預(yù)測(cè)一、動(dòng)態(tài)轉(zhuǎn)移預(yù)測(cè)概述1、

動(dòng)態(tài)移預(yù)測(cè)概念

1)

動(dòng)態(tài)轉(zhuǎn)移預(yù)測(cè)就是運(yùn)用硬件來動(dòng)態(tài)地預(yù)測(cè)轉(zhuǎn)移指令轉(zhuǎn)移行為,以減少轉(zhuǎn)移指令對(duì)流水線性能影響,也就是減少轉(zhuǎn)移指令轉(zhuǎn)移開銷。

2)

動(dòng)態(tài)轉(zhuǎn)移預(yù)測(cè)相對(duì)是靜態(tài)轉(zhuǎn)移預(yù)測(cè),所謂靜態(tài)轉(zhuǎn)移預(yù)測(cè),是指在編譯階段由軟件技術(shù)來實(shí)現(xiàn)對(duì)轉(zhuǎn)移指令預(yù)測(cè)

3)

動(dòng)態(tài)轉(zhuǎn)移預(yù)測(cè)發(fā)生在程序編譯之后、執(zhí)行之前

2、

態(tài)轉(zhuǎn)移預(yù)測(cè)思想

運(yùn)用前面一條轉(zhuǎn)移指令行為去預(yù)測(cè)背面一條轉(zhuǎn)移指令行為3、

態(tài)轉(zhuǎn)移預(yù)測(cè)實(shí)現(xiàn)

1)

預(yù)測(cè)是由硬件來實(shí)現(xiàn)

2)動(dòng)態(tài)轉(zhuǎn)移預(yù)測(cè)實(shí)現(xiàn)方案

一位轉(zhuǎn)移預(yù)測(cè)緩沖器

二位轉(zhuǎn)移預(yù)測(cè)緩沖器

有關(guān)轉(zhuǎn)移預(yù)測(cè)緩沖器

目的轉(zhuǎn)移預(yù)測(cè)緩沖器

3)詳細(xì)實(shí)現(xiàn)辦法

設(shè)立一種用來預(yù)測(cè)轉(zhuǎn)移指令轉(zhuǎn)移行為硬件,這個(gè)硬件叫做轉(zhuǎn)移預(yù)測(cè)緩沖器

轉(zhuǎn)移預(yù)測(cè)緩沖器事實(shí)上是一種存儲(chǔ)器,存儲(chǔ)了轉(zhuǎn)移指令轉(zhuǎn)移行為

IF段取出一條轉(zhuǎn)移指令時(shí),運(yùn)用轉(zhuǎn)移指令低位地址去訪問轉(zhuǎn)移預(yù)測(cè)緩沖器,在讀出轉(zhuǎn)移指令同步也讀出了對(duì)轉(zhuǎn)移指令轉(zhuǎn)移行為預(yù)測(cè)值

4、動(dòng)態(tài)轉(zhuǎn)移預(yù)測(cè)要解決問題動(dòng)態(tài)轉(zhuǎn)移預(yù)測(cè)要解決對(duì)問題是由轉(zhuǎn)移指令所引起控制有關(guān)和控制冒險(xiǎn)

5、動(dòng)態(tài)轉(zhuǎn)移預(yù)測(cè)原理在沒有采用動(dòng)態(tài)轉(zhuǎn)移預(yù)測(cè)流水線中,如果采用第一種實(shí)現(xiàn)方式,轉(zhuǎn)移指令在ID流水段判斷轉(zhuǎn)移行為,在EX流水段計(jì)算目的地址,在MEM流水段完畢轉(zhuǎn)移;如果采用是第二種方案,在ID流水段判斷轉(zhuǎn)移指令轉(zhuǎn)移行為、計(jì)算轉(zhuǎn)移目的地址、轉(zhuǎn)移完畢。從上述可知,不論是采用哪種實(shí)現(xiàn)方案,在沒有使用動(dòng)態(tài)轉(zhuǎn)移預(yù)測(cè)流水線中,轉(zhuǎn)移指令轉(zhuǎn)移與否成功要到ID流水段結(jié)束后才干懂得。但采用動(dòng)態(tài)轉(zhuǎn)移預(yù)測(cè)后,在IF流水段取出指令后,運(yùn)用指令低位地址去訪問轉(zhuǎn)移預(yù)測(cè)緩沖器,也就是在讀出轉(zhuǎn)移指令時(shí)候,對(duì)轉(zhuǎn)移指令轉(zhuǎn)移行為預(yù)測(cè)值也被讀出,因此在采用動(dòng)態(tài)轉(zhuǎn)移預(yù)測(cè)流水線中,轉(zhuǎn)移指令在IF流水段就可以懂得其轉(zhuǎn)移行為,也就是提前一種時(shí)鐘周期懂得其轉(zhuǎn)移行為,因此可以減少流水線停頓。

6、動(dòng)態(tài)轉(zhuǎn)移預(yù)測(cè)性能1)預(yù)測(cè)對(duì)的率

假設(shè)一段程序有n條轉(zhuǎn)移指令,在執(zhí)行時(shí)候其中有m條轉(zhuǎn)移指令預(yù)測(cè)是對(duì)的,那么預(yù)測(cè)對(duì)的率為m/n2)預(yù)測(cè)錯(cuò)誤恢復(fù)方略

二、一位轉(zhuǎn)移預(yù)測(cè)緩沖器1、示意圖

2、工作原理

設(shè)立一種只有一位緩沖器,有兩個(gè)狀態(tài)值0和1,其中0值預(yù)測(cè)轉(zhuǎn)移不成功,1值預(yù)測(cè)轉(zhuǎn)移是成功。假設(shè)預(yù)測(cè)器初始值是0,也就是對(duì)當(dāng)前轉(zhuǎn)移指令預(yù)測(cè)是轉(zhuǎn)移不成功,當(dāng)這條轉(zhuǎn)移指令實(shí)際轉(zhuǎn)移行為是轉(zhuǎn)移不成功,那么預(yù)測(cè)是對(duì)的,預(yù)測(cè)器狀態(tài)位不變,對(duì)下條轉(zhuǎn)移指令預(yù)測(cè)是轉(zhuǎn)移不成功;當(dāng)這條轉(zhuǎn)移指令實(shí)際轉(zhuǎn)移行為是轉(zhuǎn)移成功,那么預(yù)測(cè)錯(cuò)誤,預(yù)測(cè)器狀態(tài)位變?yōu)?,對(duì)下一條轉(zhuǎn)移指令轉(zhuǎn)移預(yù)測(cè)是轉(zhuǎn)移成功。假設(shè)預(yù)測(cè)器初始值是1,也就是對(duì)當(dāng)前轉(zhuǎn)移指令轉(zhuǎn)移行為預(yù)測(cè)是轉(zhuǎn)移成功,當(dāng)這條指令實(shí)際轉(zhuǎn)移行為是轉(zhuǎn)移不成功,那么預(yù)測(cè)錯(cuò)誤,預(yù)測(cè)器狀態(tài)值邊變?yōu)?,對(duì)下一條轉(zhuǎn)移指令轉(zhuǎn)移行為預(yù)測(cè)是轉(zhuǎn)移不成功;當(dāng)這條轉(zhuǎn)移指令實(shí)際轉(zhuǎn)移行為是成功,那么預(yù)測(cè)對(duì)的,預(yù)測(cè)器狀態(tài)位不變,對(duì)下一條轉(zhuǎn)移指令預(yù)測(cè)也是轉(zhuǎn)移成功

3、實(shí)現(xiàn)辦法

設(shè)立一種只有一位預(yù)測(cè)器,在IF段讀出一條轉(zhuǎn)移指令時(shí)用指令低位地址去訪問這個(gè)預(yù)測(cè)器,讀出這條轉(zhuǎn)移指令轉(zhuǎn)移行為預(yù)測(cè)值

4、性能

一位轉(zhuǎn)移預(yù)測(cè)緩沖器性能比較差,當(dāng)程序轉(zhuǎn)移行為是間隔變換,那么對(duì)轉(zhuǎn)移指令轉(zhuǎn)移行為預(yù)測(cè)對(duì)的率為0

5、改進(jìn)

對(duì)一位轉(zhuǎn)移預(yù)測(cè)緩沖器改進(jìn)就是使用二位轉(zhuǎn)移預(yù)測(cè)緩沖器

三、二位轉(zhuǎn)移預(yù)測(cè)緩沖器

1、示意圖

2、工作原理

設(shè)立一種兩位預(yù)測(cè)緩沖器,有00、01、10、11四個(gè)狀態(tài)值,其中00、01是預(yù)測(cè)轉(zhuǎn)移不成功,10、11是預(yù)測(cè)轉(zhuǎn)移成功。

假設(shè)預(yù)測(cè)器初始值是00,那么對(duì)當(dāng)前轉(zhuǎn)移指令轉(zhuǎn)移行為是預(yù)測(cè)轉(zhuǎn)移不成功,當(dāng)當(dāng)前轉(zhuǎn)移指令實(shí)際轉(zhuǎn)移行為是成功,那么預(yù)測(cè)錯(cuò)誤,預(yù)測(cè)器狀態(tài)值變?yōu)?1,對(duì)下一條轉(zhuǎn)移指令轉(zhuǎn)移行為預(yù)測(cè)是不成功;當(dāng)當(dāng)前轉(zhuǎn)移指令實(shí)際轉(zhuǎn)移行為是不成功,那么預(yù)測(cè)對(duì)的,預(yù)測(cè)器狀態(tài)位保持00不變,對(duì)下一條轉(zhuǎn)移指令轉(zhuǎn)移行為預(yù)測(cè)是不成功。

假設(shè)預(yù)測(cè)器初始值是01,那么對(duì)當(dāng)前轉(zhuǎn)移指令轉(zhuǎn)移行為預(yù)測(cè)是轉(zhuǎn)移不成功,當(dāng)當(dāng)前轉(zhuǎn)移指令實(shí)際轉(zhuǎn)移行為是成功,那么預(yù)測(cè)錯(cuò)誤,預(yù)測(cè)器狀態(tài)值變?yōu)?0,對(duì)下一條轉(zhuǎn)移指令轉(zhuǎn)移行為預(yù)測(cè)是轉(zhuǎn)移成功;當(dāng)當(dāng)前轉(zhuǎn)移指令實(shí)際轉(zhuǎn)移行為是不成功,那么預(yù)測(cè)對(duì)的,預(yù)測(cè)器狀態(tài)值變?yōu)?0,對(duì)下一條轉(zhuǎn)移指令轉(zhuǎn)移行為預(yù)測(cè)是不成功

假設(shè)預(yù)測(cè)器初始值是10,那么對(duì)當(dāng)前轉(zhuǎn)移指令轉(zhuǎn)移行為預(yù)測(cè)是轉(zhuǎn)移成功,

當(dāng)當(dāng)前轉(zhuǎn)移指令實(shí)際轉(zhuǎn)移行為是不成功,那么預(yù)測(cè)錯(cuò)誤,預(yù)測(cè)器狀態(tài)值變?yōu)?1,對(duì)下一條轉(zhuǎn)移指令轉(zhuǎn)移行為預(yù)測(cè)是不成功;當(dāng)當(dāng)前轉(zhuǎn)移指令實(shí)際轉(zhuǎn)移行為是轉(zhuǎn)移成功,那么預(yù)測(cè)對(duì)的,預(yù)測(cè)器狀態(tài)值變?yōu)?1,對(duì)下一條轉(zhuǎn)移指令轉(zhuǎn)移行為預(yù)測(cè)是轉(zhuǎn)移成功

假設(shè)預(yù)測(cè)器初始值是11,那么對(duì)當(dāng)前轉(zhuǎn)移指令轉(zhuǎn)移行為預(yù)測(cè)是轉(zhuǎn)移成功,當(dāng)當(dāng)前轉(zhuǎn)移指令實(shí)際轉(zhuǎn)移行為是不成功,那么預(yù)測(cè)錯(cuò)誤,預(yù)測(cè)器狀態(tài)值變?yōu)?0,對(duì)下一條轉(zhuǎn)移指令轉(zhuǎn)移行為預(yù)測(cè)是轉(zhuǎn)移成功;當(dāng)當(dāng)前轉(zhuǎn)移指令是轉(zhuǎn)移成功,那么預(yù)測(cè)對(duì)的,預(yù)測(cè)器狀態(tài)值不變,對(duì)下一條轉(zhuǎn)移指令轉(zhuǎn)移行為預(yù)測(cè)是轉(zhuǎn)移成功。

3、實(shí)現(xiàn)辦法

1)

設(shè)立一種專門CACHE,在IF流水段讀出一條轉(zhuǎn)移指令時(shí)候,用轉(zhuǎn)移指令低位地址去訪問轉(zhuǎn)移預(yù)測(cè)器,讀出對(duì)轉(zhuǎn)移指令預(yù)測(cè)值。

2)

在CACHE每一行設(shè)立兩個(gè)附加標(biāo)志位,用來標(biāo)志對(duì)轉(zhuǎn)移指令轉(zhuǎn)移行為,當(dāng)讀出一條轉(zhuǎn)移指令時(shí)候,連同預(yù)測(cè)值一起讀出

4、二位轉(zhuǎn)移預(yù)測(cè)器性能

二位轉(zhuǎn)移預(yù)測(cè)器性能比一位轉(zhuǎn)移預(yù)測(cè)器性能好

5、改進(jìn)辦法

1)

增長(zhǎng)位數(shù)

2)

增長(zhǎng)容量

四、有關(guān)轉(zhuǎn)移預(yù)測(cè)緩沖器

1、有關(guān)轉(zhuǎn)移指令概念有兩條轉(zhuǎn)移指令,后一條轉(zhuǎn)移指令轉(zhuǎn)移行為與前面那條轉(zhuǎn)移指令轉(zhuǎn)移行為有關(guān),那么這兩條轉(zhuǎn)移指令叫有關(guān)轉(zhuǎn)移指令。

2、有關(guān)轉(zhuǎn)移指令例子11)

程序IF(aa==2)aa=0;IF(bb==2)bb=0;IF(aa!==bb){……}2)

指令序列DSUBIR3,R1,#2BNEZR3,L1;br.b1(aa!=2)DADDR1,R0,R0;aa==0L1:DSUBIF3,R2,#2BNEZR3,L2;br.b2(bb!=2)DADDR2,R0,R0;bb==0L2:DSUBR3,R1,R2;R3=aa-bbBEQZR3,L3;br.b3(aa==bb)3)

有關(guān)性分析轉(zhuǎn)移指令b3轉(zhuǎn)移行為與轉(zhuǎn)移指令b1和轉(zhuǎn)移指令b2轉(zhuǎn)移行為是有關(guān),當(dāng)轉(zhuǎn)移指令b1和轉(zhuǎn)移指令b2轉(zhuǎn)移行為是不成功,那么b3轉(zhuǎn)移是成功。

3、有關(guān)轉(zhuǎn)移指令例子21)

程序If(d==0)d=1;if(d==1){…...}2)指令序列BNEZR1,L1;brb1,(d!=0)DADDIUR1,R0,#1;d==0,sod=1L1:DADDIUR3,R1,#-1;BNEZR3,L2;brb2,(d!=1)……L2:3)有關(guān)性分析

4、有關(guān)轉(zhuǎn)移預(yù)測(cè)緩沖器

有關(guān)轉(zhuǎn)移預(yù)測(cè)緩沖器是對(duì)普通轉(zhuǎn)移預(yù)測(cè)緩沖器進(jìn)行改造,使改造后預(yù)測(cè)緩沖器既可以解決不有關(guān)轉(zhuǎn)移指令預(yù)測(cè),也可以解決有關(guān)轉(zhuǎn)移指令預(yù)測(cè)

5、對(duì)有關(guān)轉(zhuǎn)移預(yù)測(cè)緩沖器改進(jìn)

把(1,1)維有關(guān)轉(zhuǎn)移預(yù)測(cè)緩沖器改成(m,n)維,其中值m表達(dá)具備有關(guān)性轉(zhuǎn)移指令數(shù)量,n表達(dá)有關(guān)轉(zhuǎn)移預(yù)測(cè)緩沖器位數(shù)

6、有關(guān)轉(zhuǎn)移預(yù)測(cè)緩沖器性能

有關(guān)轉(zhuǎn)移預(yù)測(cè)緩沖器性能比普通轉(zhuǎn)移預(yù)測(cè)緩沖器性能好

五、目的轉(zhuǎn)移預(yù)測(cè)緩沖器

1、目的轉(zhuǎn)移預(yù)測(cè)緩沖器定義轉(zhuǎn)移預(yù)測(cè)緩沖器存儲(chǔ)了被調(diào)用指令下一條要執(zhí)行預(yù)測(cè)指令地址,這個(gè)轉(zhuǎn)移預(yù)測(cè)緩沖器叫目的轉(zhuǎn)移預(yù)測(cè)緩沖器。

2、目的轉(zhuǎn)移預(yù)測(cè)緩沖器示意圖

3、目的轉(zhuǎn)移預(yù)測(cè)緩沖器工作原理

轉(zhuǎn)移指令地址存儲(chǔ)在BranchPC,轉(zhuǎn)移指令所相應(yīng)轉(zhuǎn)移目的指令地址存儲(chǔ)在PredictedPC中,當(dāng)從內(nèi)存中取出一條轉(zhuǎn)移指令后,用這條指令PC值,也就是地址值去查找目的轉(zhuǎn)移預(yù)測(cè)緩沖器BranchPC,如果在BranchPC中找到相等項(xiàng),那么接下來到BranchPC中該項(xiàng)所相應(yīng)PredictedPC值所批示內(nèi)存中去取下一條指令,如果在BranchPC中沒有找到,那闡明這條指令不是轉(zhuǎn)移指令,或是轉(zhuǎn)移指令而預(yù)測(cè)轉(zhuǎn)移是不成功,接下來要到PC+4內(nèi)存中去取指令

4、目的轉(zhuǎn)移預(yù)測(cè)緩沖器特點(diǎn)1)

目的轉(zhuǎn)移預(yù)測(cè)緩沖器在指令I(lǐng)F段就去讀轉(zhuǎn)移預(yù)測(cè)緩沖器,在IF段結(jié)束時(shí)候就懂得該指令與否轉(zhuǎn)移指令和轉(zhuǎn)移指令與否轉(zhuǎn)移成功2)

在訪問目的轉(zhuǎn)移預(yù)測(cè)緩沖器時(shí)候,還無法判斷與否是轉(zhuǎn)移指令,以及無法判斷轉(zhuǎn)移與否成功,還要進(jìn)行匹配3)

目的轉(zhuǎn)移預(yù)測(cè)緩沖器工作原理象CACHE工作原理同樣4)

目的轉(zhuǎn)移預(yù)測(cè)緩沖器只存儲(chǔ)預(yù)測(cè)轉(zhuǎn)移是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論