在计算机体系结构中,分支处理的性能度量是什么?
它可以评估和比较不同的分支处理技术,它可能需要一个性能度量。让我们考虑在一个四级流水线中执行分支指令,如图所示。如果分支被直接处理,分支目标地址 (BTA) 将在周期 ti+3 计算。
然后可以在周期 ti+4 中获取分支目标指令。因此,与获取分支指令相比,分支目标指令的获取延迟了 3 个周期。这意味着与顺序处理相比,存在 2 个周期的开销。
某些典型情况下分支处理的性能。让我们用 Pt 和 Pnt 表示“已取”和“未取”分支的开销,并用 ft 和 fnt 表示“已取”和“未取”分支的相应概率(频率)。然后分支处理的有效开销 P 为
P = ft ∗ Pt+ fnt ∗ Pnt
例如,它可以计算 80386 和 i486 处理器的有效开销。对于 80386,已取和未取开销的值分别为 8 和 2 个周期。当假设已取分支的概率为 0.75 (fi=0.75) 时,可以得到 80386 中分支的有效开销 -
P80386=0.75 ∗ 8+0.25 ∗ 2=6.5 cycles
这意味着 80386 平均每个分支需要 6.5 个额外的周期。相比之下,i486 具有显着增强的分支机制。其有效分支开销为
Pi486=0.75 ∗ 2+0.25 ∗ 0=1.5
这大大低于 80386 的开销。
另一种典型情况是分支处理使用分支预测。在这种情况下,通过猜测相关分支是否会被取来对每个分支进行预测。让我们考虑以下符号 -
Ptc - 正确预测的已取分支的开销
Ptm - 预测错误的已取分支的开销
Pntc - 正确预测的未取分支的开销
Pntm - 预测错误的未取分支的开销
ftc - 正确预测的已取分支的概率
ftm - 预测错误的已取分支的概率
fntc - 正确预测的未取分支的概率
fntm - 预测错误的未取分支的概率
然后,分支处理的有效开销可以表示为 -
P=ftc∗Ptc+ftm∗Ptm+fntc∗Pntc+fntm∗Pntm
可以假设一个简单的案例,其中正确预测的已取和未取分支的开销以及预测错误的已取和未取分支的开销相等。也就是说
Ptc=Pntcand Ptm=Pntm
此外,让我们将正确预测的分支的总概率指定为 fc,将预测错误的分支的总概率指定为 fm,即
fc=ftc+fntcand fm=ftm+fntm
在这种简单的情况下,有效分支开销可以计算为
P=fc∗Pc+fm∗Pm
让我们考虑使用分支预测的奔腾处理器。在这种情况下,正确预测的分支的开销为 0 个周期,而预测错误的分支的开销则为 3 个周期(如果分支由 U 管道处理)或 4 个周期(如果分支在 V 管道中执行)。
为了计算,让我们假设平均预测错误开销为 3.5。当假设分支预测准确率为 0.9(即,fc=0.9 和 fm=0.1)时,我们得到该处理器的有效分支开销
PPentium=0.9∗0+0.1∗3.5=0.35
也就是说,奔腾平均每个分支只需要 0.35 个额外的周期。