作者kyuudonut (善良老百姓)
看板Grad-ProbAsk
標題Re: [理工] 107 交大 計組 (4)
時間Wed Jan 16 14:07:03 2019
1F:推 b10007034: 嗯對的,總體來說蠻複雜的,我翻了恐龍跟算盤 01/16 12:52
2F:→ b10007034: 大致上的心得跟你說得差不多 01/16 12:53
3F:→ b10007034: 首先看到TLB(恐龍397),看CPU可以讓HW處理或是透過中斷 01/16 12:56
4F:→ b10007034: 然後是TLB(RISC-V算盤839),TLB miss,HW儲存暫存器值 01/16 13:01
5F:→ b10007034: 然後產生exception 01/16 13:01
6F:→ b10007034: exception調用OS,並用一組特殊的instr.(ISR?)更新TLB 01/16 13:02
7F:推 b10007034: 看了一些之後我只能說有三種情況,1全都HW處理2全都OS處 01/16 13:06
8F:→ b10007034: 3.HW+OS處理 01/16 13:06
You got it. 現實情況就是這樣。但這會牽扯到 ISA 是如何設計的。
"通常" RISC-style 的 ISA 會盡量避免牽扯到 micro-architecture 相關的指令,
因為 TLB 主要是 micro-architecture level 的最佳化,會讓整個 ISA 不夠簡潔。
但 Intel 就會有 TLB 相關的指令,例如 flush, invalidate, ...
9F:→ b10007034: 目前能確定的是cache一定是HW處理,猜測是為了快 01/16 13:08
10F:→ b10007034: 而memory那部分就是HW(MMU)+OS(決定replacement algo.) 01/16 13:09
→ b10007034: TLB也是HW+OS(參照算盤) *[m 01/16 13:09
這倒不一定,Cache 的部分還會有 prefetch 相關的指令可以用
11F:→ b10007034: 源來做trade-off,而這也就是現實的複雜之處 01/16 13:15
12F:→ b10007034: 說得還蠻模糊的,希望有大神出來點破我XD 01/16 13:17
--
◢ ◣ ▁▂█▂▁◢茄你老木! ◥ ▁▂▁
你這個茄子 ◤◥◤◥ 你有得茄嗎? ◢█ ◆ █◣ 【茄~】
◣ ◤ ˋ ˊ ◥ 你有得茄嗎?◢ ◤ ◥◥◤◤ ◥ ◤
◤ ㄧ ◣ ◤ (因為很重要 ▉ ⊙ ⊙ ▏
…
▍ 所以說兩次)▉ △ ◢ ▏
◣ ◤◤ ◣ ◤◢ ψJeans1020
◢ ◣ ▁▂█▂▁◢茄你老木! ◥ ▁▂▁
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.16.173
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Grad-ProbAsk/M.1547618826.A.7CD.html
13F:推 b10007034: 謝拉,原來是ISA,柱子本會講到這邊嗎? 01/16 14:32
14F:→ b10007034: Intel flush指令我知道,如果TLB entry沒有ASIDs(恐龍) 01/16 14:36
15F:→ b10007034: 為了確保context switch時,下個process不會轉換到上個 01/16 14:37
16F:→ b10007034: process的PPN,會用flush來保證這件事情 01/16 14:38
17F:→ skyHuan: 長知識了 01/16 23:11
18F:推 skyHuan: 感謝b大跟原po 01/16 23:11