作者eecheng87 (EEcheng)
看板Grad-ProbAsk
標題[理工] 計組pipeline branch predict
時間Sun May 26 12:37:18 2019
想問一題出現在白算盤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
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.236.38.212
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Grad-ProbAsk/M.1558845440.A.693.html
※ 編輯: eecheng87 (36.236.38.212), 05/26/2019 12:38:50
※ 編輯: eecheng87 (36.236.38.212), 05/26/2019 12:40:45
※ 編輯: eecheng87 (36.236.38.212), 05/26/2019 12:42:14
※ 編輯: eecheng87 (36.236.38.212), 05/26/2019 12:42:40
※ 編輯: eecheng87 (36.236.38.212), 05/26/2019 12:43:24
1F:推 b10007034: 我想你的想法跟pg.320搞混了,這邊算是比較tricky的地 05/26 20:24
2F:→ b10007034: 方,pg.320可以用這樣的方法為什麼前面提到的不行? 05/26 20:25
3F:→ b10007034: 你可以仔細觀察一下,文字(pg.318)提到flush的話,是一 05/26 20:26
4F:→ b10007034: 次flush哪些stage? 05/26 20:27
5F:→ b10007034: 還有pg.304 Figure4.51他的branch AND gate畫在哪? 05/26 20:28
6F:→ b10007034: 能回答這兩個問題的話,你的疑問就不在了。 05/26 20:29
7F:→ eecheng87: @b10007034 那個and gate是在m,可是這題不是說在ex就 05/26 22:14
8F:→ eecheng87: 知道了? 05/26 22:14
9F:→ eecheng87: 318說的flush要沖掉三個state,這是指還沒把檢查branch 05/26 22:21
10F:→ eecheng87: 提前的情況吧,因為原版的在ex做完才知道 05/26 22:21
11F:→ eecheng87: 至於你問的第一個問題我還是不太懂,方便解釋一下嗎, 05/26 22:22
12F:→ eecheng87: 感謝你 05/26 22:22
13F:→ b10007034: tricky的地方就是課本沒把block diagram畫出來branch 05/27 11:38
14F:→ b10007034: and gate在哪裡,加上課本只有提到兩種方法 05/27 11:38
15F:→ b10007034: 改良前後,所以我認為這邊的branch outcome指的是addr 05/27 11:39
16F:→ b10007034: 及zero的結果 05/27 11:41
17F:→ b10007034: 另外你的想法cost要為2個cycle的話,只要and gate在EX 05/27 11:44
18F:→ eecheng87: 嗯嗯,感謝你 05/27 14:03