计算机体系结构之流水线技术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]←ALUoload指令操作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..10IR[rt]=IR11..15IR[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(000nmmntntmtmnTTS流水非流水3.效率由于流水线有通过时间和排空时间,所以流水线的各段并不是一直满负荷地工作。从时空图看,就是n个任务占用的时空区和m个段总的时空区之比假设m段时间相等t0的流水线完成n个任务10nmnT

1 / 121
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功