3.8 使用动态调度、多发射和前瞻利用ILP

发布时间 2023-12-09 22:41:22作者: 杨小靖

3.8 使用动态调度、多发射和前瞻利用ILP

我们希望将动态调度、多发射和前瞻结合起来,以Tomasulo算法为基础,构建前瞻执行动态调度的多发射处理器。

在动态调度的处理器中,无论是否前瞻,都需要更新控制表,否则会丢失相关性。要实现动态调度的处理器,关键就在于保留站的分配与流水线控制表的更新,有两种方法实现:

  1. 一个时钟周期内分先后运行多发射的指令;

  2. 构建必要的逻辑,处理多条指令之间的相关性;

发射步骤是最基本的瓶颈;

具体实现细节:

  1. 为发射包中每条指令指定保留站和ROB,如果保留站不够(指令包中全是一种指令类型),将指令包分解,按照程序的原始顺序执指令包的部分指令,剩下的放在下一个指令包执行;

  2. 分析即将发射的指令之间所有相关性;

  3. 如果一条指令依赖于指令包之前的指令,且该指令还未commit,则使用指定的ROB编号更新保留表,否则使用已有的信息更新保留表项。