【发布时间】: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 让我的朋友慢下来。我不指望你做我的功课。相反,我希望得到指导、建议和帮助。你能提供吗?你看到我尝试了解决方案吗?