作者liu1030 ()
看板Grad-ProbAsk
标题[理工] 计组branch
时间Thu Jan 3 09:09:40 2019
如图
https://imgur.com/JXKhAOy
https://imgur.com/QsFmuMr
第4小题的always predict taken
在predict always taken 的时候
beq的下一个指令应该是target instr
然後若猜错的话
因为在EM才知道结果
所以不是要flush掉target instr 以及target後的下一个指令
也就是2个Stall
那为何解答是只需1个stall呢?
(解答图有错?????)
谢谢各位解答
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.113.136.219
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1546477783.A.B5D.html
1F:推 skyHuan: 同学怎麽在隔壁版那麽凶在这里好和善XD 01/03 09:45
2F:推 skyHuan: 题目说target在ID就算出来了,所以EM决定要不要跳就可以 01/03 09:47
3F:→ skyHuan: 直接用,有点像在MEM决定要不要跳的MIPS,地址也是在EX 01/03 09:47
4F:→ skyHuan: 算出来然後ME可以决定後就直接用 01/03 09:47
5F:推 skyHuan: 讲错了,应该是猜跳会有HW支援,在ID知道是branch,猜跳 01/03 10:44
6F:→ skyHuan: 下个clock就会从BTB抓target指令,所以猜错只要flush在ID 01/03 10:44
7F:→ skyHuan: 判断的时候跟在IF进来的一个指令 01/03 10:44
9F:→ skyHuan: 然後猜错清指令叫flush,等前馈暂停叫stall,不太一样有 01/03 10:44
10F:→ skyHuan: 时候题目会问哪几个cycle是stall或flush 01/03 10:44
11F:推 skyHuan: 我觉得还是怪怪的,我好像又讲错了 01/03 10:56
12F:→ skyHuan: 猜跳应该会接着後面指令进来然後EM完才知道猜错才会flush 01/03 10:56
13F:→ skyHuan: ,好像应该是你讲的那样才是对的QQ 01/03 10:56
好的 谢谢你 辛苦了><
因为这是张凡题库班讲义的题目
解答也是张凡写的样子?
想说有没有人是上题库班 知道这题原理的?
待解答.......
※ 编辑: liu1030 (140.113.229.83), 01/03/2019 12:11:27
15F:推 skyHuan: 猜跳如果用BHT跟BTB的话不会有猜错的penalty喔,他会读 01/03 13:36
16F:→ skyHuan: 到branch指令的地址当index去buffer里面抓下一个指令并在 01/03 13:36
17F:→ skyHuan: 下一个clock就进来 01/03 13:36
18F:推 skyHuan: 讲错,是猜对不会有penalty,如果猜对也有penalty=1的话 01/03 13:45
19F:→ skyHuan: 直接给ID判断要不要跳顺便算目的位址就好,就不用还要多F 01/03 13:45
20F:→ skyHuan: SM, BHT跟BTB这些HW了 01/03 13:45