看板 Grad-ProbAsk 關於我們 聯絡資訊
※ 引述《mqazz1 (無法顯示)》之銘言: : 1 add $s1, $2, $3 : 2 sw $s2, 0($1) : 3 lw $1, 4($2) : 4 add $2, $2, $1 : 請問為什麼WAR dependence有(2,4)? : sw不是store word嗎 這樣會read到$s2嗎? : 謝謝 (2,4)真的有WAR嗎?XD 先講一下我認為的WAR是什麼意思: WAR是指write after read,以字面上來說,這並不會有什麼問題, #1 但是套到multiple issue時,因為指令順序可能打亂,就會造成原本 的WAR變成RAW,以致出錯,所以WAR是指尚未打亂前的型式,請勿搞混了! #2 如上所示 原本的 1, 2, 3, 4的順序變成 1, 4, 2, 3 1 add $s1, $2, $3 4 add $2, $2, $1 2 sw $s2, 0($1) 3 lw $1, 4($2) 但是這樣我也看不出哪裡有WAR耶XD 我怎麼覺得是答案錯了… #1 最常見的RAW(read after write),會因為pipeline特性,而必須stall或forwarding #2 請不要以WAR的指令順序去想為何有hazard,很明顯地,WAR是用來描敘打亂前的型式 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.38.163.226
mqazz1:請問這樣如果題目說要找hazard 就只需考慮RAW的情況嗎? 07/19 19:41
privatewind:應該說 RAW會造成data hazard 07/19 23:03
da0910cc:原來WAR不會有hazard 我還想說1 4的$2明明沒hazard 囧 07/20 17:02