Re: [理工] 計組-WAW危障

看板Grad-ProbAsk作者 (Mistel)時間6年前 (2019/08/22 18:14), 6年前編輯推噓2(2013)
留言15則, 2人參與, 6年前最新討論串2/2 (看更多)
※ 引述 《bernachom (Terry)》 之銘言: :   :   :   : 請教一下...WAW只會發生在MIPS和PENTIUM的超管線裡嗎? :   :   :   : 有一個一小段程式是 :   : lw $s0,12($$1) :   : add $s4,$s0,$s2 :   : addi $s2,$s0,4 :   : sw $s4,12($s1) :   : add $s2,$s3,$s1 :   :   : 我的問題是,I2和I4會有WAW嗎?? :   : 我不太清楚,在什麼樣的情況下才會有.. :   : 或是有MIPS的例子可以看嗎? :   : 謝謝幫忙 :   我又來挖古文了...... 我的問題跟這篇很類似 先拿他的code當範例 lw $s0,12($$1)   add $s4,$s0,$s2   addi $s2,$s0,4   sw $s4,12($s1)   add $s2,$s3,$s1 I2跟I4是不是WAW HAZARD,這個疑惑點在看完原留言串後解決了, 我的問題是為什麼I2跟I4可以透過forward ing解決呢? forwarding不是確保緊接在後面的指令在EX階段上的兩個運算元是正確的值嗎? 但是I4理應要被更新的$s4並不是運算元,而是在MEM才能用到的吧? 也就是說我讓I2做forwarding其實並沒有更新到$S4不是嗎? 原po下面的幾個留言也有提到,但都不是很確定的樣子 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.136.150.143 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1566468879.A.EE5.html

08/22 19:33, 6年前 , 1F
先確認一下 這題應該是RAW的Hazard對嗎@@
08/22 19:33, 1F

08/22 19:33, 6年前 , 2F
只要走正常的MEM Hazard解決方法就行了吧
08/22 19:33, 2F

08/22 19:33, 6年前 , 3F
sw跟add差兩個stage, 當他們分別在id/ex, 跟mem/wb時,f
08/22 19:33, 3F

08/22 19:33, 6年前 , 4F
orward unit會偵測到RAW Hazard, 判斷式課本有
08/22 19:33, 4F

08/22 19:33, 6年前 , 5F
當sw進到EX後,rt會遇上mux,選擇要流到ALU的值應該是
08/22 19:33, 5F

08/22 19:33, 6年前 , 6F
原本的rt, ex/mem傳回來的值, 或wb傳回來的值
08/22 19:33, 6F

08/22 19:33, 6年前 , 7F
選wb傳來的值就行了
08/22 19:33, 7F

08/22 19:33, 6年前 , 8F
即時他是sw, 這個stage沒有要用也沒差,因為sw的rt在EX
08/22 19:33, 8F

08/22 19:33, 6年前 , 9F
時本來就會另外走一條路送到mem stage
08/22 19:33, 9F
你的意思是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

08/22 20:20, 6年前 , 10F
課本這張圖少畫了一個選imm跟rt的mux了XD
08/22 20:20, 10F

08/22 20:20, 6年前 , 11F
這張應該只是想介紹forward的概念而已,如果是完整的圖
08/22 20:20, 11F

08/22 20:20, 6年前 , 12F
rt在EX會遇上兩個mux,先選正確的rt, 再選應該要用imm
08/22 20:20, 12F

08/22 20:20, 6年前 , 13F
還是用rt的值計算
08/22 20:20, 13F

08/22 20:20, 6年前 , 14F
但不管如何,rt都會另外牽線送到mem,這是不變的
08/22 20:20, 14F

08/22 20:47, 6年前 , 15F
哦哦哦,瞭解了,感謝你!
08/22 20:47, 15F
文章代碼(AID): #1TNciFxb (Grad-ProbAsk)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1TNciFxb (Grad-ProbAsk)