版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、2024/3/17,中國科學(xué)技術(shù)大學(xué),Chapter3.1,計算機(jī)體系結(jié)構(gòu),周學(xué)海xhzhou@ustc.edu.cn0551-63601556, 63492271中國科學(xué)技術(shù)大學(xué),第三章 流水線技術(shù),3.1流水線的基本概念3.2 DLX(MIPS)基本流水線3.3 流水線的相關(guān)3.4 異常處理3.5 DLX (MIPS)中多周期操作的處理3.6 MIPS R4000流水線,2024/3/17,中國科學(xué)技術(shù)大學(xué),chap
2、ter3.3,Review:性能評測,平均CPI?每類指令的使用頻度,TypeCPIi for typeFrequency CPIi x freqIi Arith/Logic440%1.6Load530%1.5Store410%0.4branch320%0.6Average CPI:4.1,,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.4,是否可以使 CPI < 4.1?
3、,在一條指令執(zhí)行過程中下圖有許多空閑部件可以讓指令重疊執(zhí)行??,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.5,洗衣為例Ann, Brian, Cathy, Dave 每人進(jìn)行洗衣的動作: wash, dry, and foldwasher需要 30 minutesDryer 需要 40 minutes“Folder” 需要 20 minutes,3.1 流水線的基本概念,2024/3/17,中國科學(xué)技術(shù)大
4、學(xué),chapter3.6,Sequential Laundry,順序完成這些任務(wù)需要 6 小時如果采用流水作業(yè), 需要多長時間?,30,40,20,,,,30,40,20,,,,30,40,20,,,,30,40,20,,,,6 PM,,,7,8,9,10,11,Midnight,TaskOrder,,Time,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.7,流水線作業(yè): 盡可能讓任務(wù)重疊進(jìn)行,流水作業(yè)完
5、成四人的洗衣任務(wù)只需要 3.5 hours,6 PM,,,7,8,9,10,11,Midnight,TaskOrder,,Time,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.8,流水線技術(shù)要點(diǎn),流水線技術(shù)并不能提高單個任務(wù)的執(zhí)行效率,它可以提高整個系統(tǒng)的吞吐率流水線中的瓶頸——最慢的那一段多個任務(wù)同時執(zhí)行,但使用不同的資源其潛在的加速比=流水線的級數(shù)流水段所需時間不均衡將降低加速比流水線存在裝入
6、時間和排空時間,使得加速比降低由于存在相關(guān)問題,會導(dǎo)致流水線停頓,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.9,指令流水線:CPU執(zhí)行大量的指令,指令吞吐率非常重要DLX 的指令格式,3.2 DLX (MIPS)的基本流水線,所有指令相同長度在指令格式中寄存器位于同一位置只有Loads和Stores可以對存儲器操作,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.10,,DLX(MIPS)數(shù)據(jù)通路一種簡單實(shí)
7、現(xiàn),,,MemoryAccess,WriteBack,InstructionFetch,Instr. DecodeReg. Fetch,ExecuteAddr. Calc,LMD,MUX,Memory,,Reg File,MUX,MUX,,DataMemory,MUX,SignExtend,,,,,,,,,,,,,Zero?,,,,,,,,,,,,,,,Next SEQ PC,Next PC,WB Data,,,,,,
8、RD,RS1,RS2,Imm,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.11,基本操作(Step 1 & 2),Step 1 - IFIR <-- Mem[PC] --------- fetch the next instruction from memoryNPC <-- PC + 4 ---------- compute the new PCStep 2 - ID - instruct
9、ion decode and register fetch stepA <-- Regs[IR6..10]B <-- Regs[IR11..16]可能讀取的寄存器值沒有用,但沒有關(guān)系,譯碼后如果無用,以后操作就不用Imm ? ((IR16)16 ## IR16-31,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.12,基本操作-Step 3, 執(zhí)行階段,根據(jù)譯碼的結(jié)果,有四種情況Memory Refere
10、nceALUOutput <-- A + (IR16)16 ## IR16..31--------- effective address SMD <-- B ---------- data to be written if it is a STORE -- SMD (store mem data) = MDRRegister - Register ALU instruction ALUOutput <-- A
11、op B Register - Immediate ALU instructionALUOutput <-- A op ((IR16)16 ## IR16..31))Branch/JumpALUOutput <-- NPC + (IR16)16 ## IR16..31cond <-- A op 0 --- for conditional branches A’s value is the condition
12、base (= for BEQZ)在簡單的 Load-Store機(jī)器中,不存在即需要計算存儲器地址,指令地址,又要進(jìn)行ALU運(yùn)算的指令,因此可以將計算有效地址與執(zhí)行合二為一,在一個流水段中進(jìn)行。,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.13,Step 4 & Step5,Step 4 MEM - memory access/branch completionmemory reference LMD <
13、;--- Mem[ALUOutput] ------- if it’s a load; LMD (load memory data) = MDR 或Mem[ALUOutput] <-- SMD branch if (cond) then PC <-- ALUOutput else PC <-- NPCfor Jumps the condition is always trueStep 5 WB - write
14、 backReg - Reg ALURegs[IR16..20] <-- ALUOutputReg - Immed ALURegs[IR11..15] <-- ALUOutputLoadRegs[IR11..15] <-- LMD,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.14,這種結(jié)構(gòu)是否可行,模型是正確的,但沒有優(yōu)化還有其他選擇指令和數(shù)據(jù)存儲器是否可以分開采用一個長周期還是5個短周期
15、實(shí)現(xiàn),2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.15,單周期和多周期控制,多周期控制可實(shí)現(xiàn)指令重疊執(zhí)行,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.16,DLX(MIPS)的基本流水線,假設(shè)流水線周期為每步所花費(fèi)的時間,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.17,為什么用流水線?,假設(shè)執(zhí)行100條指令單周期機(jī)器45 ns/cycle x 1 CPI x 100 inst = 4500 n
16、s多周期機(jī)器10 ns/cycle x 4.6 CPI (due to inst mix) x 100 inst = 4600 ns理想流水線機(jī)器10 ns/cycle x (1 CPI x 100 inst + 4 cycle drain) = 1040 ns,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.18,,為什么用流水線(cont.)?-資源利用率高,Instr.Order,,,Time
17、(clock cycles),Inst 0,Inst 1,Inst 2,Inst 4,,,,,,,,,Inst 3,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.19,流水線正常工作的基本條件,各段間需要使用寄存器文件保存當(dāng)前段傳送到下一段的數(shù)據(jù)和控制信息存儲器帶寬是非流水的5倍,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.20,新的 DLX (MIPS)數(shù)據(jù)通路,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapt
18、er3.21,,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.22,Review lecture,流水線技術(shù)要點(diǎn)流水線技術(shù)并不能提高單個任務(wù)的執(zhí)行效率,它可以提高整個系統(tǒng)的吞吐率流水線中的瓶頸——最慢的那一段多個任務(wù)同時執(zhí)行,但使用不同的資源其潛在的加速比=流水線的級數(shù)流水段所需時間不均衡將降低加速比流水線存在裝入時間和排空時間,使得加速比降低由于存在相關(guān)問題,會導(dǎo)致流水線停頓流水線正常工作的基本條件增加寄存
19、器文件保存當(dāng)前段傳送到下一段的數(shù)據(jù)和控制信息存儲器帶寬是非流水的5倍,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.23,新的DLX (MIPS)數(shù)據(jù)通路,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.24,在新的Datapath下各段的操作,IFIF/ID.IR ←Mem[PC];IF/ID.NPC,PC ←(if ((EX/MEM.opcode == branch) &
20、 EX/MEM.cond) {EX/MEM.ALUOutput} else {PC+4});IDID/EX.A ←Regs[IF/ID.IR[rs]]; ID/EX.B ← Regs[IF/ID.IR[rt]];ID/EX.NPC←IF/ID.NPC; ID/EX/IR ← IF/ID.IR;ID/EX/Imm ← sign-extend(IF/ID.IR[immedi
21、ate field]);EXALU instructionEX/MEM.IR ← ID/EX.IR;EX/MEM.ALUOutput ← ID/EX.A func ID/EX.B; orEX/MEM.ALUOoutput ← ID/EX.A op ID/EX.Imm;,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.25,,Load or store instructionEX/MEM.IR ← ID/EX.IRE
22、X/MEM.ALUOutput ← ID/EX.A + ID/EX.ImmEX/MEM.B ← ID/EX.BBranch instructionEX/MEM.ALUOutput ← ID/EX.NPC + (ID/EX.Imm << 2)EX/MEM.cond ← (ID/EX.A == 0);MEMALU InstructionMEM/WB.IR ←EX/MEM.IRMEM/WB.ALUOutput ←E
23、X/MEM.ALUOutput;Load or store instructionMEM/WB.IR ←EX/MEM.IR;MEM/WB.LMD ← Mem[EX/MEM.ALUOutput]; or Mem[EX/MEM.ALUOutput] ← EX/MEM.B; (store),2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.26,,WBALU i
24、nstructionRegs[MEM/WB.IR[rd]] ← MEM/WB.ALUOutput; orRegs[MEM/WB.IR[rt]] ← MEM/WB.ALUOutput;For load onlyRegs[MEM/WB.IR[rt]] ← MEM/WB.LMD,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.27,簡化的 Pipelining,Instr.Order,,Time (clo
25、ck cycles),,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.28,流水線性能分析,基本度量參數(shù):吞吐率,加速比,效率吞吐率:單位時間內(nèi)流水線所完成的任務(wù)數(shù)或輸出結(jié)果數(shù)量最大吞吐率:流水線在連續(xù)流動達(dá)到穩(wěn)定狀態(tài)后所得到的吞吐率。,吞吐率:在單位時間內(nèi)流水線所完成的任務(wù)數(shù)量或輸 出結(jié)果的數(shù)量。,基本度量參數(shù):吞吐率,加速比,效率,n:任務(wù)數(shù)Tk:處理完成n個任務(wù)所用的時間,流水線
26、的性能指標(biāo),1. 各段時間均相等的流水線各段時間均相等的流水線時空圖,,流水線完成n個連續(xù)任務(wù)所需要的總時間為(假設(shè)一條k段線性流水線) Tk=kΔt+(n-1)Δt=(k+n-1)Δt 流水線的實(shí)際吞吐率,最大吞吐率,,最大吞吐率與實(shí)際吞吐率的關(guān)系,流水線的實(shí)際吞吐率小于最大吞吐率,它除了與每個段的時間有關(guān)外,還與流水線的段數(shù)k以及輸入到流水線中的任務(wù)數(shù)n等有關(guān)。只有當(dāng)n>>k時,才有TP≈TPmax。,,
27、2. 各段時間不完全相等的流水線 各段時間不等的流水線及其時空圖一條4段的流水線S1,S3,S4各段的時間:ΔtS2的時間:3Δt (瓶頸段)流水線中這種時間最長的段稱為流水線的瓶頸段。,,,各段時間不等的流水線的實(shí)際吞吐率:( Δti為第i段的時間,共有k個段 ),流水線的最大吞吐率為,,例如:一條4段的流水線中,S1,S2,S4各段的時間都是Δt,唯有S3的時間是3Δt。,最大吞吐率為,,解決流水線瓶頸問題的常用方法
28、 舉例細(xì)分瓶頸段 例如:對前面的4段流水線把瓶頸段S3細(xì)分為3個子流水線段:S3a,S3b,S3c,改進(jìn)后的流水線的吞吐率 :,,重復(fù)設(shè)置瓶頸段缺點(diǎn):控制邏輯比較復(fù)雜,所需的硬件增加了。例如:對前面的4段流水線 重復(fù)設(shè)置瓶頸段S3:S3a,S3b,S3c,,重復(fù)設(shè)置瓶頸段后的時空圖,,加速比:完成同樣一批任務(wù),不使用流水線所用的時間 與使用流水線所用的時間之比。假設(shè):不使用流水線(即順序
29、執(zhí)行)所用的間為Ts,使用流水線后所用的時間為Tk,則該流水線的加速比為,加速比,1. 流水線各段時間相等(都是△t)一條k段流水線完成n個連續(xù)任務(wù) 所需要的時間為 Tk = (k+n-1)Δt順序執(zhí)行n個任務(wù) 所需要的時間: Ts= nk△t 流水線的實(shí)際加速比為,,最大加速比,當(dāng)n>>k時,S ≈ k思考:流水線的段數(shù)愈多愈好?,,流水線的各段時間不完全相等時一條k段流水線完成n個
30、連續(xù)任務(wù)的實(shí)際加速比為,,效率,效率:流水線中的設(shè)備實(shí)際使用時間與整個運(yùn)行時間 的比值,即流水線設(shè)備的利用率。 由于流水線有通過時間和排空時間,所以在連續(xù)完成n個任務(wù)的時間內(nèi),各段并不是滿負(fù)荷地工作。各段時間相等各段的效率ei相同 (解釋),整條流水線的效率為,,可以寫成,最高效率為,當(dāng)n>>k時,E≈1。,,當(dāng)流水線各段時間相等時,
31、流水線的效率與吞吐率 成正比。 E=TP△t 流水線的效率是流水線的實(shí)際加速比S與它的最大加速 比k的比值。,當(dāng)E=1時,S=k,實(shí)際加速比達(dá)到最大。,,從時空圖上看,效率就是n個任務(wù)占用的時空面積和 k個段總的時空面積之比。,當(dāng)各段時間不相等時,,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.48,,實(shí)際吞吐率:假設(shè)m段,完成n個任務(wù),單位時間所實(shí)際完成的任務(wù)數(shù)。加
32、速比: m段流水線的速度與等功能的非流水線的速度之比。效率:流水線的設(shè)備利用率。,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.49,,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.50,,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.51,03-11-review: Pipelining,指令流水線通過指令重疊減小 CPI充分利用數(shù)據(jù)通路當(dāng)前指令執(zhí)行時,啟動下一條指令其性能受限于花費(fèi)時間最長的段
33、檢測和消除相關(guān)如何有利于流水線技術(shù)的應(yīng)用所有的指令都等長只有很少的指令格式只用Load/Store來進(jìn)行存儲器訪問,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.52,03-11-review:流水線性能分析,流水線技術(shù)應(yīng)用的難度何在? :相關(guān)問題,吞吐率、加速比、效率之間的關(guān)系,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.53,3.3 流水線的相關(guān),相關(guān)的基本概念結(jié)構(gòu)相關(guān)數(shù)據(jù)相關(guān)控制相關(guān),202
34、4/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.54,采用流水線技術(shù)帶來的新的問題,流水線相關(guān)結(jié)構(gòu)相關(guān):同一時間兩種方式使用同一資源例如 washer/dryer 合在一起,IM和ID合在一起控制相關(guān): 試圖在條件未評估之前,就做決定例如 branch instructions數(shù)據(jù)相關(guān):在數(shù)據(jù)未準(zhǔn)備好之前,就需要使用數(shù)據(jù)當(dāng)前指令的執(zhí)行需要上一條指令的結(jié)果使用等待策略總是可以解決相關(guān)流水線控制必須能檢測相關(guān),否則由軟件
35、設(shè)計來避免采用相應(yīng)操作解決相關(guān) (or 等待),2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.55,,,Mem,單個存儲器引起的結(jié)構(gòu)相關(guān),Instr.Order,,,Time (clock cycles),Load,Instr 1,Instr 2,Instr 3,Instr 4,,,,,,,,,Reg,,,,Mem,Reg,,,,,,Reg,,,,Mem,Reg,,,,,,Detection is eas
36、y in this case! (right half highlight means read, left half write),2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.56,消除結(jié)構(gòu)相關(guān),2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.57,結(jié)構(gòu)相關(guān)對性能的影響,例如: 如果每條指令平均訪存1.3 次,而每個時鐘周期只能訪存一次,那么在其他資源100%利用的前提下,平均 CPI ? 1.3,2024/3/
37、17,中國科學(xué)技術(shù)大學(xué),chapter3.58,流水線的加速比計算,For simple RISC pipeline, CPI = 1:,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.59,例如: Dual-port vs. Single-port,機(jī)器A: Dual ported memory (“Harvard Architecture”)機(jī)器 B: Single ported memory存在結(jié)構(gòu)相關(guān)的機(jī)器B的時鐘頻
38、率是機(jī)器A的時鐘頻率的1.05倍Ideal CPI = 1 在機(jī)器B中l(wèi)oad指令會引起結(jié)構(gòu)相關(guān),所執(zhí)行的指令中Loads指令占 40% Average instruction time = CPI * Clock cycle time 無結(jié)構(gòu)相關(guān)的機(jī)器A: Average Instruction time = Clock cycle time 存在結(jié)構(gòu)相關(guān)的機(jī)器B: Average Ins
39、truction time = (1+0.4*1) * clock cycle time /1.05 = 1.3 * clock cycle time,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.60,數(shù)據(jù)相關(guān)問題,,Time (clock cycles),,,,,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.61,寫后
40、讀相關(guān)(Read After Write (RAW)) InstrJ tries to read operand before InstrI writes it由于實(shí)際的數(shù)據(jù)交換需求而引起的,三種基本的數(shù)據(jù)相關(guān),I: add r1,r2,r3J: sub r4,r1,r3,,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.62,讀后寫相關(guān)Write After Read (WAR) InstrJ write
41、s operand before InstrI reads it編譯器編寫者稱之為“anti-dependence”(反相關(guān)),是由于重復(fù)使用寄存器名“r1”引起的.DLX(MIPS) 5 段基本流水線不會有此類相關(guān)因?yàn)? 所有的指令都是5段, 并且 讀操作總是在第2段,而寫操作在第5段,,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.63,寫后寫相關(guān)(Write After Write (WAW)) I
42、nstrJ writes operand before InstrI writes it.編譯器編寫者稱之為“output dependence” ,也是由于重復(fù)使用寄存器名 “r1”引起的.在DLX(MIPS) 5段基本流水線中,也不會發(fā)生。因?yàn)?所有指令都是5段,并且寫操作都在第5段在后面的復(fù)雜的流水線中我們將會看到 WAR 和WAW 相關(guān),,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.64,采用定向技術(shù)
43、避免數(shù)據(jù)相關(guān),2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.65,采用定向技術(shù)仍然存在相關(guān),2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.66,DMem,,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.67,Try producing fast code fora = b + c;d = e – f;assuming a, b, c, d ,e, and f in memory. Slow
44、code:LW Rb,bLW Rc,cADD Ra,Rb,RcSW a,Ra LW Re,e LW Rf,fSUB Rd,Re,RfSWd,Rd,采用軟件方法避免數(shù)據(jù)相關(guān),Fast code:LW Rb,bLW Rc,cLW Re,e ADD Ra,Rb,RcLW Rf,fSW a,Ra SUB Rd,Re,Rf
45、SWd,Rd,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.68,流水線相關(guān)檢測部件能檢測到的相關(guān)情況,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.69,采用定向技術(shù)硬件所需做的修改,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.70,定向源為R-R ALU操作的定向比較判斷,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.71,定向源為ALU-imm操作的定向比較判斷,2024/3/17,
46、中國科學(xué)技術(shù)大學(xué),chapter3.72,定向源為Load操作的比較判定,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.73,控制相關(guān),分支需要解決兩個問題分支目標(biāo)地址(轉(zhuǎn)移成功意謂著PC值不是 PC+4)CC是否有效,這兩點(diǎn)在DLX(MIPS)中都在流水線的靠后段中確定譯碼在ID段,此時取進(jìn)來的指令可能是錯誤的指令對于簡單的DLX(MIPS)流水線 - 3 cycle branch penalty有效地址在EX段才
47、能確定條件是否為真在MEM段因此有3個stall流水線的時空圖,控制沖突,執(zhí)行分支指令的結(jié)果有兩種分支成功:PC值改變?yōu)榉种мD(zhuǎn)移的目標(biāo)地址。 在條件判定和轉(zhuǎn)移地址計算都完成后,才改變PC值。不成功或者失?。篜C的值保持正常遞增,指向順序的下一條指令。分支需要解決兩個問題分支目標(biāo)地址(轉(zhuǎn)移成功意謂著PC值不是 PC+4)CC是否有效,這兩點(diǎn)在DLX(MIPS)中都在流水線的靠后段中確定處理分支指令最簡單的方法:
48、“凍結(jié)”或者“排空”流水線 。 優(yōu)點(diǎn):簡單。,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.75,回顧DLX (MIPS)數(shù)據(jù)通路,簡單處理分支指令:分支成功的情況,簡單處理分支指令:分支失敗的情況,,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.77,減少分支延時的方法,硬件的方法修改數(shù)據(jù)通路:使得目標(biāo)地址和分支條件盡早確定,其中之一盡早確定是沒有用的判斷是否為0可以在ID段確定使用另一個加法器計算可以
49、在ID段計算BTA(分支目標(biāo)地址),即在ID段形成下一條指令地址,兩種可能(BTA, PC+4),選擇哪一個取決于ID段確定的CC必要時使用互鎖機(jī)制來插入Stall?設(shè)計合適的ISAe.g. BNEZ, BEQZ on DLX 使得CC可以在ID段確定軟件(通過編譯器)的方法:調(diào)度一些指令放入分支的延遲槽中預(yù)測的方法:統(tǒng)計分支成功和失敗的情況,提高預(yù)測精度,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.78,新的D
50、LX (MIPS)數(shù)據(jù)通路,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.79,改進(jìn)后流水線的分支操作,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.80,四種可能的解決控制相關(guān)的方法,#1: Stall 直到分支方向確定#2: 預(yù)測分支失敗直接執(zhí)行后繼指令如果分支實(shí)際情況為分支成功,則撤銷流水線中的指令對流水線狀態(tài)的更新DLX(MIPS)分支指令平均47%為分支失敗要保證:分支結(jié)果出來之前不會改變處理機(jī)的
51、狀態(tài),以便一旦猜錯時,處理機(jī)能夠回退到原先的狀態(tài)。#3: 預(yù)測分支成功 前提:先知道分支目標(biāo)地址,后知道分支是否 成功。平均53% DLX (MIPS)分支為分支成功DLX(MIPS)分支目標(biāo)地址在ID段才能計算出目標(biāo)地址DLX(MIPS) 還是有1個 cycle branch penalty,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.81,延遲轉(zhuǎn)移,#4: 延遲轉(zhuǎn)移主要思想: 從邏輯上“延長”
52、分支指令的執(zhí)行時間。把延遲分支看成是由原來的分支指令和若干個延遲槽構(gòu)成,不管分支是否成功,都要按順序執(zhí)行延遲槽中的指令。定義分支發(fā)生在一系列指令之后branch instructionsequential successor1sequential successor2........sequential successornbranch target if taken5級流水只需要一個延遲槽就可以確定目標(biāo)地
53、址和確定條件DLX 使用這種方式,,,,,分支延遲槽中的指令“掩蓋”了流水線原來必須插入的暫停周期。,具有一個分支延遲槽的流水線的執(zhí)行過程,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.83,延遲轉(zhuǎn)移,從何處選擇指令來填充延遲槽?分支指令之前的指令:最好從分支目標(biāo)地址處取: 在分支成功可能性大時,這種策略較好從分支失敗處調(diào)度:僅在分支失敗時編譯器可以有效的調(diào)度一個延遲槽如果提供取消分支時, 編譯器可以調(diào)度更多的指令
54、填入延遲槽,,調(diào)度前和調(diào)度后的代碼,,三種方法的要求及效果,調(diào) 度 策 略,對調(diào)度的要求,什么情況下起作用,從 前 調(diào) 度,從目標(biāo)處調(diào)度,從失敗處調(diào)度,必須保證在分支失敗時執(zhí)行被調(diào)度的指令不會導(dǎo)致錯誤。有可能需要復(fù)制指令,被調(diào)度的指令必須與分支無關(guān),必須保證在分支成功時執(zhí)行被調(diào)度的指令不會導(dǎo)致錯誤,任何情況,分支成功時(但由于復(fù)制指令,有可能會增大程序空間),分支失敗時,,,,,,,分支取消機(jī)制,分支延遲受到兩個方面的限制:
55、可以被放入延遲槽中的指令要滿足一定的條件。編譯器預(yù)測分支轉(zhuǎn)移方向的能力。進(jìn)一步改進(jìn):分支取消機(jī)制當(dāng)分支的實(shí)際執(zhí)行方向和事先所預(yù)測的一樣時執(zhí)行分支延遲槽中的指令,否則就將分支延遲槽中的指令轉(zhuǎn)化成一個空操作。,,,預(yù)測分支成功的情況下,分支取消機(jī)制的執(zhí)行情況,分支取消機(jī)制示意,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.88,評估減少分支策略的效果,SchedulingBranchCPIspeedup v.spee
56、dup v. scheme penaltyunpipelinedstallStall pipeline31.423.51.0Predict taken11.144.41.26Predict not taken11.094.51.29Delayed branch0.51.074.61.31 1.14 = 1 + 1*14%*100%
57、 1.09 = 1+1*14%*65% 1.07 = 1+ 0.5*14%Conditional & Unconditional = 14%, 65% change PC,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.89,3.4 異常處理,流水線使得系統(tǒng)的吞吐率提高問題:由于相關(guān)會影響系統(tǒng)性能的發(fā)揮更嚴(yán)重的問題:異常 Why?多級流水-》多周期指令異常可以發(fā)生在任何地方
58、指令序與異常序可能不同必須按指令序處理異常采用何種策略取決于異常的類型,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.90,異常的類型,I/O device request invoking an OS service from a user programe.g. via an unimplemented instruction on a Mactracing instruction executionbrea
59、kpoint integer or FP arithmetic error such as overflow page fault misaligned memory access memory protection violation undefined instruction hardware malfunction - like parity or ECC error power failure,2024/3/17,
60、中國科學(xué)技術(shù)大學(xué),chapter3.91,異常響應(yīng)請求的種類,Synchronous vs. Asynchronoussynchronous caused by a particular instructionasynchronous - external devices and HW failuresUser requested vs. Coercedrequested is predictable and can happe
61、n after the instructionUser maskable vs. user non-maskablee.g. arithmetic overflow on some machines is user maskableWithin vs. Between instructionswithin ==> synchronous, key is that completion is preventedsome a
62、synchronous are also within Resume vs. Terminate programimplications for how much state must be preserved,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.92,例如,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.93,最困難的問題,異常發(fā)生在指令中,并且要求恢復(fù)執(zhí)行 要求==>流水線必須安全地 shut
63、 downPC必須保存如果重新開始的是一條分支指令,它需要重新執(zhí)行這意味著條件碼狀態(tài)必須沒有改變在DLX(MIPS)中的處理步驟強(qiáng)制trap指令在下一個IF段進(jìn)入流水線封鎖引起故障的指令的所有寫操作和流水線中后繼指令的寫操作讓所有前序指令執(zhí)行完(如果能)保存重新執(zhí)行時的地址(PC)PC 或 PC + 1調(diào)用OS處理異常,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.94,,考慮延遲轉(zhuǎn)移時,假設(shè)有兩個延遲槽的
64、分支I Branch Instr1I+1 Delay instr1I+2Delay Instr2I+3instI+4inst假設(shè)branch指令是好的第1個延遲指令引起缺頁中斷第2條指令封鎖異常處理后,缺省的恢復(fù)點(diǎn)是第一條延遲指令不會有Branch指令因此需要保存的PC值不止一個,根據(jù)具體情況進(jìn)行恢復(fù),2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.95,精確中斷與非精確中斷,引起異常
65、的指令前面的指令都已執(zhí)行完,故障后的指令可以重新從故障點(diǎn)后執(zhí)行理想情況,引起故障的指令沒有改變機(jī)器的狀態(tài)要正確的處理這類異常請求,必須保證故障指令不產(chǎn)生副作用在有些機(jī)器上,浮點(diǎn)數(shù)異常流水線段數(shù)多,在發(fā)現(xiàn)故障前,故障點(diǎn)后的指令就已經(jīng)寫了結(jié)果,在這種情況下,必須有辦法處理。當(dāng)今很多高性能計算機(jī),Alpha 21164,MIPSR10000等支持精確中斷,但精確模式要慢10倍,一般用在代碼調(diào)試時,很多系統(tǒng)要求精確中斷模式,如IEEE
66、 FP標(biāo)準(zhǔn)處理程序,虛擬存儲器等。精確中斷對整數(shù)流水線而言,不是太難實(shí)現(xiàn),2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.96,DLX (MIPS)中的異常,IF page fault, misaligned address, memory protection violationID undefined or illegal opcodeEX arithmetic exceptionMEM page fault
67、, misaligned address, memory protection violationWB none,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.97,03-19-Review- 相關(guān)的處理,結(jié)構(gòu)相關(guān)概念:由于爭用資源而引起的解決辦法數(shù)據(jù)相關(guān)概念:由于存在實(shí)際的通信,而引起的解決辦法:硬件:定向技術(shù)(forwarding)軟件: 指令級調(diào)度控制相關(guān)概念:由于控制類指令引起的解決辦法 ?
68、??,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.98,03-19-Review(續(xù)),控制相關(guān)概念:減少性能損失的基本方法凍結(jié)或排空流水線預(yù)測分支成功預(yù)測分支失敗延遲轉(zhuǎn)移異常異常的分類精確中斷和非精確中斷,2024/3/17,中國科學(xué)技術(shù)大學(xué),chapter3.99,3.5 DLX (MIPS)中多周期操作的處理,問題浮點(diǎn)操作在1~2個cycles完成是不現(xiàn)實(shí)的,一般要花費(fèi)較長時間在DLX(MIPS)
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 流水線技術(shù)
- 流水線
- 高速流水線A-D轉(zhuǎn)換器的數(shù)字流水線校正技術(shù).pdf
- 流水線物料板
- 流水線物料板
- 流水線7張.dwg
- 流水線7張.dwg
- 流水線7張.dwg
- 流水線式免疫療法
- 流水線7張.dwg
- 18馬達(dá)焊接流水線
- 5.4-流水線技術(shù)-吳學(xué)涯
- 流水線技術(shù)-中國科學(xué)技術(shù)大學(xué)
- 生產(chǎn)流水線問題
- 裝瓶流水線控制
- 18馬達(dá)焊接流水線
- 流水線布置圖.dwg
- mips五級整數(shù)流水線
- 異步流水線關(guān)鍵技術(shù)研究.pdf
- 啤酒灌裝流水線控制設(shè)計
評論
0/150
提交評論