[理工] 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