coursera課件控制冒險的處理_第1頁
coursera課件控制冒險的處理_第2頁
coursera課件控制冒險的處理_第3頁
coursera課件控制冒險的處理_第4頁
coursera課件控制冒險的處理_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、控制的處理 慕課計算機(jī)組成制作人:本節(jié)轉(zhuǎn)移指令對流水線的影響流水線的最終性能目標(biāo):最大的指令吞吐率T1T2T3T4T5T6T7T8T9這段循環(huán)執(zhí)行期間50%的性能被浪費(fèi)addsub取指譯碼執(zhí)行訪存回寫beq取指譯碼執(zhí)行訪存回寫lwadd Next:subbeq lw sw ori取指譯碼執(zhí)行訪存回寫$s3,$s3,1$s4,$s4,1$s3,$s4,Next$s0,16($s1)$s5,20($s6)$s7,$s7,4swsub轉(zhuǎn)移指令:sw改變指令流向,破壞流水模式取指譯碼執(zhí)行訪存beq取指譯碼執(zhí)行l(wèi)w取指譯碼取指取指譯碼執(zhí)行訪存回寫取指譯碼執(zhí)行訪存回寫轉(zhuǎn)移指令對性能的影響Pipeline

2、stall cycles from branches= Branch Frequency Branch Penalty轉(zhuǎn)移指令所占比例(Branch Frequency)每隔4到7條指令就會有一條轉(zhuǎn)移指令轉(zhuǎn)移指令所占比例大約為15%25%轉(zhuǎn)移指令損失(Branch Penalty)Alpha 21264:轉(zhuǎn)移損失平均為7個周期Pentium III:轉(zhuǎn)移損失平均為1015個周期AMD Athlon K7:轉(zhuǎn)移損失10個周期以上量處理器實(shí)例流水線越深,量數(shù)越多,轉(zhuǎn)移指令帶來的影響越大ARM Cortex-A15 3發(fā)射15級流水el Core i7 4發(fā)射16級流水轉(zhuǎn)移開銷當(dāng)執(zhí)行了轉(zhuǎn)移指令,并確

3、實(shí)發(fā)生轉(zhuǎn)移時,產(chǎn)生如下的開銷,稱為“轉(zhuǎn)移開銷”將按順序預(yù)取的指令(即“排空流水線”)從轉(zhuǎn)移目標(biāo)地址重新取指令轉(zhuǎn)移開銷的“要不要轉(zhuǎn)移?”:轉(zhuǎn)移條件判定引起的開銷“轉(zhuǎn)移到哪里?”:生成目標(biāo)地址引起的開銷轉(zhuǎn)移指令的分類無條件轉(zhuǎn)移條件轉(zhuǎn)移x86示例:JMPCALLx86示例:JZLOOP直接轉(zhuǎn)移MIPS示例: jjalMIPS示例: beq $t0, $t1,bgez$t0,x86示例:JMP JMPDWORD EAXPTR30H間接轉(zhuǎn)移CALLEAXMIPS示例: jr$t0無條件轉(zhuǎn)移直接轉(zhuǎn)移j目標(biāo)地址計算方法NewPC =(PC+4)31.28,address,006-bit26-bitJ3126

4、250opcodeaddress無條件 直接 轉(zhuǎn)移(j)執(zhí)行取指譯碼訪存寫回Instruction Word32rd515rt50rs5rt5bA32busW3232所需信息在取指0bB0階段即可獲得32(流水線不停頓)32Data In11imm1621632 Extender PCALUPC updateWrEnAdrData MemoryRwRa RbRegFile32-bit32InstructionMemoryAddress3uu32無條件轉(zhuǎn)移間接轉(zhuǎn)移jrrs目標(biāo)地址計算方法NewPC=Rrs6-bit5-bit5-bit5-bit5-bit6-bitR3126252120opcod

5、ersrtrdshamtfunct無條件 間接 轉(zhuǎn)移(jrrs) 取指 譯碼 執(zhí)行 訪存 寫回 Instruction Word32rd515rt50rs5rt5譯碼階段才能獲得轉(zhuǎn)移目標(biāo)地址(流水線停頓 周期32bA32busW320bB03232Data In11imm1621632 Extender PCALUPC updateWrEnAdrData MemoryRwRa RbRegFile32-bit32InstructionMemoryAddress3uu32條件轉(zhuǎn)移直接轉(zhuǎn)移beqrs,rt,imm16目標(biāo)地址計算方法if(Rrs-Rrt=0)thenelse6-bitNewNewPC

6、PC=PCPC+44+;SignExtimm16*4;5-bit5-bit16-bitI312625212016150opcodersrtimmediate條件轉(zhuǎn)移(beq 取指 rs,rt,imm16) 譯碼 執(zhí)行 訪存 寫回 Instruction Word32rd515rt50rs5rt5譯碼階段才能獲得待比較的寄存器內(nèi)容(流水線停頓 周期32bu A32busW320busB3203232Data In11imm162執(zhí)行階段才能完成轉(zhuǎn)移條件的判定(流水線停頓2周期)1632 Extender PCALPC updateWrEnAdrData MemoryRwRa RbRegFile3

7、2-bit32InstructionMemoryAddress3條件轉(zhuǎn)移(beq 取指 rs,rt,imm16) 譯碼 執(zhí)行 訪存 寫回 Instruction Word32rd515rt50rs5rt5在寄存器堆的輸出端增加額外的比較電路(流水線停頓1周期)32bA32busW320bB03232Data In11imm1621632 Extender PCALUPC updateWrEnAdrData MemoryRwRa RbRegFile32-bit32InstructionMemoryAddress3uu32控制的影響無條件直接轉(zhuǎn)移:流水線無停頓j無條件間接轉(zhuǎn)移:流水線停頓1個周期jrrs條件轉(zhuǎn)移:beq rs,rt,imm16流水線停頓1個周期延遲轉(zhuǎn)移技術(shù)流水線不停頓!xor addi subi beq slt$s1,$t1,$t2,$t1,$s4,$s2,$t3,$t4,$t2,$s5

溫馨提示

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

評論

0/150

提交評論