您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 计算机体系结构chapter03.
2019/12/17中国科学技术大学Chapter3.1计算机体系结构周学海xhzhou@ustc.edu.cn0551-63601556,63492271中国科学技术大学第三章流水线技术3.1流水线的基本概念3.2DLX(MIPS)基本流水线3.3流水线的相关3.4异常处理3.5DLX(MIPS)中多周期操作的处理3.6MIPSR4000流水线2019/12/17中国科学技术大学chapter3.3Review:性能评测•平均CPI?–每类指令的使用频度TypeCPIifortypeFrequencyCPIixfreqIiArith/Logic440%1.6Load530%1.5Store410%0.4branch320%0.6AverageCPI:4.12019/12/17中国科学技术大学chapter3.4是否可以使CPI4.1?IdealMemoryWrAdrDinRAdr323232DoutMemWr32ALU3232ALUOpALUControl32IRWrInstructionReg32RegFileRaRwbusWRb5532busA32busBRegWrRsRtMux01RtRdPCWrALUSelAMux01RegDstMux0132PCMemtoRegExtendExtOpMux01320123416Imm322ALUSelBMux1032ZeroZeroPCWrCondPCSrc32IorDMemDataRegALUOutBA•在一条指令执行过程中下图有许多空闲部件–可以让指令重叠执行??2019/12/17中国科学技术大学chapter3.5•洗衣为例•Ann,Brian,Cathy,Dave每人进行洗衣的动作:wash,dry,andfold•washer需要30minutes•Dryer需要40minutes•“Folder”需要20minutesABCD3.1流水线的基本概念2019/12/17中国科学技术大学chapter3.6SequentialLaundry•顺序完成这些任务需要6小时•如果采用流水作业,需要多长时间?ABCD3040203040203040203040206PM7891011MidnightTaskOrderTime2019/12/17中国科学技术大学chapter3.7流水线作业:尽可能让任务重叠进行•流水作业完成四人的洗衣任务只需要3.5hoursABCD6PM7891011MidnightTaskOrderTime3040404040202019/12/17中国科学技术大学chapter3.8流水线技术要点•流水线技术并不能提高单个任务的执行效率,它可以提高整个系统的吞吐率•流水线中的瓶颈——最慢的那一段•多个任务同时执行,但使用不同的资源•其潜在的加速比=流水线的级数•流水段所需时间不均衡将降低加速比•流水线存在装入时间和排空时间,使得加速比降低•由于存在相关问题,会导致流水线停顿2019/12/17中国科学技术大学chapter3.9•指令流水线:CPU执行大量的指令,指令吞吐率非常重要•DLX的指令格式3.2DLX(MIPS)的基本流水线Op312601516202125rsrtimmediateOp3126025Op312601516202125rsrtoffsetaddedtoPCrdRegister-Register(R-type)ADDR1,R2,R3561011Register-Immediate(I-type)SUBR1,R2,#3Jump/Call(J-type)JUMPendfunc(jump,jumpandlink,trapandreturnfromexception)所有指令相同长度在指令格式中寄存器位于同一位置只有Loads和Stores可以对存储器操作2019/12/17中国科学技术大学chapter3.10DLX(MIPS)数据通路一种简单实现MemoryAccessWriteBackInstructionFetchInstr.DecodeReg.FetchExecuteAddr.CalcLMDALUMUXMemoryRegFileMUXMUXDataMemoryMUXSignExtend4AdderZero?NextSEQPCAddressNextPCWBDataInstRDRS1RS2Imm2019/12/17中国科学技术大学chapter3.11基本操作(Step1&2)•Step1-IF–IR--Mem[PC]---------fetchthenextinstructionfrommemory–NPC--PC+4----------computethenewPC•Step2-ID-instructiondecodeandregisterfetchstep–A--Regs[IR6..10]–B--Regs[IR11..16]»可能读取的寄存器值没有用,但没有关系,译码后如果无用,以后操作就不用–Imm((IR16)16##IR16-312019/12/17中国科学技术大学chapter3.12基本操作-Step3,执行阶段根据译码的结果,有四种情况•MemoryReference–ALUOutput--A+(IR16)16##IR16..31---------effectiveaddress–SMD--B----------datatobewrittenifitisaSTORE--SMD(storememdata)=MDR•Register-RegisterALUinstruction–ALUOutput--AopB•Register-ImmediateALUinstruction–ALUOutput--Aop((IR16)16##IR16..31))•Branch/Jump–ALUOutput--NPC+(IR16)16##IR16..31–cond--Aop0---forconditionalbranchesA’svalueistheconditionbase(=forBEQZ)–在简单的Load-Store机器中,不存在即需要计算存储器地址,指令地址,又要进行ALU运算的指令,因此可以将计算有效地址与执行合二为一,在一个流水段中进行。2019/12/17中国科学技术大学chapter3.13Step4&Step5Step4MEM-memoryaccess/branchcompletion•memoryreference–LMD---Mem[ALUOutput]-------ifit’saload;LMD(loadmemorydata)=MDR或–Mem[ALUOutput]--SMD•branch–if(cond)thenPC--ALUOutputelsePC--NPC–forJumpstheconditionisalwaystrueStep5WB-writeback•Reg-RegALU–Regs[IR16..20]--ALUOutput•Reg-ImmedALU–Regs[IR11..15]--ALUOutput•Load–Regs[IR11..15]--LMD2019/12/17中国科学技术大学chapter3.14这种结构是否可行•模型是正确的,但没有优化•还有其他选择–指令和数据存储器是否可以分开–采用一个长周期还是5个短周期实现2019/12/17中国科学技术大学chapter3.15单周期和多周期控制•多周期控制可实现指令重叠执行2019/12/17中国科学技术大学chapter3.16DLX(MIPS)的基本流水线•假设流水线周期为每步所花费的时间2019/12/17中国科学技术大学chapter3.17为什么用流水线?•假设执行100条指令•单周期机器–45ns/cyclex1CPIx100inst=4500ns•多周期机器–10ns/cyclex4.6CPI(duetoinstmix)x100inst=4600ns•理想流水线机器–10ns/cyclex(1CPIx100inst+4cycledrain)=1040ns2019/12/17中国科学技术大学chapter3.18为什么用流水线(cont.)?-资源利用率高Instr.OrderTime(clockcycles)Inst0Inst1Inst2Inst4Inst3ALUImRegDmRegALUImRegDmRegALUImRegDmRegALUImRegDmRegALUImRegDmReg2019/12/17中国科学技术大学chapter3.19流水线正常工作的基本条件•各段间需要使用寄存器文件保存当前段传送到下一段的数据和控制信息•存储器带宽是非流水的5倍2019/12/17中国科学技术大学chapter3.20新的DLX(MIPS)数据通路2019/12/17中国科学技术大学chapter3.212019/12/17中国科学技术大学chapter3.22Reviewlecture•流水线技术要点–流水线技术并不能提高单个任务的执行效率,它可以提高整个系统的吞吐率–流水线中的瓶颈——最慢的那一段–多个任务同时执行,但使用不同的资源–其潜在的加速比=流水线的级数–流水段所需时间不均衡将降低加速比–流水线存在装入时间和排空时间,使得加速比降低–由于存在相关问题,会导致流水线停顿•流水线正常工作的基本条件–增加寄存器文件保存当前段传送到下一段的数据和控制信息–存储器带宽是非流水的5倍2019/12/17中国科学技术大学chapter3.23新的DLX(MIPS)数据通路2019/12/17中国科学技术大学chapter3.24在新的Datapath下各段的操作•IF–IF/ID.IR←Mem[PC];–IF/ID.NPC,PC←(if((EX/MEM.opcode==branch)&EX/MEM.cond){EX/MEM.ALUOutput}else{PC+4});•ID–ID/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[immediatefield]);•EX–ALUinstruction»EX/MEM.IR←ID/EX.IR;»EX/MEM.ALUOutput←ID/EX.AfuncID/EX.B;or»EX/MEM.ALUOoutput←ID/EX.AopID/EX.Imm;2019/12/17中国科学技术大学chapter3.25–Loadorstoreinstruction»EX/MEM.IR←ID/EX.IR»EX/MEM.ALUOutput←ID/EX.A+ID/EX.Imm»EX/MEM.B←ID/EX.B–Branchinstruction»EX/MEM.ALUOutput←ID/EX.NPC+(ID/EX.Imm2)»EX/MEM.cond←(ID/EX.A==0);•MEM–ALUInstruction»MEM/WB.IR←EX/MEM.IR»MEM/WB.ALUOutput←EX/MEM.ALUOutput;–Loadorstoreinstruction»MEM/WB.IR←EX/MEM.IR;»MEM/WB.LMD←Mem[EX/MEM.ALUOutput];orMem[EX/MEM.ALUOutput]←EX/MEM.B;(store)2019/12/17中国科学技术大学chapter3.26•WB–ALUinstruction»Regs[MEM/WB.IR[rd]]←MEM/WB.ALUOutput;or»Regs[MEM/WB.IR[rt]]←MEM/WB.ALUOutput;–Forloadonly»Regs[MEM/WB.IR[rt]]←MEM/
本文标题:计算机体系结构chapter03.
链接地址:https://www.777doc.com/doc-2042139 .html