起源
- 由IBM开发,并于1966年在IBMS360/91大型机中首次实现,大约是在CDC6600中记分板首次亮相之后的3年。
- 动态调度硬件中的流水线,减少停顿。
结构

Tomasulo与记分牌
提起Tomasulo算法一个经常与他进行对比的算法就是记分牌算法,有关记分牌的有关概念可以去看一下这篇博文文章传送门
它们的主要区别如下:
Tomasulo:
- 控制与buffer分布在功能单元中。功能单元缓冲器被称为保留站,其具有未决指令和操作数以及其它指令状态信息。
保留站有时被称为物理寄存器或重命名寄存器,而不是ISA指定的体系结构寄存器。 - 指令中的ISA寄存器由值(如果可用)或指向稍后将提供该值的预留站(RS)的指针替换。这个过程称为寄存器重命名。避免RAW和WAW的风险,并且允许基于硬件的循环展开。
- 指令结果不是通过寄存器,而是通过公共数据总线(CDB)从RSs(转发)到FU,CDB将结果广播到所有FU。
- 加载和存储也被视为具有RSs的FU。
- 整数指令可以通过分支,允许FP操作超出FP队列中的基本块。
算法步骤
- ISSUE:从挂起的指令队列中获取指令。
-向空闲保留站发出指令(无结构性危险)。
-所选RS标记为忙。
-控制将可用的指令操作数值(来自ISA寄存器)发送到分配的RS。
-尚未可用的操作数被重命名为将产生该操作数的RSs(寄存器重命名)。 - Execution(EX):对操作数进行操作。
-当两个操作数都准备好后,就开始在分配的FU上执行。
-如果所有操作数都没有准备好,观察公共数据总线(CDB)以获得所需的结果(通过CDB完成的转发)。 - Write result(WB):完成执行。
-将公共数据总线上的结果写入所有等待单元
-将保留站标记为可用。

7958

被折叠的 条评论
为什么被折叠?



