



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第三章第三章 流水線技術(shù)流水線技術(shù) 3.1 流水線的基本概念流水線的基本概念3.2 DLX的基本流水線的基本流水線3.3 流水線的相關(guān)流水線的相關(guān)3.4 異常處理異常處理3.5 DLX中多周期操作的處理中多周期操作的處理3.6 MIPS R4000流水線流水線2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.2Review:性能評(píng)測(cè)性能評(píng)測(cè) 平均平均CPI? 每類指令的使用頻度每類指令的使用頻度TypeCPIi for typeFrequency CPIi x freqIi Arith/Logic440%1.6Load530%1.5Store410%0.4branch320%0.6Averag
2、e CPI:4.12022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.3是否可以使是否可以使 CPI 4.1?IdealMemoryWrAdrDinRAdr323232DoutMemWr32ALU3232ALUOpALUControl32IRWrInstruction Reg32Reg FileRaRwbusWRb5532busA32busBRegWrRsRtMux01RtRdPCWrALUSelAMux01RegDstMux0132PCMemtoRegExtendExtOpMux01320123416Imm32 2ALUSelBMux1032ZeroZeroPCWrCondPCSrc32Ior
3、DMem Data RegALU OutBA 在一條指令執(zhí)行過程中下圖有許多空閑部件在一條指令執(zhí)行過程中下圖有許多空閑部件 可以讓指令重疊執(zhí)行可以讓指令重疊執(zhí)行?2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.4 洗衣為例洗衣為例 Ann, Brian, Cathy, Dave 每人進(jìn)行洗衣的動(dòng)作:每人進(jìn)行洗衣的動(dòng)作: wash, dry, and fold washer需要需要 30 minutes Dryer 需要需要 40 minutes “Folder” 需要需要 20 minutesABCD3.1 流水線的基本概念流水線的基本概念2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.5
4、Sequential Laundry 順序完成這些任務(wù)需要順序完成這些任務(wù)需要 6 小時(shí)小時(shí) 如果采用流水作業(yè)如果采用流水作業(yè), 需要多長(zhǎng)時(shí)間需要多長(zhǎng)時(shí)間? ABCD3040 20 3040 20 3040 20 3040 206 PM7891011MidnightTaskOrderTime2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.6流水線作業(yè)流水線作業(yè): 盡可能讓任務(wù)重疊進(jìn)行盡可能讓任務(wù)重疊進(jìn)行 流水作業(yè)完成四人的洗衣任務(wù)只需要流水作業(yè)完成四人的洗衣任務(wù)只需要 3.5 hours ABCD6 PM7891011MidnightTaskOrderTime3040404040 20202
5、2-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.7流水線技術(shù)要點(diǎn)流水線技術(shù)要點(diǎn) 流水線技術(shù)并不能提高單個(gè)任務(wù)的執(zhí)行效率,它可以流水線技術(shù)并不能提高單個(gè)任務(wù)的執(zhí)行效率,它可以提高整個(gè)系統(tǒng)的吞吐率提高整個(gè)系統(tǒng)的吞吐率 流水線中的瓶頸流水線中的瓶頸最慢的那一段最慢的那一段 多個(gè)任務(wù)同時(shí)執(zhí)行,但使用不同的資源多個(gè)任務(wù)同時(shí)執(zhí)行,但使用不同的資源 其潛在的加速比流水線的級(jí)數(shù)其潛在的加速比流水線的級(jí)數(shù) 流水段所需時(shí)間不均衡將降低加速比流水段所需時(shí)間不均衡將降低加速比 流水線存在裝入時(shí)間和排空時(shí)間,使得加速比降低流水線存在裝入時(shí)間和排空時(shí)間,使得加速比降低 由于存在相關(guān)問題,會(huì)導(dǎo)致流水線停頓由于存在相關(guān)問題,會(huì)導(dǎo)
6、致流水線停頓2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.8 指令流水線:指令流水線:CPU執(zhí)行大量的指令,指令吞吐率非常重要執(zhí)行大量的指令,指令吞吐率非常重要 DLX 的指令格式的指令格式3.2 DLX的基本流水線的基本流水線Op312601516202125rsrtimmediateOp3126025Op312601516202125rsrtoffset added to PCrdRegister-Register (R-type)ADD R1, R2, R3561011Register-Immediate (I-type)SUB R1, R2, #3Jump / Call (J-ty
7、pe)JUMP endfunc(jump, jump and link, trap and return from exception)所有指令相同長(zhǎng)度所有指令相同長(zhǎng)度在指令格式中寄存器位于同一位置在指令格式中寄存器位于同一位置只有只有Loads和和Stores可以對(duì)存儲(chǔ)器操作可以對(duì)存儲(chǔ)器操作2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.9DLX數(shù)據(jù)通路一種簡(jiǎn)單實(shí)現(xiàn)數(shù)據(jù)通路一種簡(jiǎn)單實(shí)現(xiàn) MemoryAccessWriteBackInstructionFetchInstr. DecodeReg. FetchExecuteAddr. CalcLMDALUMUXMemoryReg FileMUX
8、 MUXDataMemoryMUXSignExtend4AdderZero?Next SEQ PCAddressNext PCWB DataInstRDRS1RS2Imm2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.10基本操作基本操作(Step 1 & 2) Step 1 - IF IR - MemPC - fetch the next instruction from memory NPC - PC + 4 - compute the new PC Step 2 - ID - instruction decode and register fetch step A - Regs
9、IR6.10 B - RegsIR11.16 可能讀取的寄存器值沒有用,但沒有關(guān)系,譯碼后如果無用,以可能讀取的寄存器值沒有用,但沒有關(guān)系,譯碼后如果無用,以后操作就不用后操作就不用 Imm (IR16)16 # IR16-312022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.11基本操作基本操作Step 3, 執(zhí)行階段執(zhí)行階段根據(jù)譯碼的結(jié)果,有四種情況 Memory Reference ALUOutput - A + (IR16)16 # IR16.31- effective address SMD - B - data to be written if it is a STORE - SM
10、D (store mem data) = MDR Register - Register ALU instruction ALUOutput - A op B Register - Immediate ALU instruction ALUOutput - A op (IR16)16 # IR16.31) Branch/Jump ALUOutput - NPC + (IR16)16 # IR16.31 cond - A op 0 - for conditional branches As value is the condition base (= for BEQZ) 在簡(jiǎn)單的在簡(jiǎn)單的 Loa
11、d-Store機(jī)器中,不存在即需要計(jì)算存儲(chǔ)器地址,指令地址機(jī)器中,不存在即需要計(jì)算存儲(chǔ)器地址,指令地址,又要進(jìn)行,又要進(jìn)行ALU運(yùn)算的指令,因此可以將計(jì)算有效地址與執(zhí)行合二為一運(yùn)算的指令,因此可以將計(jì)算有效地址與執(zhí)行合二為一,在一個(gè)流水段中進(jìn)行。,在一個(gè)流水段中進(jìn)行。2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.12Step 4 & Step5Step 4 MEM - memory access/branch completion memory reference LMD - MemALUOutput - if its a load; LMD (load memory data)
12、= MDR 或 MemALUOutput - SMD branch if (cond) then PC - ALUOutput else PC - NPC for Jumps the condition is always trueStep 5 WB - write back Reg - Reg ALU RegsIR16.20 - ALUOutput Reg - Immed ALU RegsIR11.15 - ALUOutput Load RegsIR11.15 - LMD2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.13這種結(jié)構(gòu)是否可行這種結(jié)構(gòu)是否可行 模型是正確的,但沒有優(yōu)化模型是正確
13、的,但沒有優(yōu)化 還有其他選擇還有其他選擇 指令和數(shù)據(jù)存儲(chǔ)器是否可以分開指令和數(shù)據(jù)存儲(chǔ)器是否可以分開 采用一個(gè)長(zhǎng)周期還是采用一個(gè)長(zhǎng)周期還是5個(gè)短周期實(shí)現(xiàn)個(gè)短周期實(shí)現(xiàn)2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.14單周期和多周期控制 多周期控制可實(shí)現(xiàn)指令重疊執(zhí)行多周期控制可實(shí)現(xiàn)指令重疊執(zhí)行2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.15DLX的基本流水線的基本流水線 假設(shè)流水線周期為每步所花費(fèi)的時(shí)間假設(shè)流水線周期為每步所花費(fèi)的時(shí)間2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.16為什么用流水線為什么用流水線? 假設(shè)執(zhí)行假設(shè)執(zhí)行100條指令條指令 單周期機(jī)器單周期機(jī)器 45 ns/c
14、ycle x 1 CPI x 100 inst = 4500 ns 多周期機(jī)器多周期機(jī)器 10 ns/cycle x 4.6 CPI (due to inst mix) x 100 inst = 4600 ns 理想流水線機(jī)器理想流水線機(jī)器 10 ns/cycle x (1 CPI x 100 inst + 4 cycle drain) = 1040 ns2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.17為什么用流水線為什么用流水線(cont.)?資源利用率高資源利用率高Instr.OrderTime (clock cycles)Inst 0Inst 1Inst 2Inst 4Inst 3
15、ALUImRegDmRegALUImRegDmRegALUImRegDmRegALUImRegDmRegALUImRegDmReg2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.18流水線正常工作的基本條件流水線正常工作的基本條件 各段間需要使用寄存器文件保存當(dāng)前段傳送到各段間需要使用寄存器文件保存當(dāng)前段傳送到下一段的數(shù)據(jù)和控制信息下一段的數(shù)據(jù)和控制信息 存儲(chǔ)器帶寬是非流水的存儲(chǔ)器帶寬是非流水的5倍倍2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.19新的新的DLX數(shù)據(jù)通路(圖數(shù)據(jù)通路(圖3.12 Page 88)2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.202022-3-7中國(guó)科
16、學(xué)技術(shù)大學(xué)chapter3.21Review lecture5 流水線技術(shù)要點(diǎn)流水線技術(shù)要點(diǎn) 流水線技術(shù)并不能提高單個(gè)任務(wù)的執(zhí)行效率,它可以提高整個(gè)流水線技術(shù)并不能提高單個(gè)任務(wù)的執(zhí)行效率,它可以提高整個(gè)系統(tǒng)的吞吐率系統(tǒng)的吞吐率 流水線中的瓶頸流水線中的瓶頸最慢的那一段最慢的那一段 多個(gè)任務(wù)同時(shí)執(zhí)行,但使用不同的資源多個(gè)任務(wù)同時(shí)執(zhí)行,但使用不同的資源 其潛在的加速比流水線的級(jí)數(shù)其潛在的加速比流水線的級(jí)數(shù) 流水段所需時(shí)間不均衡將降低加速比流水段所需時(shí)間不均衡將降低加速比 流水線存在裝入時(shí)間和排空時(shí)間,使得加速比降低流水線存在裝入時(shí)間和排空時(shí)間,使得加速比降低 由于存在相關(guān)問題,會(huì)導(dǎo)致流水線停頓由于
17、存在相關(guān)問題,會(huì)導(dǎo)致流水線停頓 流水線正常工作的基本條件流水線正常工作的基本條件 增加寄存器文件保存當(dāng)前段傳送到下一段的數(shù)據(jù)和控制信息增加寄存器文件保存當(dāng)前段傳送到下一段的數(shù)據(jù)和控制信息 存儲(chǔ)器帶寬是非流水的存儲(chǔ)器帶寬是非流水的5倍倍2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.22新的新的DLX數(shù)據(jù)通路(圖數(shù)據(jù)通路(圖3.12 Page 88)2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.23在新的在新的Datapath下各段的操作下各段的操作 IF IF/ID.IR MemPC; IF/ID.NPC,PC (if (EX/MEM.opcode = branch) & EX/
18、MEM.cond) EX/MEM.ALUOutput else PC+4); ID ID/EX.A RegsIF/ID.IRrs; ID/EX.B RegsIF/ID.IRrt; ID/EX.NPCIF/ID.NPC; ID/EX/IR IF/ID.IR; ID/EX/Imm sign-extend(IF/ID.IRimmediate field); EX ALU instruction EX/MEM.IR ID/EX.IR; EX/MEM.ALUOutput ID/EX.A func ID/EX.B; or EX/MEM.ALUOoutput ID/EX.A op ID/EX.Imm;202
19、2-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.24 Load or store instruction EX/MEM.IR ID/EX.IR EX/MEM.ALUOutput ID/EX.A + ID/EX.Imm EX/MEM.B ID/EX.B Branch instruction EX/MEM.ALUOutput ID/EX.NPC + (ID/EX.Imm synchronous, key is that completion is prevented some asynchronous are also within Resume vs. Terminate program impli
20、cations for how much state must be preserved2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.74例如例如2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.75最困難的問題最困難的問題 異常發(fā)生在指令中,并且要求恢復(fù)執(zhí)行異常發(fā)生在指令中,并且要求恢復(fù)執(zhí)行 要求要求=流水線必須安全地流水線必須安全地 shut down PC必須保存必須保存 如果重新開始的是一條分支指令,它需要重新執(zhí)行如果重新開始的是一條分支指令,它需要重新執(zhí)行 這意味著條件碼狀態(tài)必須沒有改變這意味著條件碼狀態(tài)必須沒有改變 在在DLX中的處理步驟中的處理步驟 強(qiáng)制強(qiáng)制trap指令在下一
21、個(gè)指令在下一個(gè)IF段進(jìn)入流水線段進(jìn)入流水線 封鎖引起故障的指令的所有寫操作和流水線中后繼指令的寫操作封鎖引起故障的指令的所有寫操作和流水線中后繼指令的寫操作 讓所有前序指令執(zhí)行完(如果能)讓所有前序指令執(zhí)行完(如果能) 保存重新執(zhí)行時(shí)的地址(保存重新執(zhí)行時(shí)的地址(PC) PC 或或 PC + 1 調(diào)用調(diào)用OS處理異常處理異常 2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.76 考慮延遲轉(zhuǎn)移時(shí),假設(shè)有兩個(gè)延遲槽的分支考慮延遲轉(zhuǎn)移時(shí),假設(shè)有兩個(gè)延遲槽的分支I Branch Instr1I+1 Delay instr1I+2Delay Instr2I+3instI+4inst 假設(shè)假設(shè)branc
22、h指令是好的指令是好的 第第1個(gè)延遲指令引起缺頁中斷個(gè)延遲指令引起缺頁中斷 第第2條指令封鎖條指令封鎖 異常處理后,缺省的恢復(fù)點(diǎn)是第一條延遲指令異常處理后,缺省的恢復(fù)點(diǎn)是第一條延遲指令 不會(huì)有不會(huì)有Branch指令 因此需要保存的PC值不止一個(gè),根據(jù)具體情況進(jìn)行恢復(fù)2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.77精確中斷與非精確中斷精確中斷與非精確中斷 引起異常的指令前面的指令都已執(zhí)行完,故障后的指令可以重新從故引起異常的指令前面的指令都已執(zhí)行完,故障后的指令可以重新從故障點(diǎn)后執(zhí)行障點(diǎn)后執(zhí)行 理想情況,引起故障的指令沒有改變機(jī)器的狀態(tài)理想情況,引起故障的指令沒有改變機(jī)器的狀態(tài) 要正確的處
23、理這類異常請(qǐng)求,必須保證故障指令不產(chǎn)生副作用要正確的處理這類異常請(qǐng)求,必須保證故障指令不產(chǎn)生副作用 在有些機(jī)器上,浮點(diǎn)數(shù)異常在有些機(jī)器上,浮點(diǎn)數(shù)異常 流水線段數(shù)多,在發(fā)現(xiàn)故障前,故障點(diǎn)后的指令就已經(jīng)寫了結(jié)果,在這種情況下流水線段數(shù)多,在發(fā)現(xiàn)故障前,故障點(diǎn)后的指令就已經(jīng)寫了結(jié)果,在這種情況下,必須有辦法處理。,必須有辦法處理。 當(dāng)今很多高性能計(jì)算機(jī),當(dāng)今很多高性能計(jì)算機(jī),Alpha 21164,MIPSR10000等支持精確中等支持精確中斷,但精確模式要慢斷,但精確模式要慢10倍,一般用在代碼調(diào)試時(shí),很多系統(tǒng)要求精確倍,一般用在代碼調(diào)試時(shí),很多系統(tǒng)要求精確中斷模式,如中斷模式,如IEEE FP標(biāo)
24、準(zhǔn)處理程序,虛擬存儲(chǔ)器等。標(biāo)準(zhǔn)處理程序,虛擬存儲(chǔ)器等。 精確中斷對(duì)整數(shù)流水線而言,不是太難實(shí)現(xiàn)精確中斷對(duì)整數(shù)流水線而言,不是太難實(shí)現(xiàn)2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.78DLX中的異常中的異常 IF page fault, misaligned address, memory protection violation ID undefined or illegal opcode EX arithmetic exception MEM page fault, misaligned address, memory protection violation WB none2022-3
25、-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.79Review 控制相關(guān)控制相關(guān) 概念:概念: 減少性能損失的基本方法減少性能損失的基本方法 凍結(jié)或排空流水線凍結(jié)或排空流水線 預(yù)測(cè)分支成功預(yù)測(cè)分支成功 預(yù)測(cè)分支失敗預(yù)測(cè)分支失敗 延遲轉(zhuǎn)移延遲轉(zhuǎn)移 異常異常 異常的分類異常的分類 精確中斷和非精確中斷精確中斷和非精確中斷2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.80Review- 相關(guān)的處理相關(guān)的處理 結(jié)構(gòu)相關(guān)結(jié)構(gòu)相關(guān) 概念:由于爭(zhēng)用資源而引起的概念:由于爭(zhēng)用資源而引起的 解決辦法解決辦法 數(shù)據(jù)相關(guān)數(shù)據(jù)相關(guān) 概念:由于存在實(shí)際的通信,而引起的概念:由于存在實(shí)際的通信,而引起的 解決辦法:解決辦法:
26、 硬件:定向技術(shù)(硬件:定向技術(shù)(forwarding) 軟件軟件: 指令級(jí)調(diào)度指令級(jí)調(diào)度 控制相關(guān)控制相關(guān) 概念:由于控制類指令引起的概念:由于控制類指令引起的 解決辦法解決辦法 ?2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.81Review (續(xù))(續(xù)) 控制相關(guān)控制相關(guān) 概念:概念: 減少性能損失的基本方法減少性能損失的基本方法-轉(zhuǎn)移地址,條件碼轉(zhuǎn)移地址,條件碼靜態(tài)處理:靜態(tài)處理: 凍結(jié)或排空流水線凍結(jié)或排空流水線 預(yù)測(cè)分支成功預(yù)測(cè)分支成功 預(yù)測(cè)分支失敗預(yù)測(cè)分支失敗 延遲轉(zhuǎn)移延遲轉(zhuǎn)移 異常異常 異常的分類異常的分類 精確中斷和非精確中斷精確中斷和非精確中斷2022-3-7中國(guó)科學(xué)技
27、術(shù)大學(xué)chapter3.823.5 DLX中多周期操作的處理中多周期操作的處理 問題問題 浮點(diǎn)操作在浮點(diǎn)操作在12個(gè)個(gè)cycles完成是不現(xiàn)實(shí)的,一般要花費(fèi)較長(zhǎng)時(shí)間完成是不現(xiàn)實(shí)的,一般要花費(fèi)較長(zhǎng)時(shí)間 在在DLX中如何處理中如何處理 在在1到到2個(gè)個(gè)cycles時(shí)間內(nèi)完成的處理方法時(shí)間內(nèi)完成的處理方法 采用較慢的時(shí)鐘源,或采用較慢的時(shí)鐘源,或 在在FP部件中延遲其部件中延遲其EX段段 現(xiàn)假設(shè)現(xiàn)假設(shè)FP指令與整數(shù)指令采用相同的流水線,那么指令與整數(shù)指令采用相同的流水線,那么 EX 段需要循環(huán)多次來完成段需要循環(huán)多次來完成FP操作,循環(huán)次數(shù)取決于操作類型操作,循環(huán)次數(shù)取決于操作類型 有多個(gè)有多個(gè)FP
28、功能部件,如果發(fā)射出的指令導(dǎo)致結(jié)構(gòu)或數(shù)據(jù)相關(guān),需功能部件,如果發(fā)射出的指令導(dǎo)致結(jié)構(gòu)或數(shù)據(jù)相關(guān),需暫停暫停2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.83對(duì)對(duì)DLX的擴(kuò)充的擴(kuò)充四個(gè)功能部件四個(gè)功能部件 Integer 部件處理:部件處理:Loads, Store, Integer ALU操作和操作和Branch FP/Integer 乘法部件:處理浮點(diǎn)數(shù)和整數(shù)乘法乘法部件:處理浮點(diǎn)數(shù)和整數(shù)乘法 FP加法器:處理加法器:處理FP加,減和類型轉(zhuǎn)換加,減和類型轉(zhuǎn)換 FP/Integer除法部件:處理浮點(diǎn)數(shù)和整數(shù)除法除法部件:處理浮點(diǎn)數(shù)和整數(shù)除法 這些功能部件未流水化這些功能部件未流水化2022-
29、3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.84擴(kuò)展的擴(kuò)展的DLX流水線流水線2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.85Latency & Repeat Interval 延時(shí)(Latency) 定義為完成某一操作所需的cycle數(shù) 定義為使用當(dāng)前指令所產(chǎn)生結(jié)果的指令與當(dāng)前指令間的最小間隔周期數(shù) 循環(huán)間隔(Repeat/Initiation interval) 發(fā)射相同類型的操作所需的間隔周期數(shù) 對(duì)于對(duì)于EX部件流水化的新的部件流水化的新的DLXFunction UnitLatencyRepeat IntervalInteger ALU01Data Memory (Intege
30、r and FP loads(1 less for store latency)11FP Add31FP multiply61FP Divide (also integer divide and FP sqrt)24252022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.86將部分執(zhí)行部件流水化后的將部分執(zhí)行部件流水化后的DLX流水線流水線2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.87新的相關(guān)和定向問題新的相關(guān)和定向問題 結(jié)構(gòu)沖突增多非流水的Divide部件,使得EX段增長(zhǎng)24個(gè)cycles在一個(gè)周期內(nèi)可能有多個(gè)寄存器寫操作 可能指令亂序完成(亂序到達(dá)WB段)有可能存在WAW 由于在ID
31、段讀,還不會(huì)有 WAR 相關(guān) 亂序完成導(dǎo)致異常處理復(fù)雜 由于指令的延遲加大導(dǎo)致RAW 相關(guān)的stall數(shù)增多 需要付出更多的代價(jià)來增加定向路徑2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.88新的結(jié)構(gòu)相關(guān)新的結(jié)構(gòu)相關(guān) 縱向檢查指令所使用的資源縱向檢查指令所使用的資源 第第10個(gè)個(gè)cycle,三條指令同時(shí)進(jìn)入三條指令同時(shí)進(jìn)入MEM,但由于但由于MULTD和和ADDD在在MEM段沒有實(shí)際動(dòng)作,這種情況沒有關(guān)系段沒有實(shí)際動(dòng)作,這種情況沒有關(guān)系 第第11個(gè)個(gè)cycle,三條指令同時(shí)進(jìn)入三條指令同時(shí)進(jìn)入WB段,存在結(jié)構(gòu)相關(guān)段,存在結(jié)構(gòu)相關(guān)2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.89解決方法
32、解決方法 Option 1 在ID段跟蹤寫端口的使用情況,以便能暫停該指令的發(fā)射 一旦發(fā)現(xiàn)沖突,暫停當(dāng)前指令的發(fā)射 Option 2 在進(jìn)入MEM或WB段時(shí),暫停沖突的指令,讓有較長(zhǎng)延時(shí)的指令先做,因?yàn)檩^長(zhǎng)延時(shí)的指令,會(huì)更容易引起其他RAW相關(guān),從而導(dǎo)致更多的stalls2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.90關(guān)于數(shù)據(jù)相關(guān)關(guān)于數(shù)據(jù)相關(guān) 較長(zhǎng)延時(shí)的流水線,導(dǎo)致數(shù)據(jù)相關(guān)比例增多,較長(zhǎng)延時(shí)的流水線,導(dǎo)致數(shù)據(jù)相關(guān)比例增多,stalls數(shù)增多數(shù)增多2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.91新的沖突源新的沖突源 GPR與與FPR間的數(shù)據(jù)傳送造成的數(shù)據(jù)相關(guān)間的數(shù)據(jù)傳送造成的數(shù)據(jù)相關(guān)
33、 MOVI2FP and MOVFP2I instructions 如果在如果在ID段進(jìn)行相關(guān)檢測(cè),指令發(fā)射前須做如下檢測(cè):段進(jìn)行相關(guān)檢測(cè),指令發(fā)射前須做如下檢測(cè): 結(jié)構(gòu)相關(guān)結(jié)構(gòu)相關(guān) 循環(huán)間隔檢測(cè)循環(huán)間隔檢測(cè) 確定寄存器寫端口是否可用確定寄存器寫端口是否可用 RAW相關(guān)相關(guān) 列表所有待寫的目的寄存器列表所有待寫的目的寄存器 不發(fā)射以待寫寄存器做為源寄存器的指令,直到該寄存器值可用不發(fā)射以待寫寄存器做為源寄存器的指令,直到該寄存器值可用 WAW相關(guān)相關(guān) 仍然使用上述待寫寄存器列表仍然使用上述待寫寄存器列表 不發(fā)射那些目的寄存器在待寫寄存器列表中的指令,直到對(duì)應(yīng)的待不發(fā)射那些目的寄存器在待寫寄存器
34、列表中的指令,直到對(duì)應(yīng)的待寫寄存器值可用寫寄存器值可用(完成完成WB)。2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.92精確中斷與長(zhǎng)流水線精確中斷與長(zhǎng)流水線 例如DIVF F0,F2,F4ADDF F10,F10,F8SUBF F12,F12,F14 ADDF 和SUBF都在DIVF前完成 如果DIVF導(dǎo)致異常,會(huì)如何?非精確中斷 Ideas?2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.93處理中斷4種可能的辦法 方法方法1:忽略這種問題,當(dāng)非精確處理:忽略這種問題,當(dāng)非精確處理 原來的原來的supercomputer的方法的方法 但現(xiàn)代計(jì)算機(jī)對(duì)但現(xiàn)代計(jì)算機(jī)對(duì)IEEE 浮點(diǎn)標(biāo)準(zhǔn)的異
35、常處理,虛擬存儲(chǔ)的異常處理要求必浮點(diǎn)標(biāo)準(zhǔn)的異常處理,虛擬存儲(chǔ)的異常處理要求必須是精確中斷。須是精確中斷。 方法方法2:緩存操作結(jié)果,直到早期發(fā)射的指令執(zhí)行完。:緩存操作結(jié)果,直到早期發(fā)射的指令執(zhí)行完。 當(dāng)指令運(yùn)行時(shí)間較長(zhǎng)時(shí),當(dāng)指令運(yùn)行時(shí)間較長(zhǎng)時(shí),Buffer區(qū)較大區(qū)較大 Future file (Power PC620 MIPS R10000) 緩存執(zhí)行結(jié)果,按指令序確認(rèn)緩存執(zhí)行結(jié)果,按指令序確認(rèn) history file (CYBER 180/990) 盡快確認(rèn)盡快確認(rèn) 緩存區(qū)存放原來的操作數(shù),如果異常發(fā)生,回卷到合適的狀態(tài)緩存區(qū)存放原來的操作數(shù),如果異常發(fā)生,回卷到合適的狀態(tài)2022-3-
36、7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.94第第3 & 4種方法種方法 以非精確方式處理,用軟件來修正以非精確方式處理,用軟件來修正 為軟件修正保存足夠的狀態(tài)為軟件修正保存足夠的狀態(tài) 讓軟件仿真尚未執(zhí)行完的指令的執(zhí)行讓軟件仿真尚未執(zhí)行完的指令的執(zhí)行 例如例如 Instruction 1 A 執(zhí)行時(shí)間較長(zhǎng),引起中斷的指令執(zhí)行時(shí)間較長(zhǎng),引起中斷的指令 Instruction 2, instruction 3, .instruction n-1 未執(zhí)行完的指令未執(zhí)行完的指令 Instruction n 已執(zhí)行完的指令已執(zhí)行完的指令 由于第由于第n條指令已執(zhí)行完,中斷返回地址為第條指令已執(zhí)行完,中
37、斷返回地址為第n+1條指令,如果我們條指令,如果我們保存所有的流水線的保存所有的流水線的PC值,那么軟件可以仿真值,那么軟件可以仿真Instruction1 到到Instruction n-1 的執(zhí)行的執(zhí)行 暫停發(fā)射,直到確定先前的指令都可無異常的完成,再發(fā)暫停發(fā)射,直到確定先前的指令都可無異常的完成,再發(fā)射下面的指令。射下面的指令。 在在EX段的前期確認(rèn)(段的前期確認(rèn)(MIPS流水線在前三個(gè)周期中)流水線在前三個(gè)周期中) MIPS R2K to R4K 以及以及Pentium使用這種方法使用這種方法2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.95Review lecture7 控制相關(guān)
38、控制相關(guān) 概念:概念: 減少性能損失的基本方法減少性能損失的基本方法-轉(zhuǎn)移地址,條件碼轉(zhuǎn)移地址,條件碼靜態(tài)處理:靜態(tài)處理: 凍結(jié)或排空流水線凍結(jié)或排空流水線 預(yù)測(cè)分支成功預(yù)測(cè)分支成功 預(yù)測(cè)分支失敗預(yù)測(cè)分支失敗 延遲轉(zhuǎn)移延遲轉(zhuǎn)移 異常異常 異常的分類異常的分類 精確中斷和非精確中斷精確中斷和非精確中斷 DLX中多周期操作的處理中多周期操作的處理 對(duì)對(duì)DLX的擴(kuò)充的擴(kuò)充擴(kuò)展的擴(kuò)展的DLX流水線流水線 新的問題:沖突源增加,異常處理,新的問題:沖突源增加,異常處理,2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.96DLX流水線的性能流水線的性能Stalls per FP operation fo
39、r each major type of FP operation for the SPEC89 FP benchmarks2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.97平均每條指令的平均每條指令的stall數(shù)數(shù)The stalls occurring for the MIPS FP pipeline for five for the SPEC89 FP benchmarks.2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.98MIPS R4000實(shí)際的實(shí)際的 64-bit 機(jī)器機(jī)器主頻主頻100MHz 200MHz較深的流水線(級(jí)數(shù)較多)較深的流水線(級(jí)數(shù)較多)(有時(shí)也稱為有時(shí)也稱
40、為 superpipelining)指令集與指令集與DLX非常類似非常類似2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.99MIPS R4000的的8 級(jí)整數(shù)流水線級(jí)整數(shù)流水線 IF取指階段的前半部分;選擇取指階段的前半部分;選擇PC值,初始化指令值,初始化指令cache的訪問的訪問 IS取指階段的后半部分,主要完成訪問指令取指階段的后半部分,主要完成訪問指令cache的操的操作作 RF指令譯碼,寄存器讀取,相關(guān)檢測(cè)以及指令指令譯碼,寄存器讀取,相關(guān)檢測(cè)以及指令cache命命中檢測(cè)中檢測(cè) EX執(zhí)行,包括:計(jì)算有效地址,進(jìn)行執(zhí)行,包括:計(jì)算有效地址,進(jìn)行ALU操作,計(jì)算分操作,計(jì)算分支目標(biāo)地
41、址和檢測(cè)分支條件支目標(biāo)地址和檢測(cè)分支條件 DF取數(shù)據(jù),訪問數(shù)據(jù)取數(shù)據(jù),訪問數(shù)據(jù)cache的前半部分的前半部分 DS訪問數(shù)據(jù)訪問數(shù)據(jù)cache的后半部分的后半部分 TCtag 檢測(cè),確定數(shù)據(jù)檢測(cè),確定數(shù)據(jù)cache是否命中是否命中 WBLoad操作和操作和R-R操作的結(jié)果寫回操作的結(jié)果寫回2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.100需注意的問題需注意的問題 在使用定向技術(shù)的情況下,在使用定向技術(shù)的情況下,Load 延遲為延遲為2個(gè)個(gè)cycles Load和與其相關(guān)的指令間必須有和與其相關(guān)的指令間必須有2條指令或兩個(gè)條指令或兩個(gè)bubbles 原因:原因:load的結(jié)果在的結(jié)果在DS結(jié)
42、束時(shí)可用結(jié)束時(shí)可用 分支延遲分支延遲3個(gè)個(gè)cycles 分支與目標(biāo)指令間需要分支與目標(biāo)指令間需要3條指令或條指令或3個(gè)個(gè)bubbles 原因:目標(biāo)地址在原因:目標(biāo)地址在EX段后才能知道段后才能知道 R4000的流水線中,到的流水線中,到ALU輸入端有四個(gè)定向源輸入端有四個(gè)定向源 EX/DF, DF/DS, DS/ TC, TC/WB2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.101圖示圖示IFISIFRFISIFEXRFISIFDFEXRFISIFDSDFEXRFISIFTCDSDFEXRFISIFWBTCDSDFEXRFISIFTWO CycleLoad LatencyIFISIFRF
43、ISIFEXRFISIFDFEXRFISIFDSDFEXRFISIFTCDSDFEXRFISIFWBTCDSDFEXRFISIFTHREE CycleBranch Latency(conditions evaluated during EX phase)Delay slot plus two stallsBranch likely cancels delay slot if not taken2022-3-7中國(guó)科學(xué)技術(shù)大學(xué)chapter3.102MIPS R4000 浮點(diǎn)數(shù)操作浮點(diǎn)數(shù)操作 3個(gè)功能部件組成:個(gè)功能部件組成:FP Adder, FP Multiplier, FP Divider 在乘在乘/除操作的最后一步要除操作的最后一步要 使用使用FP A
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- T/SHPTA 089-2024額定電壓66 kV-500 kV交聯(lián)聚乙烯絕緣電纜用半導(dǎo)電屏蔽料
- T/SHNA 0010-2024失能患者體位管理
- T/CECS 10403-2024一體化泵閘
- 邵家窯溝林地承包合同4篇
- 施工單位勞務(wù)合同4篇
- T/CCOA 58-2023山核桃油
- 服裝時(shí)尚行業(yè)發(fā)展趨勢(shì)與創(chuàng)新實(shí)踐
- 校車運(yùn)營(yíng)合同書6篇
- 有產(chǎn)權(quán)水果店鋪出租合同5篇
- 培訓(xùn)學(xué)校學(xué)生入學(xué)協(xié)議書2篇
- 國(guó)家開放大學(xué)期末機(jī)考人文英語1
- 鉆孔壓水試驗(yàn)記錄表
- 環(huán)保餐具的設(shè)計(jì)
- 結(jié)核菌素(PPD、EC)皮膚試驗(yàn)報(bào)告單
- 電工學(xué)(第六版)中職PPT完整全套教學(xué)課件
- 產(chǎn)業(yè)命題賽道命題解決對(duì)策參考模板
- 砼塔施工方案
- 資本運(yùn)作理論與操作實(shí)務(wù)課件
- 使用林地審批咨詢服務(wù)投標(biāo)方案
- 電動(dòng)車分期付款的合同范本
- 凱迪拉克賽威說明書
評(píng)論
0/150
提交評(píng)論