看板 Grad-ProbAsk 關於我們 聯絡資訊
https://i.imgur.com/ORxW7M5.jpg 想請問這題的第二題 我的想法是 1000個指令會有500組的lw+add 在沒有forwarding的情況下 每組中間會插兩個nop 變成下面那樣 lw nop nop add 那這樣的話算式是 ((5-1)+1000+500*2)/1000 不過我不懂為什麼和答案不一樣 不知道哪裡想錯了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.247.4.220 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1547560052.A.249.html
wei12f8158: 因為第一題有說lw跟add還有add跟lw之間都有data hazar 01/15 22:01
wei12f8158: d 01/15 22:01
wei12f8158: 所以會是lw 2*nop add 2*nop lw 2*nop add ... 這樣 01/15 22:04
o5739201: lw跟add之間有500格 01/15 22:26
o5739201: 但add跟lw之間只有499格 01/15 22:26
o5739201: 因為add是最後一個指令 所以最後不用插 01/15 22:26
o5739201: 所有是(500+499)*2 01/15 22:26
kaidi620: 抱歉 請問一下 1000個指令 然後一組有四個 不是1000/4 01/16 08:24
kaidi620: =250組嗎 抱歉小弟很弱 01/16 08:24
kaidi620: 500組是怎麼來的 請問一下QQ 01/16 08:24
springleaf1: 1小題有說是lw, add, lw, add, ...交互穿插 01/16 08:33
springleaf1: 然後2小題是照1小題的條件去算,只是少了Forwarding 01/16 08:34
springleaf1: 所以是1000÷2 而非1000÷4 01/16 08:36
rockieloser: 是lw都要多停一個吧? 500*(lw stall add) 01/16 12:11
o5739201: 是lw add這樣算一組喔共500組1000指令 01/16 15:08
o5739201: Lw跟add 有load use 插2個 01/16 15:08
o5739201: 而add 跟下一組的 lw 有hazard插2個第1000個指令不用插 01/16 15:08
o5739201: 所以499個 01/16 15:08