【问题标题】:Branch prediction exercise分支预测练习
【发布时间】:2017-03-12 00:15:52
【问题描述】:

假设一台机器有 7 级管道。假设在第六阶段解决了分支。假设 30% 的指令是分支。

3.1 这台机器上每个分支错误预测有多少条浪费工作的指令?

3.2 假设 1000 条指令位于程序的正确路径上,并假设分支预测器的准确率为 10%。在这台机器上获取了多少条指令?

3.3 假设我们修改了机器,使其使用双路径执行(从两个分支路径中的每一个获取相同数量的指令)。假设分支在获取新分支之前已解决。写出在这种情况下将获取多少条指令,作为 N 的函数。(请展示您的工作以获得全部功劳。)

尝试解决方案

3.1) 4 假设在 s6 处绕过

3.2) 30% 分支,预测器精度:10%,1000 Ins,所以有 300 个分支和 700 条普通指令。设 x 为获取的指令总数,所以

$$0.1x=700$$ $$x=7000$$

因此,提取了 7000 个 ins

3.3) 我不确定这个。它以以下方式使我感到困惑,我们如何在不考虑依赖关系的情况下在不同路径上执行指令?在这种情况下,什么是双路径?你能更详细地解释一下这个问题在问什么吗?

【问题讨论】:

  • @Joe C 让我的朋友慢下来。我不指望你做我的功课。相反,我希望得到指导、建议和帮助。你能提供吗?你看到我尝试了解决方案吗?

标签: pipeline cpu-architecture


【解决方案1】:

3.1 5条指令,不可绕过

3.2 假设基础 CPI = 1 CPI = 1 + 30% * 90% * 5 = 2.35 分支会导致 135% 的减速。 在这台机器上获取了 2350 条指令。

【讨论】:

    猜你喜欢
    • 2017-01-14
    • 1970-01-01
    • 2019-01-15
    • 2014-04-25
    • 2014-03-03
    • 2018-07-30
    • 2016-07-01
    • 2011-02-01
    • 2015-11-24
    相关资源
    最近更新 更多