[理工] 102台聯計組

看板Grad-ProbAsk作者 (范帥)時間8年前 (2018/01/19 17:01), 8年前編輯推噓6(6028)
留言34則, 3人參與, 8年前最新討論串1/2 (看更多)
第四題的第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://www.ptt.cc/bbs/Grad-ProbAsk/M.1516352504.A.70C.html

01/19 19:49, 8年前 , 1F
第四題是拿Critical path往回推 你最慢就是在Fetch
01/19 19:49, 1F

01/19 19:49, 8年前 , 2F
data memory時signal memwrite要送到 至於題目給你5
01/19 19:49, 2F

01/19 19:49, 8年前 , 3F
5ps應該就是要嚇你重算一遍critical path?
01/19 19:49, 3F

01/19 19:55, 8年前 , 4F
4. critical path 是2200ps 減去I-Mem所Fetch前的時
01/19 19:55, 4F

01/19 19:56, 8年前 , 5F
間和需要MemWrite的D-Mem的時間,中間可以產生訊號
01/19 19:56, 5F

01/19 19:56, 8年前 , 6F
的間隔就是720ps
01/19 19:56, 6F

01/19 20:02, 8年前 , 7F
6. 只要把SW移到BEQ下即可
01/19 20:02, 7F
P大,我知道sw往下移動到beq即可,但是這樣一來beq不就更靠近lw了,這樣不就變相加 劇data hazard了?我感覺對效能沒有改善 ※ 編輯: danny0108 (42.73.242.59), 01/19/2018 20:04:46

01/19 20:05, 8年前 , 8F
然後 from before塞的是你不管branch predict執行與
01/19 20:05, 8F

01/19 20:05, 8年前 , 9F
否都不用flush 所以週期一樣是有可能
01/19 20:05, 9F

01/19 22:20, 8年前 , 10F
是的確實就像你說的,需要動用到hazard control,然
01/19 22:20, 10F

01/19 22:20, 8年前 , 11F
後圖上也沒有畫,所以我猜這題應該只是想問看看from
01/19 22:20, 11F

01/19 22:20, 8年前 , 12F
before的運作,而且即便是把BEQ移上去,如果用hazar
01/19 22:20, 12F

01/19 22:20, 8年前 , 13F
d control是不會stall的
01/19 22:20, 13F
P大,我…不懂耶,為什麼這樣就不會stall… ※ 編輯: danny0108 (114.137.47.107), 01/20/2018 08:03:55

01/20 08:45, 8年前 , 14F
我覺得你最後的管線圖是對的,add的資料要等到EX/ME才能
01/20 08:45, 14F

01/20 08:45, 8年前 , 15F
01/20 08:45, 15F

01/20 08:47, 8年前 , 16F
打錯xd ME/WB
01/20 08:47, 16F

01/20 08:49, 8年前 , 17F
問號的部分應該繼續填ID EX ME WB就好
01/20 08:49, 17F

01/20 09:15, 8年前 , 18F

01/20 09:21, 8年前 , 19F
抱歉可能沒解釋清楚,最多也只會stall一個clock,而
01/20 09:21, 19F

01/20 09:21, 8年前 , 20F
我會說不會stall有兩個原因,首先是白皮書對load use
01/20 09:21, 20F

01/20 09:21, 8年前 , 21F
hazard的偵測碼中,只考慮到後一個指令是否有hazard
01/20 09:21, 21F

01/20 09:21, 8年前 , 22F
(不過也可能是那時候的branch還沒移到ID所以沒寫上
01/20 09:21, 22F

01/20 09:21, 8年前 , 23F
去),再者,雖然課本沒這條forwarding資料線,不過b
01/20 09:21, 23F

01/20 09:21, 8年前 , 24F
ranch是在ID階段的最後面對兩個registers做比較,所
01/20 09:21, 24F

01/20 09:21, 8年前 , 25F
以我推測可能可以將MEM讀出來的值回傳到ID Stage的
01/20 09:21, 25F

01/20 09:21, 8年前 , 26F
後半段(當然這課本上也沒寫....)
01/20 09:21, 26F

01/20 09:23, 8年前 , 27F
上述如果有想法錯誤歡迎大家幫忙指正謝謝!
01/20 09:23, 27F

01/20 09:25, 8年前 , 28F
然後我覺得以這題來說應該不用考慮那麼多,因為他付
01/20 09:25, 28F

01/20 09:25, 8年前 , 29F
的圖連forwarding都沒有,應該只是存粹考from before
01/20 09:25, 29F

01/20 09:25, 8年前 , 30F
而已(我猜啦哈哈
01/20 09:25, 30F

01/20 09:43, 8年前 , 31F
說起來題目好像也沒說branch在ID跳吧,MEM跳就不用stall了
01/20 09:43, 31F

01/20 09:44, 8年前 , 32F
不過就如P大所說這題應該不用太在意這部分
01/20 09:44, 32F

01/20 09:52, 8年前 , 33F
1 cycle branch delay就是移到了ID Stage了吧
01/20 09:52, 33F

01/20 09:53, 8年前 , 34F
欸對耶 沒注意到那行
01/20 09:53, 34F
感謝P大詳盡的答覆,還有s大! ※ 編輯: danny0108 (114.137.244.226), 01/20/2018 12:33:50
文章代碼(AID): #1QORFuSC (Grad-ProbAsk)
文章代碼(AID): #1QORFuSC (Grad-ProbAsk)