看板 Grad-ProbAsk 關於我們 聯絡資訊
http://i.imgur.com/vRxS5K2.png http://i.imgur.com/Y5qzt2D.png 想請問一下,第(1)小題的解答中 計算total cycle數 49 * (指令個數 + stall個數 + 沖刷個數) 這邊的沖刷個數為何是1? 題目給的條件: branches are resolved in MEM. branch is handled by predicting it has not taken. 我的理解是 在loop過程中 branch都是taken 那應該要等到MEM階段他才會發現猜錯了 這樣不是應該要沖刷前三個指令嗎? 照解答的意思 只沖刷一個指令的話 變成branch在ID階段就知道要不要跳了 這樣又跟題目給的 在MEM階段處理 矛盾... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.143.207.158 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1483979477.A.755.html
jjjjjjjk92: 大膽假設解答錯了@@ 01/10 02:14
Transfat: 這個問題我也問過,後來就... 01/10 20:25
Transfat: 現在還是不太清楚,不過MEM階段決定還是stall 1 cycle吧 01/10 20:25
yupog2003: 我自己的理解是在MEM階段決定如果前面那個是R-type 01/10 20:43
yupog2003: 就不用stall,如果是lw就要stall一個cycle 01/10 20:43
yupog2003: 這題感覺題目出錯的機率比較大,因為在MEM階段決定的話 01/10 20:44
yupog2003: dalayed branch slot要放三個指令耶... 01/10 20:44
yupog2003: 這題如果在MEM階段決定的話我算出來的總cycle數是501 01/10 20:47
yupog2003: 我也沒有很確定,但想看看有沒有人跟我算一樣的 01/10 20:47
yupog2003: 我的想法是在MEM階段決定的話,stall就只剩一開始的 01/10 20:53
yupog2003: load-use,沖刷個數為3 01/10 20:54