[理工] 104 台联计组 branch

楼主: liu1030 (113鸡鸡男)   2019-01-03 09:09:40
如图
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呢?
(解答图有错?????)
谢谢各位解答
作者: skyHuan (Huan)   2019-01-03 09:45:00
同学怎么在隔壁版那么凶在这里好和善XD题目说target在ID就算出来了,所以EM决定要不要跳就可以直接用,有点像在MEM决定要不要跳的MIPS,地址也是在EX算出来然后ME可以决定后就直接用
作者: zuchang (chang)   2019-01-03 13:30:00
作者: skyHuan (Huan)   2019-01-03 13:36:00
猜跳如果用BHT跟BTB的话不会有猜错的penalty喔,他会读到branch指令的地址当index去buffer里面抓下一个指令并在下一个clock就进来讲错,是猜对不会有penalty,如果猜对也有penalty=1的话直接给ID判断要不要跳顺便算目的位址就好,就不用还要多FSM, BHT跟BTB这些HW了

Links booklink

Contact Us: admin [ a t ] ucptt.com