Board logo

主題: [資訊電機] [問題]Data Hazard判斷 [打印本頁]

發表人: GGL    時間: 2011-11-13 06:49 AM     主題: [問題]Data Hazard判斷

我在解Computer Architecture中pipeline的data hazard題目,有一題指令如下:
I1: LD R1, A
I2: LD R2, B
I3: ADD R2, R2, R1
I4: LD R3, C
I5: MUL R3, R2, R3
I6: ST R3, D
I7: ADDI R1, R1, #1
I8: ST R1, A
I9: STOP

5 stages pipeline: IF → ID → EX → ME → WB

要找出所有的data hazard。

解答如下:
I3 w/ I1: RAW – R1
I3 w/ I2: RAW – R2
I3 w/ I2: WAW – R2
I5 w/ I4: RAW – R3
I5 w/ I4: WAW – R3
I5 w/ I2: RAW – R2
I5 w/ I3: RAW – R2
I6 w/ I5: RAW – R3
I6 w/ I4: RAW – R3
I7 w/ I1: RAW – R1
I7 w/ I1: WAW – R1
I7 w/ I3: WAR – R1
I8 w/ I1: RAW – R1
I8 w/ I7: RAW – R1

紅色部份是我的疑問,不知道是不是我的理解有錯,I8在執行的時候,I1不是早就執行完畢,怎麼還會有Read after write hazard的發生?
我的理解是,要發生RAW,不是應該在距離5個指令內(或5 stages)才有可能發生,以這個為例子,I1在第5個cycle time已經跑完,I8是在第8個cycle time才開始執行,彼此應該不會有hazard的發生吧?

不知道是否有人可以幫我解答,感激不盡




歡迎光臨 TWed2k (http://twed2k.org/) Powered by Discuz! 4.1.0