[理工] 计组 p.526 第五题

楼主: bobsonlin (billy)   2017-10-11 17:14:17
书籍:张凡计组第二版(上)
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 的那个指令
谢谢!!
作者: awilliea (willie)   2017-10-11 22:20:00
你的想法是正确的,因为老师在正课班也有讲到这个问题,但是原文课本上是直接假设compiler有预知功能,所以老师说就只能昧著良心以课本文主了。

Links booklink

Contact Us: admin [ a t ] ucptt.com