- 1、本文档共68页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)