计算机体系结构之流水线技术PPT公开课课件.ppt
《计算机体系结构之流水线技术PPT公开课课件.ppt》由会员分享,可在线阅读,更多相关《计算机体系结构之流水线技术PPT公开课课件.ppt(124页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、3 流水线技术张伟计算机学院大纲n1 概念定义n2 流水线分类n3 MIPS五级流水线n4 性能分析n5 流水线相关n6 高级流水线技术1 概念定义概念定义洗衣店的例子nA,B,C,D 均有一些衣物要均有一些衣物要 n清洗,甩干,折叠清洗,甩干,折叠n清洗要花30 分钟n甩干要用40 分钟n叠衣物也需要20 分钟n四人衣物一共要花 4*(30+40+20)=360分钟流水线的基本概念ABCD6 PM789TaskOrderTime30 40404040 20四人衣物一共要花 30+40*4+20=210分钟流水线的基本概念n流水线技术:把一个重复的过程分解为若干个子过程,每个子程序可以与其他子
2、过程同时进行n描述流水线的工作,最常用的方法是时间-空间图(时空图)q横坐标:表示时间,即各个任务在流水线中所经过的时间q纵坐标:表示空间,即流水线的各个子过程,也称为级、段、流水线深度(Stage)流水线的时空图流水线的特点n流水线实际上是把一个功能部件分解成多个独立的子功能部件(一个任务也就分成了几个子任务,每个子任务由一个子功能部件完成),并依靠多个子功能部件并行工作来缩短所有任务的执行时间n流水线有助于提高整个程序(所有任务)的吞吐率,但并没有减少每个指令(任务)的执行时间n流水线各个功能段所需时间应尽量相等。否则,时间长的功能段将成为流水线的“瓶颈”,会造成流水线的“阻塞”(Stal
3、l)n流水线开始需要“通过时间”(Fill)和最后需要“排空时间”(Drain)。流水线只有处理连续不断的任务才能发挥其效率2 流水线分类流水线分类流水线的分类(1)n按流水线所完成的功能分类q单功能流水线:只能完成一种固定功能的流水线q多功能流水线:流水线的各段可以进行不同的连接,使流水线在不同的时间,或者在同一时间完成不同的功能n例如:TI ASC的多功能流水线流水线的分类(2)n按流水线在同一时间内各段的连接方式分类q静态流水线:n在同一时间内,多功能流水线各段只能按同一种功能连接。只有当按这种方式工作的所有任务都流出流水线之后,才能重新连接以实现其他功能。n在静态流水线中,只有当输入是
4、一串相同的运算操作时,流水的效率才能得到发挥。n动画演示q动态流水线:n在同一时间内,多功能流水线各段可以按不同方式连接,同时执行多种功能 n动画演示n动态流水线VS静态流水线q优点:能提高流水线的效率q缺点:会使流水线的控制变得复杂解决办法:插入暂停周期(“流水线气泡”)引入暂停后的时空图超标量处理机的指令级并行度:1ILPm。减少流水线处理分支指令时的暂停周期数:1 基于静态调度的多流出技术(*)load/store 指令例如:IBM360/91,Amdahl 470V/6 等主要有三种类型的冲突(相关)在Intel公司称为IA-64处理机非线性流水线:流水线的各段除有串接外,还有反馈回路
5、;动态流水线的时空图 举例1条整数型指令1条浮点操作指令(4)一个功能单元的输出不仅可以定向到其自身的输入,而且还可以定向到其它单元的输入。每个流水寄存器是由若干个寄存器构成的假设m段时间相等t0的流水线完成n个任务每个时钟周期平均执行指令的条数小于1。将对PC的修改移到了IF段,以便PC能及时地加流水线实际上是把一个功能部件分解成多个独立的子功能部件(一个任务也就分成了几个子任务,每个子任务由一个子功能部件完成),并依靠多个子功能部件并行工作来缩短所有任务的执行时间cond(A=0)寄存器寄存器ALU操作增加了向后传递IR和从回送到通用寄存y:具体寄存器名称流水线的分类(3)n按照流水线的级
6、别来分n部件级流水线(运算操作流水线):q把处理机的算术逻辑部件分段,使得各种数据类型的操作能够进行流水。n处理机级流水线(指令流水线):q把指令的解释执行过程按照流水方式进行处理。n处理机间流水线(宏流水线):q它是指由两个以上的处理机串行地对同一数据流进行处理,每个处理机完成一项任务。动画解析流水线的分类(4)n按流水线是否有反馈回路分类q线性流水线:流水线的各段逐个串接,输入数据从流水线一端输入从另一端输出;每个段都只流过一次。q非线性流水线:流水线的各段除有串接外,还有反馈回路;在一次流水过程中,有的段要被多次使用。(举例)流水线的分类(5)n按照数据表示来分n标量处理机:q不具有向量
7、指令和向量数据表示,仅对标量进行流水处理的处理机。q例如:IBM360/91,Amdahl 470V/6 等n向量处理机:q具有向量指令和向量数据表示的处理机。q例如:TI ASC,CRAY-I 等流水线的分类(6)n按照流动是否可以乱序来分n顺序流动流水线:q流水线输出端任务流出的顺序与输入端任务流入的顺序相同。n异步流动流水线(乱序流水线):q流水线输出端任务流出的顺序与输入端任务流入的顺序不同。扩展Tomasulo算法:支持两路超标量将等于1的理想CPI减小,必须实现一个时钟周期发射(流出issue)多条指令将每个流水段进一步细分,这样在一个时钟周期内能够分时流出多条指令。采用动态二进制
8、转换技术实现与X86处理机兼容6 高级流水线技术在知道分支结果之前,分支指令后的指令不能改变机器状态,或者改变了之后能够回退。两个寄存器堆:整数部件通用寄存器堆,32个32位寄存器;执行/地址计算周期EX(Execute)例如:Intel公司的i860、i960、Pentium,Motolora公司的MC88110,IBM公司的Power 6000等每个周期都发射两条指令;超流水线处理机:SGI公司的MIPS R4000、R5000、R10000等。结构相关举例:访存冲突把能并行执行的多条指令组装成一条很长的指令。在知道分支结果之前,分支指令后的指令不能改变机器状态,或者改变了之后能够回退。除
9、了分支指令,其他指令都是做PCNPCt0 (说明)LMDMemALUo按流水线所完成的功能分类什么是VLIW指令系统load/store 指令它是指由两个以上的处理机串行地对同一数据流进行处理,每个处理机完成一项任务。(3)浮点操作流水线分为10个流水段,其中,3 MIPS五级流水线五级流水线DLX(Dancing Links)nDLX DLX 是一种简单的指令集(教学、简单芯片)是一种简单的指令集(教学、简单芯片)n在不流水的情况下,如何实现在不流水的情况下,如何实现DLXDLX。q实现DLX指令的一种简单数据通路MIPS的基本流水线nMIPS指令集结构用5个功能段实现,每个功能段用一个时钟
10、周期1.取指令周期IF(Instruction Fetch)2.指令译码/读寄存器周期ID(Instruction Decode)3.执行/地址计算周期EX(Execute)v存储器访问(计算有效地址)v寄存器寄存器ALU操作v寄存器立即数ALU操作4.存储器访问周期MEM(Memory Access)5.写回周期WB(Write Back)MIPS的简单实现MemoryAccessWriteBackInstructionFetchInstr.DecodeReg.FetchExecuteAddr.CalcLMDALUMUXMemoryReg FileMUX MUXDataMemoryMUXSi
11、gnExtend4AdderZero?Next SEQ PCAddressNext PCWB DataInstRDRS1RS2Imm2.一条MIPS指令最多需要以下5个时钟周期:q取指令周期(IF)操作nIRMemPCnNPCPC+4q指令译码/读寄存器周期(ID)操作nA RegsrsnB RegsrtnImm (IR16)16#IR16.31)指令的译码操作和读寄存器操作是并行进行的。原因:在MIPS指令格式中,操作码字段以及rs、rt 字段都是在固定的位置。这种技术称为固定字段译码技术。q执行/有效地址计算周期(EX)不同指令所进行的操作不同:n存储器访问指令 操作 ALUoA+Immn
12、寄存器寄存器ALU指令 操作 ALUoA func Bn寄存器立即值ALU指令 操作 ALUoA op Immn分支指令 操作 ALUoNPC+(Imm2);cond(A=0)将有效地址计算周期和执行周期合并为一个时钟周期,这是因为MIPS指令集采用loadstore结构,没有任何指令需要同时进行数据有效地址的计算、转移目标地址的计算和对数据进行运算。q存储器访问/分支完成周期(MEM)n所有指令都要在该周期对PC进行更新。除了分支指令,其他指令都是做PCNPCn在该周期内处理的MIPS指令仅仅有load、store和分支三种指令。n存储器访问指令 操作 LMDMemALUo 或者 MemAL
13、UoBn分支指令 操作 if(cond)PC ALUo else PCNPCq写回周期(WB)不同的指令在写回周期完成的工作也不一样。n寄存器寄存器ALU指令 操作 Regsrd ALUon寄存器立即数ALU指令 操作 Regsrt ALUonload指令 操作 Regsrt LMD3.不采用单周期实现方案的主要原因q对于大多数CPU来说,单周期实现效率很低,因为不同的指令所需完成的操作差别相当大,因而所需要的时钟周期时间也大不一样。q单周期实现时,需要重复设置某些功能部件,而在多周期实现方案中,这些部件是可以共享的。q每一个时钟周期完成的工作看作是流水线的一段,每个时钟周期启动一条新的指令。
14、n流水实现的数据通路q设置了流水寄存器n段与段之间设置流水寄存器n流水寄存器的命名 用其相邻的两个段的名称拼合而成。例如:ID段与EX段之间的流水寄存器用ID/EX表示n每个流水寄存器是由若干个寄存器构成的 3.5.2 基本的MIPS流水线在指令Cache中有一个转移历史表,实现条件转移的动态预测。实际上该超流水线计算机的流水线周期为1/n个时钟周期。目标是每个时钟周期平均执行一条指令,ILP的期望值为1。很多专用处理机采用VLIW体系结构两个寄存器堆:整数部件通用寄存器堆,32个32位寄存器;浮点加法/转换/求平方根部件段与段之间设置流水寄存器操作部件的个数一般多于每个周期发射的指令条数。每
15、个时钟周期可以访问Cache两次,浮点执行部件FBOX的延迟时间为6个流水段。load/store 指令单周期实现时,需要重复设置某些功能部件,而在多周期实现方案中,这些部件是可以共享的。超标量处理机的指令级并行度:1ILPm。让流水线中的某些指令暂停,而让其它指令继续执行。完成一批任务,使用非流水线执行时间与使用流水线执行时间之比从数据Cache中读出或写入两个数据。2 基于动态调度的多流出技术一个时钟周期内流出多条指令,CPI1。寄存器寄存器ALU指令 操作Pentium/4,流水实现的数据通路流水实现的数据通路n寄存器的命名形式为:n所包含的字段的命名形式为:x.ys 其中:x:流水寄存
16、器名称 y:具体寄存器名称 s:字段名称 例如:流水寄存器ID/EX中的子寄存器IR IRID/EX.IRop:该寄存器的op字段(即操作码字段)n流水寄存器的作用q将各段的工作隔开,使得它们不会互相干扰。q保存相应段的处理结果。例如:保存EX段ALU的运算结果:保存MEM段从数据存储器读出的数据q向后传递后面将要用到的数据或者控制信息 所有有用的数据和控制信息每个时钟周期 会随着指令在流水线中的流动往后流动一段。q 增加了向后传递IR和从回送到通用寄存 器组的连接。q 将对PC的修改移到了IF段,以便PC能及时地加 4,为取下一条指令做好准备。2.每一个流水段进行的操作nIRrsIR6.10
17、nIRrtIR11.15nIRrdIR16.20 流水段流水段流水线的每个流水段的操作所有指令类型所有指令类型ALU ALU 指令指令load/store load/store 指令指令分支指令分支指令IFIFIDIDEXEXIF/ID.IR MemPCIF/ID.IR MemPCIF/ID.NPC,PC IF/ID.NPC,PC (ifif(EX/MEM.IRop=branch EX/MEM.IRop=branch)EX/MEM.ALUo else PC+4EX/MEM.ALUo else PC+4););ID/EX.A RegsIF/ID.IRrsID/EX.A RegsIF/ID.IRr
18、s;ID/EX.B RegsIF/ID.IRrtID/EX.B RegsIF/ID.IRrt;ID/EX.Imm ID/EX.Imm (1616)161616.3116.31;EX/MEM.ALUo EX/MEM.ALUo ID/EX.A ID/EX.A funcfunc或或EX/MEM.ALUo EX/MEM.ALUo ID/EX.A ID/EX.A opop;EX/MEM.ALUo EX/MEM.ALUo;EX/MEM.ALUo EX/MEM.ALUo ID/EX.NPC+ID/EX.NPC+ID/EX.Imm2 ID/EX.Imm2;EX/MEM.cond EX/MEM.cond (ID
19、/EX.A ID/EX.A=0 0););(动画演示)(动画演示)(动画演示)(动画演示)(动画演示)流水段流水段任何指令类型任何指令类型ALU ALU 指令指令load/store load/store 指令指令分支指令分支指令MEMMEMWBWB;MEM/WB.ALUo MEM/WB.ALUo;MEM/WB.LMD MEM/WB.LMD MemEX/MEM.ALUo MemEX/MEM.ALUo;或或MemEX/MEM.ALUo MemEX/MEM.ALUo;RegsMEM/WB.IRrd RegsMEM/WB.IRrd;或或RegsMEM/WB.IRrt RegsMEM/WB.IRrt;
20、RegsMEM/WB.IRrt RegsMEM/WB.IRrt;流水线的每个流水段的操作(动画演示)(动画演示)(动画演示)(动画演示)4 流水线性能分析流水线性能分析流水线性能分析n吞吐率(throughput rate)单位时间内流水线所完成的任务数或输出结果的数量n加速比(speedup ratio)完成一批任务,使用非流水线执行时间与使用流水线执行时间之比n效率(efficiency)(指流水线的设备利用率)从时空图看,就是n个任务占用的时空区和m个段总的时空区之比n单位时间内流水线所完成的任务数量最大吞吐率:流水线在连续流动达到稳定状态后所得到的吞吐率各段相等:TPmax=1/t0各
21、段不等:TPmax=1/maxti最大吞吐率取决于流水线最慢的功能段所需的时间实际吞吐率假设m段时间相等t0的流水线完成n个任务 t0 (说明)例题 分析n一个具有7段流水线的CPU,各段的执行时间分别为2ns,2.3ns,在该CPU上完成10个连续任务所需要的时间为()ns,该CPU的最高频率为()MHz.load/store 指令缺点:会使流水线的控制变得复杂超标量处理机:通过增加硬件资源来提高处理机性能增加了向后传递IR和从回送到通用寄存在每个时钟周期流出的指令条数不固定,依代码的具体情况而定。浮点通用寄存器组也可以设置成32个32位的浮点寄存器。(4)一个功能单元的输出不仅可以定向到其
22、自身的输入,而且还可以定向到其它单元的输入。在该周期内处理的MIPS指令仅仅有load、store和分支三种指令。5 流水线设计中的若干问题3 MIPS五级流水线它是指由两个以上的处理机串行地对同一数据流进行处理,每个处理机完成一项任务。吞吐率 TP7(20t)PC值不定,所以流水线需要暂停,直到确定了新的PC值为止每个时钟周期流出两条指令;一个算术逻辑部件(ALU)段与段之间设置流水寄存器把能并行执行的多条指令组装成一条很长的指令。结构相关(资源冲突):当指令重叠执行过程中,硬件资源满足不了指令重叠执行的要求Regsrt ALUoMIPS指令集结构用5个功能段实现,每个功能段用一个时钟周期流
23、水线优化思路n流水线各段时间不等带来性能损失q举例n消除瓶颈的方法 (举例)q细分瓶颈段 q重复设置瓶颈段 (时-空图)2.加速比n完成一批任务,使用非流水线执行时间与使用流水线执行时间之比假设m段时间相等t0的流水线完成n个任务3.效率n由于流水线有通过时间和排空时间,所以流水线的各段并不是一直满负荷地工作。n从时空图看,就是n个任务占用的时空区和m个段总的时空区之比假设m段时间相等t0的流水线完成n个任务(举例)例题1n在静态流水线上计算 AiBi,(i=4)求:吞吐率,加速比,效率。解:n(1)确定适合于流水处理的计算过程n(2)画时空图n(3)计算性能q吞吐率 TP7(20t)q加速比
24、 S(34t)(20t)q效率 E(4436)(820)A1B1+A2B2+A3B3+A4B4进一步优化n可以看出,在求解此问题时,该流水线的效率不高。(原因)n动态流水线的时空图 举例 n这样行不行?n正确答案n瓶颈问题q理想情况下,流水线在工作时,其中的任务是同步地每一个时钟周期往前流动一段。q当流水线各段不均匀时,机器的时钟周期取决于瓶颈段的延迟时间。q在设计流水线时,要尽可能使各段时间相等。n流水线的额外开销p流水寄存器延迟p时钟偏移开销3.3.5 流水线设计中的若干问题q流水寄存器需要建立时间和传输延迟n建立时间:在触发写操作的时钟信号到达之前,寄 存器输入必须保持稳定的时间。n传输
25、延迟:时钟信号到达后到寄存器输出可用的时 间。q时钟偏移开销n流水线中,时钟到达各流水寄存器的最大差值时间。(时钟到达各流水寄存器的时间不是完全相同)有关流水线性能的若干问题n(1)流水线并不能减少(而且一般是增加)单条指令的执行时间,但却能提高吞吐率。(2)适当增加流水线的深度(段数)可以提高流水线的性能。(3)流水线的深度受限于流水线的延迟和流水线的额外开销。(4)相关问题。如果流水线中的指令相互独立,则可以充分发挥流水线的性能。但在实际中,指令间可能会是相互依赖,这会降低流水线的性能。下一节介绍如何解决相关问题。5 流水线相关流水线相关吞吐率 TP7(20t)采用显式并行指令计算(EPI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机体系结构 之流 水线 技术 PPT 公开 课件
限制150内