[理工] 計組 p.526 第五題

看板Grad-ProbAsk作者 (billy)時間8年前 (2017/10/11 17:14), 8年前編輯推噓0(003)
留言3則, 1人參與, 8年前最新討論串1/1
書籍:張凡計組第二版(上) 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

10/11 22:20, 8年前 , 1F
你的想法是正確的,因為老師在正課班也有講到這個問題,
10/11 22:20, 1F

10/11 22:20, 8年前 , 2F
但是原文課本上是直接假設compiler有預知功能,所以老師
10/11 22:20, 2F

10/11 22:20, 8年前 , 3F
說就只能昧著良心以課本文主了。
10/11 22:20, 3F
原來如此!謝謝你!! ※ 編輯: bobsonlin (49.215.224.208), 10/11/2017 22:43:11
文章代碼(AID): #1PtU3hx7 (Grad-ProbAsk)