[理工] 計組 Data Hazard

作者: oldelette (oldelette)   2018-11-14 11:04:08
請問這題的hazard
為什麼(D&O) (O&B)要使用Hazard detection unit
不是load 指令才會使用嗎
還有解答最下面那行
它說不能Forward 任何資料到ID stage
是它少拉了哪條線? 看不太出來
https://imgur.com/eiEIJ3l
https://imgur.com/PIsR1Oo
感謝大家了
作者: TEPLUN (mihanami)   2018-11-14 12:37:00
R tpye接beq也要hazard detection unit偵測做stall 因為beq在第二階段決定要不要跳 等前面ori算出來 beq也用錯的暫存器比較出結果了 但是那個結果沒辦法forward到Id階段給beq 也就是說即使stall了 下一cycle ori跑到mem beq在Id仍然無法取得ori運算的結果(如果有forwarding 他要畫一條從Ex/Mem到ID階段那個給beq用的比較器的datapath)D&O為什麼要 等高手解答...
作者: seika555 (kakkoii)   2018-11-14 14:58:00
https://i.imgur.com/FlErc7i.png我版本的解答長這樣耶 是因爲mem前寫後讀嗎
作者: y2j60537 (skkkkuu)   2018-11-14 15:28:00
PIPELINE偵測到LO和OB兩個HARZARD並STALL後,應該就偵測不到LB的吧,指令間隔已經大於2了,正確解答應該是哪個?
作者: skyHuan (Huan)   2018-11-14 16:23:00
如果偵測hazard的是硬體不是compiler插nop,在ID解碼後才會stall,這時候之後的指令已經進來了hazard detection還是會判斷有hazard但stall是把control的9個bit清成0,指令的32個bit還是在,而forward unit是看指令的32個bit判斷要不要forwarding的,應該還是會forwarding只是control都是0所以forwarding不影響(?不太確定是不是這樣因為解答也沒寫有forwarding ><
作者: y2j60537 (skkkkuu)   2018-11-14 17:52:00
https://i.imgur.com/6orDdk8.jpg我的理解是beq在ID時lw已經在WB了所以偵測不到,我還是不理解lw跟beq會被偵測到的原因,請大神幫忙糾正
作者: oldelette (oldelette)   2018-11-14 19:15:00
所以說答案錯嗎 沒有DO跟LB 圖的解答來自張凡題庫書
作者: seika555 (kakkoii)   2018-11-14 20:58:00
借問一下 他remark所說的那句話是因為他已經是改良版的branch因此需在ID階段算出branch target addr. 所以hazard-detect-unit才直接做nop而不是用forwarding來解決嗎
作者: nannnnn (nannnnn)   2018-11-15 19:00:00
會不會是因為原本有hazard只是剛好被另外一組load use解決掉了才這樣寫

Links booklink

Contact Us: admin [ a t ] ucptt.com