网站大量收购闲置独家精品文档,联系QQ:2885784924
  1. 1、本文档共54页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机系统结构 第4章 指令级并行 高等计算机系统结构 Computer Architecture 第4章 指令级并行 (Instruction-Level Parallelism) 第4章 指令级并行 数据相关的动态指令调度 控制相关的动态分支预测 超标量和VLIW 编译器的静态指令调度:循环展开 4.1 指令级并行的概念 流水线技术的处理器性能: CPI流水线=CPI理想 +停顿结构冲突+停顿数据冲突+停顿控制冲突 程序中指令之间的相关可能导致冲突的发生 保持相关,但避免发生冲突 代码变换,消除相关 正确地执行程序,必须保持数据流(data flow)和异常行为(exception behavior) 做到保持程序的数据相关和控制相关,就能保持数据流和异常行为 4.2 指令的动态调度 指令调度(scheduling):通过改变指令在程序中的位置,将相关指令之间的距离加大到不小于指令执行延迟的时钟数,这样就可以将相关指令转化为无关指令 静态调度通过编译器在编译期间进行代码调度和优化 动态调度通过硬件在程序的执行过程中进行代码调度,调整指令实际执行时的关系 动态指令调度以硬件的复杂性换取性能的提高。它可以处理一些编译时未发现的相关,简化编译器的设计。它可以实现在一种流水线上编译的代码在另外一种流水线上有效地执行 采用静态调度方法生产的代码也可以在使用动态调度的处理器中运行,同样可以获得性能提高 4.2.1 动态调度的原理 前面所述的流水线技术的一个主要局限是指令是顺序流出(in-order issue)和顺序执行(in-order execution)。如果一条指令在流水线中,与之相关的指令及其后面的指令都不能进行处理 将基本MIPS流水线中译码阶段分成两个阶段: 发射:指令译码,并检查资源冲突 读操作数:检查数据相关, 没有数据相关就可以读取操作数 只要指令操作数就绪就执行, 即指令会乱序执行(out-of-order execution),指令也会乱序结束(out-of-order completion) 乱序执行引起的WAR和WAW冲突 DIV.D F4,F0,F2 SUB.D F10,F4,F6 ADD.D F6,F12,F14 WAR冲突 (反相关引起) 如果在SUB.D读出F6之前ADD.D执行结束,会出现问题 DIV.D F4,F0,F2 SUB.D F10,F4,F6 ADD.D F10,F6,F14 WAW 冲突 (输出相关引起) 如果在SUB.D写入F10之前ADD.D执行结束,会出现问题 寄存器换名可以消除WAR和WAW冲突 DIV.D F4,F0,F2 SUB.D F10,F4,F6 ADD.D F8,F12,F14 消除WAR冲突 ADD.D指令的F6更名为F8 DIV.D F4,F0,F2 SUB.D F10,F4,F6 ADD.D F8,F6,F14 消除WAW冲突 ADD.D指令的F10更名为F8 动态调度:记分牌 记分牌(scoreboard):在资源部件充足,没有数据相关的前提下,允许乱序执行的技术。它的命名起源于CDC6600的记分牌 每条指令均经过记分牌,并记录下有关数据相关的信息;然后记分牌判断何时可以读操作数并开始执行;记分牌还控制指令写目标寄存器的时机。阻塞及其解除的检测全都集中在记分牌上 记分牌的性能受限于程序中可开发的指令并行性、记分牌容量、功能部件的数目和种类、反相关和输出相关 名相关在动态调度的乱序执行情况下更加严重 4.2.2 动态调度:Tomasulo算法 Tomasulo算法结合了记分牌的关键部分和寄存器重命名技术,其核心是通过寄存器重命名来解决名相关引起的阻塞。IBM 360/91浮点部件采用,由Robert Tomasulo发明 在Tomasulo算法中,寄存器重命名是通过保留站(reservation station)来实现,它保存等待发射和已经发射指令所需要的操作数。其基本思想是只要操作数有效,就将其送到保留站,避免指令直接从寄存器取数据。即将执行的指令从相应的保留站取得操作数,并将结果直接送到等待数据的保留站 保留站的数目多于实际的寄存器,通过使用保留站将寄存器重命名,就消除了名相关 4.3 动态分支预测技术 处理器可达到的指令级并行度越高,控制相关的影响越大 动态解决技术利用硬件对程序运行时分支的行为进行预测,提前对分支操作做出反应,加快分支处理的速度。分支预测的效果不仅取决于其准确性,而且与分支预测时的开销密切相关。分支转移的最终延迟取决于流水线的结构、预测的方法和预测错误后恢复所采取的策略 动态分支预测技术要记录分支指令的历史、并据此决定预测的分支,还要尽快找到分支目标地址,

文档评论(0)

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

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

1亿VIP精品文档

相关文档