[理工] pipeline harzard判斷

作者: shownlin (哈哈阿喔)   2017-04-23 21:22:03
題目
第2跟第3小題:
http://i.imgur.com/Ht9ScNo.jpg
2.找出有forwarding跟沒有forwarding情況下所有的harzard
3.為了減少clock cycle time,把MEM stage一分為二,找出所有的hazard
答案
http://i.imgur.com/uqIcyfL.jpg
想問兩個問題
1.
第2小題,without forwarding那邊I2跟I4為何會有harzard? 因為I2跟I3已經有hazard,如果透過compiler在I2跟I3間插入兩個nop指令,I2跟I4的距離不就>2了嗎?
像這樣
add $2,$3,$3
nop
nop
add $1,$1,$2
sw $1,20($2)
還是說要看有沒有hazard以還沒插入nop的情況為準?
2.
第3小題為什麼在with forwarding的情況下只有I1跟I3有hazard,I2跟I4不會有嗎?
add $2,$3,$3在MEM2階段應該沒辦法透過forwarding去救sw $1,20($2)吧,MEM harzard不是要到WB階段經過multiplexer才把線拉去forwarding嗎?
作者: shownlin (哈哈阿喔)   2016-04-23 21:22:00
對了這是張凡上冊 p.476練習題還有全部是在問part a的情況
作者: momoko0581 (桃子)   2017-04-24 00:58:00
1.解感覺有誤曲 如果用nop2.因為add指令在EXE就計算完就算不用傳經MEM值還是一樣因為他不是 lw/sw有mem位置問題 所以可以直接pass使用補充1.它們確實都造成hazard只是剛好I2 I3間差2nop 同時可以解決 但不表示它不是datahazard
作者: gary70812 (1)   2017-04-24 02:07:00
所以是add在exe計算完後存到IF/ID的register嗎?
作者: momoko0581 (桃子)   2017-04-24 17:23:00
add在exe後 值還是要穿過MEM再WB回IF File有Dependency但不一定會有Hazard路徑是先過Mem1再過Mem2 但Path有forward Unit 在EXE和Mem Stage中都會有拉線路 因為規格是要執行MIPS每一道指令 路徑IF>ID>EXE>Mem1>Mem2>WB 課本這麼寫的
作者: shownlin (哈哈阿喔)   2017-04-24 19:00:00
所以MEM1跟MEM2不管哪個階段都可以看成可以有forwarding path嗎那我大概知道了
作者: momoko0581 (桃子)   2017-04-24 20:03:00
原本單元是Data Mem(Mem Unit) 切成兩個整理還是DataMem 指令在跑Path的原理和原本只有單一Mem是一樣的只是切Mem好處單一clock可能降低 但整理管線拉長penalty會增加

Links booklink

Contact Us: admin [ a t ] ucptt.com