计算机体系结构--Tomasulo算法

起源

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

结构

计算机体系结构--Tomasulo算法_第1张图片

Tomasulo与记分牌

提起Tomasulo算法一个经常与他进行对比的算法就是记分牌算法,有关记分牌的有关概念可以去看一下这篇博文文章传送门
它们的主要区别如下:
Tomasulo

  1. 控制与buffer分布在功能单元中。功能单元缓冲器被称为保留站,其具有未决指令和操作数以及其它指令状态信息。
    保留站有时被称为物理寄存器或重命名寄存器,而不是ISA指定的体系结构寄存器。
  2. 指令中的ISA寄存器由值(如果可用)或指向稍后将提供该值的预留站(RS)的指针替换。这个过程称为寄存器重命名。避免RAW和WAW的风险,并且允许基于硬件的循环展开。
  3. 指令结果不是通过寄存器,而是通过公共数据总线(CDB)从RSs(转发)到FU,CDB将结果广播到所有FU。
  4. 加载和存储也被视为具有RSs的FU。
  5. 整数指令可以通过分支,允许FP操作超出FP队列中的基本块。

算法步骤

  • ISSUE:从挂起的指令队列中获取指令。
    -向空闲保留站发出指令(无结构性危险)。
    -所选RS标记为忙。
    -控制将可用的指令操作数值(来自ISA寄存器)发送到分配的RS。
    -尚未可用的操作数被重命名为将产生该操作数的RSs(寄存器重命名)。
  • Execution(EX):对操作数进行操作。
    -当两个操作数都准备好后,就开始在分配的FU上执行。
    -如果所有操作数都没有准备好,观察公共数据总线(CDB)以获得所需的结果(通过CDB完成的转发)。
  • Write result(WB):完成执行。
    -将公共数据总线上的结果写入所有等待单元
    -将保留站标记为可用。

你可能感兴趣的:(高性能计算机体系结构)