[資工]交大102計算機系統第25題(計組/pipeline)
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
推
10/06 23:02, , 1F
10/06 23:02, 1F
→
10/06 23:04, , 2F
10/06 23:04, 2F
推
10/06 23:11, , 3F
10/06 23:11, 3F
→
10/07 20:20, , 4F
10/07 20:20, 4F
→
10/08 00:04, , 5F
10/08 00:04, 5F
→
10/08 00:04, , 6F
10/08 00:04, 6F
推
10/08 00:08, , 7F
10/08 00:08, 7F
→
10/08 00:09, , 8F
10/08 00:09, 8F
→
10/08 00:11, , 9F
10/08 00:11, 9F
推
10/08 00:15, , 10F
10/08 00:15, 10F
→
10/08 00:15, , 11F
10/08 00:15, 11F
今天做到一題類似的 , 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
推
10/16 23:59, , 12F
10/16 23:59, 12F