- 1、本文档共414页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 进一步针对超标量进行调度后的指令序列如下所示 整数指令 浮点指令 时钟周期 Loop: L.D F0(R1) 1 L.D F6,-8(R1) 2 L.D F10,-16(R1) ADD.D F4,F0,F2 3 L.D F14,-24(R1) ADD.D F8,F6,F2 4 L.D F18,-32(R1) ADD.D F12,F10,F2 5 S.D F4,0(R1) ADD.D F16,F14,F2 6 S.D F8,-8(R1) ADD.D F20,F18,F2 7 S.D F12,-16(R1) 8 DADDIU R1,R1,#-40 9 S.D F16,16 (R1) 10 BNE R1,R2,Loop 11 S.D F20,8(R1) 12 4.5 循环展开和指令调度 每次循环需12个时钟周期,即计算每个结果需要2.4个时钟周期。 (每次循环计算5个结果) 在普通的MIPS流水线上,没有调度的代码迭代一次为9个时钟周期,调度后为6个时钟周期,展开4次并调度后每个迭代为3.5个时钟周期。 与之相比,超标量流水线的性能提高分别为: 3.75倍、2.5倍、1.4倍 在这个例子中可以看到,超标量MIPS流水线的性能主要受限于:整数计算和浮点计算之间的平衡问题。 本例中没有足够的浮点指令来使两路流水线都达到饱和。 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 4.3 动态分支预测技术 实现前瞻的关键思想: 允许指令乱序执行,但必须顺序确认。 支持前瞻执行的浮点部件的结构 4.3 动态分支预测技术 ROB中的每一项由以下4个字段组成: 指令类型 指出该指令是分支指令、store指令或寄存器操作指令。 目标地址 给出指令执行结果应写入的目标寄存器号(如果是 load和ALU指令)或存储器单元的地址(如果是store指 令)。 数据值字段 用来保存指令前瞻执行的结果,直到指令得到确认。 就绪字段 指出指令是否已经完成执行并且数据已就绪。 4.3 动态分支预测技术 Tomasulo算法中保留站的换名功能是由ROB来完成的。 采用前瞻执行机制后,指令的执行步骤: (在Tomasulo算法的基础上改造的 ) 流出 从浮点指令队列的头部取一条指令。 如果有空闲的保留站(设为r)且有空闲的ROB项(设为b),就流出该指令,并把相应的信息放入保留站r和ROB项b。 如果保留站或ROB全满,便停止流出指令,直到它们都有空闲的项。 4.3 动态分支预测技术 执行 如果有操作数尚未就绪,就等待,并不断地监测CDB。 (检测RAW冲突) 当两个操作数都已在保留站中就绪后,就可以执行该指令的操作。 写结果 当结果产生后,将该结果连同本指令在流出段所分配到的ROB项的编号放到CDB上,经CDB写到ROB以及所有等待该结果的保留站。 释放产生该结果的保留站。 store指令在本阶段完成,其操作为: 4.3 动态分支预测技术 如果要写入存储器的数据已经就绪,就把该数据写入分配给该store指令的ROB项。 否则,就监测CDB,直到那个数据在CDB上播送出来,这时才将之写入分配给该store指令的ROB项。 确认 对分支指令、store指令以及其他指令的处理不同: 其他指令(除分支指令和store指令) 当该指令到达ROB队列的头部而且其结果已经 就绪时,就把该结果写入该指令的目标寄存器,并从 ROB中删除该指令。 4.3 动态分支预测技术 store指令 处理与上面类似,只是它把结果写入存储器。 分支指令 当预测错误的分支指令到达ROB队列的头部时,清空ROB,并
文档评论(0)