学习目标

  • 理解乱序执行
  • 掌握 Tomasulo 算法
  • 解决 WAR 和 WAW 冒险

13.1 思考:顺序执行的限制

div x1, x2, x3   # 很慢,100 周期
add x4, x5, x6   # 不依赖 x1,为什么要等?

问题:能否让 add 先执行?

13.2 乱序执行

发射顺序:div, add
执行顺序:add, div  (乱序)
提交顺序:div, add  (顺序)

13.3 Tomasulo 核心思想

  1. 保留站:等待操作数
  2. 公共数据总线:广播结果
  3. 寄存器重命名:消除假相关

思考:什么是假相关?

add x1, x2, x3
sub x4, x1, x5
add x1, x6, x7  # WAW 冒险

下一步

第 14 章:保留站设计

更新时间: