LEC07_转移猜测.pdf

  1. 1、本文档共68页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LEC07_转移猜测

计算机体系结构 胡伟武 1 龙芯2号处理器核结构图 2 转移预测 • 转移指令 • 程序的转移行为 • 软件方法解决控制相关 • 硬件动态转移预测 • 常见处理器的转移猜测 3 转移指令 4 控制相关 • 如果转移指令计算下一条指令地址在EX阶段计算,下一条指 令等2拍 • 使用专门的地址运算部件把地址计算提前到译码阶段可以少 等一拍 • 使用一个delay slot可以不用等待 • 多发射情况下延迟槽成为需要专门照顾的负担 第 1 条 IF ID E X M E M W B 第 1 条 IF ID E X M E M W B 第 2 条 IF ID E X M E M W B 第 2 条 IF ID E X M E M W B 第 3 条 IF ID E X M E M W B 第 3 条 IF ID E X M E M W B 第 4 条 IF ID E X M E M W B 第 4 条 IF ID E X M E M W B 第 5 条 IF ID E X M E M W B 第 5 条 IF ID E X M E M W B 5 延迟槽指令的例子 1 Loop: LD F0,0(R1) ;F0=vector element 2 stall 3 ADDD F4,F0,F2 ;add scalar in F2 4 stall 5 stall 6 SD 0(R1),F4 ;store result 7 SUBI R1,R1,8 ;decrement pointer 8B (DW) 8 BNEZ R1,Loop ;branch R1!=zero 9 stall ;delayed branch slot 1 Loop: LD F0,0(R1) 2 stall 3 ADDD F4,F0,F2 4 SUBI R1,R1,8 5 BNEZ R1,Loop ;delayed branch 6 SD 8 (R1),F4 ;altered when move past SUBI 6 转移指令对性能的影响 • 分支指令的影响是开发指令级并行性的重要障碍 • 一条指令流中,平均每5-7条指令中就有一条是分支指令,也即基 本块大小为5-7条指令 • 增大发射宽度 • 在发射宽度为n的处理器中,遇到分支指令的速度也快了n倍 • 增加流水线深度 • 流水线越深,处理分支指令所需要的时钟周期数就越多

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档