作者Karena1983 (@ __@")
看板Grad-ProbAsk
標題[理工] [計組]-Pipeline (hazard - WAR)
時間Fri Feb 19 11:48:40 2010
WAR - Write After Read 的觀念我還是搞不太懂,希望有高手能指教
例如,指令1 & 指令2 的write destination一樣會發生WAW
那在什麼情況下會發生WAR的hazard呢?
是在上一個指令的哪個stage和目前指令的哪個stage產生的?
舉個參考書上的例子來說:
5-stage 的pipeline
LD AX, M[100]
ADD AX, BX //AX發生RAW, WAW
MOV CX, 1
ST M[100], AX //AX發生RAW,
M[100]發生WAR
ST M[200], BX
ADD CX, M[200] //CX發生RAW, WAW, M[200]發生RAW
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 221.169.157.105
推 soldier723:右上 左下 02/19 14:12
推 willow02:這是不是有問題阿? 在MIPS裡不會發生WAR 02/19 22:40
推 aassxxzz:通常是不會,但若是其他ISA,或是採用VLIW或superscalar 02/19 23:37
→ aassxxzz:是有可能發生的(後者是因為一clock可同時執行多指令) 02/19 23:38
推 willow02:是阿 要看各STAGE做什麼事情才知道 02/20 23:40