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

下载本文档

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

文档简介

1、国防科技大学计算机学院国防科技大学计算机学院主讲人:主讲人: 教授教授本章内容本章内容1. 1. 分支指令的实现分支指令的实现u一旦分支转移成功,正确的地址要在一旦分支转移成功,正确的地址要在MemMem段的末段的末尾尾才会被写入才会被写入PCPCu一旦一旦IDID段检测到分支指令,就暂停执行其后的指段检测到分支指令,就暂停执行其后的指令,直到分支指令达到令,直到分支指令达到MemMem段,确定新的段,确定新的PCPC为止为止u分支转移成功将导致分支转移成功将导致MIPSMIPS流水线流水线暂停暂停3 3个周期个周期2. 2. 减少分支开销的途径减少分支开销的途径u两个基本途径:同时采用,缺一

2、不可!两个基本途径:同时采用,缺一不可!- 在流水线中尽早判断分支转移是否成功在流水线中尽早判断分支转移是否成功- 转移成功时,尽早计算出转移目标地址转移成功时,尽早计算出转移目标地址u经经改进改进,MIPSMIPS流水线可以将分支开销流水线可以将分支开销减少减少1 1拍拍- 将将“=0?”=0?”测试提前到测试提前到IDID段段- 在在IDID段增加一个加法器,计算分支目标地址段增加一个加法器,计算分支目标地址表表3.63.6列出了改进后流水线的分支操作列出了改进后流水线的分支操作u再改进再改进,MIPSMIPS流水线可以将分支开销流水线可以将分支开销再减少再减少1 1拍拍-将分支判断结果和

3、目标地址提前到将分支判断结果和目标地址提前到ID/EXID/EX站前站前3. 3. 程序中分支指令的行为特点程序中分支指令的行为特点(1) (1) 各种能改变各种能改变PCPC值的指令的执行频度值的指令的执行频度u条件分支:条件分支:- 整数程序:整数程序:14-15%14-15%- 浮点程序:浮点程序:3-12%3-12%其中,向前分支与向后分支的比:其中,向前分支与向后分支的比:3:13:1u无条件分支:无条件分支:4%4%(绝大多数)(绝大多数)(2) (2) 条件分支转移成功的概率条件分支转移成功的概率u向前转移成功:向前转移成功:60%60%;向后转移成功:;向后转移成功:85%85

4、%4. 4. 减少流水线分支损失的方法减少流水线分支损失的方法(1) (1) 冻结或排空流水线冻结或排空流水线u思路:在流水线中停住或删除分支后的指令,直思路:在流水线中停住或删除分支后的指令,直到知道转移目标地址到知道转移目标地址u优点:简单优点:简单(2) (2) 预测分支转移失败预测分支转移失败u思路:流水线继续照常流动,如果分支转移成功,思路:流水线继续照常流动,如果分支转移成功,将分支指令后的指令转换为空操作,并从分支目将分支指令后的指令转换为空操作,并从分支目标处开始取指令执行;否则照常执行标处开始取指令执行;否则照常执行uMIPSMIPS流水线的处理过程流水线的处理过程4. 4.

5、 减少流水线分支损失的方法减少流水线分支损失的方法(3) (3) 预测分支转移成功预测分支转移成功u思路:始终假设分支成功,直接从分支目标处取思路:始终假设分支成功,直接从分支目标处取指令执行指令执行u对对MIPSMIPS流水线没有任何好处!流水线没有任何好处!(4) (4) 延迟分支(延迟分支(delayed branchdelayed branch)u思路:分支开销为思路:分支开销为n n的分支指令后紧跟有的分支指令后紧跟有n n个延个延迟槽,迟槽,流水线遇到分支指令时,按正常方式处理流水线遇到分支指令时,按正常方式处理,顺带执行延迟槽中的指令,从而减少分支开销。顺带执行延迟槽中的指令,从

6、而减少分支开销。延迟分支及指令的执行顺序延迟分支及指令的执行顺序4. 4. 减少流水线分支损失的方法减少流水线分支损失的方法u具有一个分支延迟槽的具有一个分支延迟槽的MIPSMIPS流水线的流水线的执行过程执行过程u什么样的指令能否放入分支延迟槽?什么样的指令能否放入分支延迟槽?-三种调度方法三种调度方法:从前调度;从目标处调度;从失败处调度:从前调度;从目标处调度;从失败处调度-三种方法的要求与效果三种方法的要求与效果,存在限制因素,存在限制因素 编译器预测分支是否成功的能力编译器预测分支是否成功的能力 放入延迟槽中的指令放入延迟槽中的指令-取消分支取消分支(举例举例)思路:分支指令中包含预

7、测方向,若预测正确,正常执行思路:分支指令中包含预测方向,若预测正确,正常执行延迟槽中的指令,否则将其转换为空操作延迟槽中的指令,否则将其转换为空操作5. 5. 各种分支处理方法的性能各种分支处理方法的性能(1) (1) 假设理想假设理想CPI=1CPI=1,则加速比,则加速比S=D/(1+C)=D/(1+fS=D/(1+C)=D/(1+fp p分支分支) )这里,这里,D D为流水线的深度,为流水线的深度,p p分支分支为分支开销,为分支开销,C C为分支引起的流水线暂停时钟周期数为分支引起的流水线暂停时钟周期数( (每条指令每条指令的平均值的平均值) ),f f为分支的出现频度。为分支的出

8、现频度。(2) (2) 表表3.73.7列出了流水线中各种处理方法的开销列出了流水线中各种处理方法的开销3.4 实例分析:实例分析:MIPS R40003.4.1 MIPS R4000的整型流水线的整型流水线3.4.2 MIPS R4000的浮点流水线的浮点流水线3.4.3 MIPS R4000流水线性能分析流水线性能分析1. 1. 指令集:指令集:6464位位MIPS-3MIPS-3指令集指令集2. 2. MIPS R4000MIPS R4000流水线结构流水线结构u超流水结构(超流水结构(superpipelingsuperpipeling)u访存操作流水化访存操作流水化3. 3. 流水线

9、各段的功能流水线各段的功能4. 4. 指令序列在流水线中的重叠执行过程指令序列在流水线中的重叠执行过程定向定向+ +插入暂停周期插入暂停周期5. 5. 载入延迟为两个时钟周期载入延迟为两个时钟周期6. 6. 指令序列在流水线中的指令序列在流水线中的执行时空图执行时空图7. R40007. R4000流水线的定向路径远多于流水线的定向路径远多于MIPSMIPS流水线流水线ALUALU输入端的定向源有输入端的定向源有4 4个个:EX/DFEX/DF,DF/DSDF/DS,DS/TCDS/TC,TC/WBTC/WB8. 8. 分支处理分支处理u在在EXEX段完成分支条件的计算,基本分支延迟为段完成分

10、支条件的计算,基本分支延迟为3 3个时钟周期个时钟周期u分支处理策略分支处理策略- 单周期延迟分支单周期延迟分支- 从失败处调度从失败处调度 时时- -空图空图u包括浮点除法器、浮点乘法器和浮点加法器各包括浮点除法器、浮点乘法器和浮点加法器各1 1个个u分为分为8 8段(段(P121 P121 表表3.93.9)u多功能非线性流水线多功能非线性流水线u双精度浮点操作指令延迟、初始化间隔和流水段的双精度浮点操作指令延迟、初始化间隔和流水段的使用情况(使用情况(P121 P121 表表3.103.10)1. 1. 引起流水线暂停的四个主要原因引起流水线暂停的四个主要原因u载入暂停载入暂停u分支暂停

11、分支暂停u浮点结果暂停浮点结果暂停u浮点结构性暂停浮点结构性暂停2. 2. 暂停对暂停对MIPS R4000MIPS R4000流水线流水线CPICPI的影响的影响表表3.113.11从前调度从前调度从目标处调度从目标处调度从失败处调度从失败处调度Notake takeADD ADD If If ADD R1,R2,R3Notake TakeADD ADD SUB SUBADD ADDif if SUB ADDNotake TakeADD ADD If If SUB Notake takeIf If ADD ADD Notake TakeADD ADD SUB SUBADD ADDif ifS

12、UB SUB ADDNotake TakeADD ADD If IfSUB SUB 流水段流水段分分 支支 指指 令令 操操 作作IFIDEXIF/ID.IR MemPC; IF/ID.NPC,PC (if ID/EX.condID/EX.NPC else PC+4);ID/EX.A RegsIF/ID.IR6.10; ID/EX.B RegsIF/ID.IR11.15;ID/EX.NPC IF/ID.NPC + (IR16)16 # IR16.31;ID/EX.IR IF/ID.IR; ID/EX.cond (RegsIF/ID.IR6.10 op 0;ID/EX.Imm (IR16)16#

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

14、减少分支损失方法的效果 调度方法每条分支指令的平均分支损失暂停流水线预测分支成功每条条件分支指 令的分支损失预测分支失败1.00延迟分支每条无条件分支指令的损失具有分支暂停 的有效 CPI浮 点平 均整 型平 均整 型平 均整 型平 均浮 点平 均浮 点平 均1.001.000.620.251.001.001.001.001.000.690.211.001.171.151.001.17 1.150.741.121.110.701.000.350.000.301.041.04EarleEarle锁存器锁存器u19651965年由年由J.G.EarleJ.G.Earle发明发明u优点优点- 对时钟

15、扭曲不敏感(相对而言),一般是两级门对时钟扭曲不敏感(相对而言),一般是两级门延迟,避免了数据通过锁存器时可能产生的时钟延迟,避免了数据通过锁存器时可能产生的时钟扭曲扭曲- 在锁存器中可以执行两级逻辑运算,而不会增加在锁存器中可以执行两级逻辑运算,而不会增加锁存器的延迟时间,可以隐藏锁存器产生的额外锁存器的延迟时间,可以隐藏锁存器产生的额外开销开销表表3.9 R40003.9 R4000浮点流水线中浮点流水线中8 8个流水段个流水段流水段流水段功能部件功能部件描述描述A A浮点加法器浮点加法器尾数加尾数加D D浮点除法器浮点除法器除法除法E E浮点乘法器浮点乘法器例外测试例外测试MM浮点乘法器

16、浮点乘法器乘法第一阶段乘法第一阶段N N浮点乘法器浮点乘法器乘法第二阶段乘法第二阶段R R浮点加法器浮点加法器舍入舍入S S浮点加法器浮点加法器操作数移位操作数移位U U展开浮点数展开浮点数表表3.10 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 3.11 暂停对暂停对R4000R4000流水线流水线CPICPI的影响的影响整数平均:整数平均:流水线流水线CPICPI 1.54 1.54 载入暂停时钟周期数

温馨提示

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

最新文档

评论

0/150

提交评论