推 mi981027: 先確認一下 這題應該是RAW的Hazard對嗎@@08/22 19:33
→ mi981027: 只要走正常的MEM Hazard解決方法就行了吧08/22 19:33
→ mi981027: sw跟add差兩個stage, 當他們分別在id/ex, 跟mem/wb時,f08/22 19:33
→ mi981027: orward unit會偵測到RAW Hazard, 判斷式課本有08/22 19:33
→ mi981027: 當sw進到EX後,rt會遇上mux,選擇要流到ALU的值應該是08/22 19:33
→ mi981027: 原本的rt, ex/mem傳回來的值, 或wb傳回來的值08/22 19:33
→ mi981027: 選wb傳來的值就行了08/22 19:33
→ mi981027: 即時他是sw, 這個stage沒有要用也沒差,因為sw的rt在EX08/22 19:33
→ mi981027: 時本來就會另外走一條路送到mem stage08/22 19:33
你的意思是SW的rt的電路圖會進入MUX然後流進mem stage,像下圖這樣對嗎?
https://i.imgur.com/CEDj2cE.jpg
但是原本single cycle機器流進MEMORY WRITE的rt是不會進MUX的,像下圖這樣,我剛剛看p
ipeline的電路圖才發現這裡也有動...
https://i.imgur.com/cfcvEPH.jpg
但是如果電路圖是像第一張圖這樣子,那我進入ALU的這個MUX不是應該選擇常數immediate
的值嗎XD
還是這邊也是前半個cycle多工器選擇immediate,後半個cycle多工器選擇forwarding?
你說的我搞清楚了XD 上面這個小問題感覺不用太糾結就是了
※ 編輯: mistel (223.136.150.143 臺灣), 08/22/2019 20:01:27
※ 編輯: mistel (223.136.150.143 臺灣), 08/22/2019 20:03:25
※ 編輯: mistel (223.136.150.143 臺灣), 08/22/2019 20:03:46
※ 編輯: mistel (223.136.150.143 臺灣), 08/22/2019 20:04:18
推 mi981027: 課本這張圖少畫了一個選imm跟rt的mux了XD 08/22 20:20
→ mi981027: 這張應該只是想介紹forward的概念而已,如果是完整的圖 08/22 20:20
→ mi981027: rt在EX會遇上兩個mux,先選正確的rt, 再選應該要用imm 08/22 20:20
→ mi981027: 還是用rt的值計算 08/22 20:20
→ mi981027: 但不管如何,rt都會另外牽線送到mem,這是不變的 08/22 20:20
→ mistel: 哦哦哦,瞭解了,感謝你! 08/22 20:47