看板 Grad-ProbAsk 關於我們 聯絡資訊
請教一下...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
nowar100:我記得課本上的只會有RAW 06/15 01:32
king007:WAW不算hazard 血兩次有差嗎= =?? 06/15 07:09
poga:variable-length pipeline就會有差 06/15 07:24
whisp1222:會有 但是一般是不會發生的 因為一般指令都是按順序發動 06/15 21:58
bernachom:請教一下,那以這題來說,是有WAW?但是不會發生? 06/15 22:00
bernachom:所以就當作沒有危障? 可以這樣說嗎? 謝謝 06/15 22:00
whisp1222:抱歉 說到一半斷線 英文似乎叫做out-order issue 06/15 22:05
whisp1222:一般來說答題不用考慮WAW 除非題目要求回答 WAW hazard 06/15 22:06
bernachom:這題沒有要求要答WAW,可是我看書上 06/15 22:09
whisp1222:我說的是WAR 搞亂了 >"< 06/15 22:09
bernachom:寫,I2和I4有危障,使用forwarding可以解決 06/15 22:09
bernachom:我覺得怪的是,WAW也不能用forwarding解決吧? 06/15 22:10
bernachom:還是說,I2和I4根本不是WAW只是一般的危障呢? 06/15 22:11
whisp1222:因為I2還沒把結果算出來前 SW就要取出值 看好喔 是SW 06/15 22:11
bernachom:因為WAW的發生情況我還不是搞得很清楚,麻煩前輩幫忙了 06/15 22:12
whisp1222:I2要把結果放到$S4 但是I4要從$S4取值 06/15 22:12
whisp1222:這提I2 I4應該不是WAW (write after write)但I2是write 06/15 22:13
whisp1222: I4是read 所以不是WAW 06/15 22:14
bernachom:那,像這種程式,用看的看得出來嗎?還是就當做一般的危 06/15 22:17
bernachom:障? 反正MIPS也不會出現?除非有特別說的話? 06/15 22:18
bernachom:我是說I2和I4...謝謝您 06/15 22:20
whisp1222:其實用看方法就是最左邊的register都一樣就是WAW 但是因 06/15 22:22
whisp1222:為這題I4是SW所以不是WAW 06/15 22:22
whisp1222:我記得沒說的話RAW WAW我都會寫耶 但是WAR一般不會發生 06/15 22:23
whisp1222:所以WAR我都是題目要求我才會寫 06/15 22:24
bernachom:請教一下,是除了sw而已嗎?有其它的指令也不會發生嗎? 06/15 22:24
bernachom:如果I4改成add 或sub之類的,就會發生了嗎?謝謝 06/15 22:25
whisp1222:恩恩 I4改成add就會有WAW hazard 06/15 22:27
bernachom:我大概知道了..不好意思再請教一下 06/15 22:28
whisp1222:SW特別是因為他最左邊那個其實是要被讀取的regis 06/15 22:28
bernachom:那是只有sw而已嗎?分支指令是不是也不會?? 06/15 22:28
bernachom:這些指令如果同樣在WAR也不會發生這樣子對嗎?謝謝您 06/15 22:29
whisp1222:我熊熊有點不太確定耶@@ 有請高手解惑 06/15 22:31
bernachom:嗯嗯,謝謝您的幫忙. 06/15 22:33
whisp1222:WAW應該不會 因為他只有讀取 WAR還是有可能 因為有可能 06/15 22:35
whisp1222:其他指令尚未寫入前branch指令就去讀取了 06/15 22:35
bernachom:請教一下,那是說WAR只有sw才不會發生,其它都有可能? 06/15 22:39
bernachom:WAW的話,sw和branch都不會發生? 06/15 22:39
whisp1222:這我就不知道了 我都記相對位置而不是記case 06/15 22:40
bernachom:謝謝您,我原本也是記位置,可是這題...好像就不太管用 06/15 22:42
bernachom:所以想說看有沒有特別的CASE可以記...謝謝前輩幫忙^^ 06/15 22:42
whisp1222:喔喔 原來你也記位置 白記了XD 這提是因為SW的關係啦 06/15 22:46
whisp1222:別想太多 06/15 22:46
bernachom:嗯嗯,這樣我清楚了,只是想說還有沒有其它的指令 06/15 22:54
bernachom:也不會發生. 06/15 22:54
bernachom:謝謝您熱心幫忙^^ 06/15 22:54
bernachom:搞懂了,謝謝^^ 06/15 23:06
uminchu185:我認為針對I2與I4的WAW hazard, 是指$4寫入後, 才能寫 06/17 11:04
uminchu185:入memory, 如果I4比I2先執行的話, memory最後內容會是 06/17 11:06
uminchu185:錯的 06/17 11:06