[理工] 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