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