在计算机体系结构中,从错误预测恢复期间的基本任务是什么?


需要执行两个基本任务来实现:丢弃推测执行的结果并恢复备用路径(即真实路径)的执行,如图所示。

当存在多个挂起的条件分支时,应选择并遵循相应的备用路径。在从错误预测的跳转路径恢复时,作为对可能恢复的准备,处理器必须在开始执行猜测的跳转路径之前存储顺序保留的地址。如果先前预取的顺序指令不被丢弃,而是存储以备在发生错误预测时将来使用,则可以最大程度地减少恢复阶段。

另一种情况是顺序路径被错误预测并实现,如图所示。因此,结合“不跳转”预测,必须预先评估和存储分支目标地址以启用恢复。

在这种情况下,可以通过为标量处理器预取分支目标指令,或者在超标量处理器的情况下预取一些指令来减少错误预测的惩罚。这需要额外的缓冲区空间和额外的缓存访问带宽。

在最简单的方案中,在预测期间,仅采取对从错误预测中恢复所必需的预防措施。此方案定义为恢复的基本先期措施。错误预测的最低限度规定包括两项活动 - 对于“跳转”猜测,保存顺序地址;对于“不跳转”猜测,预先计算并保存分支目标地址。这需要每个推测的条件分支两个获取地址寄存器来存储两个可能延续的地址。PowerPC 601、PowerPC 603 和 PowerPC 604 使用此基本方案。

更高级的方案涉及补充操作以缩短错误预测的惩罚。这通常通过为“跳转”猜测保存已预取的顺序指令以及在“不跳转”预测的情况下预取分支目标指令来实现。此方案被指定为增强型先期措施以缩短恢复时间。必须预先评估和存储以启用恢复。

此增强方案的实现至少需要两个指令缓冲区,并且缓冲区中的条目数至少与在一个周期内可以获取的指令数一样多。提供两个指令缓冲区以缩短从错误预测中恢复的处理器的示例包括 SuperSparc、Power1、Power2 和 Pentium。Nx586 提供三个缓冲区,一个顺序缓冲区和两个目标缓冲区,以满足允许的两个挂起的条件分支。

**在 SuperSparc 中使用两个指令缓冲区缩短恢复时间** - SuperSparc 有两个独立的指令缓冲区,称为顺序 I 缓冲区和目标 I 缓冲区。这两个缓冲区都可以从 I 缓存中在一个周期内接收四个指令,并且两个缓冲区的容量均为四个指令。由于处理器采用“始终不跳转”预测,因此在未解决的条件分支的情况下,执行始终从顺序路径开始。

更新于:2021年7月23日

156 次查看

启动您的 职业生涯

通过完成课程获得认证

开始
广告

© . All rights reserved.