chap3-流水线技术

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1/2122/2123.2DLX的基本流水线3.3流水线中的相关◆DLX流水线◆流水线性能分析◆结构相关◆数据相关◆控制相关3.4MIPSR4000流水线计算机3.5向量处理机3.1流水线的基本概念第三章流水线技术3/2123.1流水线的基本概念3.1.1基本概念1.产品生产流水线下面通过一个例子来说明流水线的好处:◆两种方案◆两种方案的工作过程对比第三章流水线技术4/2125/212◆流水线生产过程的抽象描述◆这种流水工作方式的主要特点6/2122.指令流水线把指令的解释过程分解为“分析”和“执行”两个子过程,并让这两个子过程分别用独立的分析部件和执行部件来实现。理想情况:速度提高一倍3.1流水线的基本概念7/2128/2123.浮点加法流水线把浮点加法的全过程分解为“求阶差”、“对阶”、“尾数相加”、“规格化”四个子过程,并让它们分别用各自独立的部件来实现。理想情况:速度提高3倍3.1流水线的基本概念9/2123.1流水线的基本概念10/2124.时-空图时-空图从时间和空间两个方面描述了流水线的工作过程。时-空图中,横坐标代表时间,纵坐标代表流水线的各个段。3.1流水线的基本概念11/21212/2125.流水技术流水技术是指:将一个重复的时序过程分解成为若干个子过程,而每个子过程都可有效地在其专用功能段上与其他子过程同时执行。6.流水技术的特点(1)流水过程由多个相联系的子过程组成,每个子过程称为流水线的“级”或“段”。“段”的数目称为流水线的“深度”。(2)每个子过程由专用的功能段实现;3.1流水线的基本概念13/212(4)流水线需要有“通过时间”(第一个任务流出结果所需的时间),在此之后流水过程才进入稳定工作状态,每一个时钟周期(拍)流出一个结果;(3)各个功能段所需时间应尽量相等,否则,时间长的功能段将成为流水线的瓶颈,会造成流水线的“堵塞”和“断流”。这个时间一般为一个时钟周期(拍);(5)流水技术适合于大量重复的时序过程,只有输入端能连续地提供任务,流水线的效率才能充分发挥。3.1流水线的基本概念15/2123.1.2流水线的分类流水线可以按不同的观点进行分类。◆单功能流水线:只能完成一种固定功能的流水线。◆多功能流水线:流水线的各段可以进行不同的连接,从而实现不同的功能。例如:TIASC的多功能流水线1.按功能的多少来分3.1流水线的基本概念17/212在静态流水线中,只有当输入是一串相同的运算操作时,流水的效率才能得到发挥。动画演示2.按同一时间内各段之间的连接方式来分◆静态流水线:在同一时刻,流水线的各段只能按同一种功能的连接方式工作。3.1流水线的基本概念18/212◆动态流水线:在同一时刻,流水线的各段可以按不同功能的连接方式工作。动画演示这样就不是非得相同运算的一串操作才能流水处理。优点:能提高流水线的效率缺点:会使流水线的控制变得复杂3.1流水线的基本概念◆静、动态流水线时空图的对比20/2123.按照流水线的级别来分◆部件级流水线(运算操作流水线):把处理机的算术逻辑部件分段,使得各种数据类型的操作能够进行流水。◆处理机级流水线(指令流水线):把指令的解释执行过程按照流水方式进行处理。例如:前面把指令解释过程分解为:分析和执行DLX的基本流水线把指令解释过程分解为:取指令、指令译码、执行、访存、写回。(图示)3.1流水线的基本概念21/2123.1流水线的基本概念22/212◆处理机间流水线(宏流水线):它是指由两个以上的处理机串行地对同一数据流进行处理,每个处理机完成一项任务。动画解析3.1流水线的基本概念23/2124.按照数据表示来分◆向量处理机:具有向量指令和向量数据表示的处理机。例如:TIASC,CRAY-I等◆标量处理机:不具有向量指令和向量数据表示,仅对标量进行流水处理的处理机。例如:IBM360/91,Amdahl470V/6等5.按照是否有反馈回路来分◆线性流水线:流水线中的各段串行连接,没有反馈回路。◆非线性流水线:流水线中的各段除有串行连接外,还有反馈回路。(举例)3.1流水线的基本概念24/2123.1流水线的基本概念◆流水线的调度问题26/212◆顺序流动流水线:流水线输出端任务流出的顺序与输入端任务流入的顺序相同。◆异步流动流水线(乱序流水线):流水线输出端任务流出的顺序与输入端任务流入的顺序不同。6.按照流动是否可以乱序来分3.1流水线的基本概念27/2123.2DLX的基本流水线3.2.1DLX的一种简单实现首先讨论在不流水的情况下,如何实现DLX。1.实现DLX指令的一种简单数据通路第三章流水线技术29/2122.一条DLX指令最多需要以下5个时钟周期:(1)取指令周期(IF)IR←Mem[PC]NPC←PC+4操作3.2DLX的基本流水线31/212(2)指令译码/读寄存器周期(ID)A←Regs[IR6..10]B←Regs[IR11..15]Imm←(IR16)16##IR16..31操作指令译码和读寄存器是并行进行的。之所以能做到这一点,是因为在DLX指令格式中,操作码在固定位置。这种技术也称为固定字段译码。3.2DLX的基本流水线33/212(3)执行/有效地址计算周期(EX)在这个周期,不同的指令有不同的操作。3.2DLX的基本流水线◆存储器访问ALUOutput←A+Imm操作◆寄存器―寄存器ALU操作ALUOutput←AopB操作36/212◆寄存器―立即值ALU操作ALUOutput←AopImm操作3.2DLX的基本流水线◆分支操作ALUOutput←NPC+ImmCond←(Aop0)操作38/212(4)存储器访问/分支完成周期(MEM)在该周期处理的DLX指令只有Load、Store和分支指令。这里,将有效地址计算周期和执行周期合并为一个时钟周期,这是由DLX指令集结构本身的特点所允许的,因为在DLX指令集结构中,没有任何指令需要同时计算数据的存储器地址、计算分支指令的目标地址和进行数据处理。3.2DLX的基本流水线39/212◆存储器访问LMD←Mem[ALUOutput]或Mem[ALUOutput]←B操作3.2DLX的基本流水线41/212◆分支操作if(cond)PC←ALUOutputelsePC←NPC操作43/212(5)写回周期(WB)不同指令在该周期完成的工作也不一样。◆寄存器―寄存器型ALU指令Regs[IR16..20]←ALUOutput操作◆寄存器―立即值型ALU指令Regs[IR11..15]←ALUOutput操作◆Load指令Regs[IR11..15]←LMD操作3.2DLX的基本流水线寄存器―寄存器型ALU指令Regs[IR16..20]←ALUOutput寄存器―立即值型ALU指令Regs[IR11..15]←ALUOutputLoad指令Regs[IR11..15]←LMD47/2123.分支指令需要4个时钟周期,其它指令需要5个时钟周期假设分支指令占总指令数的12%,则:CPI=4.88上述实现无论在性能上,还是在硬件开销上,都不是优化的。3.2DLX的基本流水线48/2123.2.2基本的DLX流水线我们可以把3.2.1中的数据通路流水化:每个时钟周期启动一条新的指令。这样,该数据通路中的每一个周期就成了一个流水段。1.一种简单的DLX流水线2.简单DLX流水线的流水过程第一种描述(类似于时空图)第二种描述(按时间错开的数据通路序列)3.2DLX的基本流水线49/2123.2DLX的基本流水线按时间错开的数据通路序列51/2123.采用流水技术还应解决好以下几个问题:上述简单DLX流水线中:◆指令存储器(IM)和数据存储器(DM)分开,避免了访存冲突。◆ID段和WB段都要访问同一寄存器文件。ID段:读WB段:写如何解决对同一寄存器的访问冲突?(1)应保证不会在同一个时钟周期内在同一数据通路资源上做不同的操作。例如,不能要求一个ALU同时既做有效地址计算,又做减法操作。3.2DLX的基本流水线52/212◆没有考虑PC问题流水线为了能够每个时钟周期启动一条新的指令,就必须在每个时钟周期进行PC值的加4操作,并保留新的PC值。这种操作必须在IF段完成,以便为取下一条指令做好准备。3.2DLX的基本流水线但分支指令也可能改变PC的值,而且是在MEM段进行,这会导致冲突。为解决问题,我们重新组织数据通路,把所有改变PC值的操作都放在IF段进行。但分支指令如何处理?56/212(2)每一流水段内的操作都必须在一个时钟周期内完成◆流水线各段之间需设置流水线寄存器(也称为锁存器)◆流水线寄存器组及其所含寄存器的命名例如,ID段和EX段之间的流水线寄存器组中的IR寄存器的名称为:ID/EX.IR◆流水线寄存器的作用把数据和控制信息从一个流水段传送到下一个流水段。(3)流水线寄存器(组)3.2DLX的基本流水线◆流水线寄存器的构成59/2124.DLX流水线的操作对于流水线中的指令来说,在任一时刻,它仅在流水线中的某一段内执行操作。因此,只要知道每一流水段在各种指令下进行何种操作,就知道了整个流水线的操作。(表3.1)给出了DLX流水线各段的操作。3.2DLX的基本流水线流水段表3.1DLX流水线的每个流水段的操作任何指令类型ALU指令Load/Store指令分支指令IFIDEXIF/ID.IR←Mem[PC]IF/ID.NPC,PC←(ifEX/MEM.cond{EX/MEM.NPC}else{PC+4});ID/EX.A←Regs[IF/ID.IR6..10];ID/EX.B←Regs[IF/ID.IR11..15];ID/EX.NPC←IF/ID.NPC;ID/EX.IR←IF/ID.IR;ID/EX.Imm←(IR16)16##IR16..31;EX/MEM.IR←ID/EX.IR;EX/MEM.ALUOutput←ID/EX.AopID/EX.B或EX/MEM.ALUOutput←ID/EX.AopID/EX.Imm;EX/MEM.cond←0;EX/MEM.IR←ID/EX.IR;EX/MEM.ALUOutput←ID/EX.A+ID/EX.Imm;EX/MEM.ALUOutput←ID/EX.NPC+ID/EX.Imm;EX/MEM.cond←(ID/EX.Aop0);(动画演示)(动画演示)(动画演示)(动画演示)(动画演示)流水段任何指令类型ALU指令Load/Store指令分支指令MEMWBMEM/WB.IR←EX/MEM.IR;MEM/WB.ALUOutput←EX/MEM.ALUOutput;MEM/WB.IR←EX/MEM.IR;MEM/WB.LMD←Mem[EX/MEM.ALUOutput];或Mem[EX/MEM.ALUOutput]←EX/MEM.B;Regs[MEM/WB.IR16..20]←MEM/WB.ALUOutput;或Regs[MEM/WB.IR11..15]←MEM/WB.ALUOutput;Regs[MEM/WB.IR11..15]←MEM/WB.LMD;表3.1DLX流水线的每个流水段的操作(动画演示)(动画演示)(动画演示)(动画演示)5.DLX流水线的控制主要是确定如何控制那四个多路选择器。63/2123.2.3流水线性能分析吞吐率是指单位时间内流水线所完成的任务数或输出结果的数量。1.吞吐率(1)最大吞吐率TPmax最大吞吐率是指流水线在连续流动达到稳定状态后所得到的吞吐率。◆若流水线各段的时间相等,均为△t0,则:TPmax=1/△t03.2DLX的基本流水线64/212◆若流水线各段的时间不等,则:◆最大吞吐率取决于流水线中最慢的一段所需的时间,这段就成了流水线的瓶颈。◆消除瓶颈的方法(举例)细分瓶颈段重复设置瓶颈段(时-空图)1max{△ti}TPmax=─────3.2DLX的基本流水线重复设置瓶颈段(时-空图举例)67/212◆第一种情况:各段时间相等(设为△t0)假设流水线由m段组成,完成n个任务。时空图完成n

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

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

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

×
保存成功