计算机体系结构之流水线技术ppt课件.ppt
《计算机体系结构之流水线技术ppt课件.ppt》由会员分享,可在线阅读,更多相关《计算机体系结构之流水线技术ppt课件.ppt(124页珍藏版)》请在三一办公上搜索。
1、3 流水线技术,张伟计算机学院,大纲,1 概念定义2 流水线分类3 MIPS五级流水线4 性能分析5 流水线相关6 高级流水线技术,1 概念定义,洗衣店的例子,A, B, C, D 均有一些衣物要 清洗,甩干,折叠清洗要花30 分钟甩干要用40 分钟叠衣物也需要20 分钟四人衣物一共要花 4*(30+40+20)=360分钟,流水线的基本概念,四人衣物一共要花 30+40*4+20=210分钟,流水线的基本概念,流水线技术:把一个重复的过程分解为若干个子过程,每个子程序可以与其他子过程同时进行描述流水线的工作,最常用的方法是时间-空间图(时空图)横坐标:表示时间,即各个任务在流水线中所经过的时
2、间纵坐标:表示空间,即流水线的各个子过程,也称为级、段、流水线深度(Stage),流水线的时空图,流水线的特点,流水线实际上是把一个功能部件分解成多个独立的子功能部件(一个任务也就分成了几个子任务,每个子任务由一个子功能部件完成),并依靠多个子功能部件并行工作来缩短所有任务的执行时间流水线有助于提高整个程序(所有任务)的吞吐率,但并没有减少每个指令(任务)的执行时间流水线各个功能段所需时间应尽量相等。否则,时间长的功能段将成为流水线的“瓶颈”,会造成流水线的“阻塞”(Stall)流水线开始需要“通过时间” (Fill)和最后需要“排空时间”(Drain)。流水线只有处理连续不断的任务才能发挥其
3、效率,2 流水线分类,流水线的分类(1),按流水线所完成的功能分类单功能流水线:只能完成一种固定功能的流水线多功能流水线:流水线的各段可以进行不同的连接,使流水线在不同的时间,或者在同一时间完成不同的功能例如: TI ASC的多功能流水线,多功能流水线,流水线的分类(2),按流水线在同一时间内各段的连接方式分类静态流水线:在同一时间内,多功能流水线各段只能按同一种功能连接。只有当按这种方式工作的所有任务都流出流水线之后,才能重新连接以实现其他功能。在静态流水线中,只有当输入是一串相同的运算操作时,流水的效率才能得到发挥。动画演示动态流水线:在同一时间内,多功能流水线各段可以按不同方式连接,同时
4、执行多种功能 动画演示,动态流水线VS静态流水线优点:能提高流水线的效率缺点:会使流水线的控制变得复杂,静态和动态流水线 时空图对比,流水线的分类(3),按照流水线的级别来分部件级流水线(运算操作流水线):把处理机的算术逻辑部件分段,使得各种数据类型的操作能够进行流水。处理机级流水线(指令流水线):把指令的解释执行过程按照流水方式进行处理。处理机间流水线(宏流水线):它是指由两个以上的处理机串行地对同一数据流进行处理,每个处理机完成一项任务。动画解析,流水线的分类(4),按流水线是否有反馈回路分类线性流水线:流水线的各段逐个串接,输入数据从流水线一端输入从另一端输出;每个段都只流过一次。非线性
5、流水线:流水线的各段除有串接外,还有反馈回路;在一次流水过程中,有的段要被多次使用。(举例),非线性流水线,流水线的分类(5),按照数据表示来分标量处理机:不具有向量指令和向量数据表示,仅对标量进行流水处理的处理机。例如:IBM360/91, Amdahl 470V/6 等向量处理机:具有向量指令和向量数据表示的处理机。例如:TI ASC, CRAY-I 等,流水线的分类(6),按照流动是否可以乱序来分顺序流动流水线:流水线输出端任务流出的顺序与输入端任务流入的顺序相同。异步流动流水线(乱序流水线):流水线输出端任务流出的顺序与输入端任务流入的顺序不同。,3 MIPS五级流水线,DLX(Dan
6、cing Links),DLX 是一种简单的指令集(教学、简单芯片)在不流水的情况下,如何实现DLX。实现DLX指令的一种简单数据通路,MIPS的基本流水线,MIPS指令集结构用5个功能段实现,每个功能段用一个时钟周期取指令周期IF(Instruction Fetch)指令译码/读寄存器周期ID(Instruction Decode)执行/地址计算周期EX(Execute)存储器访问(计算有效地址)寄存器寄存器ALU操作寄存器立即数ALU操作存储器访问周期MEM(Memory Access)写回周期WB(Write Back),MIPS的简单实现,一条MIPS指令最多需要以下5个时钟周期:取指
7、令周期(IF) 操作IRMemPCNPCPC+4指令译码/读寄存器周期(ID) 操作A RegsrsB RegsrtImm (IR16)16#IR16.31) 指令的译码操作和读寄存器操作是并行进行的。 原因:在MIPS指令格式中,操作码字段以及rs、rt 字段都是在固定的位置。 这种技术称为固定字段译码技术。,执行/有效地址计算周期(EX) 不同指令所进行的操作不同:存储器访问指令 操作 ALUoA + Imm寄存器寄存器ALU指令 操作 ALUoA func B寄存器立即值ALU指令 操作 ALUoA op Imm分支指令 操作 ALUoNPC+(Imm2); cond(A = = 0)
8、将有效地址计算周期和执行周期合并为一个时钟周期,这是因为MIPS指令集采用loadstore结构,没有任何指令需要同时进行数据有效地址的计算、转移目标地址的计算和对数据进行运算。,存储器访问/分支完成周期(MEM)所有指令都要在该周期对PC进行更新。 除了分支指令,其他指令都是做PCNPC在该周期内处理的MIPS指令仅仅有load、store和分支三种指令。存储器访问指令 操作 LMDMemALUo 或者 MemALUoB分支指令 操作 if (cond) PC ALUo else PCNPC,写回周期(WB)不同的指令在写回周期完成的工作也不一样。寄存器寄存器ALU指令 操作 Regsrd
9、ALUo寄存器立即数ALU指令 操作 Regsrt ALUoload指令 操作 Regsrt LMD,不采用单周期实现方案的主要原因对于大多数CPU来说,单周期实现效率很低,因为不同的指令所需完成的操作差别相当大,因而所需要的时钟周期时间也大不一样。单周期实现时,需要重复设置某些功能部件,而在多周期实现方案中,这些部件是可以共享的。,每一个时钟周期完成的工作看作是流水线的一段,每个时钟周期启动一条新的指令。流水实现的数据通路设置了流水寄存器段与段之间设置流水寄存器流水寄存器的命名 用其相邻的两个段的名称拼合而成。 例如:ID段与EX段之间的流水寄存器用ID/EX表示每个流水寄存器是由若干个寄存
10、器构成的,3.5.2 基本的MIPS流水线,流水实现的数据通路,寄存器的命名形式为:x.y所包含的字段的命名形式为:x.ys 其中:x:流水寄存器名称 y:具体寄存器名称 s:字段名称 例如: ID/EX.IR:流水寄存器ID/EX中的子寄存器IR IRID/EX.IRop:该寄存器的op字段(即操作码字段)流水寄存器的作用将各段的工作隔开,使得它们不会互相干扰。保存相应段的处理结果。,例如:EX/MEM.ALUo:保存EX段ALU的运算结果MEM/WB.LMD:保存MEM段从数据存储器读出的数据向后传递后面将要用到的数据或者控制信息 所有有用的数据和控制信息每个时钟周期 会随着指令在流水线中
11、的流动往后流动一段。 增加了向后传递IR和从MEM/WB.IR回送到通用寄存 器组的连接。 将对PC的修改移到了IF段,以便PC能及时地加 4,为取下一条指令做好准备。,每一个流水段进行的操作IRrsIR6.10IRrtIR11.15IRrdIR16.20,流水段,流水线的每个流水段的操作,所有指令类型,ALU 指令,load/store 指令,分支指令,IF,ID,EX,IF/ID.IR MemPC,IF/ID.NPC, PC (if( EX/MEM.IRop = branch )& EX/MEM.cond)EX/MEM.ALUo else PC+4);,ID/EX.A RegsIF/ID.
12、IRrs;ID/EX.B RegsIF/ID.IRrt;,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.A func ID/EX.B或EX/MEM.ALUo ID/EX.A op ID/EX.Imm;,EX/MEM.IR ID/EX.IR;EX/MEM.ALUo ID/EX.A + ID/EX.Imm;EX/MEM.BID/EX.B;,EX/MEM.IR ID/EX.IR;EX/MEM.ALUo ID/EX.N
13、PC + ID/EX.Imm2;EX/MEM.cond (ID/EX.A =0);,(动画演示),(动画演示),(动画演示),(动画演示),(动画演示),流水段,任何指令类型,ALU 指令,load/store 指令,分支指令,MEM,WB,MEM/WB.IR EX/MEM.IR;MEM/WB.ALUo EX/MEM.ALUo;,MEM/WB.IR EX/MEM.IR;MEM/WB.LMD MemEX/MEM.ALUo;或MemEX/MEM.ALUo EX/MEM.B;,RegsMEM/WB.IRrd MEM/WB.ALUo;或RegsMEM/WB.IRrt MEM/WB.ALUo;,Regs
14、MEM/WB.IRrt MEM/WB.LMD;,流水线的每个流水段的操作,(动画演示),(动画演示),(动画演示),(动画演示),4 流水线性能分析,流水线性能分析,吞吐率(throughput rate)单位时间内流水线所完成的任务数或输出结果的数量加速比(speedup ratio)完成一批任务,使用非流水线执行时间与使用流水线执行时间之比效率(efficiency)(指流水线的设备利用率)从时空图看,就是n个任务占用的时空区和m个段总的时空区之比,1.吞吐率,单位时间内流水线所完成的任务数量最大吞吐率:流水线在连续流动达到稳定状态后所得到的吞吐率各段相等:TPmax=1/t0各段不等:T
15、Pmax=1/maxti最大吞吐率取决于流水线最慢的功能段所需的时间实际吞吐率假设m段时间相等t0的流水线完成n个任务 t0 (说明),例题 分析,一个具有7段流水线的CPU,各段的执行时间分别为2ns,2.2ns,2.5ns,2.2ns,2.3ns,2.1ns,2.3ns ,在该CPU上完成10个连续任务所需要的时间为( )ns, 该CPU的最高频率为( )MHz.,流水线优化思路,流水线各段时间不等带来性能损失举例消除瓶颈的方法 (举例)细分瓶颈段 重复设置瓶颈段 (时-空图),2. 加速比,完成一批任务,使用非流水线执行时间与使用流水线执行时间之比假设m段时间相等t0的流水线完成n个任务
16、,3. 效率,由于流水线有通过时间和排空时间,所以流水线的各段并不是一直满负荷地工作。从时空图看,就是n个任务占用的时空区和m个段总的时空区之比假设m段时间相等t0的流水线完成n个任务,(举例),例题1,在静态流水线上计算 AiBi , (i=4) 求:吞吐率,加速比,效率。,解:,(1) 确定适合于流水处理的计算过程(2) 画时空图(3) 计算性能吞吐率 TP7(20t) 加速比 S(34t)(20t)1.7效率 E(4436)(820)0.21,进一步优化,可以看出,在求解此问题时,该流水线的效率不高。 (原因)动态流水线的时空图 举例 这样行不行? 正确答案,瓶颈问题理想情况下,流水线在
17、工作时,其中的任务是同步地每一个时钟周期往前流动一段。当流水线各段不均匀时,机器的时钟周期取决于瓶颈段的延迟时间。在设计流水线时,要尽可能使各段时间相等。流水线的额外开销流水寄存器延迟时钟偏移开销,3.3.5 流水线设计中的若干问题,流水寄存器需要建立时间和传输延迟建立时间:在触发写操作的时钟信号到达之前,寄 存器输入必须保持稳定的时间。传输延迟:时钟信号到达后到寄存器输出可用的时 间。时钟偏移开销流水线中,时钟到达各流水寄存器的最大差值时间。(时钟到达各流水寄存器的时间不是完全相同),有关流水线性能的若干问题,(1) 流水线并不能减少(而且一般是增加)单条指令的执行时间,但却能提高吞吐率。(
18、2) 适当增加流水线的深度(段数)可以提高流水线的性能。(3) 流水线的深度受限于流水线的延迟和流水线的额外开销。(4) 相关问题。如果流水线中的指令相互独立,则可以充分发挥流水线的性能。但在实际中,指令间可能会是相互依赖,这会降低流水线的性能。下一节介绍如何解决相关问题。,5 流水线相关,流水线中的相关(1),流水线中存在一些冲突(冒险Hazard,相关、依赖Dependence,竞争Competition)的情况,它使得下一条指令无法在预定设计的时钟周期内执行。这些冲突将降低流水线性能主要有三种类型的冲突(相关)结构相关(资源冲突):当指令重叠执行过程中,硬件资源满足不了指令重叠执行的要求
19、数据相关(数据冲突) :在同时执行的多条指令中,一条指令依赖前一条指令的执行结果(数据)控制相关(控制冲突):流水线遇到分支指令或其他改变PC值的指令,流水线中的相关(2),相关有可能会使流水线停顿。当一条指令被暂停时,暂停在其后发射(流出)的指令,但继续执行在其前发射的指令。消除相关的基本方法:让流水线中的某些指令暂停,而让其它指令继续执行。,结构相关,1. 在流水线机器中,为了使各种指令组合能顺利地重叠执行,需要把功能部件流水化,并把资源重复设置。2. 如果某种指令组合因资源冲突而不能顺利重叠执行,则称该机器具有结构相关。3. 常见的导致结构相关的原因:功能部件不是全流水重复设置的资源的份
20、数不够,4. 结构相关举例:访存冲突当数据和指令存在同一存储器中时,访存指令会导致访存冲突。解决办法: 插入暂停周期(“流水线气泡” ) 引入暂停后的时空图解决方法: 设置相互独立的指令存储器和数据存储器或设置相互独立的指令Cache和数据Cache。,5. 避免结构相关所有功能单元完全流水化设置足够的硬件资源硬件代价很大6. 有些设计方案允许有结构相关降低成本减少部件的延迟,数据相关,1. 数据相关简介当指令在流水线中重叠执行时,流水线有可能改变指令读/写操作数的顺序,使之不同于它们在非流水实现时的顺序,这将导致数据相关。举例当两条指令对存储器同一单元进行读写时,也可能发生数据相关。但本章仅
21、讨论有关寄存器的数据相关。,2. 利用定向技术减少数据相关引起的暂停(1) 主要思路:在发生上述数据相关时,如果能够将计算结果从其产生的地方直接送到需要它的地方,就可以避免暂停。(2) 当定向硬件检测到前面某条指令的结果寄存器就是当前指令的源寄存器时,控制逻辑会将前面那条指令的结果直接从其产生的地方定向到当前指令所需的位置。(3) 工作过程演示(4) 一个功能单元的输出不仅可以定向到其自身的输入,而且还可以定向到其它单元的输入。(5)所有的定向发生在: (图示) ALU或DM输出 ALU输入,DM输入,“O”检测部件,数据相关的分类,按照指令对寄存器的读写顺序,可以将数据相关分为以下三种类型:
22、(考虑两条指令i和j,假设i先进入流水线)(1) 写后读相关 (RAW) (命名规则) 在 i 写入之前,j 先去读。j 读出的内容是错误的。这是最常见的相关。(2) 写后写相关 (WAW)(3) 读后写相关 (WAR),4. 需要暂停的数据相关(1) 并非所有的数据相关都可以用定向技术解决.举例(2) 增加流水线互锁硬件,插入“暂停”。 当互锁硬件发现这种相关时,就 暂停流水线,直到相关消失。 举例:演示A(流水线)演示B(时空图),流水线的控制相关,分支指令主要有:无条件分支指令:跳转、过程调用和过程返回条件分支指令执行分支指令,程序计数器PC值两种情况:PC值改变为目标地址(转移成功)P
23、C值保持正常(转移失败,顺序执行)PC值不定,所以流水线需要暂停,直到确定了新的PC值为止在DLX流水线中,分支转移成功导致暂停3个时钟周期。,处理分支指令最简单的方法一旦检测到分支指令(在ID段),就暂停执行其后的指令,直到分支指令到达MEM段,确定出新的PC值为止。减少流水线处理分支指令时的暂停周期数:流水线中尽早判断出转移成功或转移失败判断往前移尽早计算出转移成功的分支目标地址多个加法器部件,降低流水线分支损失的方法,种简单的静态方法,编译时预测(1)冻结(Freeze)或排空(Flush)流水线暂停流水线直到分支目标地址确定(2)预测分支失败继续执行分支指令之后的指令在知道分支结果之前
24、,分支指令后的指令不能改变机器状态,或者改变了之后能够回退。若分支失败,则照常执行;否则,从转移目标处开始取指令执行。DLX流水线的处理过程,5段MIPS改进后采用“预测分支失败”,分支失败无停顿,分支成功有一个时钟周期的停顿;还可以采用一条延迟指令槽的延迟分支方法,(3)预测分支成功目标地址计算出之后,就开始执行目的地址处的指令起作用的前题:先知道分支目标地址,后知道分支是否成功。对DLX流水线没有任何好处。(4)延迟分支(Delayed Branch)把分支开销为n 的分支指令看成是延迟长度为n 的分支指令,其后紧跟有n 个延迟槽Branch-delay Slot 。流水线遇到分支指令时,
25、按正常方式处理,顺带执行延迟槽中的指令,从而减少分支开销。延迟分支以及指令的执行顺序分支延迟槽中的指令“掩盖”了流水线原来必需插入的暂停周期分支延迟指令的调度任务:在延迟槽中放入有用的指令糟糕的情况:在延迟槽放置空操作NOP指令较好的情况:从分支指令前找到指令放置在延迟槽中,且不影响程序,6 高级流水线技术,单发射与多发射(issue) 单发射处理机: 每个周期只取一条指令、只译码一条指令,只执行一条指令,只写回一个运算结果。 取指令部件和指令译码部件各设置一套; 只设置一个多功能操作部件或设置多个独立的操作部件; 操作部件中可以采用流水线结构,也可以不采用流水线结构。 目标是每个时钟周期平均
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机体系结构 之流 水线 技术 ppt 课件
链接地址:https://www.31ppt.com/p-1438681.html