第八章流水线技术分解.ppt

  1. 1、本文档共130页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在处理机内部需要有独立的取指令、分析指令和执行指令的功能部件,将传统处理机中的指令控制器分解成为三个独立的控制器: 存储控制器:负责流水线中各功能段对存储器的访问控制 包括取指令、取操作数、写回运算结果 指令控制器:完成取指令部件和分析指令部件的控制 运算控制器:对运算器的执行加以控制 2. 动态调度 在程序执行过程中,由硬件重新安排指令的执行顺序,以减少流水线停顿的方法。 CDC记分牌法 Tomasulo动态指令调度算法 分析下面的源代码: for (i=1;i=1000;i++) x[i]=x[i]+s 分析: 每一遍循环之间不存在相关,多遍循环可以同时执行 给变量分配寄存器 R1初值为向量中最高端地址元素的地址 F2用于保存常数S 假定最低端元素的地址为8 循环展开和指令调度时要注意: 保证正确性 注意有效性 使用不同的寄存器 尽可能减少循环控制中的测试指令和分支指令 注意对存储器数据的相关性分析 注意产生新的相关 周期 LOOP: LD F0,0(R1) 1 LD F6,-8(R1) 2 LD F10,-16(R1) 3 LD F14,-24(R1) 4 ADD F4,F0,F2 5 ADDD F8,F6,F2 6 ADDD F12,F10,F2 7 ADDD F16,F14,F2 8 SD 0(R1),F4 9 SD -8(R1),F8 10 SD -16(R1),F12 11 SUB R1,R1,#32 12 BJNE R1,LOOP 13 SD 8(R1),F16 14 展开循环体调度后: 说明:由于SUB指令中将R1内容减去32,因此最后的SD指令需偏移8,方可得到原来的-24 整个循环使用了14个时钟周期 8.4 流水线的调度 8.4 流水线的调度 ◆ 在ID段检测是否需要启动Load互锁需要进行 三种比较 ◆ 当检测到相关后,控制部件必须在流水线中 插入暂停周期,并使IF和ID段中的指令停止 前进。 将ID/EX中的控制部分清“O”。 IF/ID内容回送到其自身入口。 定向逻辑 ◆ 有更多的情况要考虑 ◆ 关键思路:流水线寄存器不仅包含数据,而且 包含源寄存器和目的寄存器地址(字段) 8.3 流水线中的相关 ◆ 所有的定向发生在: ALU或DM输出 → ALU输入,DM输入, “O”检测部件 (图示) 8.3.8 流水线的控制相关 1. 分支指令的执行结果 一、分支引起的暂停及减少分支开销的方法 ◆ 转移失败:PC值加4 ◆ 转移成功:将PC值改变为转移目标地址     到MEM段的末尾才改变 一旦检测到分支指令(在ID段),就暂停 执行其后的指令,直到分支指令到达MEM段, 确定出新的PC值为止。 2. 处理分支指令最简单的方法 8.3 流水线中的相关 在DLX流水线中,分支转移成功导致暂停3个 时钟周期。   若分支指令的频度为80%,理想CPI=1, 则 实际CPI=1+80%×3≈2 3. 减少分支开销的两种途径 ◆ 在流水线中尽早判断分支转移是否成功; ◆ 转移成功时,尽早计算出转移目标地址。 两者应同时采用,缺一不可。   对于DLX作如下改进: (1) 把“=0?”测试移至ID段; 8.3 流水线中的相关 (2) 在ID段增设一个加法器,这样可以把分支 开销减少一拍。   改进后流水线的分支操作  (表8.5) 8

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档