作者chiuchang (tera)
看板Grad-ProbAsk
标题105清大 计系一题
时间Mon Jan 20 21:47:00 2020
https://i.imgur.com/JurYcIF.jpg
请教一下板上的各位
第2题的a b要怎麽回答呢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 42.76.42.36 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1579528022.A.A95.html
1F:→ mistel: reservations station用来存还无法进入function unit的指 01/20 21:48
2F:→ mistel: 令 01/20 21:48
3F:→ mistel: reorder buffer存指令out of order execution後的结果, 01/20 21:49
4F:→ mistel: 在需要的时候重新commit 01/20 21:49
5F:→ mistel: 打错 在需要的时候重新执行 不需要的时候就commit 01/20 21:50
6F:推 mistel: b小题应该只是reorder buffer在power-off指令超前时重新 01/20 21:53
7F:→ mistel: 执行一次吧? 不太确定reservation station有没有特别的 01/20 21:53
8F:→ mistel: 工作要做... 01/20 21:53
9F:推 ok8752665: b的话 张凡说法是 要确保reservation那的fp指令都做完 01/20 21:59
10F:→ ok8752665: 然後reorder buffer的fp指令也都commit完後 再commit p 01/20 22:00
11F:→ ok8752665: ower off指令 01/20 22:00
12F:推 mistel: 好像懂了 power-off指令跟前面的指令没有data dependency 01/20 22:13
13F:→ mistel: ,所以对於分析资料流来判断重新执行的reorder buffer是 01/20 22:13
14F:→ mistel: 无法运作的,所以reservation station才要负责额外的工作 01/20 22:13
15F:→ mistel: ? 不知道这样对吗? 01/20 22:13
16F:→ DLHZ: reservation station store the operands and the operation 01/20 22:22
17F:→ DLHZ: 应该比较精确一点 01/20 22:22
18F:→ DLHZ: reorder buffer在需要的时候重新执行是指? 01/20 22:27
19F:推 ok8752665: branch猜错的时候吧 01/20 22:29
20F:→ DLHZ: 我认为单纯写出个别要做的事情就好 这指令感觉硬体也要有相 01/20 22:30
21F:→ DLHZ: 对应的功能 所以检查什麽应该是另外设计 可能跟他原本能不能 01/20 22:30
22F:→ DLHZ: 比较没关系 01/20 22:30
23F:推 mistel: 我指的是超前执行导致出现hazard的情况 01/20 22:36
24F:→ mistel: 了解 感谢 01/20 22:36
25F:→ DLHZ: @ok branch出错reorder buffer应该是flush才对 01/20 22:46
26F:→ DLHZ: @mi 先fetch了不是也会等到operands ready吗? 01/20 22:52
27F:推 ok8752665: 喔喔 我是想说猜错会FLUSH然後重抓叫重新执行 不然重新 01/20 22:54
28F:→ ok8752665: 执行具体来说是怎样 超前执行的hazard应该也是control 01/20 22:54
29F:→ ok8752665: Hazard吧 data hazard应该不会超前执行吧 01/20 22:55
30F:→ DLHZ: 因为我的印象中相关的资料都没提到重新执行这件事 刚刚去找 01/20 22:58
31F:→ DLHZ: 了一下也没有 所以想知道重新执行这件事的目的是什麽 01/20 22:58
32F:推 mistel: 是我理解有误吗? superscalar上不同种类的指令因为用到 01/20 23:06
33F:→ mistel: 的function unit不同,所以我们无法保证他们的执行顺序是 01/20 23:06
34F:→ mistel: 跟原本的执行顺序一致的,所以我们不能保证原本像WAR这种 01/20 23:06
35F:→ mistel: 的hazard会跑出正确的结果 01/20 23:06
36F:推 mistel: 看了一下reorder unit只是确定指令没有出错,所以如果有 01/20 23:10
37F:→ mistel: 出错就是flush这样? 我一直以为有出错就会把出错指令拿 01/20 23:10
38F:→ mistel: 回reservation station重新执行 01/20 23:10
39F:→ DLHZ: war跟waw这些hazard的话reservation station本身设计(regist 01/20 23:17
40F:→ DLHZ: er renaming, buffering spurce operands)就会避免这些问题 01/20 23:17
41F:→ DLHZ: 所以因为hazard而重新执行应该是不会发生的 01/20 23:17
42F:推 ok8752665: 我也不知道 我上正课跟题目班 印象中张凡都只有带过 01/20 23:18
43F:→ ok8752665: 说反正会有硬体跟软体去解决hazard 没特别说如何解决 01/20 23:18
44F:推 mistel: 所有speculation都要有一个排除执行错误的机制吧?课本虽 01/20 23:25
45F:→ mistel: 然没有讲清楚,但是他确实有说reorder buffer要hold resu 01/20 23:25
46F:→ mistel: lts until it is safe to store 01/20 23:25
47F:→ DLHZ: safe指的是跟储存的result有关的操作都完成时 Computer arch 01/20 23:29
48F:→ DLHZ: itecture中的ch2.6有 01/20 23:29
49F:推 mistel: 原来如此 所以所谓的in order commit这个阶段就已经不会 01/20 23:33
50F:→ mistel: 有任何有问题的指令了吗? 01/20 23:33
51F:→ DLHZ: 是 除了branch missprediction 其他在设计上都会处理好 01/20 23:47
52F:推 mistel: 感谢 真希望赶快考完来拜读A Quantitative Approach这本 01/20 23:53
53F:→ mistel: 书 01/20 23:53
54F:推 DLHZ: 此时不看更待何时XD!! 01/21 00:16
55F:→ chiuchang: 噢 原来啊 我明白了 谢谢各位 01/21 00:48
56F:推 mistel: 我担心现在乱看然後似懂非懂的 考出来更惨烈 01/21 01:31
57F:→ mistel: 不过真的有感觉到白算盘的东西比较浅一点... 01/21 01:32
58F:→ DLHZ: 那相信在座的各位都会希望你现在看的 01/21 01:47
59F:→ chiuchang: 各位都是20天後的考生吗 01/21 15:49