[理工] 計組 Data Hazard

看板Grad-ProbAsk作者 (oldelette)時間5年前 (2018/11/14 11:04), 5年前編輯推噓9(9019)
留言28則, 6人參與, 5年前最新討論串1/1
請問這題的hazard 為什麼(D&O) (O&B)要使用Hazard detection unit 不是load 指令才會使用嗎 還有解答最下面那行 它說不能Forward 任何資料到ID stage 是它少拉了哪條線? 看不太出來 https://imgur.com/eiEIJ3l
https://imgur.com/PIsR1Oo
感謝大家了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.239.41.247 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1542164650.A.242.html ※ 編輯: oldelette (36.239.41.247), 11/14/2018 11:07:06

11/14 12:37, 5年前 , 1F
R tpye接beq也要hazard detection unit偵測做stall 因為be
11/14 12:37, 1F

11/14 12:37, 5年前 , 2F
q在第二階段決定要不要跳 等前面ori算出來 beq也用錯的暫
11/14 12:37, 2F

11/14 12:37, 5年前 , 3F
存器比較出結果了 但是那個結果沒辦法forward到Id階段給be
11/14 12:37, 3F

11/14 12:37, 5年前 , 4F
q 也就是說即使stall了 下一cycle ori跑到mem beq在Id仍然
11/14 12:37, 4F

11/14 12:37, 5年前 , 5F
無法取得ori運算的結果(如果有forwarding 他要畫一條從Ex
11/14 12:37, 5F

11/14 12:37, 5年前 , 6F
/Mem到ID階段那個給beq用的比較器的datapath)
11/14 12:37, 6F

11/14 12:38, 5年前 , 7F
D&O為什麼要 等高手解答...
11/14 12:38, 7F

11/14 14:58, 5年前 , 8F

11/14 14:58, 5年前 , 9F
我版本的解答長這樣耶 是因爲mem前寫後讀嗎
11/14 14:58, 9F

11/14 15:28, 5年前 , 10F
PIPELINE偵測到LO和OB兩個HARZARD並STALL後,應該就偵測
11/14 15:28, 10F

11/14 15:28, 5年前 , 11F
不到LB的吧,指令間隔已經大於2了,正確解答應該是哪個?
11/14 15:28, 11F

11/14 16:23, 5年前 , 12F
如果偵測hazard的是硬體不是compiler插nop,在ID解碼後才
11/14 16:23, 12F

11/14 16:23, 5年前 , 13F
會stall,這時候之後的指令已經進來了hazard detection
11/14 16:23, 13F

11/14 16:23, 5年前 , 14F
還是會判斷有hazard
11/14 16:23, 14F

11/14 16:26, 5年前 , 15F
但stall是把control的9個bit清成0,指令的32個bit還是在
11/14 16:26, 15F

11/14 16:26, 5年前 , 16F
,而forward unit是看指令的32個bit判斷要不要forwarding
11/14 16:26, 16F

11/14 16:26, 5年前 , 17F
的,應該還是會forwarding只是control都是0所以forwardin
11/14 16:26, 17F

11/14 16:26, 5年前 , 18F
g不影響(?
11/14 16:26, 18F

11/14 16:26, 5年前 , 19F
不太確定是不是這樣因為解答也沒寫有forwarding ><
11/14 16:26, 19F

11/14 17:52, 5年前 , 20F

11/14 17:54, 5年前 , 21F
我的理解是beq在ID時lw已經在WB了所以偵測不到,我還是
11/14 17:54, 21F

11/14 17:54, 5年前 , 22F
不理解lw跟beq會被偵測到的原因,請大神幫忙糾正
11/14 17:54, 22F

11/14 19:15, 5年前 , 23F
所以說答案錯嗎 沒有DO跟LB 圖的解答來自張凡題庫書
11/14 19:15, 23F

11/14 20:58, 5年前 , 24F
借問一下 他remark所說的那句話是因為他已經是改良版的b
11/14 20:58, 24F

11/14 20:58, 5年前 , 25F
ranch因此需在ID階段算出branch target addr. 所以hazar
11/14 20:58, 25F

11/14 20:58, 5年前 , 26F
d-detect-unit才直接做nop而不是用forwarding來解決嗎
11/14 20:58, 26F

11/15 19:00, 5年前 , 27F
會不會是因為原本有hazard只是剛好被另外一組load use解
11/15 19:00, 27F

11/15 19:00, 5年前 , 28F
決掉了才這樣寫
11/15 19:00, 28F
文章代碼(AID): #1Rwv2g92 (Grad-ProbAsk)