rename--一些例子与问题

  • 指令 A 和指令 B之间存在先写后读(RAW)的相关性
    • 指令 B 的源寄存器 r0 来自于指令 A 产生的结果
    • 因此在进行寄存器重命名的时候,指令 B 的 r0 对应的物理寄存器应该直接来自于指令A所对应的P30,而不应该来自于从RAT读取的值。
  • 指令A,B,D之间存在先写后写(WAW)的相关性
    • 虽然从字面上看,通过寄存器重命名可以消除这种相关性
    • 但是在实际当中,仍然无法忽视它的存在,这是为什么呢?原因有如下两个。
      • 因为在写入 RAT 时,只需要将一个逻辑寄存器最新的映射关系写入到 RAT 中就可以了,如果在一个周期内进行重命名的多条指令之间都有着同一个目的寄存器(即存在WAW相关性),那么只需要将最新的那条指令的映射关系写到RAT中即可。
      • 在将每条指令的旧映射关系写到ROB的时候,如果发现在一个周期内有多条指令都使用同一个目的寄存器,则此时写入到ROB中的旧映射关系不再是来自于 RAT读取的值,而是直接来自于和它存在 WAW 相关性的指令。
        • 指令 B 的目的寄存器 r0 经过重命名之后对应的物理寄存器是 P31,而 r0 在上一次对应的物理寄存器是指令 A 当中的 P30,而不是来自于 RAT读出的结果;
        • 同理,指令 D 的目的寄存器 r0 对应的旧的映射关系是来自于指令 B 的 P31,也不是来自于RAT读出的结果。
  • 指令B和指令D之间存在先读后写(WAR)的相关性,指令B读取寄存器r0,而指令D写入到寄存器ro,通过寄存器重命名可以消除这种关系,并且对于实际的重命名过程来说,这种相关性也是没有影响的。 
  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值