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

作者: mistel (Mistel)   2019-08-22 18:14:37
※ 引述 《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下面的幾個留言也有提到,但都不是很確定的樣子
作者: mi981027 (呱呱竹)   2019-08-22 19:33:00
先確認一下 這題應該是RAW的Hazard對嗎@@只要走正常的MEM Hazard解決方法就行了吧sw跟add差兩個stage, 當他們分別在id/ex, 跟mem/wb時,forward unit會偵測到RAW Hazard, 判斷式課本有當sw進到EX後,rt會遇上mux,選擇要流到ALU的值應該是原本的rt, ex/mem傳回來的值, 或wb傳回來的值選wb傳來的值就行了即時他是sw, 這個stage沒有要用也沒差,因為sw的rt在EX時本來就會另外走一條路送到mem stage課本這張圖少畫了一個選imm跟rt的mux了XD這張應該只是想介紹forward的概念而已,如果是完整的圖rt在EX會遇上兩個mux,先選正確的rt, 再選應該要用imm還是用rt的值計算但不管如何,rt都會另外牽線送到mem,這是不變的
作者: mistel (Mistel)   2019-08-22 20:47:00
哦哦哦,瞭解了,感謝你!

Links booklink

Contact Us: admin [ a t ] ucptt.com