[理工] 計組-WAW危障

看板Grad-ProbAsk作者 (Terry)時間16年前 (2009/06/15 00:18), 編輯推噓10(10040)
留言50則, 6人參與, 最新討論串1/2 (看更多)
請教一下...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的例子可以看嗎? 謝謝幫忙 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.224.202.245

06/15 01:32, , 1F
我記得課本上的只會有RAW
06/15 01:32, 1F

06/15 07:09, , 2F
WAW不算hazard 血兩次有差嗎= =??
06/15 07:09, 2F

06/15 07:24, , 3F
variable-length pipeline就會有差
06/15 07:24, 3F

06/15 21:58, , 4F
會有 但是一般是不會發生的 因為一般指令都是按順序發動
06/15 21:58, 4F

06/15 22:00, , 5F
請教一下,那以這題來說,是有WAW?但是不會發生?
06/15 22:00, 5F

06/15 22:00, , 6F
所以就當作沒有危障? 可以這樣說嗎? 謝謝
06/15 22:00, 6F

06/15 22:05, , 7F
抱歉 說到一半斷線 英文似乎叫做out-order issue
06/15 22:05, 7F

06/15 22:06, , 8F
一般來說答題不用考慮WAW 除非題目要求回答 WAW hazard
06/15 22:06, 8F

06/15 22:09, , 9F
這題沒有要求要答WAW,可是我看書上
06/15 22:09, 9F

06/15 22:09, , 10F
我說的是WAR 搞亂了 >"<
06/15 22:09, 10F

06/15 22:09, , 11F
寫,I2和I4有危障,使用forwarding可以解決
06/15 22:09, 11F

06/15 22:10, , 12F
我覺得怪的是,WAW也不能用forwarding解決吧?
06/15 22:10, 12F

06/15 22:11, , 13F
還是說,I2和I4根本不是WAW只是一般的危障呢?
06/15 22:11, 13F

06/15 22:11, , 14F
因為I2還沒把結果算出來前 SW就要取出值 看好喔 是SW
06/15 22:11, 14F

06/15 22:12, , 15F
因為WAW的發生情況我還不是搞得很清楚,麻煩前輩幫忙了
06/15 22:12, 15F

06/15 22:12, , 16F
I2要把結果放到$S4 但是I4要從$S4取值
06/15 22:12, 16F

06/15 22:13, , 17F
這提I2 I4應該不是WAW (write after write)但I2是write
06/15 22:13, 17F

06/15 22:14, , 18F
I4是read 所以不是WAW
06/15 22:14, 18F

06/15 22:17, , 19F
那,像這種程式,用看的看得出來嗎?還是就當做一般的危
06/15 22:17, 19F

06/15 22:18, , 20F
障? 反正MIPS也不會出現?除非有特別說的話?
06/15 22:18, 20F

06/15 22:20, , 21F
我是說I2和I4...謝謝您
06/15 22:20, 21F

06/15 22:22, , 22F
其實用看方法就是最左邊的register都一樣就是WAW 但是因
06/15 22:22, 22F

06/15 22:22, , 23F
為這題I4是SW所以不是WAW
06/15 22:22, 23F

06/15 22:23, , 24F
我記得沒說的話RAW WAW我都會寫耶 但是WAR一般不會發生
06/15 22:23, 24F

06/15 22:24, , 25F
所以WAR我都是題目要求我才會寫
06/15 22:24, 25F

06/15 22:24, , 26F
請教一下,是除了sw而已嗎?有其它的指令也不會發生嗎?
06/15 22:24, 26F

06/15 22:25, , 27F
如果I4改成add 或sub之類的,就會發生了嗎?謝謝
06/15 22:25, 27F

06/15 22:27, , 28F
恩恩 I4改成add就會有WAW hazard
06/15 22:27, 28F

06/15 22:28, , 29F
我大概知道了..不好意思再請教一下
06/15 22:28, 29F

06/15 22:28, , 30F
SW特別是因為他最左邊那個其實是要被讀取的regis
06/15 22:28, 30F

06/15 22:28, , 31F
那是只有sw而已嗎?分支指令是不是也不會??
06/15 22:28, 31F

06/15 22:29, , 32F
這些指令如果同樣在WAR也不會發生這樣子對嗎?謝謝您
06/15 22:29, 32F

06/15 22:31, , 33F
我熊熊有點不太確定耶@@ 有請高手解惑
06/15 22:31, 33F

06/15 22:33, , 34F
嗯嗯,謝謝您的幫忙.
06/15 22:33, 34F

06/15 22:35, , 35F
WAW應該不會 因為他只有讀取 WAR還是有可能 因為有可能
06/15 22:35, 35F

06/15 22:35, , 36F
其他指令尚未寫入前branch指令就去讀取了
06/15 22:35, 36F

06/15 22:39, , 37F
請教一下,那是說WAR只有sw才不會發生,其它都有可能?
06/15 22:39, 37F

06/15 22:39, , 38F
WAW的話,sw和branch都不會發生?
06/15 22:39, 38F

06/15 22:40, , 39F
這我就不知道了 我都記相對位置而不是記case
06/15 22:40, 39F

06/15 22:42, , 40F
謝謝您,我原本也是記位置,可是這題...好像就不太管用
06/15 22:42, 40F

06/15 22:42, , 41F
所以想說看有沒有特別的CASE可以記...謝謝前輩幫忙^^
06/15 22:42, 41F

06/15 22:46, , 42F
喔喔 原來你也記位置 白記了XD 這提是因為SW的關係啦
06/15 22:46, 42F

06/15 22:46, , 43F
別想太多
06/15 22:46, 43F

06/15 22:54, , 44F
嗯嗯,這樣我清楚了,只是想說還有沒有其它的指令
06/15 22:54, 44F

06/15 22:54, , 45F
也不會發生.
06/15 22:54, 45F

06/15 22:54, , 46F
謝謝您熱心幫忙^^
06/15 22:54, 46F

06/15 23:06, , 47F
搞懂了,謝謝^^
06/15 23:06, 47F

06/17 11:04, , 48F
我認為針對I2與I4的WAW hazard, 是指$4寫入後, 才能寫
06/17 11:04, 48F

06/17 11:06, , 49F
入memory, 如果I4比I2先執行的話, memory最後內容會是
06/17 11:06, 49F

06/17 11:06, , 50F
錯的
06/17 11:06, 50F
文章代碼(AID): #1ADIAvlm (Grad-ProbAsk)
討論串 (同標題文章)
文章代碼(AID): #1ADIAvlm (Grad-ProbAsk)