[理工] forwarding的問題
大家好
想請教一個問題
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
12/15 15:43, 1F
→
12/15 15:43,
7年前
, 2F
12/15 15:43, 2F

推
12/15 15:47,
7年前
, 3F
12/15 15:47, 3F
→
12/15 15:47,
7年前
, 4F
12/15 15:47, 4F
→
12/15 15:47,
7年前
, 5F
12/15 15:47, 5F
→
12/15 15:47,
7年前
, 6F
12/15 15:47, 6F
→
12/15 15:53,
7年前
, 7F
12/15 15:53, 7F
推
12/15 16:17,
7年前
, 8F
12/15 16:17, 8F
→
12/15 16:17,
7年前
, 9F
12/15 16:17, 9F
→
12/15 16:17,
7年前
, 10F
12/15 16:17, 10F
→
12/15 16:22,
7年前
, 11F
12/15 16:22, 11F
→
12/15 16:47,
7年前
, 12F
12/15 16:47, 12F
→
12/15 16:50,
7年前
, 13F
12/15 16:50, 13F
→
12/15 16:51,
7年前
, 14F
12/15 16:51, 14F
→
12/15 16:51,
7年前
, 15F
12/15 16:51, 15F
→
12/15 18:34,
7年前
, 16F
12/15 18:34, 16F
→
12/16 14:16,
7年前
, 17F
12/16 14:16, 17F