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

作者: WishingTree (Tree)   2022-01-12 14:21:48
最近在做白算盤的習題~
對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 > <''
作者: BusterButter (奶油巴斯特)   2022-01-12 15:55:00
需要花三個cycle計算branch,到下一個cycle的時候,branch指令進入MEM階段,這時候他才能告訴前面的stage把指令flush掉,這時候已經有三個指令在前面,所以一個misprediction會造成3個cycle的stall
作者: try66889 (小皮)   2022-01-12 19:37:00
樓上B大不好意思,但如果是這樣的話,原本beq在mem才判斷時,應該會有4個bubbles產生?但我記得在mem stage判斷的時候只會有3個bubbles @@還是我有哪裡沒注意到的地方呢? 謝謝 > <
作者: foogty (夫葛踢)   2022-01-12 21:01:00
如果我的理解沒錯的話,課本這張圖可以參考一下,可以看到在mem stage才決定下一階段的PCSrc,至於題目說的assume branch out come determine at Ex stage 我認為他說的是判斷branch的結果,而在mem stage才將結果傳到pc srchttps://i.imgur.com/p2tu1GS.jpg下面這張是實際的範例https://i.imgur.com/e67SgER.jpg
作者: jacksoncsie (資工肥宅)   2022-01-12 21:48:00
我剛看了一下,branch 的確是在 exe 算完沒錯,但因為要平衡 stage latency 會移 and gate 至 mem所以這題基本上就是原本 branch prediction 的版本stall 3 cycles 沒毛病
作者: try66889 (小皮)   2022-01-13 00:23:00
https://i.imgur.com/dlBpcJT.jpghttps://i.imgur.com/zdn4TJB.jpg不過一樣的句子張凡這邊的解答是寫stall兩個cycle耶 > <都是branch outcome are determined in the EX stage
作者: jimmy1112111 (仔仔)   2022-01-13 01:57:00
101交大也有類似的問題,而凡哥對於要flush個數的答案分別是3個cycle和1個cyclehttps://i.imgur.com/xvRWZ24.jpghttps://i.imgur.com/zom8nHS.jpg所以凡哥的看法determine in ID -> flush 1determine in EXE -> flush 2determine in MEM -> flush 3建議照張凡的,因為他完全以考試為主
作者: foogty (夫葛踢)   2022-01-13 11:10:00
1. 題目沒說的話是預設在mem stage 決定沒錯2. 我覺得是敘述理解問題,這邊是白算盤4.5節control hazard 介紹部分,可以看到課本把determine outcome 跟the branch knows what address to fetch 視作兩個動作https://i.imgur.com/m2BIfcN.jpg4.8節 reduce the delay of branch 部分,課本也選擇使用next PC select in mem 來說明https://i.imgur.com/FJtov48.jpg如果是交大考卷出determine at exe stage 的話建議是可以按照原文書來做,如果要釋疑附上原文書的來源也較可能成功,至於其他學校的話我就不太清楚了,以上是個人淺見抱歉,補一下圖https://i.imgur.com/xkSNQ8b.jpg
作者: try66889 (小皮)   2022-01-13 11:38:00
感謝樓上各位大大~有比較清楚惹!

Links booklink

Contact Us: admin [ a t ] ucptt.com