[理工] 計組 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