Grad-ProbAsk 板


LINE

http://i.imgur.com/aYEt7M0.jpg 如图,第七题 想请教的是b小题,关於lw接着bne的stall 因为是在ID判别要不要跳,那这麽一来应该是要把ID延後到lw的ME做完才对吧? 那这样stall应该是要在cycle6跟7才对吧@@ 像这样: lw IF ID EX ME WB bne IF XX XX ID EX WB --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.44.199.149
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1483086776.A.E6E.html ※ 编辑: ssssIssss (114.44.199.149), 12/30/2016 16:39:39
1F:推 Transfat: 啊前面其实有讨论到同一题,因为题目一开始表明分支12/30 16:58
2F:→ Transfat: 预测错误(misprediction), 所以bne的IF应该要跟lw的EX12/30 16:58
3F:→ Transfat: 在同一个cycle12/30 16:58
可以讲详细一点吗,抱歉因为我爬很久还是搞不太懂>< 分支预测错误不就是在ID後把指令Flush为nop,而且不算在Stall里吗? 这样和同一cycle有什麽关系呢? ※ 编辑: ssssIssss (114.44.199.149), 12/30/2016 17:06:41
4F:推 Transfat: 我好像说错,应该是stall c6,c7没错 12/30 18:00
5F:→ ken52011219: 请写三个 ID ,dectect是在第一个ID 发生12/30 18:10
但答案是cycle 7, 8 QQ ※ 编辑: ssssIssss (114.44.199.149), 12/30/2016 18:11:11
6F:→ ken52011219: 然後於接下来两个cycle执行stall12/30 18:11
7F:→ ken52011219: 但说是stall 其实只是把ID中的指令 留下来两个cycle12/30 18:12
8F:→ ken52011219: 小小更正一下 第二个ID 也仍然会执行dectect 并且 if12/30 18:13
9F:→ ken52011219: 判断式为true 执行stall12/30 18:13
10F:→ ken52011219: 这部分为什麽说第二个cycle if判断式为true 是因为圣 12/30 18:14
11F:→ ken52011219: 经本只写了两种forwarding 判断式 但其实有四种12/30 18:14
12F:→ ken52011219: 总而言之,以目前我们所认知的pipeline 无法解决该 12/30 18:15
13F:→ ken52011219: 问题 12/30 18:15
14F:→ ken52011219: 就死记 lw beq会停两cycle就好 12/30 18:15
15F:→ ken52011219: 而第一个ID并非为stall 因为它并没有被执行要stall12/30 18:18
16F:→ ken52011219: 的指令,而是下达要stall下一个cycle的cycle12/30 18:18
太清楚了!感恩>< 不过我还有个额外问题,那为何第二次bne的Stall算在12呢? ※ 编辑: ssssIssss (114.44.199.149), 12/30/2016 18:21:09
17F:→ yupog2003: 我觉得死记lw beq停两cycle并不好,万一题目改成beq在 12/30 18:20
18F:→ yupog2003: EX或MEM阶段判断要不要跳,就分别是停1和0个cycle了 12/30 18:20
而且依这样说的话,第一小题中的Stall都要算多一个cycle了@@? ※ 编辑: ssssIssss (114.44.199.149), 12/30/2016 18:23:11
19F:→ yupog2003: 原PO这样画应该是认为IF阶段之後就开始暂停?12/30 18:22
20F:→ ken52011219: 是这样没错 XD 我说的不够好 还是画图最好 12/30 18:23
21F:→ yupog2003: 应该是ID之後才开始暂停,所以才要画三个ID 12/30 18:23
22F:→ yupog2003: 第二次的bne应该是13才对,答案有错 12/30 18:23
23F:→ ken52011219: 那个答案错的是13 12/30 18:23
24F:→ yupog2003: 其实任何hazard都不可能在IF之後就暂停,除非是在等前 12/30 18:25
25F:→ yupog2003: 面的指令,因为ID阶段之後才知道这个指令是什麽,IF阶 12/30 18:26
26F:→ yupog2003: 段只是fetch根本不知道指令长什麽样子,也无法暂停 12/30 18:26
27F:→ yupog2003: 前面有一篇branch stall的位置,里面k大有提供完整的 12/30 18:28
28F:→ yupog2003: execution diagram,可以好好看一下,思考为什麽这边停 12/30 18:28
29F:→ yupog2003: 为什麽那边停,我就是靠那张图想很久才把瓶颈解开的 12/30 18:29
30F:→ ken52011219: 我现在没有笔 但我记得 yupog 大讲的状况可以被forwa 12/30 18:30
31F:→ ken52011219: rding 解决(?12/30 18:30
我记得只是不能提前到IF就forwarding而已? 还有,因为我本来以为的是,因为在ID判断,所以要把ID延後到ME,确定好正确数值後再 判别。 那如果像大大们说的这样,第一题中不也是bne直接连续执行到ME後再Stall ME重复判别 了吗? ※ 编辑: ssssIssss (114.44.199.149), 12/30/2016 18:34:26
32F:→ yupog2003: k大是说改在EX或MEM阶段判断要不要跳可以被forwarding 12/30 18:34
33F:→ yupog2003: 解决? 12/30 18:34
34F:→ ken52011219: 哦哦 没事我想错了 EXE 还要STALL一次 12/30 18:46
35F:→ yupog2003: 我好像有说错,在MEM阶段判别的话好像还是要stall 1个 12/30 18:47
36F:→ yupog2003: cycle 12/30 18:47
37F:→ ken52011219: 疑XD 怎麽大家想错刚好不同的东西 12/30 18:48
38F:→ yupog2003: 其实我觉得会这麽混乱是因为课本没把所有的forwarding 12/30 18:53
39F:→ yupog2003: path都讲出来... 12/30 18:53
40F:→ ken52011219: 我想清楚了 不会有题目问EXE的状况 12/30 19:03
41F:→ ken52011219: 为何将BEQ接在ID就是因为要无缝接下一个就是正确的 12/30 19:05
42F:→ ken52011219: instruction , 而MEM则是藉由原本的IF ,ID ,EX, M 12/30 19:06
43F:→ ken52011219: 来执行BEQ ,因此forwarding 可在beq为id的阶段 12/30 19:11
44F:→ ken52011219: LW 为EXE 的阶段中 启用forwarding来解决 12/30 19:11
45F:推 superdurian: 可以问一下stall cycles 前面的cycle2是答案之一吗? 12/30 19:59
46F:→ yupog2003: 不是 12/30 20:11
答案是我用红笔写的而已唷
47F:推 Transfat: 有人可以画画看MEM阶段决定要不要branch的图吗 12/30 20:48
48F:→ Transfat: 有点画不出来(1) 12/30 20:48
※ 编辑: ssssIssss (140.112.25.99), 12/30/2016 20:51:32 我画第一题的流程好了,然後我想请问一下这样子的话为何是Stall在cycle7? 因为若像是第二题这样,那应该会是先IF ID EX ME ME WB 才是吧? 而这样stall的地方就会是cycle9了? lw IF ID EX ME WB add IF ID XX EX ME WB lw IF XX ID EX ME WB bne XX IF ID XX EX ME WB NOP IF NOP XX IF NOP IF add IF ID EX ME WB ※ 编辑: ssssIssss (140.112.25.99), 12/30/2016 20:57:13
49F:→ ken52011219: 我发现我前面讲错了 mem 还要一个stall 没错QQ 12/30 21:16
50F:→ ken52011219: 果然还是要拿笔写才对 12/30 21:17
51F:→ ken52011219: http://i.imgur.com/SXPqFSP.jpg 12/30 21:25
52F:→ yupog2003: 原谅我字丑用excel:http://imgur.com/TOoeCtX 12/30 21:28
那我试着阐述我现在的理解,你们帮我确认是否为真感恩>< 第一题中的load-use datahazard,等到lw的数值在MEM正确後便可forwarding给bne, 因此就如同其他datahazard的解决方式一样,把要用到的stage延後到可forwarding 的地方即可。 而在第二题中,因为判别提早到ID便出现,因此情况便会是ID不断Stall,持续判别 直到lw的reg正确传递给bne为止? ※ 编辑: ssssIssss (140.112.25.99), 12/30/2016 21:43:38
53F:推 Transfat: 我也想问为什麽lw和bne的时候stall要在cycle7,如果在MEM 12/30 21:42
54F:→ Transfat: 阶段决定要不要跳,不是在MEM之前把资料传给bne就行了吗 12/30 21:43
55F:→ yupog2003: 我也有T大的疑问,张凡上课的时候说课本并没有把所有的 12/30 21:45
56F:→ yupog2003: forwarding path都介绍出来,像MEM forwarding to MEM 12/30 21:46
57F:→ yupog2003: 就没有介绍到,所以我在想是不是就不能这样用... 12/30 21:46
58F:→ yupog2003: 原po的理解跟我一样,但是感觉如果可以把MEM的结果 12/30 21:50
59F:→ yupog2003: forwarding给下一个要进MEM的指令,这样c7的stall就不 12/30 21:51
60F:→ yupog2003: 必要了 12/30 21:51
61F:→ ken52011219: 我当初也有这个疑问,直到看了multi cycle data path 12/30 21:53
62F:→ yupog2003: 可是课本从头到尾都把branch放在ID,放在MEM的作法没讲 12/30 21:53
63F:→ ken52011219: "或许" 这跟为什麽branch 会放在 mem有关系 12/30 21:55
64F:→ ssssIssss: k大可以开释一下吗QQ 12/30 21:55
65F:→ ken52011219: https://goo.gl/JYRfxz 这是multicycle data path 12/30 21:56
66F:→ ken52011219: 你会看到 ALU 被当全功能 然後连到PCsrc 做mux 12/30 21:58
67F:→ ken52011219: 这其中也包含着 BEQ 的instruction 12/30 21:58
68F:→ ken52011219: 然後连回 PC线 mux 选择要传进Dmem or Imem 12/30 21:59
69F:→ ken52011219: 它们这张图的关系跟Pipeline有很多不合理的原理可以 12/30 22:00
70F:→ ken52011219: 看起来被解释QQ ,只不过我看圣经本没有太多琢磨 12/30 22:01
71F:→ yupog2003: 意思就是说,虽然beq在MEM被决定,但那个zero的值必须 12/30 22:02
72F:→ yupog2003: 在EX阶段就被决定好,所以lw的结果也要在beq进EX时就决 12/30 22:03
73F:→ yupog2003: 定好,所以要stall一个cycle,然後把MEM的结果forward 12/30 22:04
74F:→ yupog2003: 到EX 12/30 22:04
75F:→ yupog2003: 这样整个都对的起来了耶...感谢k大 12/30 22:04
76F:→ ken52011219: 这张图能解释的还有一个 为什麽对於Beq来说 regdst 12/30 22:07
77F:→ ken52011219: 和 memtoreg是don't care 12/30 22:07
78F:→ ken52011219: 因为BEQ根本碰不到它们这两个控制端 12/30 22:08
79F:→ ken52011219: 我想讲的是,对於这张图而言 MEM STAGE在最右端MUX 12/30 22:20
80F:→ ken52011219: 和 最左端到记忆体之前 12/30 22:20
81F:→ ken52011219: 或许Pipeline 也有可能是照着类似概念建成的 12/30 22:22







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP