超标量处理器的指令発行策略是什么?
以下方法用于指令発行策略,例如标量处理器、超标量处理器以及涵盖两者的广阔图景。在考虑最常用的発行策略时,可以通过忽略不太重要的方面来减少指令発行的设计空间。
首先,对于标量处理器和超标量处理器,它都可以避免発行顺序,因为大多数处理器都采用按序発行。此外,对于使用搁置的标量和超标量处理器,它可以丢弃発行对齐。
在考虑标量处理器的指令発行策略时,应该处理三个基本的発行方面,例如是否采用重命名、推测执行和搁置。在由此产生的八种可能的発行策略中,标量处理器主要使用两种,如图所示。它们是传统的标量発行及其具有推测执行的改进。
早期的非流水线处理器按顺序発行指令。这意味着只有在前面一条指令完成之后才能発行下一条指令。这些处理器不使用重命名、推测分支处理或搁置。
后来,当具有多个执行单元的 ILP 处理器或流水线处理器出现时,传统的标量発行策略对性能的限制过于严格。采用了两种方法来缓解这种情况。一种是在 CDC6600 中引入的,另一种是在 IBM 360/91 中引入的。CDC6600(当时的超级计算机)是最早的 ILP 处理器之一。它通过引入多个非流水线、并行工作的执行单元来实现高性能。
另一种方法是在 IBM 360/91 中发明的。该处理器是一个更先进的 ILP 处理器,由多个流水线浮点执行单元组成。它还为浮点指令使用了搁置。
最简单的策略是直接对齐的超标量発行。它不允许重命名,需要与直接発行对齐,并采用推测执行。根据此策略,指令発行被阻塞以用于数据和资源依赖性,而控制依赖性则通过推测分支处理来满足。
还有一组处理器使用直接超标量発行,以更先进的形式,实现无对齐発行。此额外功能可提高性能。使用此策略的处理器示例包括 R8000、PA 7200 和 UltraSparc。
下一个発行策略是带有搁置的直接超标量発行策略,它不使用重命名,使用推测执行处理控制依赖性,并引入搁置。此方案仅在少数超标量处理器中使用,包括 MC88110 和 R8000。这两个处理器都只包含部分搁置。MC88110 仅搁置存储和条件分支,而 R8000 仅搁置浮点指令。