[理工] 計組pipeline branch predict

作者: eecheng87 (EEcheng)   2019-05-26 12:37:18
想問一題出現在白算盤4.15的題目
https://i.imgur.com/M8CMz7h.jpg
題目大概是在問如果用不同的predict方法,會造成幾個額外的cycle
而可以在ex知道branch的結果
提供的答案是
https://i.imgur.com/KCzqNSA.jpg
需要額外3個,但我覺得是兩個
下面用always not taken猜法
branch. F D E M W
猜not taken. F D E M W
下個指令 F D E M W
此刻知道 F D E M W
branch結果
所以清掉前兩個
cycle的東西
但是答案說是三個,想請問為神麼
編輯: 上面cycle圖因為手機排版,我想表達的是每條指令都差一個cycle
作者: b10007034 (Warren)   2019-05-26 20:24:00
我想你的想法跟pg.320搞混了,這邊算是比較tricky的地方,pg.320可以用這樣的方法為什麼前面提到的不行?你可以仔細觀察一下,文字(pg.318)提到flush的話,是一次flush哪些stage?還有pg.304 Figure4.51他的branch AND gate畫在哪?能回答這兩個問題的話,你的疑問就不在了。
作者: eecheng87 (EEcheng)   2019-05-26 22:14:00
@b10007034 那個and gate是在m,可是這題不是說在ex就知道了?318說的flush要沖掉三個state,這是指還沒把檢查branch提前的情況吧,因為原版的在ex做完才知道至於你問的第一個問題我還是不太懂,方便解釋一下嗎,感謝你
作者: b10007034 (Warren)   2019-05-27 11:38:00
tricky的地方就是課本沒把block diagram畫出來branchand gate在哪裡,加上課本只有提到兩種方法改良前後,所以我認為這邊的branch outcome指的是addr及zero的結果另外你的想法cost要為2個cycle的話,只要and gate在EX
作者: eecheng87 (EEcheng)   2019-05-27 14:03:00
嗯嗯,感謝你

Links booklink

Contact Us: admin [ a t ] ucptt.com