[资工] 计组 data hazard

楼主: ra226683 (alexyu)   2014-12-11 23:37:43
http://imgur.com/a/tdNHD
如图 第(a)题
解答为第一个指令add和第二个指令sub之间需要3个stall
可是我觉得只要2个stall
因为add的WB可以跟sub的ID重叠(WB是前段周期,ID事后半周期)
请问这个理解有错吗?
作者: shanbb (Moriz)   2014-12-12 00:49:00
等第一行WB写回去之后,第二行IF才不会抓到没更新的$1所以才停三个。感觉好像是这样XD
作者: chuck8237 (胖丞)   2014-12-12 01:09:00
我认为应该是像原PO所说的那样 只要不是lw dependency正常的data dependency只需要stall两个cycle即可
作者: j897495 (咪咪)   2014-12-12 09:26:00
如果题目没改stage之类的内容正常2个都能解决没错
作者: qoojordon (颖川琦)   2014-12-12 10:34:00
同意你说的 , 没有forwarding的情况下 , Reg的值能在ID的后半周期之前写入 , 执行结果就是正确的
作者: shanbb (Moriz)   2014-12-12 10:50:00
原来是酱子QQ 真是抱歉
作者: AdvenRal (<塔可嘉年华>)   2014-12-12 11:13:00
顺便问一下,照楼楼上的说法,(b)应该只要各停一个stall吧?
作者: qoojordon (颖川琦)   2014-12-12 14:02:00
确认一下 , 张凡计组一版下册 p134 [95 成大资工]课本上的解答 (b)只有停一个cycle , 原因说明如上
作者: AdvenRal (<塔可嘉年华>)   2014-12-12 17:18:00
谢谢回答
作者: maque (Roadside)   2014-12-13 20:53:00
A,只要停两个stall,WB前半部写入,ID后半部read就可B也只要停一个stall就可以,感觉是解答有误

Links booklink

Contact Us: admin [ a t ] ucptt.com