作者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/cn.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