题目
第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吗?