如何确定错误预测惩罚?(CPU pipeline)
How to determine misprediction penalty?(CPU pipeline)
我正在看一本教科书,上面写着:
假设预测错误的概率为p,没有错误预测执行代码的时间为TOK,错误预测惩罚为T国会议员。那么执行代码的平均时间作为p的函数是:
Tavg(p) = (1− p)TOK + p(TOK + TMP)
有点懵,是不是应该是:
Tavg(p) = (1− p)TOK + pTMP
例如,假设p为0.5,当分支预测正确时cpu需要10个时钟周期,当分支预测不正确时cpu需要20个时钟周期,是吗? t 平均时钟周期是 0.5(10+20) = 15 个时钟周期?
TMP 被定义为错误预测惩罚,或者识别处理器采取错误路径并回到正轨执行正确路径的时间量,这确实不包括实际执行正确路径所需的时间,即 TOK。这就是为什么当出现错误预测时,需要 TMP + TOK 而不仅仅是 TMP完成执行。
我正在看一本教科书,上面写着:
假设预测错误的概率为p,没有错误预测执行代码的时间为TOK,错误预测惩罚为T国会议员。那么执行代码的平均时间作为p的函数是:
Tavg(p) = (1− p)TOK + p(TOK + TMP)
有点懵,是不是应该是:
Tavg(p) = (1− p)TOK + pTMP
例如,假设p为0.5,当分支预测正确时cpu需要10个时钟周期,当分支预测不正确时cpu需要20个时钟周期,是吗? t 平均时钟周期是 0.5(10+20) = 15 个时钟周期?
TMP 被定义为错误预测惩罚,或者识别处理器采取错误路径并回到正轨执行正确路径的时间量,这确实不包括实际执行正确路径所需的时间,即 TOK。这就是为什么当出现错误预测时,需要 TMP + TOK 而不仅仅是 TMP完成执行。