




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第五部分 CPU與控制單元設(shè)計(jì)一、CPU的功能與組成二、數(shù)據(jù)通路設(shè)計(jì)三、指令執(zhí)行流程分析四、硬布線控制器設(shè)計(jì)五、微程序原理六、微程序控制器設(shè)計(jì)七、MIPS數(shù)據(jù)通路實(shí)現(xiàn)簡(jiǎn)介八、流水線技術(shù)簡(jiǎn)介7.1 概述MIPS 寄存器結(jié)構(gòu)32位虛擬地址空間32個(gè)32位GPRs(通用寄存器)32個(gè)32 位FPRs(浮點(diǎn)數(shù)寄存器)HI, LO, PC7.1 概述MIPS 指令格式Op: 6 bits, OpcdoeRs: 5 bits, The first register source operandRt: 5 bits, The second register source operandRd: 5 bits,
2、 The register destination operandShamt: 5 bits, Shift amount ( shift instruction)Func: 6 bits, function code ( another Opcode)R類型I類型J類型7.1 概述MIPS 尋址方式7.2 MIPS的數(shù)據(jù)通路實(shí)現(xiàn)MIPS基本實(shí)現(xiàn)(子集)MIPS指令系統(tǒng)子集存儲(chǔ)訪問指令:load word(lw)和store word(sw)算術(shù)邏輯指令:add、sub、and、or和 slt跳轉(zhuǎn)指令: branch equal(beq)和jump(j)指令類型R型指令:add、sub、sltI
3、型指令:addi、ori、lw、sw、beqJ型指令:j7.2 MIPS的數(shù)據(jù)通路實(shí)現(xiàn)7.2 MIPS的數(shù)據(jù)通路實(shí)現(xiàn)通路設(shè)計(jì)考慮使用指令存儲(chǔ)區(qū)和數(shù)據(jù)存儲(chǔ)區(qū)分別保存指令和數(shù)據(jù)指令執(zhí)行的共性根據(jù)PC從內(nèi)存讀取指令,取指令后,PC+4;所有類型的指令在讀取寄存器后,都要使用ALU存儲(chǔ)訪問指令用ALU計(jì)算地址算術(shù)邏輯指令用來執(zhí)行計(jì)算分支指令用ALU進(jìn)行比較7.2 MIPS的數(shù)據(jù)通路實(shí)現(xiàn)取指和PC自增數(shù)據(jù)通路7.2 MIPS的數(shù)據(jù)通路實(shí)現(xiàn)R型指令數(shù)據(jù)通路部件add rd, rs, rt /* rd (rs) op (rt)指令格式:部件:寄存器堆、ALU7.2 MIPS的數(shù)據(jù)通路實(shí)現(xiàn)內(nèi)存指令(sw,lw
4、)數(shù)據(jù)通路部件lw rt, rs, imm16指令格式:指令功能:rt Mem (rs) + imm167.2 MIPS的數(shù)據(jù)通路實(shí)現(xiàn)分支指令數(shù)據(jù)通路 beq rs, rt, imm16指令格式:指令功能: If ( (rs) - (rt) =0) then PC (PC) + imm16*47.2 MIPS的數(shù)據(jù)通路實(shí)現(xiàn)訪存指令與 R型指令數(shù)據(jù)通路組合7.2 MIPS的數(shù)據(jù)通路實(shí)現(xiàn)MIPS各種數(shù)據(jù)通路組合7.2 MIPS的數(shù)據(jù)通路實(shí)現(xiàn)MIPS數(shù)據(jù)通路(多路復(fù)用 + 控制信號(hào))指令存儲(chǔ)區(qū)數(shù)據(jù)存儲(chǔ)區(qū)寄存器堆7.2 MIPS的數(shù)據(jù)通路實(shí)現(xiàn)MIPS數(shù)據(jù)通路(帶控制單元)指令存儲(chǔ)區(qū)寄存器堆數(shù)據(jù)存儲(chǔ)區(qū)控
5、制單元控制單元7.2 MIPS的數(shù)據(jù)通路實(shí)現(xiàn)R型指令的數(shù)據(jù)通路(例如: add $t1,$t2,$t3)指令存儲(chǔ)區(qū)寄存器堆數(shù)據(jù)存儲(chǔ)區(qū)控制單元7.2 MIPS的數(shù)據(jù)通路實(shí)現(xiàn)取數(shù)指令(lw)數(shù)據(jù)通路控制單元指令存儲(chǔ)區(qū)寄存器堆數(shù)據(jù)存儲(chǔ)區(qū)7.2 MIPS的數(shù)據(jù)通路實(shí)現(xiàn)存數(shù)指令(sw)數(shù)據(jù)通路控制單元指令存儲(chǔ)區(qū)寄存器堆數(shù)據(jù)存儲(chǔ)區(qū)7.2 MIPS的數(shù)據(jù)通路實(shí)現(xiàn)相等則轉(zhuǎn)移(beq)指令數(shù)據(jù)通路7.2 MIPS的數(shù)據(jù)通路實(shí)現(xiàn)MIPS數(shù)據(jù)通路(擴(kuò)展實(shí)現(xiàn)跳轉(zhuǎn)指令j)7.3 MIPS的多周期數(shù)據(jù)通路實(shí)現(xiàn)方案為什么不使用單周期實(shí)現(xiàn)方式單周期設(shè)計(jì)中,時(shí)鐘周期對(duì)所有指令等長(zhǎng)。而時(shí)鐘周期由計(jì)算機(jī)中可能的最長(zhǎng)路徑?jīng)Q定,一般為
6、取數(shù)指令。但某些指令類型本來可以在更短時(shí)間內(nèi)完成。多周期方案將一條指令的執(zhí)行分解為一系列步驟指令的每一步將占用一個(gè)時(shí)鐘周期一個(gè)功能單元可以在一條指令的執(zhí)行過程中使用多次,只要是在不同周期中(這種共享可減少所需的硬件數(shù)量)允許指令的執(zhí)行占用不同周期數(shù)、功能單元共享是多周期設(shè)計(jì)的主要優(yōu)點(diǎn)7.3 MIPS的多周期數(shù)據(jù)通路實(shí)現(xiàn)方案多周期數(shù)據(jù)通路高層視圖(和單周期數(shù)據(jù)通路區(qū)別)指令和數(shù)據(jù)使用同一個(gè)存儲(chǔ)器單元只有一個(gè)ALU,而不是一個(gè)ALU和兩個(gè)加法器每個(gè)主要功能單元都加上了一個(gè)或多個(gè)寄存器存儲(chǔ)輸出值,以便在后面的時(shí)鐘周期中使用7.3 MIPS的多周期數(shù)據(jù)通路實(shí)現(xiàn)方案MIPS的多周期數(shù)據(jù)通路給ALU的第一
7、個(gè)輸入添加了一個(gè)多路復(fù)用器,它在寄存器A和PC間進(jìn)行選擇ALU第二個(gè)輸入的多路復(fù)用器由2路改為4路,其新加的兩個(gè)輸入為常數(shù)4(用于PC增值)和符號(hào)擴(kuò)展及移位后的偏移量字段(用于計(jì)算分支地址)7.3 MIPS的多周期數(shù)據(jù)通路實(shí)現(xiàn)方案數(shù)據(jù)通路加上控制線路數(shù)據(jù)通路用多個(gè)時(shí)鐘周期完成一條指令,所以需要一套不同的控制信號(hào)PC,存儲(chǔ)器,寄存器,IR需要寫控制信號(hào);存儲(chǔ)器還需要一個(gè)讀信號(hào)ALU控制器需要控制信號(hào)進(jìn)行ALU操作類型控制每個(gè)2輸入、4輸入多路復(fù)用器分別需要1、2根控制線7.3 MIPS的多周期數(shù)據(jù)通路實(shí)現(xiàn)方案多周期實(shí)現(xiàn)的完整的數(shù)據(jù)通路和必要的控制線路7.3 MIPS的多周期數(shù)據(jù)通路實(shí)現(xiàn)方案將指令
8、分解到各個(gè)時(shí)鐘周期,可以最大化性能把任意指令的執(zhí)行分解為一系列步驟,每步一個(gè)時(shí)鐘周期,基本上長(zhǎng)度相當(dāng)。比如規(guī)定,每一步最多包含一次ALU操作,或一次寄存器堆訪問,或一次存儲(chǔ)器訪問。將指令的執(zhí)行分到各個(gè)時(shí)鐘周期取指指令譯碼和讀取寄存器指令的執(zhí)行,存儲(chǔ)地址的計(jì)算或分支的完成存儲(chǔ)器的訪問或R型指令的完成讀取存儲(chǔ)器完成第五部分 CPU與控制單元設(shè)計(jì)一、CPU的功能與組成二、數(shù)據(jù)通路設(shè)計(jì)三、指令執(zhí)行流程分析四、硬布線控制器設(shè)計(jì)五、微程序原理六、微程序控制器設(shè)計(jì)七、MIPS數(shù)據(jù)通路實(shí)現(xiàn)簡(jiǎn)介八、流水線技術(shù)簡(jiǎn)介8.1 流水線原理洗衣店流程4個(gè)流程:洗衣、烘干、熨燙、折疊非流水線模式流水線模式非流水線模式時(shí)間流
9、水線模式時(shí)間8.1 流水線原理指令執(zhí)行流程(不失一般性,指令執(zhí)行的六個(gè)步驟)取指令(FI):從存儲(chǔ)器取出一條指令存入指令緩沖區(qū);指令譯碼(DI):確定操作性質(zhì)和操作數(shù)地址計(jì)算方式;計(jì)算操作數(shù)地址(CO):計(jì)算操作數(shù)有效地址;取操作數(shù)(FO):從存儲(chǔ)器中取操作數(shù)(若操作數(shù)在寄存器,則無需該步驟)執(zhí)行指令(EI):執(zhí)行指令所需操作;寫操作數(shù)(WO):將結(jié)果存入存儲(chǔ)器。串行執(zhí)行假定各個(gè)步驟需要的時(shí)間:FI=20ns,DI=10ns, CO=10ns,F(xiàn)O=20ns, EI=15ns , WO=20ns;一條指令的執(zhí)行時(shí)間:20+10+10+20+15+20=95ns8.1 流水線原理流水線模型每個(gè)步
10、驟分配相等的時(shí)間(20ns)6級(jí)流水模型;處理器包含6個(gè)操作部件;指令執(zhí)行時(shí)間:20*6=120ns每20ns完成一條指令8.1 流水線原理(MIPS單周期模型與流水線模型對(duì)比)假定以下每步操作所花時(shí)間為:取指操作:2ns寄存器讀:1nsALU操作:2ns存儲(chǔ)器讀:2ns寄存器寫:1ns單周期模型每條指令在一個(gè)時(shí)鐘周期內(nèi)完成時(shí)鐘周期等于最長(zhǎng)的lw指令的執(zhí)行時(shí)間,即:8ns串行執(zhí)行時(shí),N條指令的執(zhí)行時(shí)間為:8Nns流水線性能時(shí)鐘周期等于最長(zhǎng)階段所花時(shí)間為:2ns每條指令的執(zhí)行時(shí)間為:5步,共 10nsN條指令的執(zhí)行時(shí)間為:(2+2xN+1)ns在N很大時(shí),比串行方式提高約 4 倍MIPS 的Lo
11、ad指令執(zhí)行時(shí)間總計(jì)為:8ns (假定控制單元、PC訪問、信號(hào)傳遞等沒有延遲)流水線方式下,單條指令的執(zhí)行時(shí)間不能縮短,但能大大提高指令的吞吐量8.1 流水線原理(流水線指令集)具有什么特征的指令集有利于流水線執(zhí)行呢?指令長(zhǎng)度盡量一致,有利于簡(jiǎn)化取指令和指令譯碼操作MIPS指令都是32位,每次取四個(gè)單元的指令,且下址計(jì)算方便: PC+4X86指令從1字節(jié)到17字節(jié)不等,使取指部件及其復(fù)雜指令格式少,且源寄存器位置相同,有利于在指令未知時(shí)就可取操作數(shù)MIPS指令的Rs和Rt位置一定,在指令譯碼時(shí)就可讀Rs和Rt的值(若位置隨指令不同而不同,則需先譯碼確定指令后才能取寄存器編號(hào))只有l(wèi)oad /
12、Store指令才能訪問存儲(chǔ)器,有利于減少操作步驟,規(guī)整流水線可以把lw/sw指令的地址計(jì)算和運(yùn)算指令的執(zhí)行步驟規(guī)整在同一個(gè)周期X86運(yùn)算類指令的操作數(shù)可以是內(nèi)存數(shù)據(jù),故需計(jì)算地址、訪存、執(zhí)行數(shù)據(jù)和指令在內(nèi)存中要”對(duì)齊”存放,有利于減少訪存次數(shù)和流水線的規(guī)整指令的流水線執(zhí)行能大大提高指令的吞吐率,現(xiàn)代計(jì)算機(jī)都采用流水線方式8.2 流水線冒險(xiǎn)問題ClockCycle 1Cycle 2Cycle 3Cycle 4Cycle 5Cycle 6Cycle 7IfetchReg/DecExecMemWr1st lwIfetchReg/DecExecMemWr2nd lwIfetchReg/DecExecM
13、emWr3rd lwMIPS Load指令的流水線每條load指令五個(gè)步驟取指令(ifetch)、寄存器取數(shù)/譯碼(Reg/Dec)、ALU計(jì)算地址(Exec)、存儲(chǔ)器讀操作(Mem)、數(shù)據(jù)寫寄存器(Wr)每個(gè)周期有一條指令進(jìn)入流水線,每個(gè)周期都有一條指令完成每條指令的有效周期(CPI)為18.2 流水線冒險(xiǎn)問題Cycle 1Cycle 2Cycle 3Cycle 4IfetchReg/DecExecWrR-typeMIPS R型指令的流水每條指令4個(gè)步驟Ifetch: 取指令并計(jì)算PC+4Reg/Dec: 從寄存器取數(shù),同時(shí)指令在譯碼器進(jìn)行譯碼Exec: 在ALU中對(duì)操作數(shù)進(jìn)行計(jì)算Wr: A
14、LU計(jì)算的結(jié)果寫到寄存器8.2 流水線冒險(xiǎn)問題MIPS R型指令與load指令混合IfetchReg/DecExecWrR-typeIfetchReg/DecExecWrR-typeClockCycle 1Cycle 2Cycle 3Cycle 4Cycle 5Cycle 6Cycle 7Cycle 8Cycle 9IfetchReg/DecExecWrR-typeIfetchReg/DecExecWrR-typeIfetchReg/DecExecMemWrLoadWe have a problem!上述流水線有個(gè)問題: 兩條指令試圖同時(shí)寫寄存器Load在第5階段用寄存器寫口R-type在第4
15、階段用寄存器寫口一個(gè)功能部件同時(shí)被多條指令使用的現(xiàn)象:結(jié)構(gòu)冒險(xiǎn)(Struture Hazard)8.2 流水線冒險(xiǎn)問題流水線冒險(xiǎn)(Hazard,也稱流水線相關(guān)問題):流水線相近指令出現(xiàn)某些關(guān)聯(lián),下一個(gè)時(shí)鐘周期不能執(zhí)行下一條指令,指令流水線必須出現(xiàn)停頓。結(jié)構(gòu)冒險(xiǎn)(structural hazard):硬件不支持多條指令在同一個(gè)時(shí)鐘周期執(zhí)行。若系統(tǒng)只有一個(gè)存儲(chǔ)器部件,就會(huì)帶來結(jié)構(gòu)冒險(xiǎn)問題。數(shù)據(jù)冒險(xiǎn)(data hazard):指令執(zhí)行所需的數(shù)據(jù)暫時(shí)不可用而造成的指令執(zhí)行的停頓。數(shù)據(jù)冒險(xiǎn)一般發(fā)生在相近指令共用一個(gè)存儲(chǔ)單元或寄存器時(shí)??刂泼半U(xiǎn)(control hazard):也稱為分支冒險(xiǎn)(branch
16、 hazard),必須根據(jù)前一條指令的執(zhí)行結(jié)果才能確定下一條真正要執(zhí)行的指令,此時(shí)流水線中取得的可能不是真正要執(zhí)行的指令。8.2 流水線冒險(xiǎn)問題簡(jiǎn)介結(jié)構(gòu)冒險(xiǎn)(如:訪存沖突問題)一條指令的取數(shù)據(jù)(FO)與另一指令的取指令(FI)沖突一條指令的存數(shù)據(jù)(WO)與另一條指令的取數(shù)據(jù)(FO)沖突訪問內(nèi)存沖突設(shè)置兩個(gè)獨(dú)立的存儲(chǔ)器分別存放指令和數(shù)據(jù),避免沖突8.2 流水線冒險(xiǎn)問題流水線中插入“Bubble”,以禁止同一周期兩次寫寄存器。缺點(diǎn):控制邏輯復(fù)雜第5周期沒有指令被完成(CPI不是1,而實(shí)際上是2)方案可行性差ClockCycle 1Cycle 2Cycle 3Cycle 4Cycle 5Cycle
17、6Cycle 7Cycle 8Cycle 9IfetchR-typeIfetchReg/DecExecMemWrLoadIfetchReg/DecExecR-typeIfetchReg/DecR-typeIfetchReg/DecExecWrReg/DecExecWrIfetchReg/DecExecWrExecWrReg/DecExecWrIfetchReg/DecExecWrExecWrPipelineBubbleMIPS解決結(jié)構(gòu)冒險(xiǎn)方案1:插入氣泡(Bubble)8.2 流水線冒險(xiǎn)問題MIPS解決結(jié)構(gòu)冒險(xiǎn)方案2R型指令改成5段流水,插入Mem操作(實(shí)際無操作,NOOP)這樣所有指令的流水
18、步驟一致ClockCycle 1Cycle 2Cycle 3Cycle 4Cycle 5Cycle 6Cycle 7Cycle 8Cycle 9IfetchReg/DecWrR-typeIfetchReg/DecWrR-typeIfetchReg/DecExecMemWrLoadIfetchReg/DecWrR-typeIfetchReg/DecWrR-typeMemExecExecExecExecMemMemMemIfetchReg/DecExecWrR-type12345MemNOOP!8.2 流水線冒險(xiǎn)問題簡(jiǎn)介數(shù)據(jù)冒險(xiǎn)后一條指令使用前一條指令的執(zhí)行結(jié)果作為操作數(shù)數(shù)據(jù)冒險(xiǎn)采用后推法解決數(shù)據(jù)
19、冒險(xiǎn)8.2 流水線冒險(xiǎn)問題簡(jiǎn)介控制冒險(xiǎn)控制冒險(xiǎn)主要有條件轉(zhuǎn)移指令引起,前面指令執(zhí)行的結(jié)果可能會(huì)是程序執(zhí)行發(fā)生轉(zhuǎn)移,流水線中提前取來的指令可能不應(yīng)該被執(zhí)行。阻塞:阻塞流水線(停頓),直到結(jié)果出來,才取真正執(zhí)行的指令。分支預(yù)測(cè):存在預(yù)測(cè)失敗的情況。MIPS指令流水線R型指令流水5段流水,Mem操作(實(shí)際無操作,NOOP)ClockCycle 1Cycle 2Cycle 3Cycle 4Cycle 5Cycle 6Cycle 7Cycle 8Cycle 9IfetchReg/DecWrR-typeIfetchReg/DecWrR-typeIfetchReg/DecExecMemWrLoadIfetchReg/DecWrR-typeIfetchReg/DecWrR-typeMemExecExecExcExecMemMemMemIfetchReg/DecExecWrR-type12345MemNOOP!MIPS指令流水線ClockCycle 1Cycle 2Cycle 3Cycle 4Cycle 5Cycle 6Cycle 7IfetchReg/DecExecMemWr1st lwIfetchReg/DecExecMemWr2nd lw
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)學(xué)思維訓(xùn)練:圓錐曲線的教與學(xué)教案
- 關(guān)于設(shè)立新公司的合作協(xié)議
- 三亞安置房買賣合同
- 農(nóng)民培訓(xùn)與技術(shù)指導(dǎo)作業(yè)指導(dǎo)書
- 水庫(kù)高邊坡專項(xiàng)施工方案
- 地磅設(shè)備租賃合同
- 2025年幼兒園標(biāo)準(zhǔn)課件 森林運(yùn)動(dòng)會(huì)
- 電子電路設(shè)計(jì)與應(yīng)用技術(shù)試題集及答案解析
- 沉淀池隔離柵施工方案
- 磚砌電纜溝槽施工方案
- 華東師范大學(xué)《外國(guó)人文經(jīng)典(下)》2021-2022學(xué)年第一學(xué)期期末試卷
- 基礎(chǔ)護(hù)理及病房管理
- 辦理拆遷事項(xiàng)委托書
- 2023年湖北省生態(tài)環(huán)保有限公司招聘筆試真題
- 2023年新疆事業(yè)單位開展招聘考試真題
- 學(xué)校班主任談心制度實(shí)施方案
- 2024年《工會(huì)法》知識(shí)競(jìng)賽題庫(kù)及答案
- 煤礦事故現(xiàn)場(chǎng)處置管理制度
- CRISPR-Cas9-基因編輯技術(shù)簡(jiǎn)介
- 2024年湖南省高考化學(xué)試卷真題(含答案解析)
- 上海市精神衛(wèi)生中心招聘考試試卷及答案
評(píng)論
0/150
提交評(píng)論