Re: [理工] 108台大資工 計系 Exception

看板Grad-ProbAsk作者 (善良老百姓)時間2年前 (2021/11/02 22:30), 2年前編輯推噓4(409)
留言13則, 3人參與, 2年前最新討論串1/1
回答這題適當的方式我認為不是用排序,而是用歸類的方式回答。 大約分三類 Rank A,B,C,難度為 A > B > C。 Rank A: Out-of-order (OOO) superscalar Speculative execution 有翻過 Computer Architecture: A Quantitative Approach 的學生 應該就知道,ILP 章節在講述 OOO technique,主要就是在聊 Register 怎麼做 rename,最後怎麼 commit 回 ROB (Re-Order Buffer)。 而 Exception 自然是一個重點,既然指令被亂序執行,我們要如何確保 precise exception 這件事情?總不能指令 I 觸發 Exception,但是下 面的指令 II 已經被 commit 了吧?走在 false path 上,結果觸發 Exception? 而 Speculative execution 比較常用在具 OOO capability 的 core 上, 因為這些 core 通常也自帶 Register renaming 的功能。 課本可能常舉的例子是,branch 在尚未 resolve 之前,core 可以繼續 往下執行。但值得一提的是,只要是 core 在基於臆測下執行的動作都 可以稱做 speculative。例如為了避 load-to-use latency,在尚未確定 cache/tlb hit/miss 前,ALU 也可以先 issue consumer 去搶 timing。 而我將這兩種 technique 歸在一類的原因是,最後都是使用 ROB 去確保 program order 及 precise exception。 Rank B: Pipelined implementation Superscalar implementation Single issue In-order processor Pipeline 應該不須多講了。 Superscalar 就定義上來看,是泛指單一 cycle 可以執行一道以上指令的 machine。因為該題有特別把 OOO superscalar 獨立,所以合理推論這是指 In-order superscalar impelementation ...。 如果都是指 In-order implementation,那其實處理 exception 的方式就是 白算盤教的那樣。管你 Single/multiple issue,有指令發生 exception, 都是要 Flush 掉前面年輕的指令,再跳去 exception handler。所以三者 歸在同一類。 Rank C Hierarchical data caches Data cache 是 micro-architecture,而 exception 是 ISA 定義的東西, 要不要發生 exception 跟 cache 一點關係都沒有。 推文有提到 page fault,但多層 cache 的機器我又不一定要開 OS :p 兩件不同的事情。 -- ▁▂█▂▁茄你老木! ▁▂▁ 你這個茄子 ◤◥◤◥ 你有得茄嗎? 茄~ ˋ ˊ 你有得茄嗎? ◥◥◤ (因為很重要 ⊙ ⊙ 所以說兩次) ψJeans1020 ▁▂█▂▁茄你老木! ▁▂▁ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.43.59.224 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1635863416.A.FA9.html

11/02 22:48, 2年前 , 1F
謝謝大大回答,很詳細。
11/02 22:48, 1F

11/02 22:48, 2年前 , 2F
但是想問一下,假如題目說的 Hierarchical Data Cache
11/02 22:48, 2F

11/02 22:48, 2年前 , 3F
,就是 Cache miss的話,是不是就可以看成跟第二類同一
11/02 22:48, 3F

11/02 22:48, 2年前 , 4F
類,因為data cache 會造成Memory Stall的關係,只是
11/02 22:48, 4F

11/02 22:48, 2年前 , 5F
他是停一個cycle,不是整個flush掉
11/02 22:48, 5F
不太清楚你的意思, 題目問的是 handle exception 的難度,cache miss != exception。

11/02 22:49, 2年前 , 6F
所以difficulty 也比大大說的第二類還要低一些,請大
11/02 22:49, 6F

11/02 22:49, 2年前 , 7F
大解答,感謝感謝
11/02 22:49, 7F

11/02 23:28, 2年前 , 8F
的確,cache miss跟page fault沒關係 感謝回復
11/02 23:28, 8F
但就效能上,兩者當然有關係。多層 level cache,可能可以幫忙減少 TLB miss penalty。 但一樣,這跟題幹想問的無關就是。 ※ 編輯: kyuudonut (114.43.59.224 臺灣), 11/03/2021 00:11:03

11/03 00:39, 2年前 , 9F
喔喔,我搞混了,我再想一下,謝謝大大
11/03 00:39, 9F

11/03 10:10, 2年前 , 10F
補充一下 cache 的議題反而會探討coherence與llc memory
11/03 10:10, 10F

11/03 10:10, 2年前 , 11F
的penalty, 而page fault或多或少會影響沒錯但通常會講d
11/03 10:10, 11F

11/03 10:10, 2年前 , 12F
ata pattern是否具備locality或可以prefetch,而page fa
11/03 10:10, 12F

11/03 10:10, 2年前 , 13F
ult比較high level且多牽扯os/main mem/disk之間的關聯
11/03 10:10, 13F
文章代碼(AID): #1XWKju-f (Grad-ProbAsk)