有一些关于分支预测的问题,我无法自信地弄清楚。假设我必须使用静态分支预测器。
- 管道的哪个阶段应该进行分支预测?
- 如何知道预测出错了?数据路径是如何知道错误预测发生的?
- 如果知道发生了错误预测,那么它如何发送信号来接收未被捕获的分支?
- 在出错之后,我不得不接受之前未提及的地址。同时,如果发生了一些内存写入或寄存器写入怎么办?如何防止它发生?
醇>
即使建议使用其中包含数据路径的正确引用,它也会非常有用。提前谢谢。
答案 0 :(得分:2)
我想有许多不同的机制是可能的,但有一些快速的答案: