您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 计算机体系结构之流水线技术ppt(共125页)
3流水线技术张伟计算机学院大纲1概念定义2流水线分类3MIPS五级流水线4性能分析5流水线相关6高级流水线技术1概念定义洗衣店的例子A,B,C,D均有一些衣物要清洗,甩干,折叠清洗要花30分钟甩干要用40分钟叠衣物也需要20分钟四人衣物一共要花4*(30+40+20)=360分钟流水线的基本概念ABCD6PM789TaskOrderTime304040404020四人衣物一共要花30+40*4+20=210分钟流水线的基本概念流水线技术:把一个重复的过程分解为若干个子过程,每个子程序可以与其他子过程同时进行描述流水线的工作,最常用的方法是时间-空间图(时空图)横坐标:表示时间,即各个任务在流水线中所经过的时间纵坐标:表示空间,即流水线的各个子过程,也称为级、段、流水线深度(Stage)流水线的时空图流水线的特点流水线实际上是把一个功能部件分解成多个独立的子功能部件(一个任务也就分成了几个子任务,每个子任务由一个子功能部件完成),并依靠多个子功能部件并行工作来缩短所有任务的执行时间流水线有助于提高整个程序(所有任务)的吞吐率,但并没有减少每个指令(任务)的执行时间流水线各个功能段所需时间应尽量相等。否则,时间长的功能段将成为流水线的“瓶颈”,会造成流水线的“阻塞”(Stall)流水线开始需要“通过时间”(Fill)和最后需要“排空时间”(Drain)。流水线只有处理连续不断的任务才能发挥其效率2流水线分类流水线的分类(1)按流水线所完成的功能分类单功能流水线:只能完成一种固定功能的流水线多功能流水线:流水线的各段可以进行不同的连接,使流水线在不同的时间,或者在同一时间完成不同的功能例如:TIASC的多功能流水线流水线的分类(2)按流水线在同一时间内各段的连接方式分类静态流水线:在同一时间内,多功能流水线各段只能按同一种功能连接。只有当按这种方式工作的所有任务都流出流水线之后,才能重新连接以实现其他功能。在静态流水线中,只有当输入是一串相同的运算操作时,流水的效率才能得到发挥。动画演示动态流水线:在同一时间内,多功能流水线各段可以按不同方式连接,同时执行多种功能动画演示动态流水线VS静态流水线优点:能提高流水线的效率缺点:会使流水线的控制变得复杂流水线的分类(3)按照流水线的级别来分部件级流水线(运算操作流水线):把处理机的算术逻辑部件分段,使得各种数据类型的操作能够进行流水。处理机级流水线(指令流水线):把指令的解释执行过程按照流水方式进行处理。处理机间流水线(宏流水线):它是指由两个以上的处理机串行地对同一数据流进行处理,每个处理机完成一项任务。动画解析流水线的分类(4)按流水线是否有反馈回路分类线性流水线:流水线的各段逐个串接,输入数据从流水线一端输入从另一端输出;每个段都只流过一次。非线性流水线:流水线的各段除有串接外,还有反馈回路;在一次流水过程中,有的段要被多次使用。(举例)流水线的分类(5)按照数据表示来分标量处理机:不具有向量指令和向量数据表示,仅对标量进行流水处理的处理机。例如:IBM360/91,Amdahl470V/6等向量处理机:具有向量指令和向量数据表示的处理机。例如:TIASC,CRAY-I等流水线的分类(6)按照流动是否可以乱序来分顺序流动流水线:流水线输出端任务流出的顺序与输入端任务流入的顺序相同。异步流动流水线(乱序流水线):流水线输出端任务流出的顺序与输入端任务流入的顺序不同。3MIPS五级流水线DLX(DancingLinks)DLX是一种简单的指令集(教学、简单芯片)在不流水的情况下,如何实现DLX。实现DLX指令的一种简单数据通路MIPS的基本流水线MIPS指令集结构用5个功能段实现,每个功能段用一个时钟周期1.取指令周期IF(InstructionFetch)2.指令译码/读寄存器周期ID(InstructionDecode)3.执行/地址计算周期EX(Execute)存储器访问(计算有效地址)寄存器-寄存器ALU操作寄存器-立即数ALU操作4.存储器访问周期MEM(MemoryAccess)5.写回周期WB(WriteBack)MIPS的简单实现MemoryAccessWriteBackInstructionFetchInstr.DecodeReg.FetchExecuteAddr.CalcLMDALUMUXMemoryRegFileMUXMUXDataMemoryMUXSignExtend4AdderZero?NextSEQPCAddressNextPCWBDataInstRDRS1RS2Imm2.一条MIPS指令最多需要以下5个时钟周期:取指令周期(IF)操作IR←Mem[PC]NPC←PC+4指令译码/读寄存器周期(ID)操作A←Regs[rs]B←Regs[rt]Imm←((IR16)16##IR16..31)指令的译码操作和读寄存器操作是并行进行的。原因:在MIPS指令格式中,操作码字段以及rs、rt字段都是在固定的位置。这种技术称为固定字段译码技术。执行/有效地址计算周期(EX)不同指令所进行的操作不同:存储器访问指令操作ALUo←A+Imm寄存器-寄存器ALU指令操作ALUo←AfuncB寄存器-立即值ALU指令操作ALUo←AopImm分支指令操作ALUo←NPC+(Imm2);cond←(A==0)将有效地址计算周期和执行周期合并为一个时钟周期,这是因为MIPS指令集采用load/store结构,没有任何指令需要同时进行数据有效地址的计算、转移目标地址的计算和对数据进行运算。存储器访问/分支完成周期(MEM)所有指令都要在该周期对PC进行更新。除了分支指令,其他指令都是做PC←NPC在该周期内处理的MIPS指令仅仅有load、store和分支三种指令。存储器访问指令操作LMD←Mem[ALUo]或者Mem[ALUo]←B分支指令操作if(cond)PC←ALUoelsePC←NPC写回周期(WB)不同的指令在写回周期完成的工作也不一样。寄存器-寄存器ALU指令操作Regs[rd]←ALUo寄存器-立即数ALU指令操作Regs[rt]←ALUoload指令操作Regs[rt]←LMD3.不采用单周期实现方案的主要原因对于大多数CPU来说,单周期实现效率很低,因为不同的指令所需完成的操作差别相当大,因而所需要的时钟周期时间也大不一样。单周期实现时,需要重复设置某些功能部件,而在多周期实现方案中,这些部件是可以共享的。每一个时钟周期完成的工作看作是流水线的一段,每个时钟周期启动一条新的指令。流水实现的数据通路设置了流水寄存器段与段之间设置流水寄存器流水寄存器的命名用其相邻的两个段的名称拼合而成。例如:ID段与EX段之间的流水寄存器用ID/EX表示每个流水寄存器是由若干个寄存器构成的3.5.2基本的MIPS流水线MEM/WB数据存储器通用寄存器组符号位扩展ALUPC=0?ADD16324存储器分之结果MUX1MUX2MUX3MUX4IRABImmIR[rs]IR[rt]MEM/WB.IRNPCNPCIRcondALUoBIRLMDALUoIREX/MEMID/EXIF/ID指令流水实现的数据通路寄存器的命名形式为:x.y所包含的字段的命名形式为:x.y[s]其中:x:流水寄存器名称y:具体寄存器名称s:字段名称例如:ID/EX.IR:流水寄存器ID/EX中的子寄存器IRIRID/EX.IR[op]:该寄存器的op字段(即操作码字段)流水寄存器的作用将各段的工作隔开,使得它们不会互相干扰。保存相应段的处理结果。例如:EX/MEM.ALUo:保存EX段ALU的运算结果MEM/WB.LMD:保存MEM段从数据存储器读出的数据向后传递后面将要用到的数据或者控制信息所有有用的数据和控制信息每个时钟周期会随着指令在流水线中的流动往后流动一段。增加了向后传递IR和从MEM/WB.IR回送到通用寄存器组的连接。将对PC的修改移到了IF段,以便PC能及时地加4,为取下一条指令做好准备。2.每一个流水段进行的操作IR[rs]=IR6..10IR[rt]=IR11..15IR[rd]=IR16..20流水段流水线的每个流水段的操作所有指令类型ALU指令load/store指令分支指令IFIDEXIF/ID.IR←Mem[PC]IF/ID.NPC,PC←(if((EX/MEM.IR[op]==branch)&EX/MEM.cond){EX/MEM.ALUo}else{PC+4});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←(IF/ID.IR16)16##IF/ID.IR16..31;EX/MEM.IR←ID/EX.IR;EX/MEM.ALUo←ID/EX.AfuncID/EX.B或EX/MEM.ALUo←ID/EX.AopID/EX.Imm;EX/MEM.IR←ID/EX.IR;EX/MEM.ALUo←ID/EX.A+ID/EX.Imm;EX/MEM.B←ID/EX.B;EX/MEM.IR←ID/EX.IR;EX/MEM.ALUo←ID/EX.NPC+ID/EX.Imm2;EX/MEM.cond←(ID/EX.A==0);(动画演示)(动画演示)(动画演示)(动画演示)(动画演示)流水段任何指令类型ALU指令load/store指令分支指令MEMWBMEM/WB.IR←EX/MEM.IR;MEM/WB.ALUo←EX/MEM.ALUo;MEM/WB.IR←EX/MEM.IR;MEM/WB.LMD←Mem[EX/MEM.ALUo];或Mem[EX/MEM.ALUo]←EX/MEM.B;Regs[MEM/WB.IR[rd]]←MEM/WB.ALUo;或Regs[MEM/WB.IR[rt]]←MEM/WB.ALUo;Regs[MEM/WB.IR[rt]]←MEM/WB.LMD;流水线的每个流水段的操作(动画演示)(动画演示)(动画演示)(动画演示)4流水线性能分析流水线性能分析吞吐率(throughputrate)单位时间内流水线所完成的任务数或输出结果的数量加速比(speedupratio)完成一批任务,使用非流水线执行时间与使用流水线执行时间之比效率(efficiency)(指流水线的设备利用率)从时空图看,就是n个任务占用的时空区和m个段总的时空区之比1.吞吐率单位时间内流水线所完成的任务数量⑴最大吞吐率:流水线在连续流动达到稳定状态后所得到的吞吐率各段相等:TPmax=1/t0各段不等:TPmax=1/max{ti}最大吞吐率取决于流水线最慢的功能段所需的时间⑵实际吞吐率假设m段时间相等t0的流水线完成n个任务t0(说明)00)1(tntmnTnTP流水例题分析一个具有7段流水线的CPU,各段的执行时间分别为2ns,2.2ns,2.5ns,2.2ns,2.3ns,2.1ns,2.3ns,在该CPU上完成10个连续任务所需要的时间为()ns,该CPU的最高频率为()MHz.流水线优化思路流水线各段时间不等带来性能损失举例消除瓶颈的方法(举例)细分瓶颈段重复设置瓶颈段(时-空图)2.加速比完成一批任务,使用非流水线执行时间与使用流水线执行时间之比假设m段时间相等t0的流水线完成n个任务1)1(000nmmntntmtmnTTS流水非流水3.效率由于流水线有通过时间和排空时间,所以流水线的各段并不是一直满负荷地工作。从时空图看,就是n个任务占用的时空区和m个段总的时空区之比假设m段时间相等t0的流水线完成n个任务10nmnT
本文标题:计算机体系结构之流水线技术ppt(共125页)
链接地址:https://www.777doc.com/doc-6016236 .html