[理工] 104 台聯計組 branch

看板Grad-ProbAsk作者時間5年前 (2019/01/03 09:09), 5年前編輯推噓7(7013)
留言20則, 2人參與, 5年前最新討論串1/1
如圖 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://www.ptt.cc/bbs/Grad-ProbAsk/M.1546477783.A.B5D.html

01/03 09:45, 5年前 , 1F
同學怎麼在隔壁版那麼兇在這裡好和善XD
01/03 09:45, 1F

01/03 09:47, 5年前 , 2F
題目說target在ID就算出來了,所以EM決定要不要跳就可以
01/03 09:47, 2F

01/03 09:47, 5年前 , 3F
直接用,有點像在MEM決定要不要跳的MIPS,地址也是在EX
01/03 09:47, 3F

01/03 09:47, 5年前 , 4F
算出來然後ME可以決定後就直接用
01/03 09:47, 4F

01/03 10:44, 5年前 , 5F
講錯了,應該是猜跳會有HW支援,在ID知道是branch,猜跳
01/03 10:44, 5F

01/03 10:44, 5年前 , 6F
下個clock就會從BTB抓target指令,所以猜錯只要flush在ID
01/03 10:44, 6F

01/03 10:44, 5年前 , 7F
判斷的時候跟在IF進來的一個指令
01/03 10:44, 7F

01/03 10:44, 5年前 , 8F

01/03 10:44, 5年前 , 9F
然後猜錯清指令叫flush,等前饋暫停叫stall,不太一樣有
01/03 10:44, 9F

01/03 10:44, 5年前 , 10F
時候題目會問哪幾個cycle是stall或flush
01/03 10:44, 10F

01/03 10:56, 5年前 , 11F
我覺得還是怪怪的,我好像又講錯了
01/03 10:56, 11F

01/03 10:56, 5年前 , 12F
猜跳應該會接著後面指令進來然後EM完才知道猜錯才會flush
01/03 10:56, 12F

01/03 10:56, 5年前 , 13F
,好像應該是你講的那樣才是對的QQ
01/03 10:56, 13F
好的 謝謝你 辛苦了>< 因為這是張凡題庫班講義的題目 解答也是張凡寫的樣子? 想說有沒有人是上題庫班 知道這題原理的? 待解答....... ※ 編輯: liu1030 (140.113.229.83), 01/03/2019 12:11:27

01/03 13:30, 5年前 , 14F

01/03 13:36, 5年前 , 15F
猜跳如果用BHT跟BTB的話不會有猜錯的penalty喔,他會讀
01/03 13:36, 15F

01/03 13:36, 5年前 , 16F
到branch指令的地址當index去buffer裡面抓下一個指令並在
01/03 13:36, 16F

01/03 13:36, 5年前 , 17F
下一個clock就進來
01/03 13:36, 17F

01/03 13:45, 5年前 , 18F
講錯,是猜對不會有penalty,如果猜對也有penalty=1的話
01/03 13:45, 18F

01/03 13:45, 5年前 , 19F
直接給ID判斷要不要跳順便算目的位址就好,就不用還要多F
01/03 13:45, 19F

01/03 13:45, 5年前 , 20F
SM, BHT跟BTB這些HW了
01/03 13:45, 20F
文章代碼(AID): #1SBM3NjT (Grad-ProbAsk)