什么是固定预测?
在固定预测中,不断进行类似的猜测,无论是“总是采用”还是“总是不采用”的方法。
“始终未采用的方法”-“始终未采用”方法(或简称为“未采用”方法)具有以下典型处理方案如下:
它可以检测到未解决的条件分支并猜测它没有被采用。
它可以继续执行顺序路径,但为错误猜测做准备,开始并行执行所采用的路径(例如,计算BTA)。
当条件变得可评估时,检查猜测。
如果猜测正确,则继续执行顺序路径,并删除已取路径预处理。
如果猜测不正确,则通过顺序路径中的已执行指令删除所有推测性的并继续“采用的路径”处理。
“总是不采取”方法更喜欢“不采取”路径,因此采取的惩罚(TP)通常高于不采取的惩罚(NTP)。如表所示,对于采用这种固定预测的处理器的惩罚系数。
采用“始终未采用”预测方法的处理器的处罚数字
D:延迟分支
如表所示,大多数使用“未采用”预测方法的处理器执行未采用条件分支而不会受到任何惩罚。相反,在大多数情况下,采用分支会导致1-3个周期的惩罚。在提供延迟分支的处理器(如R4000或Sparc处理器Supersparc和MicroSparc)中,这些惩罚值可以有效地减少一个周期。
另一方面,“未采用”方案比“采用”方案更容易实施。大量流水线微处理器采用这种方案,包括某些较早的处理器,如i486,但也包括许多出现在1990年代初期的处理器。例如SuperSparc、Power1和Power2,以及α21064和α21064A。
“始终采用”方法-“始终采用”方法具有以下典型处理方案如下:
它总是可以将未解析的条件分支猜测为“已采用”。
在预测错误的情况下,保存处理状态(例如,PC),并开始执行所采用的路径。
当条件可用时检查猜测。
如果猜测正确,则继续执行所采取的路径并删除保存的状态。
如果猜测不正确,则删除沿所采用路径的推测处理,并使用保存的处理状态继续执行顺序路径。
采取的惩罚(TP)预计小于未采取分支(NTP)的惩罚。如表中所示,显示了MC68040的这些值。
“始终采用”预测方法的惩罚数字