Computer science 计算机体系结构分支预测

Computer science 计算机体系结构分支预测,computer-science,cpu-architecture,branch-prediction,Computer Science,Cpu Architecture,Branch Prediction,我完全不理解这个解决方案。有人能帮我吗?和在第一个周期中,您的分支预测值为00 a 00或01假定分支未执行。因此,当进行分支时,我们假设它没有被执行,并开始执行addi。因为d等于0,所以不执行分支的假设是正确的。我们继续使用分支预测器00 对于下一个分支,我们仍然有一个00预测器,并假设未采用。这是正确的,因为只有当d不等于1时,d才等于1 下一步我们回到第一个分支。记住,d现在是1。根据我们的00预测,不应采取分支。但是,当实际计算分支时,我们发现1不是0,因此,该分支被视为预测失误++

我完全不理解这个解决方案。有人能帮我吗?和

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

对于下一个分支,我们仍然有一个00预测器,并假设未采用。这是正确的,因为只有当d不等于1时,d才等于1

下一步我们回到第一个分支。记住,d现在是1。根据我们的00预测,不应采取分支。但是,当实际计算分支时,我们发现1不是0,因此,该分支被视为预测失误++

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

现在我们回到顶部,d值为2,它在代码中的其他地方一定是递增的。我们的分支预测值再次为00,并告诉up不要使用分支。我们接受它是错误的

因为我们使用了分支,所以我们将预测器增加到01。这仍然告诉我们不要拿树枝。这是错误的,因为d现在是2。因此,最后一个分支预测失误


因此,总共有三次预测失误

如果你真的不理解问题或答案,去见你的教授。如果你确实理解了一些东西,你需要解释你所理解的东西,这样答案就可以比教科书小。写一些好问题的描述。