RSS   



  可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題 | 純文字版  


 


 
主題: [資訊電機] [問題]Data Hazard判斷   字型大小:||| 
GGL
銀驢友〔中級〕
等級: 13等級: 13等級: 13等級: 13


今日心情

 . 積分: 751
 . 文章: 534
 . 收花: 2477 支
 . 送花: 550 支
 . 比例: 0.22
 . 在線: 12444 小時
 . 瀏覽: 466800 頁
 . 註冊: 6674
 . 失蹤: 1
 . TW
#1 : 2011-11-13 06:49 AM     只看本作者 引言回覆

我在解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的發生吧?

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



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  新增/修改 爬文標記

   



 



所在時區為 GMT+8, 現在時間是 2024-5-19 03:53 PM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.024349 second(s), 8 queries , Qzip disabled