作者moneylon (bencool)
看板Grad-ProbAsk
標題[理工] 100中央 計組 資料危障
時間Thu Jan 4 18:04:20 2018
想請問一下這題的b.c小題
https://i.imgur.com/I4xbn9s.jpg
答案
https://i.imgur.com/3V0gwyk.jpg
b.為什麼(O.D)跟(L.B)跟(D.B)的hazard可以只靠Hazard detection unit 就能解決,不需
要用到forwarding unit?
c.題目說這個線路有提供stall跟forwarding,所以我只有在load use時stall一個clock,
B行的branch 在ID階段決定要跳,所以停一個clock,請問這樣的想法錯在什麼地方
先感謝各位大大幫忙!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 203.187.53.86
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Grad-ProbAsk/M.1515060263.A.64F.html
1F:推 q1qip123: 因為hazard unit是在id跟ex stage偵測,foward是拿ex跟m 01/04 19:33
2F:→ q1qip123: em/wb比 01/04 19:33
3F:→ q1qip123: 然後他沒有畫從mem牽回I'd stage的線 所以才要停兩個吧 01/04 19:34
4F:推 NCTUFAIWEN: L,D有load use,所以stall一個cycle之後就不需要forwd 01/04 19:36
5F:→ NCTUFAIWEN: 建議把整個圖畫出來吧 這樣直接看很難看懂 才15個 01/04 19:37
6F:→ NCTUFAIWEN: cycle而已 不難畫 01/04 19:37
7F:→ NCTUFAIWEN: L,B也一樣 因為beq要在ID判斷 所以一定會停一cycle 01/04 19:39
8F:→ NCTUFAIWEN: 在pipeline後面的指令就利用這個stall存回去惹 01/04 19:40
9F:→ NCTUFAIWEN: 拍謝 眼殘 是D.B才對 and跟beq 01/04 19:45
11F:→ moneylon: 我缺少了哪兩個cycle QQ 01/04 20:32
12F:→ moneylon: 喔喔喔我懂了 因為沒有辦法從ex/mem前饋到Id 所以要stal 01/04 20:39
13F:→ moneylon: l到上一行的add已經WB 是這樣吧 01/04 20:39
14F:→ moneylon: and已經WB(修正 01/04 20:40
15F:推 q1qip123: 對 然後beq是stall在id 不是IF,因為他要需要解瑪才能知 01/04 21:05
16F:→ q1qip123: 道是beq 01/04 21:05
17F:→ q1qip123: 啊我看錯了 不用理我 01/04 21:12
18F:推 NCTUFAIWEN: and的alu算完才會給beq 所以中間要一個stall 01/04 21:30
19F:→ NCTUFAIWEN: 另外一個我找不到== 感覺14個cycle而已啊 01/04 21:38
20F:→ NCTUFAIWEN: 看起來是因為mem沒有前饋給ID 所以要等一個cycle 01/04 21:41
21F:→ NCTUFAIWEN: 要等lw的write back才可以動beq 01/04 21:42
22F:→ NCTUFAIWEN: 那就15個 01/04 21:42