看板 Grad-ProbAsk 關於我們 聯絡資訊
書籍:張凡計組第二版(上) 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 的那個指令 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.215.224.208 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1507713259.A.EC7.html ※ 編輯: bobsonlin (49.215.224.208), 10/11/2017 17:17:31 ※ 編輯: bobsonlin (49.215.224.208), 10/11/2017 17:18:33 ※ 編輯: bobsonlin (49.215.224.208), 10/11/2017 17:20:16 ※ 編輯: bobsonlin (49.215.224.208), 10/11/2017 17:20:40 ※ 編輯: bobsonlin (49.215.224.208), 10/11/2017 17:21:11 ※ 編輯: bobsonlin (49.215.224.208), 10/11/2017 21:57:08 ※ 編輯: bobsonlin (49.215.224.208), 10/11/2017 22:03:09
awilliea: 你的想法是正確的,因為老師在正課班也有講到這個問題,10/11 22:20
awilliea: 但是原文課本上是直接假設compiler有預知功能,所以老師10/11 22:20
awilliea: 說就只能昧著良心以課本文主了。10/11 22:20
原來如此!謝謝你!! ※ 編輯: bobsonlin (49.215.224.208), 10/11/2017 22:43:11