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

下載本文檔

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

文檔簡介

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

取指令部件

完成總有一個部件空閑指令預(yù)取若取指

和執(zhí)行

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

執(zhí)行指令部件

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

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

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

R3,R4,R5;(R2)×

(R1)R3;(R4)(R5)

R3控制相關(guān)的沖突問題是由轉(zhuǎn)移指令引起的。

無條件轉(zhuǎn)移指令 條件轉(zhuǎn)移指令 子程序調(diào)用指令 中斷指令解決流水線中主要問題的幾種方法:1.采用等待法解決指令相關(guān)的問題;

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

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

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

寫回周期(WB)

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

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

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論