[資工] 計組 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