第 13 章:Tomasulo 算法
学习目标
- 理解乱序执行
- 掌握 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 核心思想
- 保留站:等待操作数
- 公共数据总线:广播结果
- 寄存器重命名:消除假相关
思考:什么是假相关?
add x1, x2, x3
sub x4, x1, x5
add x1, x6, x7 # WAW 冒险