Re: [理工] [計組] stall

看板Grad-ProbAsk作者 (超級喜歡哈孝遠)時間13年前 (2012/12/03 21:25), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串4/4 (看更多)
以下是我元智同學親自去問張凡的說法 (2)b 答案是4 7 8 13 張凡表示:用加的 秒殺 畫圖也可以 先找 那些指令會停 求法 = 第幾個指令 + 2 + 在此指令前stall和flush過的總和 中間的2是因為 data hazard 只會在ID停 所以每個指令開始 到要開始停的cycle為 第幾號指令 +2 2就是IF ID兩個stage 以本題來說 會停的有 2. add $s0,$t0,$t1 4. bne $s0,$s1,$10 7. bne $s2,$s3,10 先看 2. add $s0,$t0,$t1 是第二條指令 2 + 2 + 0 (在這個指令前沒停過) = 4 → C4 再來看到 4. bne $s0,$s1,$10 是第四個指令 4 + 2 + 1 (前面add停過一個) = 7 然後因為bne前一個指令為lw 兩者也存在data dependency 所以bne要停一個 7已經停過了 再停一個 8 所以8也要停 然後看到 7. bne $s2,$s3,10 是第七個指令 7 + 2 + 1 (add停的) + 2 (bne停的) + 1 (前面一個bne猜錯 要flush 所以停一個) = 13 flush跟當下那個bne停不停沒關聯 只跟後面的有關 只要算 "在此指令之前有停多少" 大概是這樣 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.193.186.95

12/04 09:46, , 1F
感謝!!
12/04 09:46, 1F

12/04 19:02, , 2F
感謝!!
12/04 19:02, 2F
文章代碼(AID): #1GlAW_rs (Grad-ProbAsk)
文章代碼(AID): #1GlAW_rs (Grad-ProbAsk)