书籍:张凡计组第二版(上)
p.526 第5题的题目与解答:
https://i.imgur.com/CBGrb6N.jpg
此题先前有人已发问过(#1PbgaFDC 文章),我是想问比较细节的问题。
就是在 predict taken 的情况下,当 Conditional branch 为 untaken 时,此 branc
h指令的下一个指令会是 taken 时的指令吗?我怀疑的原因是因为当 branch 指令在 IF,
ID stage 时,proc
essor 应该还不知道这指令就是 branch 指令,如此一来,接下来应该是取 pc+4 的指令
吧?
但是答案写5个 cycle,代表从 branch 以后都取到错的指令,难道是在 compile 时就决
定好了吗?我记得 software based 的解决方式只有: static, insert nop, delayed b
ranch 三种
所以我想请问是什么样的机制使得在上述的情况下,branch 指令之后会立即取 branch
taken 的那个指令
谢谢!!