[理工] forwarding的問題

看板Grad-ProbAsk作者 (94不愛喝水)時間7年前 (2018/12/15 15:20), 7年前編輯推噓3(3014)
留言17則, 3人參與, 7年前最新討論串1/1
大家好 想請教一個問題 forwarding的偵測碼中有分為Ex hazard跟mem hazard (分別是看執行指令與下一、下下一指令有沒有hazard) EX Hazard if (EX/MEM.RegWrite and (EX/MEM.RegisterRd ≠ 0) and (EX/MEM.RegisterRd == ID/EX.RegisterRs)) ForwardA = 10 if (EX/MEM.RegWrite and (EX/MEM.RegisterRd ≠ 0) and (EX/MEM.RegisterRd == ID/EX.RegisterRt)) ForwardB = 10 MEM Hazard if (MEM/WB.RegWrite and (MEM/WB.RegisterRd ≠ 0) and (MEM/WB.RegisterRd == ID/EX.RegisterRs)) and not(Ex Hazard)ForwardA = 01 if (MEM/WB.RegWrite and (MEM/WB.RegisterRd ≠ 0) and (MEM/WB.RegisterRd == ID/EX.RegisterRt)) and not(Ex Hazard) ForwardB = 01 ------------------- 以下是我的認知: mem hazard的偵測碼的成立條件必須要not (Ex hazard) 也就是兩個不會同時發生? 那今天有沒有可能有這種情況: and $3 $3 $6 IF ID EXE MEM WB or $0 $7 $3 IF ID EXE MEM WB xor #7 $3 $0 IF ID EXE MEM WB 這樣and指令跟xor指令的$3要前饋 但同時or指令跟xor指令的$0要前饋? 假設就照上述偵測碼 那這樣fowfardingA跟fowardingB要分別設什麼? (計組好難RRRRRR) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.115.196.132 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1544858440.A.0C7.html ※ 編輯: wacheck (59.115.196.132), 12/15/2018 15:37:31

12/15 15:43, 7年前 , 1F
如果你的$0不是0號暫存器就兩條都會forwarding
12/15 15:43, 1F

12/15 15:43, 7年前 , 2F

12/15 15:47, 7年前 , 3F
指令三在EX stage會用到$3跟$0的結果
12/15 15:47, 3F

12/15 15:47, 7年前 , 4F
但指令1, 2這時還沒寫回暫存器所以需要前饋
12/15 15:47, 4F

12/15 15:47, 7年前 , 5F
紅色那條是來自指令1的前饋$3給rs用
12/15 15:47, 5F

12/15 15:47, 7年前 , 6F
藍色那條是來自指令2的前饋$0給rt用
12/15 15:47, 6F

12/15 15:53, 7年前 , 7F
看起來應該應該要設成forwardingB=10, forwardingA=01
12/15 15:53, 7F

12/15 16:17, 7年前 , 8F
在C.C.(clock cycle) 3時 forwardA=00 forwardB=10 此時
12/15 16:17, 8F

12/15 16:17, 7年前 , 9F
and的$3傳給or的$3 在C.C.4時 forwardA=01 forwardB=10
12/15 16:17, 9F

12/15 16:17, 7年前 , 10F
此時and的$3傳給or的$3且or的$0傳給xor的$0
12/15 16:17, 10F

12/15 16:22, 7年前 , 11F
然後你的例子舉的不太好 因為$0不會做forwarding
12/15 16:22, 11F

12/15 16:47, 7年前 , 12F
對耶$0是存0 ORZ 我想確認一下not那個條件是在何種情形
12/15 16:47, 12F

12/15 16:50, 7年前 , 13F
像(1)and $1,$2,$3 (2)and $1,$4,$5 (3)and $6,$1,$6
12/15 16:50, 13F

12/15 16:51, 7年前 , 14F
這種看似(1),(3)指令有相依但實際上是2,3有相依 這樣的
12/15 16:51, 14F

12/15 16:51, 7年前 , 15F
情形才需要加not條件嗎?
12/15 16:51, 15F

12/15 18:34, 7年前 , 16F
Yes
12/15 18:34, 16F

12/16 14:16, 7年前 , 17F
感謝多次救援
12/16 14:16, 17F
文章代碼(AID): #1S5Aj837 (Grad-ProbAsk)