[理工] [計組] 白算盤習題4.15(control hazard)

看板Grad-ProbAsk作者 (Tree)時間3年前 (2022/01/12 14:21), 3年前編輯推噓7(7039)
留言46則, 5人參與, 3年前最新討論串1/1
最近在做白算盤的習題~ 對4.15題的解答感到疑惑@@ 題目: https://i.imgur.com/1c7q6C3.png
解答: https://i.imgur.com/W0eYkaY.png
4.15.1的題目說"Assume that branch outcomes are determined in the EX stage, that there are no data hazards, and that no delay slots are used" 我想說是否跳躍既然是在EX stage才決定 那假如預測錯誤的話,不就是要把已經進入IF stage和ID stage的指令flush掉嗎@@ 這樣應該是兩個stalls 但解答卻說會造成三個stalls 有點不能理解為什麼是三個stalls > <'' -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.9.47.103 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1641968510.A.8D3.html

01/12 15:55, 3年前 , 1F
需要花三個cycle計算branch,到下一個cycle的時候,
01/12 15:55, 1F

01/12 15:55, 3年前 , 2F
branch指令進入MEM階段,這時候他才能告訴前面的sta
01/12 15:55, 2F

01/12 15:55, 3年前 , 3F
ge把指令flush掉,這時候已經有三個指令在前面,所
01/12 15:55, 3F

01/12 15:55, 3年前 , 4F
以一個misprediction會造成3個cycle的stall
01/12 15:55, 4F

01/12 19:37, 3年前 , 5F
樓上B大不好意思,但如果是這樣的話,原本beq在mem才判
01/12 19:37, 5F

01/12 19:38, 3年前 , 6F
斷時,應該會有4個bubbles產生?
01/12 19:38, 6F

01/12 19:39, 3年前 , 7F
但我記得在mem stage判斷的時候只會有3個bubbles @@
01/12 19:39, 7F

01/12 19:40, 3年前 , 8F
還是我有哪裡沒注意到的地方呢? 謝謝 > <
01/12 19:40, 8F
非常感謝B大的回答> < 但我跟T大也有同樣的疑惑@@ 在課本4.8章的地方(p.316) https://i.imgur.com/9d4KYBU.png
課本先假設說在MEM stage才知道是否跳躍 課本p.317也用這張圖做範例來說明 https://i.imgur.com/zPQUowP.png
然後課本p.318就有這樣的一段敘述> < (如下圖橘線標示的地方) https://i.imgur.com/bgh1LjY.png
還是課本沒有提到說等到branch指令到WB stage的話,也要flush掉正在IF stage的指令 呢> <? 感謝大大T_T ※ 編輯: WishingTree (101.9.200.197 臺灣), 01/12/2022 20:01:21

01/12 21:01, 3年前 , 9F
如果我的理解沒錯的話,課本這張圖可以參考一下,可以看
01/12 21:01, 9F

01/12 21:01, 3年前 , 10F
到在mem stage才決定下一階段的PCSrc,至於題目說的assum
01/12 21:01, 10F

01/12 21:01, 3年前 , 11F
e branch out come determine at Ex stage 我認為他說的
01/12 21:01, 11F

01/12 21:01, 3年前 , 12F
是判斷branch的結果,而在mem stage才將結果傳到pc src
01/12 21:01, 12F

01/12 21:01, 3年前 , 13F

01/12 21:01, 3年前 , 14F
下面這張是實際的範例
01/12 21:01, 14F

01/12 21:01, 3年前 , 15F

01/12 21:48, 3年前 , 16F
我剛看了一下,branch 的確是在 exe 算完沒錯,
01/12 21:48, 16F

01/12 21:48, 3年前 , 17F
但因為要平衡 stage latency 會移 and gate 至 mem
01/12 21:48, 17F

01/12 21:49, 3年前 , 18F
所以這題基本上就是原本 branch prediction 的版本
01/12 21:49, 18F

01/12 21:49, 3年前 , 19F
stall 3 cycles 沒毛病
01/12 21:49, 19F

01/13 00:23, 3年前 , 20F

01/13 00:23, 3年前 , 21F

01/13 00:23, 3年前 , 22F
不過一樣的句子張凡這邊的解答
01/13 00:23, 22F

01/13 00:23, 3年前 , 23F
是寫stall兩個cycle耶 > <
01/13 00:23, 23F

01/13 00:27, 3年前 , 24F
都是branch outcome are determined in the EX stage
01/13 00:27, 24F
感謝各位大神熱心回答> < 看了f大跟j大的回答才知道自己的問題是在branch那個hardware component 1. 所以做題目的時候,如果題目沒特別敘述,都是預設branch在MEM stage嗎> < 2. 但是看到t大po的那題又好疑惑Q_Q(t大po的是課本習題4.10.3) 3. 是不是只有當是否跳躍移到ID stage決定,才是真的連branch都移到ID stage? 所以才只有一個stall? 以下節錄自課本p.319 https://i.imgur.com/g5Y0OPg.png
https://i.imgur.com/dlLkmy8.png
https://i.imgur.com/5d7IsrE.png
在此先跟各位熱心的大神說聲謝謝> < ※ 編輯: WishingTree (101.9.193.126 臺灣), 01/13/2022 00:47:07 ※ 編輯: WishingTree (101.9.193.126 臺灣), 01/13/2022 01:27:25

01/13 01:57, 3年前 , 25F
101交大也有類似的問題,而凡哥對於要flush個數的
01/13 01:57, 25F

01/13 01:57, 3年前 , 26F
答案分別是3個cycle和1個cycle
01/13 01:57, 26F

01/13 01:57, 3年前 , 27F

01/13 01:57, 3年前 , 28F

01/13 01:57, 3年前 , 29F
所以凡哥的看法
01/13 01:57, 29F

01/13 01:57, 3年前 , 30F
determine in ID -> flush 1
01/13 01:57, 30F

01/13 01:57, 3年前 , 31F
determine in EXE -> flush 2
01/13 01:57, 31F

01/13 01:57, 3年前 , 32F
determine in MEM -> flush 3
01/13 01:57, 32F

01/13 01:57, 3年前 , 33F
建議照張凡的,因為他完全以考試為主
01/13 01:57, 33F

01/13 11:10, 3年前 , 34F
1. 題目沒說的話是預設在mem stage 決定沒錯
01/13 11:10, 34F

01/13 11:10, 3年前 , 35F
2. 我覺得是敘述理解問題,這邊是白算盤4.5節control haz
01/13 11:10, 35F

01/13 11:10, 3年前 , 36F
ard 介紹部分,可以看到課本把determine outcome 跟the b
01/13 11:10, 36F

01/13 11:10, 3年前 , 37F
ranch knows what address to fetch 視作兩個動作https:/
01/13 11:10, 37F

01/13 11:10, 3年前 , 38F
/i.imgur.com/m2BIfcN.jpg
01/13 11:10, 38F

01/13 11:10, 3年前 , 39F
4.8節 reduce the delay of branch 部分,課本也選擇使用
01/13 11:10, 39F

01/13 11:10, 3年前 , 40F
next PC select in mem 來說明
01/13 11:10, 40F

01/13 11:10, 3年前 , 41F

01/13 11:10, 3年前 , 42F
如果是交大考卷出determine at exe stage 的話建議是可以
01/13 11:10, 42F

01/13 11:10, 3年前 , 43F
按照原文書來做,如果要釋疑附上原文書的來源也較可能成
01/13 11:10, 43F

01/13 11:10, 3年前 , 44F
功,至於其他學校的話我就不太清楚了,以上是個人淺見
01/13 11:10, 44F

01/13 11:11, 3年前 , 45F
抱歉,補一下圖https://i.imgur.com/xkSNQ8b.jpg
01/13 11:11, 45F

01/13 11:38, 3年前 , 46F
感謝樓上各位大大~有比較清楚惹!
01/13 11:38, 46F
非常感謝j大f大的解說> < 終於比較了解了Q_Q ※ 編輯: WishingTree (140.116.191.215 臺灣), 01/14/2022 10:30:24
文章代碼(AID): #1XtdD-ZJ (Grad-ProbAsk)