推 skyHuan: CPU送出邏輯位址到TLB或page table轉換成實體都是透過MMU 01/15 13:32
→ skyHuan: (硬體)處理,如果要透過OS會一直interrupt很沒效率,只 01/15 13:32
→ skyHuan: 有page fault的時候才會interrupt讓OS處理 01/15 13:32
→ skyHuan: 可以想成還在memory裡面都不關OS的事,要I/O才會給OS 01/15 13:32
→ jojoboy0115: 感謝sky大的解說~ 01/15 13:57
推 b10007034: 請問1樓說法在哪可以查到阿?我想看看感謝 01/15 17:51
推 skyHuan: 但計組是說pipeline如果TLB或cache miss會有exception, 01/16 09:39
→ skyHuan: 之前問洪逸他說兩科的看法可能不一樣,還在記憶體就不關O 01/16 09:39
→ skyHuan: S的事,page fault要做I/O才會OS跳出來 01/16 09:39
推 b10007034: 嗯對的,總體來說蠻複雜的,我翻了恐龍跟算盤 01/16 12:52
→ b10007034: 大致上的心得跟你說得差不多 01/16 12:53
→ b10007034: 首先看到TLB(恐龍397),看CPU可以讓HW處理或是透過中斷 01/16 12:56
→ b10007034: 然後是TLB(RISC-V算盤839),TLB miss,HW儲存暫存器值 01/16 13:01
→ b10007034: 然後產生exception 01/16 13:01
→ b10007034: exception調用OS,並用一組特殊的instr.(ISR?)更新TLB 01/16 13:02
推 b10007034: 看了一些之後我只能說有三種情況,1全都HW處理2全都OS處 01/16 13:06
→ b10007034: 3.HW+OS處理 01/16 13:06
→ b10007034: 目前能確定的是cache一定是HW處理,猜測是為了快 01/16 13:08
→ b10007034: 而memory那部分就是HW(MMU)+OS(決定replacement algo.) 01/16 13:09
→ b10007034: TLB也是HW+OS(參照算盤) 01/16 13:12
→ b10007034: 總體上來說應該都可以由OS或HW處理,只是為了效能及資 01/16 13:14
→ b10007034: 源來做trade-off,而這也就是現實的複雜之處 01/16 13:15
→ b10007034: 說得還蠻模糊的,希望有大神出來點破我XD 01/16 13:17
推 skyHuan: 感謝,長知識了!不過目前看到的考題都是硬體處理,只有 01/16 23:10
→ skyHuan: 要讀disk才會給OS,所以有點應付考試心態也沒去查那麼多 01/16 23:10
→ skyHuan: ,可能真的實作又更複雜還要看系統而定了,考完要再好好 01/16 23:10
→ skyHuan: 學習了 01/16 23:10