体系结构第3章 第5讲_第1页
体系结构第3章 第5讲_第2页
体系结构第3章 第5讲_第3页
体系结构第3章 第5讲_第4页
体系结构第3章 第5讲_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

国家精品资源共享课程:计算机体系结构第三章:流水线技术国防科技大学计算机学院主讲人:教授第三章流水线技术3.1流水线基本概念3.2MIPS基本流水线3.3流水线中的相关3.4实例分析:MIPSR40003.5向量处理机本章内容1.分支指令的实现一旦分支转移成功,正确的地址要在Mem段的末尾才会被写入PC一旦ID段检测到分支指令,就暂停执行其后的指令,直到分支指令达到Mem段,确定新的PC为止分支转移成功将导致MIPS流水线暂停3个周期3.3.3流水线的控制相关2.减少分支开销的途径两个基本途径:同时采用,缺一不可!在流水线中尽早判断分支转移是否成功转移成功时,尽早计算出转移目标地址经改进,MIPS流水线可以将分支开销减少1拍将“=0?”测试提前到ID段在ID段增加一个加法器,计算分支目标地址表3.6列出了改进后流水线的分支操作再改进,MIPS流水线可以将分支开销再减少1拍将分支判断结果和目标地址提前到ID/EX站前3.程序中分支指令的行为特点(1)各种能改变PC值的指令的执行频度条件分支:整数程序:14-15%浮点程序:3-12%

其中,向前分支与向后分支的比:3:1无条件分支:≤4%(绝大多数)(2)条件分支转移成功的概率向前转移成功:60%;向后转移成功:85%4.减少流水线分支损失的方法(1)冻结或排空流水线思路:在流水线中停住或删除分支后的指令,直到知道转移目标地址优点:简单(2)预测分支转移失败思路:流水线继续照常流动,如果分支转移成功,将分支指令后的指令转换为空操作,并从分支目标处开始取指令执行;否则照常执行MIPS流水线的处理过程4.减少流水线分支损失的方法(3)预测分支转移成功思路:始终假设分支成功,直接从分支目标处取指令执行对MIPS流水线没有任何好处!(4)延迟分支(delayedbranch)思路:分支开销为n的分支指令后紧跟有n个延迟槽,流水线遇到分支指令时,按正常方式处理,顺带执行延迟槽中的指令,从而减少分支开销。

延迟分支及指令的执行顺序4.减少流水线分支损失的方法具有一个分支延迟槽的MIPS流水线的执行过程什么样的指令能否放入分支延迟槽?三种调度方法:从前调度;从目标处调度;从失败处调度三种方法的要求与效果,存在限制因素编译器预测分支是否成功的能力放入延迟槽中的指令取消分支 (举例) 思路:分支指令中包含预测方向,若预测正确,正常执行延迟槽中的指令,否则将其转换为空操作5.各种分支处理方法的性能(1)假设理想CPI=1,则加速比S=D/(1+C)=D/(1+f×p分支)

这里,D为流水线的深度,p分支为分支开销,C为分支引起的流水线暂停时钟周期数(每条指令的平均值),f为分支的出现频度。(2)表3.7列出了流水线中各种处理方法的开销3.4实例分析:MIPSR40003.4.1MIPSR4000的整型流水线3.4.2MIPSR4000的浮点流水线3.4.3MIPSR4000流水线性能分析1.指令集:64位MIPS-3指令集2.MIPSR4000流水线结构超流水结构(superpipeling)访存操作流水化3.流水线各段的功能3.4.1MIPSR4000的整型流水线4.指令序列在流水线中的重叠执行过程定向+插入暂停周期5.载入延迟为两个时钟周期6.指令序列在流水线中的执行时空图7.R4000流水线的定向路径远多于MIPS流水线

ALU输入端的定向源有4个:EX/DF,DF/DS,DS/TC,TC/WB8.分支处理在EX段完成分支条件的计算,基本分支延迟为3个时钟周期分支处理策略单周期延迟分支从失败处调度时-空图包括浮点除法器、浮点乘法器和浮点加法器各1个分为8段(P121表3.9)多功能非线性流水线双精度浮点操作指令延迟、初始化间隔和流水段的使用情况(P121表3.10)3.4.2MIPSR4000的浮点流水线1.引起流水线暂停的四个主要原因载入暂停分支暂停浮点结果暂停浮点结构性暂停2.暂停对MIPSR4000流水线CPI的影响表3.113.4.3MIPSR4000流水线性能分析从前调度从目标处调度从失败处调度×××NotaketakeADDADDIfIf××××××××××ADDR1,R2,R3NotakeTakeADDADDSUBSUBADDADDifif××SUBADD××××NotakeTakeADDADDIfIf×××××SUB×××

××××××××NotaketakeIfIfADDADD××××××××NotakeTakeADDADDSUBSUBADDADDififSUBSUB××ADDNotakeTakeADDADDIfIfSUB

SUB××××××××

×××××××流水段分支指令操作IFIDEXIF/ID.IR←Mem[PC];IF/ID.NPC,PC←(ifID/EX.cond{ID/EX.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+(IR16)16##IR16..31;

ID/EX.IR←IF/ID.IR;ID/EX.cond←(Regs[IF/ID.IR6...10]op0;

ID/EX.Imm←(IR16)16##IR16...31;MEMWB表3.6三种方法的要求及效果调度策略对调度的要求其作用前提从前调度被调度的指令必须与分支结果无关任何情况从目标处调度必须保证在分支失败时执行被调度的指令不会导致错误,可能需要复制指令分支成功时从失败处调度必须保证在分支成功时执行被调度的指令不会导致错误分支失败时表3.7各种减少分支损失方法的效果调度方法每条分支指令的

平均分支损失暂停流水线预测分支成功每条条件分支指

令的分支损失预测分支失败1.00延迟分支每条无条

件分支指

令的损失具有分支暂停

的有效CPI浮点

平均整型

平均整型

平均整型

平均浮点

平均浮点

平均1.001.000.620.251.001.001.001.001.000.690.211.001.171.151.001.171.150.741.121.110.701.000.350.000.301.041.04Earle锁存器1965年由J.G.Earle发明优点对时钟扭曲不敏感(相对而言),一般是两级门延迟,避免了数据通过锁存器时可能产生的时钟扭曲在锁存器中可以执行两级逻辑运算,而不会增加锁存器的延迟时间,可以隐藏锁存器产生的额外开销表3.9R4000浮点流水线中8个流水段流水段功能部件描述A浮点加法器尾数加D浮点除法器除法E浮点乘法器例外测试M浮点乘法器乘法第一阶段N浮点乘法器乘法第二阶段R浮点加法器舍入S浮点加法器操作数移位U展开浮点数表3.10双精度浮点操作指令延迟、初始化间隔和流水段的使用情况浮点指令延迟初始化间隔使用的流水段加、减43U,S+A,A+R,R+S乘84U,E+M,M,M,M,N,N+A,R除3635U,A,R,D28,D+A,D+R,D+A,D+R,A,R求平方根112111U,E,(A+R)108,A,R取反21U,S求绝对值21U,S浮点比较32U,A,R表3.11暂停对R4000流水线CPI的影响整数平均: 流水线CPI 1.54

载入

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论