体系结构学习7-乱序执行

乱序执行

  1. 解决RAW数据依赖(True dependency),提高指令并行。WAW,WAR事实上是处理器寄存器资源不足导致的。

  2. issue:准备将某条指令送入某个队列执行 dispath:某条指令进入某个队列开始执行

  3. Load/Store指令需要和内存交互,执行时间是无法静态确定的(如cache miss,TLB miss等等)

  4. 内部执行实际是数据流控制。

  5. 超标量执行和乱序执行并不等价:乱序执行是指令执行顺序可以调换,超标量是可以有执行队列,两者融合一般可以提升更多性能。

记分牌算法

  1. Seymour Cray 设计CDC6600(超级计算机之父)
  2. 每次需要使用寄存器或者执行功能部件时,实现检查其是否准备好。
    Issue:相当于ID的前半部分,检查是否有WAW冒险和结构冒险,若有则阻塞等待,否则发射指令,更新记分牌。
    Read operand:相当于ID后半部分,检查是否有RAW冒险,所有源操作数是否可用。如果可以执行,记分牌通知执行单元开始执行,否则缓存指令等待执行。
    Execution:执行完后通知记分牌
    Write Result:检查WAR冒险。若有则保留结果暂时不写回。
  3. 按序发射,乱序执行、写回
  4. 优点:提高指令并行,实现简单
  5. 缺点:WAR和WAW的stall , 功能部件只能执行一条指令或者
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值