本文翻译摘录自“ComputerArchitecture : A Quantitative Approach (6th Edition)”。
到目前为止,我们已经看到了动态调度、多发射和推测等各种机制是如何单独工作的。本文将这三种技术结合在一起,得到一种非常类似于现代微处理器的微体系结构。为简单起见,我们只考虑每个时钟周期发射两条指令的发射速率,但其概念与每个时钟周期发射三条或更多条指令的现代处理器没有什么不同。
假定我们希望扩展Tomasulo算法,以支持具有分离整数、载人/存储和浮点单元(包括浮点乘和浮点加)的多发射超标量流水线,每个单元都可以在每个时钟周期启动一个操作。我们不希望向保留站乱序发射指令,这样可能会违反程序语义。为了获得动态调度的全部好处,允许流水线在一个时钟周期内发射两条指令的任意组合,通过调度硬件向整数和浮点单元分配运算。由于整数指令和浮点指令的交互非常关键,所以还会扩展Tomasulo方案,以处理整数 和浮点功能单元与寄存器,还能整合推测执行功能。如下图所示,其基本组织结构类似于每个时钟周期发射一条指令、具有推测功能的处理器的组织结构,不过必须改进其发射和完成逻辑,以允许每个时钟周期处理多条指令。
在动态调度处理器中(无论有无推测功能),每个时钟周期发射多条指令都非常复杂,原因很简单,这些指令之间可能存在相