體系結(jié)構(gòu)第3章 第5講_第1頁
體系結(jié)構(gòu)第3章 第5講_第2頁
體系結(jié)構(gòu)第3章 第5講_第3頁
體系結(jié)構(gòu)第3章 第5講_第4頁
體系結(jié)構(gòu)第3章 第5講_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

國家精品資源共享課程:計(jì)算機(jī)體系結(jié)構(gòu)第三章:流水線技術(shù)國防科技大學(xué)計(jì)算機(jī)學(xué)院主講人:教授第三章流水線技術(shù)3.1流水線基本概念3.2MIPS基本流水線3.3流水線中的相關(guān)3.4實(shí)例分析:MIPSR40003.5向量處理機(jī)本章內(nèi)容1.分支指令的實(shí)現(xiàn)一旦分支轉(zhuǎn)移成功,正確的地址要在Mem段的末尾才會(huì)被寫入PC一旦ID段檢測(cè)到分支指令,就暫停執(zhí)行其后的指令,直到分支指令達(dá)到Mem段,確定新的PC為止分支轉(zhuǎn)移成功將導(dǎo)致MIPS流水線暫停3個(gè)周期3.3.3流水線的控制相關(guān)2.減少分支開銷的途徑兩個(gè)基本途徑:同時(shí)采用,缺一不可!在流水線中盡早判斷分支轉(zhuǎn)移是否成功轉(zhuǎn)移成功時(shí),盡早計(jì)算出轉(zhuǎn)移目標(biāo)地址經(jīng)改進(jìn),MIPS流水線可以將分支開銷減少1拍將“=0?”測(cè)試提前到ID段在ID段增加一個(gè)加法器,計(jì)算分支目標(biāo)地址表3.6列出了改進(jìn)后流水線的分支操作再改進(jìn),MIPS流水線可以將分支開銷再減少1拍將分支判斷結(jié)果和目標(biāo)地址提前到ID/EX站前3.程序中分支指令的行為特點(diǎn)(1)各種能改變PC值的指令的執(zhí)行頻度條件分支:整數(shù)程序:14-15%浮點(diǎn)程序:3-12%

其中,向前分支與向后分支的比:3:1無條件分支:≤4%(絕大多數(shù))(2)條件分支轉(zhuǎn)移成功的概率向前轉(zhuǎn)移成功:60%;向后轉(zhuǎn)移成功:85%4.減少流水線分支損失的方法(1)凍結(jié)或排空流水線思路:在流水線中停住或刪除分支后的指令,直到知道轉(zhuǎn)移目標(biāo)地址優(yōu)點(diǎn):簡單(2)預(yù)測(cè)分支轉(zhuǎn)移失敗思路:流水線繼續(xù)照常流動(dòng),如果分支轉(zhuǎn)移成功,將分支指令后的指令轉(zhuǎn)換為空操作,并從分支目標(biāo)處開始取指令執(zhí)行;否則照常執(zhí)行MIPS流水線的處理過程4.減少流水線分支損失的方法(3)預(yù)測(cè)分支轉(zhuǎn)移成功思路:始終假設(shè)分支成功,直接從分支目標(biāo)處取指令執(zhí)行對(duì)MIPS流水線沒有任何好處!(4)延遲分支(delayedbranch)思路:分支開銷為n的分支指令后緊跟有n個(gè)延遲槽,流水線遇到分支指令時(shí),按正常方式處理,順帶執(zhí)行延遲槽中的指令,從而減少分支開銷。

延遲分支及指令的執(zhí)行順序4.減少流水線分支損失的方法具有一個(gè)分支延遲槽的MIPS流水線的執(zhí)行過程什么樣的指令能否放入分支延遲槽?三種調(diào)度方法:從前調(diào)度;從目標(biāo)處調(diào)度;從失敗處調(diào)度三種方法的要求與效果,存在限制因素編譯器預(yù)測(cè)分支是否成功的能力放入延遲槽中的指令取消分支 (舉例) 思路:分支指令中包含預(yù)測(cè)方向,若預(yù)測(cè)正確,正常執(zhí)行延遲槽中的指令,否則將其轉(zhuǎn)換為空操作5.各種分支處理方法的性能(1)假設(shè)理想CPI=1,則加速比S=D/(1+C)=D/(1+f×p分支)

這里,D為流水線的深度,p分支為分支開銷,C為分支引起的流水線暫停時(shí)鐘周期數(shù)(每條指令的平均值),f為分支的出現(xiàn)頻度。(2)表3.7列出了流水線中各種處理方法的開銷3.4實(shí)例分析:MIPSR40003.4.1MIPSR4000的整型流水線3.4.2MIPSR4000的浮點(diǎn)流水線3.4.3MIPSR4000流水線性能分析1.指令集:64位MIPS-3指令集2.MIPSR4000流水線結(jié)構(gòu)超流水結(jié)構(gòu)(superpipeling)訪存操作流水化3.流水線各段的功能3.4.1MIPSR4000的整型流水線4.指令序列在流水線中的重疊執(zhí)行過程定向+插入暫停周期5.載入延遲為兩個(gè)時(shí)鐘周期6.指令序列在流水線中的執(zhí)行時(shí)空?qǐng)D7.R4000流水線的定向路徑遠(yuǎn)多于MIPS流水線

ALU輸入端的定向源有4個(gè):EX/DF,DF/DS,DS/TC,TC/WB8.分支處理在EX段完成分支條件的計(jì)算,基本分支延遲為3個(gè)時(shí)鐘周期分支處理策略單周期延遲分支從失敗處調(diào)度時(shí)-空?qǐng)D包括浮點(diǎn)除法器、浮點(diǎn)乘法器和浮點(diǎn)加法器各1個(gè)分為8段(P121表3.9)多功能非線性流水線雙精度浮點(diǎn)操作指令延遲、初始化間隔和流水段的使用情況(P121表3.10)3.4.2MIPSR4000的浮點(diǎn)流水線1.引起流水線暫停的四個(gè)主要原因載入暫停分支暫停浮點(diǎn)結(jié)果暫停浮點(diǎn)結(jié)構(gòu)性暫停2.暫停對(duì)MIPSR4000流水線CPI的影響表3.113.4.3MIPSR4000流水線性能分析從前調(diào)度從目標(biāo)處調(diào)度從失敗處調(diào)度×××NotaketakeADDADDIfIf××××××××××ADDR1,R2,R3NotakeTakeADDADDSUBSUBADDADDifif××SUBADD××××NotakeTakeADDADDIfIf×××××SUB×××

××××××××NotaketakeIfIfADDADD××××××××NotakeTakeADDADDSUBSUBADDADDififSUBSUB××ADDNotakeTakeADDADDIfIfSUB

SUB××××××××

×××××××流水段分支指令操作IFIDEXIF/ID.IR←Mem[PC];IF/ID.NPC,PC←(ifID/EX.cond{ID/EX.NPC}else{PC+4});ID/EX.A←Regs[IF/ID.IR6...10];ID/EX.B←Regs[IF/ID.IR11...15];

ID/EX.NPC←IF/ID.NPC+(IR16)16##IR16..31;

ID/EX.IR←IF/ID.IR;ID/EX.cond←(Regs[IF/ID.IR6...10]op0;

ID/EX.Imm←(IR16)16##IR16...31;MEMWB表3.6三種方法的要求及效果調(diào)度策略對(duì)調(diào)度的要求其作用前提從前調(diào)度被調(diào)度的指令必須與分支結(jié)果無關(guān)任何情況從目標(biāo)處調(diào)度必須保證在分支失敗時(shí)執(zhí)行被調(diào)度的指令不會(huì)導(dǎo)致錯(cuò)誤,可能需要復(fù)制指令分支成功時(shí)從失敗處調(diào)度必須保證在分支成功時(shí)執(zhí)行被調(diào)度的指令不會(huì)導(dǎo)致錯(cuò)誤分支失敗時(shí)表3.7各種減少分支損失方法的效果調(diào)度方法每條分支指令的

平均分支損失暫停流水線預(yù)測(cè)分支成功每條條件分支指

令的分支損失預(yù)測(cè)分支失敗1.00延遲分支每條無條

件分支指

令的損失具有分支暫停

的有效CPI浮點(diǎn)

平均整型

平均整型

平均整型

平均浮點(diǎn)

平均浮點(diǎn)

平均1.001.000.620.251.001.001.001.001.000.690.211.001.171.151.001.171.150.741.121.110.701.000.350.000.301.041.04Earle鎖存器1965年由J.G.Earle發(fā)明優(yōu)點(diǎn)對(duì)時(shí)鐘扭曲不敏感(相對(duì)而言),一般是兩級(jí)門延遲,避免了數(shù)據(jù)通過鎖存器時(shí)可能產(chǎn)生的時(shí)鐘扭曲在鎖存器中可以執(zhí)行兩級(jí)邏輯運(yùn)算,而不會(huì)增加鎖存器的延遲時(shí)間,可以隱藏鎖存器產(chǎn)生的額外開銷表3.9R4000浮點(diǎn)流水線中8個(gè)流水段流水段功能部件描述A浮點(diǎn)加法器尾數(shù)加D浮點(diǎn)除法器除法E浮點(diǎn)乘法器例外測(cè)試M浮點(diǎn)乘法器乘法第一階段N浮點(diǎn)乘法器乘法第二階段R浮點(diǎn)加法器舍入S浮點(diǎn)加法器操作數(shù)移位U展開浮點(diǎn)數(shù)表3.10雙精度浮點(diǎn)操作指令延遲、初始化間隔和流水段的使用情況浮點(diǎn)指令延遲初始化間隔使用的流水段加、減43U,S+A,A+R,R+S乘84U,E+M,M,M,M,N,N+A,R除3635U,A,R,D28,D+A,D+R,D+A,D+R,A,R求平方根112111U,E,(A+R)108,A,R取反21U,S求絕對(duì)值21U,S浮點(diǎn)比較32U,A,R表3.11暫停對(duì)R4000流水線CPI的影響整數(shù)平均: 流水線CPI 1.54

載入

溫馨提示

  • 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. 人人文庫網(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)論