[理工] 102台聯計組

作者: danny0108 (范帥)   2018-01-19 17:01:42
第四題的第4小題我不懂詳解為何這樣寫,想請教版上的神人們
題目的datapath
https://i.imgur.com/f75CQhg.jpg
題目的latency,第4小題題目
https://i.imgur.com/DiY1t9p.jpg
第4小題答案,張凡的書編號是第3小題
https://i.imgur.com/tVaRyRT.jpg
另外想問第6小題,題目說用delayed branch減少分支延遲,可是我剛剛發現這題的程式
碼如果將指令重排之後,會因為load use hazard,使得執行週期數跟指令重排前一樣(假
設分支成立),但是我不確定我的解釋是否正確。另外想請教版上神人,如果有delayed b
ranch slot,那該如何用多重時脈管線圖來表示呢?
第6小題題目
https://i.imgur.com/DiY1t9p.jpg
指令重排前我畫出的多重時脈管線圖
https://i.imgur.com/kFQjJIx.jpg
指令重排後,我畫到一半就不會畫的多重時脈管線圖
https://i.imgur.com/Lg7iD5M.jpg
作者: aggress5566 (哩賀)   2018-01-19 19:49:00
第四題是拿Critical path往回推 你最慢就是在Fetchdata memory時signal memwrite要送到 至於題目給你55ps應該就是要嚇你重算一遍critical path?
作者: PunchShadow (PunchShadow)   2018-01-19 19:55:00
4. critical path 是2200ps 減去I-Mem所Fetch前的時間和需要MemWrite的D-Mem的時間,中間可以產生訊號的間隔就是720ps6. 只要把SW移到BEQ下即可
作者: aggress5566 (哩賀)   2018-01-19 20:05:00
然後 from before塞的是你不管branch predict執行與否都不用flush 所以週期一樣是有可能
作者: PunchShadow (PunchShadow)   2018-01-19 22:20:00
是的確實就像你說的,需要動用到hazard control,然後圖上也沒有畫,所以我猜這題應該只是想問看看frombefore的運作,而且即便是把BEQ移上去,如果用hazard control是不會stall的
作者: sarsman (DeNT15T♠)   2018-01-20 08:45:00
我覺得你最後的管線圖是對的,add的資料要等到EX/ME才能傳打錯xd ME/WB問號的部分應該繼續填ID EX ME WB就好
作者: PunchShadow (PunchShadow)   2018-01-20 09:15:00
https://i.imgur.com/SJMUEWS.jpg抱歉可能沒解釋清楚,最多也只會stall一個clock,而我會說不會stall有兩個原因,首先是白皮書對load usehazard的偵測碼中,只考慮到後一個指令是否有hazard(不過也可能是那時候的branch還沒移到ID所以沒寫上去),再者,雖然課本沒這條forwarding資料線,不過branch是在ID階段的最後面對兩個registers做比較,所以我推測可能可以將MEM讀出來的值回傳到ID Stage的後半段(當然這課本上也沒寫....)上述如果有想法錯誤歡迎大家幫忙指正謝謝!然後我覺得以這題來說應該不用考慮那麼多,因為他付的圖連forwarding都沒有,應該只是存粹考from before而已(我猜啦哈哈
作者: sarsman (DeNT15T♠)   2018-01-20 09:43:00
說起來題目好像也沒說branch在ID跳吧,MEM跳就不用stall了不過就如P大所說這題應該不用太在意這部分
作者: PunchShadow (PunchShadow)   2018-01-20 09:52:00
1 cycle branch delay就是移到了ID Stage了吧
作者: sarsman (DeNT15T♠)   2018-01-20 09:53:00
欸對耶 沒注意到那行

Links booklink

Contact Us: admin [ a t ] ucptt.com