作者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/cn.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