經(jīng)典MIPS五級(jí)流水介紹課件_第1頁
經(jīng)典MIPS五級(jí)流水介紹課件_第2頁
經(jīng)典MIPS五級(jí)流水介紹課件_第3頁
經(jīng)典MIPS五級(jí)流水介紹課件_第4頁
經(jīng)典MIPS五級(jí)流水介紹課件_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

經(jīng)典的MIPS五級(jí)流水介紹經(jīng)典的MIPS五級(jí)流水介紹1經(jīng)典MIPS五級(jí)流水介紹ppt課件2三種MIPS核心指令1算術(shù)邏輯運(yùn)算指令(ALUinstruction)2存儲(chǔ)指令(loadorstoreinstruction)3分支指令(branchinstruction)三種MIPS核心指令1算術(shù)邏輯運(yùn)算指令(ALUinstr3三種指令格式:oprsrtrdshamtfunctR型I型oprsrtconstantoraddressJ型opaddress三種指令格式:oprsrtrdshamt4五種尋址模式:1)寄存器尋址,操作數(shù)是寄存器2)基址或偏移尋址,操作數(shù)在內(nèi)存中,其地址是指令中基址寄存器和常數(shù)的和。3)立即數(shù)尋址,操作數(shù)是指令中的常數(shù).4)PC相對(duì)尋址,地址是PC計(jì)數(shù)器和指令中常數(shù)的和。5)偽直接尋址,跳轉(zhuǎn)地址是指令中26位和PC計(jì)數(shù)器的高位相連而成五種尋址模式:1)寄存器尋址,操作數(shù)是寄存器5五種MIPS尋址模式的圖示:1.立即數(shù)尋址oprsrtimmediate2.寄存器尋址oprsrtrd…funct寄存器3.基址尋址oprsrtaddress+寄存器半字字內(nèi)存字節(jié)五種MIPS尋址模式的圖示:1.立即數(shù)尋址oprs6五種MIPS尋址模式的圖示:4.PC相對(duì)尋址oprsrtaddressPC+○字5.偽直接尋址opaddressPC..字內(nèi)存五種MIPS尋址模式的圖示:4.PC相對(duì)尋址op7通常,一條MIPS指令包含的五個(gè)處理步驟:1)從存儲(chǔ)器中讀取指令。2)指令譯碼的同時(shí)讀取寄存器。MIPS的指令格式允許指令譯碼和讀取寄存器同時(shí)進(jìn)行。3)執(zhí)行操作或地址計(jì)算。4)在數(shù)據(jù)存儲(chǔ)器中讀取操作數(shù)。5)將結(jié)果寫回寄存器堆。通常,一條MIPS指令包含的五個(gè)處理步驟:1)從存儲(chǔ)器8利用流水線實(shí)現(xiàn)MIPS指令流水線是一種可以降多條指令的執(zhí)行過程相互重疊的實(shí)現(xiàn)技巧。理想情況下,流水線化帶來的加速比是流水線的級(jí)數(shù)。流水線所帶來的性能提升是通過提高指令的吞吐率來實(shí)現(xiàn)的,單挑指令的執(zhí)行時(shí)間并沒有減少。利用流水線實(shí)現(xiàn)MIPS指令流水線是一種可以降多條指令的執(zhí)9流水線的三種冒險(xiǎn)結(jié)構(gòu)冒險(xiǎn)即硬件不支持多條指令在同一時(shí)鐘周期內(nèi)執(zhí)行。數(shù)據(jù)冒險(xiǎn)在一個(gè)操作必須等待另一個(gè)操作完成后才能進(jìn)行時(shí),流水線必須停頓,我們稱這種情況為數(shù)據(jù)冒險(xiǎn)??刂泼半U(xiǎn)處理器需要根據(jù)一條指令的結(jié)果做出決策,此時(shí)其他的指令可能仍在執(zhí)行過程中。流水線的三種冒險(xiǎn)結(jié)構(gòu)冒險(xiǎn)即硬件不支持多條指令在同一時(shí)10五級(jí)流水線的數(shù)據(jù)通路把指令劃分為五個(gè)階段意味著這是一個(gè)五級(jí)流水線,任意一周期內(nèi),最多五條指令在執(zhí)行。把數(shù)據(jù)通路也劃分為五個(gè)部分,每部分用相應(yīng)的階段命名。五級(jí)流水線的數(shù)據(jù)通路把指令劃分為五個(gè)階段意味著這是一個(gè)五級(jí)流111)IF:取指令。2)ID:指令譯碼,讀寄存器堆。3)EX:指令執(zhí)行或地址計(jì)算。4)MEM:數(shù)據(jù)內(nèi)存訪問。5)WB:寫回。五級(jí)流水線的數(shù)據(jù)通路1)IF:取指令。五級(jí)流水線的數(shù)據(jù)通路12五條指令對(duì)應(yīng)的多時(shí)鐘周期流水線圖五條指令對(duì)應(yīng)的多時(shí)鐘周期流水線圖13傳統(tǒng)表示方式下多周期流水線圖傳統(tǒng)表示方式下多周期流水線圖14單周期數(shù)據(jù)通路圖單周期數(shù)據(jù)通路圖15經(jīng)典MIPS五級(jí)流水介紹ppt課件16經(jīng)典MIPS五級(jí)流水介紹ppt課件17經(jīng)典MIPS五級(jí)流水介紹ppt課件18引入流水線寄存器從之前的流水線數(shù)據(jù)通路圖可以看出,數(shù)據(jù)通路需要的值都是從上一級(jí)寄存器中流入下一級(jí)中。我們用被這些寄存器分開的兩個(gè)階段來命名它們,如IF和ID階段之間的流水線寄存器叫做IF/ID。引入流水線寄存器從之前的流水線數(shù)據(jù)通路圖可以看出,數(shù)據(jù)通路需19引入流水線寄存器圖引入流水線寄存器圖20流水線每級(jí)的工作流水線每級(jí)的工作21流水線中的控制一共9條控制線,根據(jù)流水線的五個(gè)步驟將控制線分為五組:1)取指令:讀取指令內(nèi)存和寫PC的控制信號(hào)總是確定的,沒特別需控制的。2)指令譯碼/讀取寄存器:每個(gè)時(shí)鐘周期內(nèi)這個(gè)步驟所完成的工作都是相同的,不需設(shè)置控制線。流水線中的控制一共9條控制線,根據(jù)流水線的五個(gè)步驟將控制線分223)指令執(zhí)行/地址計(jì)算:設(shè)置的控制線有RegDst、ALUOp和ALUSrc。根據(jù)這些信號(hào)選擇結(jié)果寄存器,確定ALU的操作,同時(shí)讀取數(shù)據(jù)2或經(jīng)過符號(hào)擴(kuò)展后得到的立即數(shù)。4)內(nèi)存訪問:設(shè)置的控制線有Branch、MemRead和MemWrite,這些控制信號(hào)分別由相等分支、取和存指令設(shè)定。除非控制信號(hào)指示這是一條分支指令同時(shí)ALU輸出為0,將選擇線性地址中的下一條指令作為PCSrc信號(hào)。5)寫回:兩條控制線分別是MemtoReg和RegWrite,前者決定是將ALU結(jié)果還是將內(nèi)存數(shù)據(jù)傳送寄存器堆,后者記錄所要寫入的數(shù)據(jù)。3)指令執(zhí)行/地址計(jì)算:設(shè)置的控制線有RegDst、ALUO23信號(hào)名稱

設(shè)為0時(shí)的效果

設(shè)為1時(shí)的效果RegDst寫入寄存器的目標(biāo)編號(hào)來自rt字段(20:16)寫入寄存器的目標(biāo)號(hào)來自rd字段(15:11)egWrite無將寫入數(shù)據(jù)的輸入寫入至寫入寄存器輸入對(duì)應(yīng)的寄存器ALUSrcR第二個(gè)ALU操作數(shù)來自第二個(gè)寄存器堆的輸出(讀出數(shù)據(jù)2)第二個(gè)ALU操作數(shù)為已符號(hào)化擴(kuò)展的指令低16位PCSrcPC的值替換為計(jì)算PC+4的加法器的輸出PC的值置為計(jì)算分支目標(biāo)地址的加法器的輸出MemRead無輸入地址對(duì)應(yīng)的數(shù)據(jù)內(nèi)存的內(nèi)容放置到讀出數(shù)據(jù)的輸出MemWrite無輸入地址對(duì)應(yīng)的數(shù)據(jù)內(nèi)存的內(nèi)容替換為寫入數(shù)據(jù)的輸入MemtoRegALU提供寄存器寫數(shù)據(jù)的輸入值數(shù)據(jù)內(nèi)存提供寄存器寫數(shù)據(jù)的輸入值信號(hào)名稱設(shè)為0時(shí)的效果設(shè)為1時(shí)的效果24三種流水線冒險(xiǎn)結(jié)構(gòu)冒險(xiǎn)如果由于資源爭奪導(dǎo)致幾條指令不能在同一時(shí)鐘周期內(nèi)執(zhí)行,就稱處理器中含有結(jié)構(gòu)冒險(xiǎn)。阻塞(stall)也叫氣泡(bubble),解決結(jié)構(gòu)冒險(xiǎn)的一種方式。○三種流水線冒險(xiǎn)結(jié)構(gòu)冒險(xiǎn)如果由于資源爭奪導(dǎo)致幾條指令不能在25三種流水線冒險(xiǎn)數(shù)據(jù)冒險(xiǎn)一個(gè)操作必須等待另一個(gè)操作完成后才能進(jìn)行時(shí),流水線必須停頓,我們稱這種情況為數(shù)據(jù)冒險(xiǎn)。轉(zhuǎn)發(fā)(forward)也叫旁路(bypass)。上一個(gè)操作的結(jié)果產(chǎn)生以后不必寫回寄存器,直接轉(zhuǎn)發(fā)給下一條指令??梢韵糠?jǐn)?shù)據(jù)冒險(xiǎn)。阻塞(stall)當(dāng)一條指令試圖讀取一個(gè)寄存器而它前一條指令是load指令,并且該load指令寫入的是同一寄存器時(shí),必須采用相應(yīng)的機(jī)制阻塞流水線。三種流水線冒險(xiǎn)數(shù)據(jù)冒險(xiǎn)一個(gè)操作必須等待另一個(gè)操作完成后才能26三種流水線冒險(xiǎn)分支冒險(xiǎn)也叫控制冒險(xiǎn)。每周期都取指令,但對(duì)與分支指令,必須等到MEM階段才能確定是否執(zhí)行分支。這種為了確定預(yù)取正確的指令導(dǎo)致的延遲叫做分支冒險(xiǎn)。靜態(tài)預(yù)測(cè)阻塞直到分支發(fā)生完畢的速度實(shí)在太慢。比較普遍的提高分支阻塞速度的方法是假設(shè)分支不發(fā)生,繼續(xù)執(zhí)行;或者假定分支發(fā)生,跳到轉(zhuǎn)移地址執(zhí)行??梢詫⒎种半U(xiǎn)的代價(jià)減半。三種流水線冒險(xiǎn)分支冒險(xiǎn)也叫控制冒險(xiǎn)。每周期都取指令,但對(duì)27動(dòng)態(tài)分支預(yù)測(cè)查找指令的地址觀察上一次執(zhí)行該指令時(shí)分支是否發(fā)生,如果上次執(zhí)行時(shí)分支發(fā)生就從上次分支發(fā)生的地方開始取指令。一種實(shí)現(xiàn)方法是采用分支預(yù)測(cè)緩存或分支歷史表??s短分支的延遲在流水線中提早分支指令的執(zhí)行過程,就能減少需要清除的指令數(shù),可以降低執(zhí)行分支的代價(jià)。動(dòng)態(tài)分支預(yù)測(cè)查找指令的地址觀察上一次執(zhí)行該指令時(shí)分支是否發(fā)28異常異常(exception)是控制冒險(xiǎn)的另一種形式。MIPS流水線中可能發(fā)生的異常。異常異常(exception)是控制冒險(xiǎn)的另一種形式。29異常處理可以采用與發(fā)生分支時(shí)同樣的基址,清除異常后面

溫馨提示

  • 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)論