作者danny0108 (范帥)
看板Grad-ProbAsk
標題[理工] 102台聯計組
時間Fri Jan 19 17:01:42 2018
第四題的第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
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.137.60.44
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Grad-ProbAsk/M.1516352504.A.70C.html
1F:→ aggress5566: 第四題是拿Critical path往回推 你最慢就是在Fetch01/19 19:49
2F:→ aggress5566: data memory時signal memwrite要送到 至於題目給你501/19 19:49
3F:→ aggress5566: 5ps應該就是要嚇你重算一遍critical path?01/19 19:49
4F:推 PunchShadow: 4. critical path 是2200ps 減去I-Mem所Fetch前的時01/19 19:55
5F:→ PunchShadow: 間和需要MemWrite的D-Mem的時間,中間可以產生訊號01/19 19:56
6F:→ PunchShadow: 的間隔就是720ps01/19 19:56
7F:→ PunchShadow: 6. 只要把SW移到BEQ下即可01/19 20:02
P大,我知道sw往下移動到beq即可,但是這樣一來beq不就更靠近lw了,這樣不就變相加
劇data hazard了?我感覺對效能沒有改善
※ 編輯: danny0108 (42.73.242.59), 01/19/2018 20:04:46
8F:→ aggress5566: 然後 from before塞的是你不管branch predict執行與01/19 20:05
9F:→ aggress5566: 否都不用flush 所以週期一樣是有可能01/19 20:05
10F:推 PunchShadow: 是的確實就像你說的,需要動用到hazard control,然01/19 22:20
11F:→ PunchShadow: 後圖上也沒有畫,所以我猜這題應該只是想問看看from01/19 22:20
12F:→ PunchShadow: before的運作,而且即便是把BEQ移上去,如果用hazar01/19 22:20
13F:→ PunchShadow: d control是不會stall的01/19 22:20
P大,我…不懂耶,為什麼這樣就不會stall…
※ 編輯: danny0108 (114.137.47.107), 01/20/2018 08:03:55
14F:推 sarsman: 我覺得你最後的管線圖是對的,add的資料要等到EX/ME才能01/20 08:45
15F:→ sarsman: 傳01/20 08:45
16F:→ sarsman: 打錯xd ME/WB01/20 08:47
17F:→ sarsman: 問號的部分應該繼續填ID EX ME WB就好 01/20 08:49
19F:推 PunchShadow: 抱歉可能沒解釋清楚,最多也只會stall一個clock,而 01/20 09:21
20F:→ PunchShadow: 我會說不會stall有兩個原因,首先是白皮書對load use 01/20 09:21
21F:→ PunchShadow: hazard的偵測碼中,只考慮到後一個指令是否有hazard 01/20 09:21
22F:→ PunchShadow: (不過也可能是那時候的branch還沒移到ID所以沒寫上 01/20 09:21
23F:→ PunchShadow: 去),再者,雖然課本沒這條forwarding資料線,不過b 01/20 09:21
24F:→ PunchShadow: ranch是在ID階段的最後面對兩個registers做比較,所 01/20 09:21
25F:→ PunchShadow: 以我推測可能可以將MEM讀出來的值回傳到ID Stage的 01/20 09:21
26F:→ PunchShadow: 後半段(當然這課本上也沒寫....)01/20 09:21
27F:→ PunchShadow: 上述如果有想法錯誤歡迎大家幫忙指正謝謝!01/20 09:23
28F:→ PunchShadow: 然後我覺得以這題來說應該不用考慮那麼多,因為他付 01/20 09:25
29F:→ PunchShadow: 的圖連forwarding都沒有,應該只是存粹考from before 01/20 09:25
30F:→ PunchShadow: 而已(我猜啦哈哈 01/20 09:25
31F:推 sarsman: 說起來題目好像也沒說branch在ID跳吧,MEM跳就不用stall了 01/20 09:43
32F:→ sarsman: 不過就如P大所說這題應該不用太在意這部分 01/20 09:44
33F:→ PunchShadow: 1 cycle branch delay就是移到了ID Stage了吧 01/20 09:52
34F:→ sarsman: 欸對耶 沒注意到那行01/20 09:53
感謝P大詳盡的答覆,還有s大!
※ 編輯: danny0108 (114.137.244.226), 01/20/2018 12:33:50