欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    计算机体系结构之流水线技术PPT公开课课件.ppt

    • 资源ID:70008741       资源大小:1.11MB        全文页数:124页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    计算机体系结构之流水线技术PPT公开课课件.ppt

    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流水线技术:把一个重复的过程分解为若干个子过程,每个子程序可以与其他子过程同时进行n描述流水线的工作,最常用的方法是时间-空间图(时空图)q横坐标:表示时间,即各个任务在流水线中所经过的时间q纵坐标:表示空间,即流水线的各个子过程,也称为级、段、流水线深度(Stage)流水线的时空图流水线的特点n流水线实际上是把一个功能部件分解成多个独立的子功能部件(一个任务也就分成了几个子任务,每个子任务由一个子功能部件完成),并依靠多个子功能部件并行工作来缩短所有任务的执行时间n流水线有助于提高整个程序(所有任务)的吞吐率,但并没有减少每个指令(任务)的执行时间n流水线各个功能段所需时间应尽量相等。否则,时间长的功能段将成为流水线的“瓶颈”,会造成流水线的“阻塞”(Stall)n流水线开始需要“通过时间”(Fill)和最后需要“排空时间”(Drain)。流水线只有处理连续不断的任务才能发挥其效率2 流水线分类流水线分类流水线的分类(1)n按流水线所完成的功能分类q单功能流水线:只能完成一种固定功能的流水线q多功能流水线:流水线的各段可以进行不同的连接,使流水线在不同的时间,或者在同一时间完成不同的功能n例如:TI ASC的多功能流水线流水线的分类(2)n按流水线在同一时间内各段的连接方式分类q静态流水线:n在同一时间内,多功能流水线各段只能按同一种功能连接。只有当按这种方式工作的所有任务都流出流水线之后,才能重新连接以实现其他功能。n在静态流水线中,只有当输入是一串相同的运算操作时,流水的效率才能得到发挥。n动画演示q动态流水线:n在同一时间内,多功能流水线各段可以按不同方式连接,同时执行多种功能 n动画演示n动态流水线VS静态流水线q优点:能提高流水线的效率q缺点:会使流水线的控制变得复杂解决办法:插入暂停周期(“流水线气泡”)引入暂停后的时空图超标量处理机的指令级并行度:1ILPm。减少流水线处理分支指令时的暂停周期数:1 基于静态调度的多流出技术(*)load/store 指令例如:IBM360/91,Amdahl 470V/6 等主要有三种类型的冲突(相关)在Intel公司称为IA-64处理机非线性流水线:流水线的各段除有串接外,还有反馈回路;动态流水线的时空图 举例1条整数型指令1条浮点操作指令(4)一个功能单元的输出不仅可以定向到其自身的输入,而且还可以定向到其它单元的输入。每个流水寄存器是由若干个寄存器构成的假设m段时间相等t0的流水线完成n个任务每个时钟周期平均执行指令的条数小于1。将对PC的修改移到了IF段,以便PC能及时地加流水线实际上是把一个功能部件分解成多个独立的子功能部件(一个任务也就分成了几个子任务,每个子任务由一个子功能部件完成),并依靠多个子功能部件并行工作来缩短所有任务的执行时间cond(A=0)寄存器寄存器ALU操作增加了向后传递IR和从回送到通用寄存y:具体寄存器名称流水线的分类(3)n按照流水线的级别来分n部件级流水线(运算操作流水线):q把处理机的算术逻辑部件分段,使得各种数据类型的操作能够进行流水。n处理机级流水线(指令流水线):q把指令的解释执行过程按照流水方式进行处理。n处理机间流水线(宏流水线):q它是指由两个以上的处理机串行地对同一数据流进行处理,每个处理机完成一项任务。动画解析流水线的分类(4)n按流水线是否有反馈回路分类q线性流水线:流水线的各段逐个串接,输入数据从流水线一端输入从另一端输出;每个段都只流过一次。q非线性流水线:流水线的各段除有串接外,还有反馈回路;在一次流水过程中,有的段要被多次使用。(举例)流水线的分类(5)n按照数据表示来分n标量处理机:q不具有向量指令和向量数据表示,仅对标量进行流水处理的处理机。q例如:IBM360/91,Amdahl 470V/6 等n向量处理机:q具有向量指令和向量数据表示的处理机。q例如:TI ASC,CRAY-I 等流水线的分类(6)n按照流动是否可以乱序来分n顺序流动流水线:q流水线输出端任务流出的顺序与输入端任务流入的顺序相同。n异步流动流水线(乱序流水线):q流水线输出端任务流出的顺序与输入端任务流入的顺序不同。扩展Tomasulo算法:支持两路超标量将等于1的理想CPI减小,必须实现一个时钟周期发射(流出issue)多条指令将每个流水段进一步细分,这样在一个时钟周期内能够分时流出多条指令。采用动态二进制转换技术实现与X86处理机兼容6 高级流水线技术在知道分支结果之前,分支指令后的指令不能改变机器状态,或者改变了之后能够回退。两个寄存器堆:整数部件通用寄存器堆,32个32位寄存器;执行/地址计算周期EX(Execute)例如:Intel公司的i860、i960、Pentium,Motolora公司的MC88110,IBM公司的Power 6000等每个周期都发射两条指令;超流水线处理机:SGI公司的MIPS R4000、R5000、R10000等。结构相关举例:访存冲突把能并行执行的多条指令组装成一条很长的指令。在知道分支结果之前,分支指令后的指令不能改变机器状态,或者改变了之后能够回退。除了分支指令,其他指令都是做PCNPCt0 (说明)LMDMemALUo按流水线所完成的功能分类什么是VLIW指令系统load/store 指令它是指由两个以上的处理机串行地对同一数据流进行处理,每个处理机完成一项任务。(3)浮点操作流水线分为10个流水段,其中,3 MIPS五级流水线五级流水线DLX(Dancing Links)nDLX DLX 是一种简单的指令集(教学、简单芯片)是一种简单的指令集(教学、简单芯片)n在不流水的情况下,如何实现在不流水的情况下,如何实现DLXDLX。q实现DLX指令的一种简单数据通路MIPS的基本流水线nMIPS指令集结构用5个功能段实现,每个功能段用一个时钟周期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 MUXDataMemoryMUXSignExtend4AdderZero?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寄存器寄存器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 或者 MemALUoBn分支指令 操作 if(cond)PC ALUo else PCNPCq写回周期(WB)不同的指令在写回周期完成的工作也不一样。n寄存器寄存器ALU指令 操作 Regsrd ALUon寄存器立即数ALU指令 操作 Regsrt ALUonload指令 操作 Regsrt LMD3.不采用单周期实现方案的主要原因q对于大多数CPU来说,单周期实现效率很低,因为不同的指令所需完成的操作差别相当大,因而所需要的时钟周期时间也大不一样。q单周期实现时,需要重复设置某些功能部件,而在多周期实现方案中,这些部件是可以共享的。q每一个时钟周期完成的工作看作是流水线的一段,每个时钟周期启动一条新的指令。n流水实现的数据通路q设置了流水寄存器n段与段之间设置流水寄存器n流水寄存器的命名 用其相邻的两个段的名称拼合而成。例如:ID段与EX段之间的流水寄存器用ID/EX表示n每个流水寄存器是由若干个寄存器构成的 3.5.2 基本的MIPS流水线在指令Cache中有一个转移历史表,实现条件转移的动态预测。实际上该超流水线计算机的流水线周期为1/n个时钟周期。目标是每个时钟周期平均执行一条指令,ILP的期望值为1。很多专用处理机采用VLIW体系结构两个寄存器堆:整数部件通用寄存器堆,32个32位寄存器;浮点加法/转换/求平方根部件段与段之间设置流水寄存器操作部件的个数一般多于每个周期发射的指令条数。每个时钟周期可以访问Cache两次,浮点执行部件FBOX的延迟时间为6个流水段。load/store 指令单周期实现时,需要重复设置某些功能部件,而在多周期实现方案中,这些部件是可以共享的。超标量处理机的指令级并行度:1ILPm。让流水线中的某些指令暂停,而让其它指令继续执行。完成一批任务,使用非流水线执行时间与使用流水线执行时间之比从数据Cache中读出或写入两个数据。2 基于动态调度的多流出技术一个时钟周期内流出多条指令,CPI1。寄存器寄存器ALU指令 操作Pentium/4,流水实现的数据通路流水实现的数据通路n寄存器的命名形式为:n所包含的字段的命名形式为:x.ys 其中:x:流水寄存器名称 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.10nIRrtIR11.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.IRrs;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/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;RegsMEM/WB.IRrt RegsMEM/WB.IRrt;流水线的每个流水段的操作(动画演示)(动画演示)(动画演示)(动画演示)4 流水线性能分析流水线性能分析流水线性能分析n吞吐率(throughput rate)单位时间内流水线所完成的任务数或输出结果的数量n加速比(speedup ratio)完成一批任务,使用非流水线执行时间与使用流水线执行时间之比n效率(efficiency)(指流水线的设备利用率)从时空图看,就是n个任务占用的时空区和m个段总的时空区之比n单位时间内流水线所完成的任务数量最大吞吐率:流水线在连续流动达到稳定状态后所得到的吞吐率各段相等:TPmax=1/t0各段不等:TPmax=1/maxti最大吞吐率取决于流水线最慢的功能段所需的时间实际吞吐率假设m段时间相等t0的流水线完成n个任务 t0 (说明)例题 分析n一个具有7段流水线的CPU,各段的执行时间分别为2ns,2.3ns,在该CPU上完成10个连续任务所需要的时间为()ns,该CPU的最高频率为()MHz.load/store 指令缺点:会使流水线的控制变得复杂超标量处理机:通过增加硬件资源来提高处理机性能增加了向后传递IR和从回送到通用寄存在每个时钟周期流出的指令条数不固定,依代码的具体情况而定。浮点通用寄存器组也可以设置成32个32位的浮点寄存器。(4)一个功能单元的输出不仅可以定向到其自身的输入,而且还可以定向到其它单元的输入。在该周期内处理的MIPS指令仅仅有load、store和分支三种指令。5 流水线设计中的若干问题3 MIPS五级流水线它是指由两个以上的处理机串行地对同一数据流进行处理,每个处理机完成一项任务。吞吐率 TP7(20t)PC值不定,所以流水线需要暂停,直到确定了新的PC值为止每个时钟周期流出两条指令;一个算术逻辑部件(ALU)段与段之间设置流水寄存器把能并行执行的多条指令组装成一条很长的指令。结构相关(资源冲突):当指令重叠执行过程中,硬件资源满足不了指令重叠执行的要求Regsrt ALUoMIPS指令集结构用5个功能段实现,每个功能段用一个时钟周期流水线优化思路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加速比 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传输延迟:时钟信号到达后到寄存器输出可用的时 间。q时钟偏移开销n流水线中,时钟到达各流水寄存器的最大差值时间。(时钟到达各流水寄存器的时间不是完全相同)有关流水线性能的若干问题n(1)流水线并不能减少(而且一般是增加)单条指令的执行时间,但却能提高吞吐率。(2)适当增加流水线的深度(段数)可以提高流水线的性能。(3)流水线的深度受限于流水线的延迟和流水线的额外开销。(4)相关问题。如果流水线中的指令相互独立,则可以充分发挥流水线的性能。但在实际中,指令间可能会是相互依赖,这会降低流水线的性能。下一节介绍如何解决相关问题。5 流水线相关流水线相关吞吐率 TP7(20t)采用显式并行指令计算(EPIC:Explicitly Parallel Instruction Computing)方式。这种处理机称为超流水线处理机。完成ALU操作和Cache存取RegsMEM/WB.每一个时钟周期完成的工作看作是流水线的一段,每个时钟周期启动一条新的指令。超标量处理机:Intel公司的i860、i960、Pentium处理机,Motolora公司的MC88110,IBM公司的Power 6000,SUN公司的SPARC、SuperSPARC、UltraSPARC等。传输延迟:时钟信号到达后到寄存器输出可用的时I6:FMUL R6,R7 ;缺点:会使流水线的控制变得复杂必须有两条或两条以上能够同时工作的指令流水线。否则,从转移目标处开始取指令执行。目前的指令调度技术,每个周期发射2至4条指令比较合理。目标是每个时钟周期平均执行一条指令,ILP的期望值为1。一种显式指令级并行指令系统。Pentium的超标量流水线 D2指令译码2(decode stage 2)目标地址计算出之后,就开始执行目的地址处的指令执行/地址计算周期EX(Execute)流水线遇到分支指令时,按正常方式处理,顺带执行延迟槽中的指令,从而减少分支开销。流水线中的相关(1)n流水线中存在一些冲突(冒险Hazard,相关、依赖Dependence,竞争Competition)的情况,它使得下一条指令无法在预定设计的时钟周期内执行。这些冲突将降低流水线性能n主要有三种类型的冲突(相关)q结构相关(资源冲突):当指令重叠执行过程中,硬件资源满足不了指令重叠执行的要求q数据相关(数据冲突):在同时执行的多条指令中,一条指令依赖前一条指令的执行结果(数据)q控制相关(控制冲突):流水线遇到分支指令或其他改变PC值的指令流水线中的相关(2)n相关有可能会使流水线停顿。n当一条指令被暂停时,暂停在其后发射(流出)的指令,但继续执行在其前发射的指令。n消除相关的基本方法:q让流水线中的某些指令暂停,而让其它指令继续执行。结构相关n1.在流水线机器中,为了使各种指令组合能顺利地重叠执行,需要把功能部件流水化,并把资源重复设置。n2.如果某种指令组合因资源冲突而不能顺利重叠执行,则称该机器具有结构相关。n3.常见的导致结构相关的原因:q功能部件不是全流水q重复设置的资源的份数不够n4.结构相关举例:访存冲突q当数据和指令存在同一存储器中时,访存指令会导致访存冲突。q解决办法:插入暂停周期(“流水线气泡”)引入暂停后的时空图q解决方法:设置相互独立的指令存储器和数据存储器或设置相互独立的指令Cache和数据Cache。n5.避免结构相关q所有功能单元完全流水化q设置足够的硬件资源硬件代价很大n6.有些设计方案允许有结构相关q降低成本q减少部件的延迟数据相关n1.数据相关简介q当指令在流水线中重叠执行时,流水线有可能改变指令读/写操作数的顺序,使之不同于它们在非流水实现时的顺序,这将导致数据相关。q举例q当两条指令对存储器同一单元进行读写时,也可能发生数据相关。但本章仅讨论有关寄存器的数据相关。n2.利用定向技术减少数据相关引起的暂停q(1)主要思路:在发生上述数据相关时,如果能够将计算结果从其产生的地方直接送到需要它的地方,就可以避免暂停。q(2)当定向硬件检测到前面某条指令的结果寄存器就是当前指令的源寄存器时,控制逻辑会将前面那条指令的结果直接从其产生的地方定向到当前指令所需的位置。q(3)工作过程演示q(4)一个功能单元的输出不仅可以定向到其自身的输入,而且还可以定向到其它单元的输入。q(5)所有的定向发生在:(图示)ALU或DM输出 ALU输入,DM输入,“O”检测部件数据相关的分类n按照指令对寄存器的读写顺序,可以将数据相关分为以下三种类型:n(考虑两条指令i和j,假设i先进入流水线)n(1)写后读相关(RAW)(命名规则)n在 i 写入之前,j 先去读。j 读出的内容是错误的。这是最常见的相关。n(2)写后写相关(WAW)n(3)读后写相关(WAR)n4.需要暂停的数据相关n(1)并非所有的数据相关都可以用定向技术解决.举例n(2)增加流水线互锁硬件,插入“暂停”。当互锁硬件发现这种相关时,就 暂停流水线,直到相关消失。举例:演示A(流水线)演示B(时空图)流水线的控制相关n分支指令主要有:q无条件分支指令:跳转、过程调用和过程返回q条件分支指令n执行分支指令,程序计数器PC值两种情况:qPC值改变为目标地址(转移成功)qPC值保持正常(转移失败,顺序执行)nPC值不定,所以流水线需要暂停,直到确定了新的PC值为止n在DLX流水线中,分支转移成功导致暂停3个时钟周期。n处理分支指令最简单的方法q一旦检测到分支指令(在ID段),就暂停执行其后的指令,直到分支指令到达MEM段,确定出新的PC值为止。n减少流水线处理分支指令时的暂停周期数:q流水线中尽早判断出转移成功或转移失败n判断往前移q尽早计算出转移成功的分支目标地址n多个加法器部件降低流水线分支损失的方法n种简单的静态方法,编译时预测n(1)冻结(Freeze)或排空(Flush)流水线q暂停流水线直到分支目标地址确定n(2)预测分支失败q继续执行分支指令之后的指令q在知道分支结果之前,分支指令后的指令不能改变机器状态,或者改变了之后能够回退。q若分支失败,则照常执行;否则,从转移目标处开始取指令执行。qDLX流水线的处理过程5 5段段MIPSMIPS改进后采用改进后采用“预测分支失败预测分支失败”,分支,分支失败无停顿,分支成功有一个时钟周期的停顿;失败无停顿,分支成功有一个时钟周期的停顿;还可以采用一条延迟指令槽的延迟分支方法还可以采用一条延迟指令槽的延迟分支方法n(3)预测分支成功q目标地址计算出之后,就开始执行目的地址处的指令q起作用的前题:先知道分支目标地址,后知道分支是否成功。q对DLX流水线没有任何好处。n(4)延迟分支(Delayed Branch)q把分支开销为n 的分支指令看成是延迟长度为n 的分支指令,其后紧跟有n 个延迟槽Branch-delay Slot。流水线遇到分支指令时,按正常方式处理,顺带执行延迟槽中的指令,从而减少分支开销。q延迟分支以及指令的执行顺序q分支延迟槽中的指令“掩盖”了流水线原来必需插入的暂停周期q分支延迟指令的调度n任务:在延迟槽中放入有用的指令n糟糕的情况:在延迟槽放置空操作NOP指令n较好的情况:从分支指令前找到指令放置在延迟槽中,且不影响程序6 高级流水线技术高级流水线技术单发射与多发射单发射与多发射(issue)(issue)单发射处理机:每个周期只取一条指令、只译码一条指令,只执行一条指令,只写回一个运算结果。取指令部件和指令译码部件各设置一套;只设置一个多功能操作部件或设置多个独立的操作部件;操作部件中可以采用流水线结构,也可以不采用流水线结构。目标是每个时钟周期平均执行一条指令,ILP的期望值为1。多发射处理机:每个周期同时取多条指令、同时译码多条指令,同时执行多条指令,同时写回多个运算结果。需要多个取指令部件,多个指令译码部件和多个写结果部件。设置多个指令执行部件,有些指令执行部件采用流水线结构。目标是每个时钟周期平均执行多条指令,ILP的期望值大于1。多指令流出技术n将等于1的理想CPI减小,必须实现一个时钟周期发射(流出issue)多条指令n超标量(Superscalar)处理器:每个时钟周期发射多条指令(18),可以采用编译器进行静态调度顺序执行,也可以采用硬件动态调度乱序执行n超长指令字(VLIW:Very Long Instruction Word):通过编译器调度无关的多条指令(416)形成一条长指令,每个时钟周期发射一条长指令n超级流水线(Super pipelining):将每个功能部件进一步流水化,使得一个功能部件在一个时钟周期中可以处理多条指令(可以简单地理解为很长的流水线)多发射流水线01234567T正常流水线正常流水线超标量流水线超标量流水线0123456T0123456T超长指令字流水线超长指令字流水线3个操作个操作01234567T超级流水线超级流水线提出VLIW指令系统的主要目的是要开发程序中的指令级并行性(Instruction Level Parallelism)下一节介绍如何解决相关问题。目标地址计算出之后,就开始执行目的地址处的指令超标量处理机的指令级并行度:1ILPm。采用动态二进制转换技术实现与X86处理机兼容R4000微处理器芯片内有2个Cache:超级流水线(Super pipelining):将每个功能部件进一步流水化,使得一个功能部件在一个时钟周期中可以处理多条指令(可以简单地理解为很长的流水线)目前的指令调度技术,每个周期发射2至4条指令比较合理。t0 (说明)采用动态二进制转换技术实现与X86处理机兼容MemEX/MEM.描述流水线的工作,最常用的方法是时间-空间图(时空图)5 循环展开和指令调度超标量处理机的指令级并行度(ILP)大于1。2 基于动态调度的多流出技术指令多流出处理器受哪些因素的限制呢?什么是VLIW指令系统I6:FMUL R6,R7 ;寄存器寄存器ALU操作3 超长指令字技术(VLIW)(*)三种主流处理机:超标量处理机:Intel公司的i860、i960、Pentium处理机,Motolora公司的MC88110,IBM公司的Power 6000,SUN公司的SPARC、SuperSPARC、UltraSPARC等。超流水线处理机:SGI公司的MIPS R4000、R5000、R10000等。超标量超流水线处理机:DEC公司的Alpha等。超标量处理机基本结构基本结构 一般流水线处理机:一条指令流水线,一个多功能操作部件,每个时钟周期平均执行指令的条数小于1。多操作部件处理机:一条指令流水线,多个独立的操作部件,可以采用流水线,也可以不流水。多操作部件处理机的指令级并行度小于1。超标量处理机典型结构:多条指令流水线。先进的超标量处理机有:定点处理部件CPU,浮点处理部件FPU,图形加速部件GPU,大量的通用寄存器,两个一级Cache。超标量处理机的指令级并行度(ILP)大于1。Motorola公司的MC88110。有10个操作部件。两个寄存器堆:整数部件通用寄存器堆,32个32位寄存器;浮点部件扩展寄存器堆,32个80位寄存器。缓冲深度为4的先行读数栈,缓冲深度为3的后行写数栈。两个独立的高速Cache中,各为8KB,采用两路组相联方式,转移目标指令Cache,存放一条分支上的指令。超标量处理机:一个时钟周期能同时发射多条指令的处理机 必须有两条或两条以上能够同时工作的指令流水线。先行指令窗口:能够从指令Cache中预取多条指令,能够对窗口内的指令进行数据相关性分析和功能部件冲突检测。先行指令窗口的大小:一般为2至8条指令。目前的指令调度技术,每个周期发射2至4条指令比较合理。例如:Intel公司的i860、i960、Pentium,Motolora公司的MC88110,IBM公司的Power 6000等每个周期都发射两条指令;TI公司生产SuperSPARC,Pentium III每个周期发射三条指令。操作部件的个数一般多于每个周期发射的指令条数。通常为4 个至16个操作部件。超标量处理机的指令级并行度:1ILPm。m为每个周期发射的指令条数。多流水线调度多流水线调度 多条流水线的调度问题是一个NP完全问题,顺序发射(in-order issue)与乱序发射(out-order issue):指令发射顺序是按照程序中指令排列顺序进行的称为顺序发射 顺序完成(in-order completion)与乱序完成(out-order completion)指令完成顺序是按照程序中指令排列顺序进行的称为顺序完成 多流水线的调度主要有三种方法:顺序发射顺序完成,顺序发射乱序完成,乱序发射乱序完成。I1:LOAD R1,A ;R1(A)I2:FADD R2,R1 ;R2(R2)(R1)I3:FMUL R3,R4 ;R3(R3)(R4)I4:FADD R4,R5 ;R4(R4)(R5)I5:DEC R6 ;R6(R6)1I6:FMUL R6,R7 ;R6(R6)(R7)普通标量处理机,希望相同操作连续出现。只有连续出现相同操作的指令序列时,流水线才能不“断流”,功能部件的效率才能得到充分发挥。超标量处理机则正好相反,希望相同操作不要连续出现。相同操作的指令序列连续出现时,会发生资源冲突;要求相同操作的指令能够相对均匀地分布在程序中。超标量处理机的这种要求正好符合一般标量程序的特点。80486的整数指令流水线n5级指令流水线,每级1个时钟周期 PF指令预取(prefetch)D1指令译码1(decode stage 1)对所有操作码和寻址方式信息进行译码 D2指令译码2(decode stage 2)将操作码扩展为ALU的控制信号,存储器地址计算EX指令执行(execute)完成ALU操作和Cache存取WB回写(write back)更新在EX步骤得到的寄存器数据和状态标志Pentium的超标量流水线n类似80486的5级流水线,后3级可以在两个流水线同时进行n指令预取PF和指令译码D1步骤可以并行取出、译码2条简单指令,然后分别发向U和V流水线n在满足指令配对的条件下,Pentium可以每个时钟周期执行完2条指令V流水线流水线U流水线流水线地址生成地址生成D2地址生成地址生成D2指令预取指令预取PF指令译码指令译码D1执行执行EX执行执行EX回写回写WB回写回写WBPentium的超标量结构转移指令地转移指令地址址寄寄存存器器V流水线流水线ALUU流水线流水线ALU移位器移位器指令译码和配对指令译码和配对控制单元控制单元分支目标分支目标缓冲器缓冲器V流水线流水线存储地址产生器存储地址产生器U流水线流水线存储地址产生器存储地址产生器队列队列B队列队列A指令指令Cache指令预取电路指令预取电路分支目标地分支目标地址址产生分支地产生分支地址址指令按顺序流向保留站,否则会破坏程序语义。取指令周期IF(Instruction Fetch)存储器访问指令 操作浮点部件扩展寄存器堆,32个80位寄存器。在一次流水过程中,有的段要被多次使用。TC:标识比较,判断对数据Cache的访问是否命中。增加了向后传递IR和从回送到通用寄存4,为取下一条指令做好准备。所包含的字段的命名形式为:x.5 流水线设计中的若干问题把能并行执行的多条指令组装成一条很长的指令。单周期实现时,需要重复设置某些功能部件,而在多周期实现方案中,这些部件是可以共享的。Regsrd ALUo流水线中,时钟到达各流水寄存器的最大差值时间。部件级流水线(运算操作流水线):并且i2也是简单指令解决方法:设置相互独立的指令存储器和数据存储器或设置相互独立的指令Cache和数据Cache。多指令流出CPI1 高级流水线DF:取数据的前半步,启动对数据Cache的访问。每隔1/n个时钟周期发射一条指令,Pentium的指令配对检测过程(近似表达)IFi1是简单指令并且i2也是简单指令并且i1不是转移指令并且i1和i2不存在数据相关THENi1发往U流水线i2发往V流水线ELSEi1发往U流水线i2做为下对指令的第1条指令i1超流水线处理机两种定义:在一个周期内能够分时发射多条指令的处理机 指令流水线的功能段数为8段或超过8段的流水线处理机提高处理机性能的不同方法:超标量处理机:通过增加硬件资源来提高处理机性能 超流水线处理机:通过各部分硬件的重叠工作来提高处理机性能。两种不同并行性:超标量处理机采用的是空间并行性。超流水线处理机采用的是时间并行性。指令执行时序指令执行时序l每隔1/n个时钟周期发射一条指令,即处理机的流水线周期为1/n个时钟周期。l在超流水线处理机中,流水线的有些功能段还可以进一步细分,例如:ID功能段,可以再细分为:译码、读第一操作数和读第二操作数三个流水段。典型处理机结构典型处理机结构 MIPS R4000处理机,每个时钟周期包含两个流水段,每个时钟周期包含两个流水段,是一种很标准的超流水线处理机结构。指令流水线有8个流水段。有两个Cache,指令Cache和数据Cache的容量各8KB,每个时钟周期可以访问Cache两次,因此在一个时钟周期内可以从指令Cache中读出两条指令,从数据Cache中读出或写入两个数据。主要运算部件有整数部件和浮点部件。超标量超流水线处理机把超标量与超流水线技术结合在一起,就成为超标量超流水线处理机超标量超流水线处理机在一个时钟周期内分时发射指令m次,每次同时发射指令n条超标量超流水线处理机每个时钟周期总共发射指令m n条 指令执行时序典型处理机结构典型处理机结构l DEC公司的Alpha处理机采用超标量超流水线结构。主要由四个功能部件和两个Cache组成。四个功能部件是:整数部件EBOX、浮点部件FBOX、地址部件ABOX和中央控制部件IBOX。l 中央控制部件IBOX能够同时读出两条指令,同时对两条指令进行译码,作资源冲突检测,进行数据相关性 和控制相关性分析。如果资源和相关性允许,IBOX就把两条指 令同时发射给EBOX、ABOX和FBOX三个执行部件中的两个。l 指令流水线采用顺序发射乱序完成的控制方式。在指令Cache中有一个转移历史表,实现条件转移的动态预测。在EBOX内还有多条专用数据通路,可以把运算结果直接送到执行部件。Alpha 21064处理机共有三条指令流水线,(1)整数操作流水线为7个流水段,其中,取指令为2个流水段 分析指令为2个流水段 运算为2个流水段 写结果1个流水段(2)访问存储器流水线为7个流水段,(3)浮点操作流水线分为10个流水段,其中,浮点执行部件FBOX的延迟时间为6个流水段。因为三条指令流水线的平均段数为8,且每个时钟周期发射两条指令。因此,Alpha 21064处理机是超标量超流水线处理机,所有指令执行部件,包括EBOX、IBOX、ABOX和FBO

    注意事项

    本文(计算机体系结构之流水线技术PPT公开课课件.ppt)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开