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