【问题标题】:Computer Architecture- Branch Prediction计算机架构-分支预测
【发布时间】:2018-09-29 07:38:49
【问题描述】:

我根本不明白这个解决方案。有人可以帮我吗? This is the questionHere is the answer

【问题讨论】:

  • 如果您对问题或答案一无所知,请去看您的教授。如果您确实了解某些内容,则需要解释您所了解的内容,以便答案比教科书还要小。 How to Ask 有一些写好问题的描述。

标签: computer-science cpu-architecture branch-prediction


【解决方案1】:

在第一个周期中,您的分支预测器为 00(00 或 01 假定分支未采用)。因此,当分支时,我们假设它没有被占用并开始执行 addi。因为 d 等于 0,所以不采取分支的假设是正确的。我们继续使用分支预测器 00。

对于出现的下一个分支,我们仍然有一个 00 预测器并假设未采用。这是正确的,因为 d 等于 1(如果 d 不等于 1,则仅分支)。

接下来我们回到第一个分支。请记住,d 现在是 1。根据我们的 00 预测器,不应该采用分支。但是,当实际计算分支时,我们发现 1 不是 0,因此采用了分支(错误预测++)。

因为分支被采用,所以 d 仍然是 1。因为最后一个分支被采用,我们的预测器是 01,它仍然告诉我们预测未采用的分支。因为 d 等于 1,所以这个预测是正确的。

我们现在回到顶部,d 值为 2(它必须在代码的其他地方增加)。我们的分支预测器再次为 00,并告诉我们不要选择分支。拿走就错了。

因为我们采用了分支,所以我们将预测变量增加到 01。这仍然告诉我们不要采用分支。这是错误的,因为 d 现在是 2。因此,最终分支被错误预测。

因此,共有三个错误预测。

【讨论】:

    猜你喜欢
    • 2019-05-10
    • 2019-01-23
    • 1970-01-01
    • 2023-04-01
    • 2020-01-13
    • 1970-01-01
    • 1970-01-01
    • 2014-04-25
    • 2014-03-03
    相关资源
    最近更新 更多