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

下載本文檔

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

文檔簡介

4.5.1多周期CPU回顧4.5.2指令流水基本概念4.5.3MIPS指令流水的實現4.5MIPS指令五級流水CPU設計4.5.1多周期CPU回顧多周期CPU特點指令的執行劃分為多個步驟每個步驟占用一個CPU周期不同指令的指令周期不同指令串行執行提高了整體性能各部件利用率依然偏低CPI>1可以如何改進呢?2.指令的二級流水1.指令的串行執行取指令

取指令部件

完成總有一個部件空閑指令預取若取指

和執行

階段時間上完全重疊指令周期減半速度提高1倍…執行指令

執行指令部件

完成取指令1執行指令1取指令2執行指令2取指令3執行指令3取指令2執行指令2取指令1執行指令1時間?4.5.2指令流水基本概念一、指令的幾種執行方式二、

流水線操作時空圖裝入階段穩定流水階段排空階段執行操作取數操作分析指令取指令1234567123456712345671234567空間T0T1T2T3T4T5T6T7T8T9時間I234567指令的流水線結構類似于工廠中的裝配流水線,使連續操作的多條指令,依次流入四個功能部件,使四個功能部件不停地依次處理不同指令的執行要求,這樣在每隔一個部件工作時間t,就可送入一條新的指令,每經過時間t就可得到一條指令執行的結果,指令執行速度可提高四倍。三、指令流水線的特點流水線的每個階段完成一條指令執行過程的一部分不同階段并行完成不同指令執行過程的不同部分。多條指令同時運行,占用CPU不同的資源。流水線并沒有縮短單條指令的時間,但提高了整個系統的吞吐率。連續不斷地提供指令才能發揮流水線的效率。指令1與指令4沖突指令2與指令5沖突指令1、指令3、指令6沖突…COFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFI指令1指令2指令3指令4指令5指令6指令7指令8指令91234567891011121314t四、影響指令流水線性能的因素1.結構相關不同指令爭用同一功能部件產生資源沖突程序中相近的指令之間出現某種關聯使指令流水出現停頓,影響流水線效率解決辦法:?停頓(插入汽泡)?指令存儲器和數據存儲器分開2.數據相關不同指令因重疊操作,可能改變操作數的讀/寫訪問順序采用旁路技術解決辦法寫后讀相關(RAW)SUBR1,R2,R3ADDR4,R5,R1;(R2)

(R3)R1;(R5)+(R1)R4讀后寫相關(WAR)STAM,R2ADDR2,R4,R5;(R2)M存儲單元;(R4)+(R5)R2寫后寫相關(WAW)采用亂序執行法解決MULR3,R2,R1SUB

R3,R4,R5;(R2)×

(R1)R3;(R4)(R5)

R3控制相關的沖突問題是由轉移指令引起的。

無條件轉移指令 條件轉移指令 子程序調用指令 中斷指令解決流水線中主要問題的幾種方法:1.采用等待法解決指令相關的問題;

2.采用分支預測:靜態、動態預測.3.控制相關4.5.3MIPS指令流水的實現指令執行步驟取指令(IF)指令譯碼(ID/RF)指令執行(EXE)讀存儲器(MEM)寫回(WB)各步驟占用的資源IF:IM、PCID/RF:寄存器組、控制信號生成部件EXE:ALUMEM:DMWB:寄存器組多周期CPU適合指令流水實現嗎?已分解為多個步驟,但步驟間的資源沖突比較頻繁單周期CPU容易實現指令流水嗎?一、流水線的實現每條指令的實現至多需要5個時鐘周期,時鐘周期如下取指令周期(IF)指令譯碼/讀寄存器周期(ID)

執行/有效地址計算周期(EX)

存儲器訪問/分支完成周期(MEM)

寫回周期(WB)

不同類型的指令在以上5個時鐘周期中進行的操作各不相同。劃分流水段在水線的各個流水段之間加入被稱為流水線寄存器的寄存器堆,并在這些寄存器堆上標明所連接的流水段。所有用于在同一條指令的各個時鐘周期之間保存臨時數據的寄存器,都歸入流水線寄存器這一類中。流水線寄存器保存著從一個流水段傳送到下一個流水段的所有數據和控制信息。PC多路選擇器被移到IF段,這樣做的目的是保證對PC值的寫操作只出現在一個流水段內,否則當分支轉移成功的時候,流水線中兩條指令都試圖在不同的流水段修改PC值,從而發生寫沖突。每個時刻,每條指令都只在一個流水段上是活動的,因此,任何指令所作的任何動作都發生在一對流水線寄存器之間,具體操作由指令類型決定。各階段寄存器保存的值IF/IDPC+4IRID/EXEA、B、imm、PC+4、funcrt/rdEXE/MEM運算結果:PC、ALU、結果狀態中間結果:B、目的寄存器MEM/WB目的寄存器、ALU結果、存儲器讀出的結果二、流水線的控制控制到每個功能部件但是,每個部件執行的不是同一條指令解決方案把控制信號和數據一樣流動起來為區分起見,把控制信號前面加上標記,如_IF等每個時鐘周期往下一步驟傳遞控制信號使正確的控制信號到達正確的位置流水控制的實現在RF/ID階段生成控制信號1個時鐘周期后使用EX要用的控制信號2個時鐘周期后使用MEM要用的控制信號3個時鐘周期后使用WB要用的控制信號支持流水的CPU三種CPU比較三、沖突時的解決方案1.結構沖突如果因資源沖突而無法使用某種指令組合,那么就稱流水線產生了結構沖突。暫停流水線執行,插入等待周期增加資源,解決資源沖突消除結構沖突的最簡單方法就是引入暫停周期,這必然要降低流水線的性能。2.數據沖突旁路技術解決RAW沖突將結果盡快傳送到需要使用它的位置旁路技術對數據通路的修改檢測數據沖突數據沖突的類型EXE段沖突MEM段沖突EXE段數據沖突的檢測EXE沖突檢測點:當前指令的ID/EX段和上一指令的EX/MEM段本條指令的源寄存器之一和上一條指令的目的寄存器相同上一條指令需要改寫目的寄存器,且不是0寄存器EX/MEM.RegWriteANDEX/MEM.RegisterRd!=0ANDEX/MEM.RegisterRd=ID/EX.RegisterReadRs

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

溫馨提示

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

評論

0/150

提交評論