作者wei12f8158 (WEI)
看板Grad-ProbAsk
標題[理工] 計組上冊 p.457
時間Sat Nov 24 12:32:30 2018
https://i.imgur.com/qUcQtDu.jpg
https://i.imgur.com/aBh7RQe.jpg
這邊的觀念有點不清楚,想請問一下,如果第3個指令要得到第2個指令的data的話,不是
應該要ForwardA=10嗎? 為什麼它寫ForwardA=01? 這樣的話不就是指令3去抓指令1的da
ta? 謝謝~
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.136.40.29
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Grad-ProbAsk/M.1543033953.A.4F3.html
1F:推 skyHuan: 這段是在判斷13間的hazard不是在判斷23間的,因為如果13 11/24 13:12
2F:→ skyHuan: 跟23都有資料相依的話,2比1晚寫,所以只有23會有hazard 11/24 13:12
3F:→ skyHuan: ,13之間不會有,而原本的偵測碼沒考慮到這件事,所以加 11/24 13:12
4F:→ skyHuan: 上中間那段粗體的來判斷這種情況 11/24 13:12
5F:推 skyHuan: 也就是說這段偵測碼是在看當13有資料相依而且23沒有,才 11/24 13:16
6F:→ skyHuan: 代表13有hazard,這時候13就要forwarding,而課本舉的例 11/24 13:16
7F:→ skyHuan: 子因為13有但23沒有,所以13當然就沒有hazard也就不用for 11/24 13:16
8F:→ skyHuan: warding 11/24 13:16
9F:→ wei12f8158: 謝謝大大懂了,倒數第二句話為什麼23沒有?課本的例子 11/24 13:41
10F:→ wei12f8158: 不是13有且23也有嗎? 11/24 13:41
11F:推 skyHuan: 這個例子的23有。我的意思是這段偵測碼會讓23沒有的話13 11/24 14:55
12F:→ skyHuan: 才會有hazard 11/24 14:55
13F:→ wei12f8158: 喔喔,剛剛理解錯意思了,謝謝sky大 11/24 15:00
14F:推 st474ddr: 不好意思 我想請問一下 那這樣原本課本的3個加法的解法 12/07 23:54
15F:→ st474ddr: 是不是就跟底下的偵測碼不一樣 (看前面大大的意思 偵測 12/07 23:54
16F:→ st474ddr: 碼寫的是13 Data Hazard 的條件 而例子則是要解決12 23 12/07 23:54
17F:→ st474ddr: 的data hazard) 12/07 23:54