首页 > 解决方案 > 如何确定误判惩罚?(CPU流水线)

问题描述

我正在读一本教科书,上面写着:

假设错误预测的概率是 p,执行代码没有错误预测的时间是 T OK并且错误预测的惩罚是 T MP。那么执行代码的平均时间作为 p 的函数是:

T avg (p) = (1− p)T OK + p(T OK + T MP )

我有点困惑,不应该是:

T avg (p) = (1− p)T OK + pT MP

例如,假设p为0.5,当分支预测正确时cpu需要10个时钟周期,而当分支预测不正确时cpu需要20个时钟周期,平均时钟周期不是0.5(10+20)= 15 个时钟周期?

标签: assemblyx86-64cpucpu-architectureinstruction-set

解决方案


T MP定义为错误预测惩罚,或识别处理器采取错误路径并回到执行正确路径的轨道的时间量,其中不包括实际执行正确路径所需的时间,即 T好的。这就是为什么当出现错误预测时,需要 T MP + T OK而不仅仅是 T MP来完成执行。


推荐阅读