指令调度设计空间是什么?


指令调度设计空间非常复杂。在某些方面,它类似于指令发出设计空间,但它还有两个额外的方面,如图所示。

  • 调度策略 − 调度策略可以被认为是一个调度策略,包含以下组件:

选择规则 − 选择规则指定何时指令被认为可执行。我们假设使用了重命名,并且未解决的条件转移指令由推测性分支处理来管理。

仲裁规则 − 当多条指令符合执行条件,且下一周期只能调度一部分指令时,可能需要仲裁规则。大多数处理器使用简单的仲裁规则,优先调度“较旧”的指令而不是“较新”的指令。Power1、Power2、PowerPC 620、PM1(Sparc64)和PentiumPro都是使用这种仲裁规则的例子。

调度顺序 − 调度顺序指定不可执行指令是否阻止所有后续指令被调度。

  • 调度速率 − 设计空间需要额外的组件来确定每个保留站或DRIS每个周期可以调度多少条指令。这个组件称为调度速率。

一个暂存缓冲区必须能够在每个周期将一条指令调度到连接到它的任何EU(执行单元)。对于具有两到三个EU的组站来说,这更容易实现,而对于连接了大量EU的中央站或DRIS来说则更难。例如,R10000使用组保留站。它的FX保留站每个周期可以调度两条指令,每条指令调度到一个EU。

  • 操作数可用性检查方案 − 操作数的可用性需要在两种情况下进行检查:当操作数从寄存器文件中获取时,需要一个方案来检查寄存器文件中是否存在请求的内容。在指令调度期间,需要类似的方案来检查暂存缓冲区中保存的指令的所有操作数是否可用。它可以使用通常用于指示寄存器操作数可用性的技术,称为记分板。

  • 空保留站的处理 − 当指令到达空保留站时,超标量处理器遵循两种不同的方法。直接的方法是以与部分填充的保留站相同的方式处理指令。但是,进入的指令必须在调度之前至少在一个空站中停留一个周期。Nx586是使用这种方法处理空保留站的处理器的例子。

处理空保留站的更高级方法是使用旁路。在这里,一些额外的电路允许指令绕过空站,并立即转发到EU,而无需任何额外的延迟。PowerPC 604和PM1(Sparc64)采用了这种更高效的方法。

更新于:2021年7月23日

220 次浏览

启动你的职业生涯

通过完成课程获得认证

开始学习
广告