作者AAQ8 ()
看板Grad-ProbAsk
標題[理工] 104中山計組
時間Tue Jan 15 21:47:30 2019
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://webptt.com/m.aspx?n=bbs/Grad-ProbAsk/M.1547560052.A.249.html
1F:推 wei12f8158: 因為第一題有說lw跟add還有add跟lw之間都有data hazar 01/15 22:01
2F:→ wei12f8158: d 01/15 22:01
3F:推 wei12f8158: 所以會是lw 2*nop add 2*nop lw 2*nop add ... 這樣 01/15 22:04
4F:→ o5739201: lw跟add之間有500格 01/15 22:26
5F:→ o5739201: 但add跟lw之間只有499格 01/15 22:26
6F:→ o5739201: 因為add是最後一個指令 所以最後不用插 01/15 22:26
7F:→ o5739201: 所有是(500+499)*2 01/15 22:26
8F:→ kaidi620: 抱歉 請問一下 1000個指令 然後一組有四個 不是1000/4 01/16 08:24
9F:→ kaidi620: =250組嗎 抱歉小弟很弱 01/16 08:24
10F:→ kaidi620: 500組是怎麼來的 請問一下QQ 01/16 08:24
11F:→ springleaf1: 1小題有說是lw, add, lw, add, ...交互穿插 01/16 08:33
12F:→ springleaf1: 然後2小題是照1小題的條件去算,只是少了Forwarding 01/16 08:34
13F:→ springleaf1: 所以是1000÷2 而非1000÷4 01/16 08:36
14F:→ rockieloser: 是lw都要多停一個吧? 500*(lw stall add) 01/16 12:11
15F:→ o5739201: 是lw add這樣算一組喔共500組1000指令 01/16 15:08
16F:→ o5739201: Lw跟add 有load use 插2個 01/16 15:08
17F:→ o5739201: 而add 跟下一組的 lw 有hazard插2個第1000個指令不用插 01/16 15:08
18F:→ o5739201: 所以499個 01/16 15:08