MIPS指令五級流水CPU設計_第1頁
MIPS指令五級流水CPU設計_第2頁
MIPS指令五級流水CPU設計_第3頁
MIPS指令五級流水CPU設計_第4頁
MIPS指令五級流水CPU設計_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、4.5.1 多周期CPU回顧4.5.2 指令流水基本概念4.5.3 MIPS指令流水的實現4.5 MIPS指令五級流水指令五級流水CPU設計設計4.5.1 多周期多周期CPU回顧回顧多周期CPU特點指令的執(zhí)行劃分為多個步驟每個步驟占用一個CPU周期不同指令的指令周期不同指令串行執(zhí)行提高了整體性能各部件利用率依然偏低CPI 1可以如何改進呢?2. 指令的二級流水指令的二級流水1. 指令的串行執(zhí)行指令的串行執(zhí)行取指令取指令 取指令部件取指令部件 完成完成總有一個部件總有一個部件 空閑空閑指令預取指令預取若若 取指取指 和和 執(zhí)行執(zhí)行 階段時間上階段時間上 完全重疊完全重疊指令周期指令周期 減半減半

2、 速度提高速度提高 1 倍倍執(zhí)行指令執(zhí)行指令 執(zhí)行指令部件執(zhí)行指令部件 完成完成取指令取指令 1執(zhí)行執(zhí)行指令指令 1 取取指令指令 2 執(zhí)行執(zhí)行指令指令 2 取取指令指令 3 執(zhí)行指令執(zhí)行指令 3取指令取指令 2執(zhí)行指令執(zhí)行指令 2取指令取指令 1執(zhí)行指令執(zhí)行指令 1時間時間?4.5.2 指令流水基本概念指令流水基本概念一、指令的幾種執(zhí)行方式二、二、 流水線操作時空圖流水線操作時空圖裝入階段裝入階段穩(wěn)定流水階段穩(wěn)定流水階段排空階段排空階段執(zhí)行操作執(zhí)行操作取數操作取數操作分析指令分析指令取指令取指令 空間空間T0 T1 T2 T3 T4 T5 T6 T7 T8 T9 時間時間I234567 指令

3、的流水線結構類似于工廠中的裝配流水線,使連續(xù)操作的多條指令,指令的流水線結構類似于工廠中的裝配流水線,使連續(xù)操作的多條指令,依次流入四個功能部件,使四個功能部件不停地依次處理不同指令的執(zhí)行要依次流入四個功能部件,使四個功能部件不停地依次處理不同指令的執(zhí)行要求,這樣在每隔一個部件工作時間求,這樣在每隔一個部件工作時間t,就可送入一條新的指令,每經過時間,就可送入一條新的指令,每經過時間t就可得到一條指令執(zhí)行的結果,指令執(zhí)行速度可提高四倍。就可得到一條指令執(zhí)行的結果,指令執(zhí)行速度可提高四倍。三、指令流水線的特點三、指令流水線的特點指令指令 1 與指令與指令 4 沖突沖突指令指令 2 與指令與指令

4、5 沖突沖突指令指令1、指令、指令3、指令、指令 6 沖突沖突COFOEI WODIFICOFOEIWODIFICO FOEIWODIFICO FOEI WODIFICOFOEIWODIFICO FOEIWODIFICOFOEIWODIFICOFOEI WODIFICO FOEIWODIFI指令指令 1指令指令 2指令指令 3指令指令 4指令指令 5指令指令 6指令指令 7指令指令 8指令指令 9 1 2 3 4 5 6 7 8 9 10 11 12 13 14t四、影響指令流水線性能的因素四、影響指令流水線性能的因素1. 結構相關結構相關不同指令爭用同一功能部件產生資源沖突不同指令爭用同一功

5、能部件產生資源沖突程序中相近的指令之間出現某種關聯程序中相近的指令之間出現某種關聯使指令流水出現停頓,影響流水線效率使指令流水出現停頓,影響流水線效率解決辦法解決辦法: 停頓(插入汽泡)停頓(插入汽泡) 指令存儲器和數據存儲器分開指令存儲器和數據存儲器分開2. 數據相關數據相關不同指令因重疊操作,可能改變操作數的不同指令因重疊操作,可能改變操作數的 讀讀/寫寫 訪問順序訪問順序 采用采用 旁路技術旁路技術解決辦法解決辦法 寫后讀相關(寫后讀相關(RAW)SUB R1,R2,R3ADD R4,R5,R1;(;(R2) (R3) R1;(;(R5)+(R1) R4 讀后寫相關(讀后寫相關(WAR)

6、STA M,R2ADD R2,R4,R5;(;(R2) M 存儲單元存儲單元;(;(R4)+(R5) R2 寫后寫相關(寫后寫相關(WAW)采用采用亂序執(zhí)行亂序執(zhí)行法解決法解決MUL R3,R2,R1SUB R3,R4,R5;(;(R2) (R1) R3;(;(R4) (R5) R3n控制相關的沖突問題是由轉移指令引起的。控制相關的沖突問題是由轉移指令引起的。無條件轉移指令無條件轉移指令條件轉移指令條件轉移指令子程序調用指令子程序調用指令中斷指令中斷指令n解決流水線中主要問題的幾種方法解決流水線中主要問題的幾種方法: 1.采用等待法解決指令相關的問題采用等待法解決指令相關的問題; 2.采用分支

7、預測采用分支預測: 靜態(tài)靜態(tài) 、動態(tài)預測、動態(tài)預測.3. 控制相關控制相關4.5.3 MIPS指令流水的實現指令流水的實現指令執(zhí)行步驟 取指令(IF) 指令譯碼(ID/RF) 指令執(zhí)行(EXE) 讀存儲器(MEM) 寫回(WB)各步驟占用的資源 IF:IM、PC ID/RF:寄存器組、控制信號生成部件 EXE:ALU MEM:DM WB:寄存器組多周期CPU適合指令流水實現嗎?已分解為多個步驟,但步驟間的資源沖突比較頻繁單周期CPU容易實現指令流水嗎?SignImmCLKARDInstructionMemory+4A1A3WD3RD2RD1WE3A2CLKSign ExtendRegister

8、File0101ARDDataMemoryWDWE01PC01PCInstr25:2120:1615:05:0SrcB20:1615:112+ALUResultReadDataWriteDataSrcAPCPlus4PCBranchWriteReg4:0Result31:26RegDstBranchMemWriteMemtoRegALUSrcRegWriteOpFunctControlUnitZeroPCSrcCLKALUControl2:0ALU1010010100一、流水線的實現一、流水線的實現 每條指令的實現至多需要5個時鐘周期,時鐘周期如下取指令周期(取指令周期(IF)指令譯碼讀寄存器

9、周期(指令譯碼讀寄存器周期(ID) 執(zhí)行有效地址計算周期(執(zhí)行有效地址計算周期(EX) 存儲器訪問分支完成周期(存儲器訪問分支完成周期(MEM) 寫回周期(寫回周期(WB) 不同類型的指令在以上5個時鐘周期中進行的操作各不相同。劃分流水段劃分流水段SignImmECLKARDInstructionMemory+4A1A3WD3RD2RD1WE3A2CLKSign ExtendRegisterFile0101ARDDataMemoryWDWE01PCF01PCInstrD25:2120:1615:0SrcBE20:1615:11RtERdE2+ALUOutMALUOutWReadDataWWri

10、teDataEWriteDataMSrcAEPCPlus4DPCBranchMWriteRegM4:0ResultWPCPlus4EPCPlus4FZeroMCLKCLKWriteRegW4:0ALUWriteRegE4:0CLKCLKCLKFetchDecodeExecuteMemoryWriteback在水線的各個流水段之間加入被稱為流水線寄存器的寄存器堆,并在這些寄存器堆上標明所連接的流水段。 所有用于在同一條指令的各個時鐘周期之間保存臨時數據的寄存器,都歸入流水線寄存器這一類中。 流水線寄存器保存著從一個流水段傳送到下一個流水段的所有數據和控制信息。PC多路選擇器被移到IF段,這樣做的

11、目的是保證對PC值的寫操作只出現在一個流水段內,否則當分支轉移成功的時候,流水線中兩條指令都試圖在不同的流水段修改PC值,從而發(fā)生寫沖突。每個時刻,每條指令都只在一個流水段上是活動的,因此,任何指令所作的任何動作都發(fā)生在一對流水線寄存器之間,具體操作由指令類型決定。各階段寄存器保存的值各階段寄存器保存的值IF/ID PC+4 IR ID/EXE A、B、imm、PC+4、func rt/rd EXE/MEM 運算結果:PC、ALU、結果狀態(tài) 中間結果:B、目的寄存器MEM/WB 目的寄存器、ALU結果、存儲器讀出的結果二、流水線的控制二、流水線的控制控制到每個功能部件但是,每個部件執(zhí)行的不是同

12、一條指令解決方案把控制信號和數據一樣流動起來為區(qū)分起見,把控制信號前面加上標記,如_IF等每個時鐘周期往下一步驟傳遞控制信號使正確的控制信號到達正確的位置流水控制的實現流水控制的實現在RF/ID階段生成控制信號 1個時鐘周期后使用EX要用的控制信號 2個時鐘周期后使用MEM要用的控制信號 3個時鐘周期后使用WB要用的控制信號支持流水的支持流水的CPUSignImmECLKARDInstructionMemory+4A1A3WD3RD2RD1WE3A2CLKSign ExtendRegisterFile0101ARDDataMemoryWDWE01PCF01PCInstrD25:2120:161

13、5:05:0SrcBE20:1615:11RtERdE2+ALUOutMALUOutWReadDataWWriteDataEWriteDataMSrcAEPCPlus4DPCBranchMWriteRegM4:0ResultWPCPlus4EPCPlus4F31:26RegDstDBranchDMemWriteDMemtoRegDALUControlDALUSrcDRegWriteDOpFunctControlUnitZeroMPCSrcMCLKCLKCLKCLKCLKWriteRegW4:0ALUControlE2:0ALURegWriteERegWriteMRegWriteWMemtoRe

14、gEMemtoRegMMemtoRegWMemWriteEMemWriteMBranchEBranchMRegDstEALUSrcEWriteRegE4:0三種三種CPU比較比較三、沖突時的解決方案三、沖突時的解決方案1.結構沖突結構沖突如果因資源沖突而無法使用某種指令組合,那么就稱流水線產生了結構沖突。 暫停流水線執(zhí)行,插入等待周期 增加資源,解決資源沖突消除結構沖突的最簡單方法就是引入暫停周期,這必然要降低流水線的性能。2. 數據沖突數據沖突旁路技術解決旁路技術解決RAW沖突沖突將結果盡快傳送到需要使用它的位置旁路技術對數據通路的修改旁路技術對數據通路的修改檢測數據沖突檢測數據沖突數據沖突

15、的類型 EXE段沖突 MEM段沖突EXE段數據沖突的檢測 EXE沖突檢測點:當前指令的ID/EX段和上一指令的EX/MEM段 本條指令的源寄存器之一和上一條指令的目的寄存器相同 上一條指令需要改寫目的寄存器,且不是0寄存器 EX/MEM.RegWrite AND EX/MEM.RegisterRd != 0 AND EX/MEM.RegisterRd = ID/EX.RegisterReadRs (Rt)MEM段數據沖突的檢測需要將Rs保存到ID/EX段與EXE段基本類似,略有不同增加旁路后的增加旁路后的CPU必須進行暫停的數據沖突必須進行暫停的數據沖突解決方案解決方案 檢測 暫停流水線互鎖檢

16、測檢測檢測點: 指令譯碼階段檢測條件 上一指令是Load指令(特征:MemRead控制信號) 且它的寫入寄存器和當前指令的某一源寄存器相同 ID/EX.MemRead AND (ID/EX.RegisterRt = IF/ID.RegisterRs OR ID/EX.RegisterRt = IF/ID.RegisterRd )暫停流水線暫停流水線一旦發(fā)生此類沖突暫停流水線一個時鐘 讓當前指令的控制信號全部為0,即不進行任何寫入操作 讓PC值保持不變 讓IF/ID段寄存器保持不變能處理數據沖突的數據通路能處理數據沖突的數據通路3.控制沖突控制沖突流水線的控制沖突是因為程序執(zhí)行轉移類指令而引起的沖突。轉移類指令如無條件轉移、條件轉移、子程序調用、中斷等,它們屬于分支指令,執(zhí)行中可能改變程序的方向,從而造成流水線斷流。數據沖突影響到的僅僅是本條指令附近少數幾條指令,所以稱為局部沖突。而控制沖突影響的范圍要大得多,它會引起程序執(zhí)行方向的改變,使流水線損失更多的性能,所以稱為全局沖突。控制沖突會使流水線的連續(xù)流動受到破壞。當執(zhí)行條件轉移指令時,有兩種可能結果: 如發(fā)生轉移,將程序計數器PC的內容改變成轉移目標地址; 如不發(fā)生轉移,只將PC加上一個增量,指向下一條指令的地址。 數據沖突由于數據的缺失引發(fā)控制沖突由于PC的缺失引發(fā)

溫馨提示

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

評論

0/150

提交評論