看板 Grad-ProbAsk 關於我們 聯絡資訊
※ 引述《ceo890710 (Drinking)》之銘言: If the data requested by a load instruction has not yet become available when it is requested, the load-use data hazard occurs. 這題答案是給false 我想問為什麼? 看怎麼看都覺得是true= =" 這人覺得是英文問題,感覺是陷阱 不過我不敢掛保證,我英文很爛 再念一次題目 If the data requested by a load instruction has not yet become available when it is requested, the load-use data hazard occurs. 如果當load指令要求data時,data尚未變得可用,則發生load-use data hazard。 現在發現嗎?? 其實他只是一般的 data hazard,只是剛好是load 指令而已 所以並不屬於load-use data hazard (load-use data hazard 不需要我多講吧...) 希望我沒有講錯,因為英文真的沒有把握,希望有人告訴我有沒有講錯 另外,我想問stall和nop的差別 stall是在stage中插入bubble然後在清成nop的指令吧(!?) 可是我看到一個題目說假使沒有插入bubble的話 compiler會做什麼動作來防止hazard,答案是說在指令中插入NOP 這邊讓我有點搞混..還是他們是一樣的東西? 那為什麼要多出bubble這個步驟而不直接插入NOP呢? 想當初我也以為一樣,不過會來再看看書,發現了其中的不同 就最終目的是一樣的,就是藉由延遲避免 hazard 但是屬於階層不一樣的 nop指令 雖然沒有做事,但還是指令,是compiler(軟體)的事情 而stall是硬體層面 暫停某一段與其後面的資料流,但是前面的資料流還是得前進, 所以中間空白的部分,就須要bubble填補,由直接輸入NOP的機械碼代替 這樣可以嗎?? 請高手解答...感激不盡!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.251.246.100 ※ 編輯: ceo890710 來自: 111.251.246.100 (09/22 00:33) ※ 編輯: ceo890710 來自: 111.251.246.100 (09/22 00:35) -- 其實我是來賺P幣的 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.21.245.173
ceo890710:上面那題懂了..是英文的問題QQ 09/22 09:17
ceo890710:那插入bubble後再轉NOP和直接插入NOP兩個效能有差別嗎? 09/22 09:18
ceo890710:不然怎麼需要多出bubble這個步驟呢? 09/22 09:21
genius945:因為一個是硬體層面,一個是軟體層面吧,至於效能有請高手 09/22 22:34
Numbstu:一個是指另一個不是 09/23 19:45
Numbstu: 令 09/23 19:45
Numbstu:我記得有一題是結構危障的 有講說nop無解 09/23 19:47