看板 Grad-ProbAsk 關於我們 聯絡資訊
102交大資工 計組25題 http://ppt.cc/QBpD 我簡化題目敘述如下: 假設指令執行時 , beq都預測分支發生 , 但實際執行時分支不發生 在有forwarding機制下 , 討論以下條件下 , 指令片段執行完成之所需時間? lw $s0,0($t0) lw $s1,0($t0) beq $s0,$s1 L1 add $s2,$s0,$s1 (1) 分支是否發生在 MEM 階段被決定 // 張凡ans:(5-1)+4+1+1=10 (2) 分支是否發生在 ID 階段決定 // 張凡ans:(5-1)+4+1+2=11 Q1: 完全不懂延後到MEM才能決定分支 , 可是所花執行週期數比較少 我自己畫的 分支於MEM階段決定的週期圖 黃色是暫停管線等lw做好 綠色是發生前饋後處理錯誤指令的時間 cc1 cc2 cc3 cc4 cc5 cc6 cc7 cc8 cc9 cc10 cc11 cc12 lw $s0,0($t0) IF ID EX MEM WB lw $s1,0($t0) IF ID EX MEM WB beq $s0,$s1 L1 IF ID ID EX MEM WB 猜錯的冤大頭#1 IF IF ID EX NOP 猜錯的冤大頭#2 IF ID NOP 猜錯的冤大頭#3 IF NOP add $s2,$s0,$s1 IF ID EX MEM WB 共花12個cycle ------------------------------------------------------------------------ Q2: 第二小題可以理解 , load-ues碰上beq要停2個cycle,branch猜錯 , 浪費1個cycle 想和板友確認一下11個週期的多重時脈週期管線圖 cc1 cc2 cc3 cc4 cc5 cc6 cc7 cc8 cc9 cc10 cc11 lw $s0,0($t0) IF ID EX MEM WB lw $s1,0($t0) IF ID EX MEM WB beq $s0,$s1 L1 IF ID ID ID EX MEM WB 猜錯的冤大頭 IF IF IF NOP add $s2,$s0,$s1 IF ID EX MEM WB 不曉得第一題有沒有錯誤 @@? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.166.74.110 ※ 文章網址: http://www.ptt.cc/bbs/Grad-ProbAsk/M.1412597348.A.7E5.html
AgentSkye56: 第一題 感覺beq後只需要一個NOP 10/06 23:02
AgentSkye56: 應該只要清掉一個 add吧(不確定對不對XD) 10/06 23:04
AgentSkye56: 應該是移到ID後加上來比較的電路計算耗1個cycle吧?! 10/06 23:11
AgentSkye56: SORRY 我覺得你第一題寫得應該是對的 吧 10/07 20:20
qoojordon: 搜尋中 , 我多做幾年題目再跟你確認 , 或是看板上有沒 10/08 00:04
qoojordon: 有上題庫班的同學囉 QQ 10/08 00:04
happy8155: Q1的add的EX在beq 的MEM後即可(因為在MEM完就知道結果) 10/08 00:08
happy8155: 所以是10 10/08 00:09
happy8155: sorry沒看到預測錯誤xD 10/08 00:11
happy8155: 他應該有假設mem前半讀後半寫之類的東東吧@@ 這樣beq就 10/08 00:15
happy8155: 可以往前拉 我猜是這樣xD 10/08 00:15
今天做到一題類似的 , 101交大計組非選第二題 http://ppt.cc/F9xo 張凡給的答案 (a)5-1+8+1+1+3+3=20 stall cycle:4,7 (b)5-1+8+1+2+1+1+1=18 stall cycle:4,7,8,12 cycle數用我原本的做法跑起來是一樣的 , 我猜可能是102年的解答太趕了有打錯吧 不過stall cycle怪怪的 , 單純和原問題比較執行週期的話 , 大家可以參考這題做比較 ※ 編輯: qoojordon (59.115.64.62), 10/08/2014 21:42:48
HiltonCool: 今天看了一下這題,我也覺得你的答案才是對的 10/16 23:59