你如何衡量分支错误预测的影响?

Mat*_*ldt 9 c++ branch

我目前正在分析二进制搜索的实现.使用一些特殊指令来衡量这一点,我注意到代码有大约20%的错误预测率.我很好奇是否有任何方法可以检查我可能因此丢失多少个周期.这是一个基于MIPS的架构.

jal*_*alf 1

在文档中查找适合您的 CPU 的信息。如果您无法具体找到此信息,则 CPU 管道的长度是一个相当不错的估计。

鉴于它是 MIPS 并且是 300MHz 系统,我猜测它的管道相当短。可能有 4-5 个阶段,因此每次错误预测花费 3-4 个周期的成本可能是合理的猜测。