14指令级并行性和超标量处理器.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
14指令级并行性和超标量处理器

S.J.T.U. 上海交通大学 指令级并行性和超标量处理器 陆海宁 hnlu@sjtu.edu.cn S.J.T.U. 什么是超标量? 多条普通的指令(算术,读/写,条件转移)能 同时启动并独立地执行。 可应用于RISC和CISC 通常应用于RISC S.J.T.U. 通常的超标量组织 S.J.T.U. 超级流水线 多数流水线阶段所完成的任务只需要时钟周期一半还少的时间 双倍的内部时钟速率允许在一个外部时钟周期内完成两个任务 S.J.T.U. 超标量和超流水 S.J.T.U. 限制 指令级并行 基于编译器的优化 硬件技术 限制 真实数据相关性 过程相关性 资源相关性 输出相关性 反相关性 S.J.T.U. 真实数据相关性 ADD R1, R2 (R1 = R1 + R2) MOVE R3, R1 (R3 = R1) 两条指令可以并行取指并译指 但第二条指令必须等到第一条指令执行完毕才能执行 又叫做 写-读相关性 S.J.T.U. 过程相关性 转移指令之后的指令在转移指令未执行之前,不能被执行,因而转移之后的指令对转移到过程有相关性 使用变长指令的话,指令在译码之前无法判断下一条指令的位置,不能并发取指和执行(这也是为什么超标量更适合RISC的原因之一,因为RISC的指令长度固定) S.J.T.U. 资源冲突 两个或多个指令同时竞争某个资源 如:两条算术指令 可以使用多个资源 如:配备两个算术单元 S.J.T.U. 相关性效应 S.J.T.U. 设计考虑 指令级并行性 顺序中的指令是相互独立的 执行可以重叠的 受制于数据和过程相关性 机器并行性 机器发现并利用指令级并行性的能力 并行流水线 S.J.T.U. 指令发射策略 在当前执行点查找能带入流水线并执行的指令 取指令的顺序 指令执行的顺序 指令改变寄存器和存储器内容的顺序 S.J.T.U. 按序发射 按序完成 指令按其原有顺序发射 效率不高 可以同时取和执行多条指令 如有必要,执行执行将被延迟 S.J.T.U. 6条指令,限制如下: I1执行要求两个执行周期 I3和I4为同一功能单元而冲突 I5取决于I4产生值 I5和I6为同一功能单元而冲突 S.J.T.U. 按序发射 按序完成 S.J.T.U. 按序发射 乱序完成 S.J.T.U. 按序发射 乱序完成 输出相关性(写-写相关性) I1: R3 ? R3 op R5 I2: R4 ? R3 + 1 I3: R3 ? R5 + 1 I4: R7 ? R3 op R4 I2需要I1的结果 – 数据相关性 如果I3比I1先完成,那么R3的结果就错了 – 输出相关性(写 - 写相关性) S.J.T.U. 乱序发射 乱序完成 分离译码流水和执行流水 增加指令窗口(Instruction Window) 处理器将译完的指令放入指令窗口 在下列情况下,指令可以被发射 指令所需的功能单元是可用的 没有相关性冲突 处理器具有先行查找的能力,识别能带入执行段的指令,于是指令发射的次序很少遵照他们原来的顺序。 S.J.T.U. 乱序发射 乱序完成 S.J.T.U. 反相关性 读-写相关性 I1:R3 ? R3 op R5 I2:R4 ? R3 + 1 I3:R3 ? R5 + 1 I4:R7 ? R3 op R4 在I2取得操作数之前,I3不能完成执行 S.J.T.U. 寄存器重命名 产生输出相关性和反相关性的原因在于寄存器的值不再反映程序流的顺序 寄存器重命名 寄存器由处理器硬件动态分配 一个新的寄存器值产生时,分配一个新的寄存器 S.J.T.U. 寄存器重命名例子 I1:R3b ? R3a op R5a I2:R4b ? R3b + 1 I3:R3c ? R5a + 1 I4:R7b ? R3c op R4b 注意R3a, R3b, R3c S.J.T.U. 机器并行性 超标量机器增强性能的三种硬件技术 资源复制 无序发射 寄存器重命名 没有寄存器重命名,添加功能单元可能意义不大 需要足够大的指令窗口(大于8) S.J.T.U. 各种机器组织的加速 S.J.T.U. 转移预测 普通流水线 – 转移预测 RISC – 延迟转移 总是执行转移指令之后的指令 超标量 – 转移预测 S.J.T.U. 超标量执行 S.J.T.U. 上海交通大学

文档评论(0)

didala + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档