- 1、本文档共62页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2.4 采用动态调度克服数据冒险 指令运行的三个阶段 1、发射:从指令队列中取到下一条指令,指令队列按FIFO顺序维护,以保证正确的数据流。如果有匹配的空闲保留站,并且指令的操作数的值也保存在寄存器中,则将指令和操作数的值一起发射到该保留站中。如果没有空闲的保留站,则说明发生结构冒险,指令会被停顿,直至出现可用的保留站或缓存。如果操作数不在寄存器中,则需要跟踪将要产生该操作数的功能单元,寄存器重命名在这一步进行。 2.4 采用动态调度克服数据冒险 指令运行的三个阶段 2、执行:如果有一个或多个操作数处于不可用状态,则监视公共数据总线,等待这些操作数被计算出来。当一个操作数可用时,该操作数将被放入等待它的保留站中。当指令所需的所有操作数都已就绪时,该指令将在相应的功能单元中执行。通过在操作数可用之前延迟指令的执行,避免了RAW冒险。如果多条指令在同一个时钟周期内就绪,则功能单元将被迫在就绪指令间做出选择。 2.4 采用动态调度克服数据冒险 指令运行的三个阶段 2、执行:为了保护异常行为,在程序顺序中的所有前序转移完成之前,任何指令都不能开始执行。这个约束可以确保在执行过程中引起异常的指令会被执行。 3、写结果:当结果就绪时,将其写到公共数据总线上,并由此送往等待它的寄存器和保留站。 当指令已经被发射且正在等待源操作数时,标签字段将指向包含将产生源操作数指令的保留站号,比如0则表明操作数已经在寄存器中就绪。 2.4 采用动态调度克服数据冒险 Tomasulo算法 Tomasulo方法采用总线广播结果的方式,由保留站监听,这种方法实现了静态流水线调度中直接通路和旁路技术的功能,而在动态调度方法中,为了达到同样的目标,需要在源和结果之间增加一个时钟周期的时延,与功能单元产生结果相比,动态调度流水线中生产指令和消费指令之间的有效时延至少要多花一个时钟周期。 每个保留站有七个字段,见P66. 2.6 基于硬件的推测 当我们试图进一步开发指令级并行时,维护控制相关性便成为一个严重的负担。转移预测技术减少了直接由转移引起的停顿,但是要想使处理器在一个时钟周期内执行多条指令,仅靠转移预测恐怕无法使我们获得期望的指令级并行度。为了保持最高性能,一个宽发射处理器可能需要每个时钟周期都执行一条转移指令,因此,要想进一步开发并行度,就必须克服控制相关带来的问题。可以通过推测转移的结果,并按照推测正确的情况执行指令,以达到克服控制相关的目的。 2.6 基于硬件的推测 基于硬件的推测综合以下三种思想 通过动态转移预测选择要执行的指令,通过推测技术允许指令在控制相关消除之前开始执行(能够消除错误推测序列的影响),通过动态调度处理几个不同的基本块之间的调度(作为比较,没有推测的动态调度只能在基本块之间实现部分重叠) 2.6 基于硬件的推测 基于硬件的推测 为了扩展Tomasulo算法并使其支持推测技术,必须将指令结果的旁路操作(推测执行指令需要指令结果的旁路操作)从实际的指令完成中分离出来。通过这种分离,可以允许指令将它的执行结果旁路给其他指令,而在确定而不是推测指令的执行之前,不允许做任何更新。 2.6 基于硬件的推测 基于硬件的推测 实现推测技术的关键思想是允许指令乱序执行,但是要求指令必须按序提交,并且在指令提交之前阻止所有不可恢复的动作(比如更新状态或产生异常)。当使用推测技术扩展动态调度时,必须将指令的完成与指令提交区分开来,因为指令可能在提交之前已经完成。在指令执行过程中需要一组硬件缓存的支持,使用这些缓存保存已经执行完但还没有提交的指令执行结果,这些硬件缓存称为重排序缓存。 2.6 基于硬件的推测 重排序缓存(ROB) 重排序缓存提供了附加的寄存器,这种方法与Tomasulo算法通过保留站扩展寄存器集类似。在指令运算完成到提交这段时间内,重排序缓存为指令保存结果。即在这段时间内, ROB是指令的操作数源,但ROB与保留站的重要区别是:在Tomasulo算法中,当指令完成写结果的操作后,所有的后继指令都将从寄存器文件中读取结果;而在推测技术中,只有在指令提交之后寄存器文件才会被更新。 2.6 基于硬件的推测 重排序缓存(ROB) 重排序缓存每一个入口都包含4个字段:指令类型、目标字段、值字段和就绪字段。 指令类型字段表明指令是转移运算、store操作还是寄存器运算。 目标字段提供寄存器序号或存储器地址,指令将把结果写向目标字段指向的寄存器或存储器 值字段用来在指令提交之前,保存指令执行结果的值,就绪字段表明指令已经完成它的执行,其结果已经可用。 2.6 基于硬件的推测 处理器硬件结构 见图2.14。尽管ROB
您可能关注的文档
- 注电发输变电专业考试复方法和心得体会注电发输变电专业考试复习方法和心得体会.doc
- 法制教育教师培训手册(点)1重点)1.ppt
- 注册消防工程师注册消防程师.ppt
- 注册核安全工程师-案例析2013注册核安全工程师-案例分析2013.ppt
- 泰山版四年级品社下册单及期末测试题及答案泰山版四年级品社下册单元及期末测试题及答案.doc
- 泵送混凝土施工方法泵送凝土施工方法.doc
- 泰山版四年级品社下册单及期末测试题泰山版四年级品社下册单元及期末测试题.doc
- 泸州市2012年下半年业单位考试公共基础真题泸州市2012年下半年事业单位考试公共基础真题.doc
- 洋河分公司2012年防工作方案洋河分公司2012年防汛工作方案.doc
- 洛阳市工伤认定工作规程.doc
- 浙江省2010年4月高教育自学考试 生药学试题 课程代码10064浙江省2010年4月高等教育自学考试 生药学试题 课程代码10064.doc
- 浙江工业大学《项目评估第3章》第3章.ppt
- 浙江省201年4月高教育自学考试 汽车经营管理学试题 课程代码05834浙江省2011年4月高等.doc
- 浙江省2013年1月高教育自学考试 电力系统基础试题 课程代码02300浙江省2013年1月高等.doc
- 浙江省2009年7月高教育自学考试 生药学试题 课程代码10064浙江省2009年7月高等教育自学考试 生药学试题 课程代码10064.doc
- 浙江省临海市杜桥中学214届高三上学期期中考试生物试题 Word版含答案浙江省临海市杜桥中学20.doc
- 浙江省2008年4月高教育自学考试 生药学试题 课程代码10064浙江省2008年4月高等教育自学考试 生药学试题 课程代码10064.doc
- 浙教版八年级科学(下)三章空气与生命第3节化学方程式 课件第三课时(共22张PPT)浙教版八年级科学(下)第.ppt
- 浙江省宁波市镇海中学214届高三下学期期初考试数学(理)试题 Word版含答案浙江省宁波市镇海中学20.doc
- 浙江省杭州市2014届三第一次高考科目教学质检语文试题 Word版含答案浙江省杭州市2014届高.doc
文档评论(0)