Re: [理工] 107 交大 計組 (4)

作者: kyuudonut (善良老百姓)   2019-01-16 14:07:03
推 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
You got it. 現實情況就是這樣。但這會牽扯到 ISA 是如何設計的。
"通常" RISC-style 的 ISA 會盡量避免牽扯到 micro-architecture 相關的指令,
因為 TLB 主要是 micro-architecture level 的最佳化,會讓整個 ISA 不夠簡潔。
但 Intel 就會有 TLB 相關的指令,例如 flush, invalidate, ...
→ b10007034: 目前能確定的是cache一定是HW處理,猜測是為了快 01/16 13:08
→ b10007034: 而memory那部分就是HW(MMU)+OS(決定replacement algo.) 01/16 13:09
→ b10007034: TLB也是HW+OS(參照算盤) *[m 01/16 13:09
這倒不一定,Cache 的部分還會有 prefetch 相關的指令可以用
→ b10007034: 源來做trade-off,而這也就是現實的複雜之處 01/16 13:15
→ b10007034: 說得還蠻模糊的,希望有大神出來點破我XD 01/16 13:17
作者: b10007034 (Warren)   2018-01-16 12:52:00
嗯對的,總體來說蠻複雜的,我翻了恐龍跟算盤大致上的心得跟你說得差不多首先看到TLB(恐龍397),看CPU可以讓HW處理或是透過中斷然後是TLB(RISC-V算盤839),TLB miss,HW儲存暫存器值然後產生exceptionexception調用OS,並用一組特殊的instr.(ISR?)更新TLB看了一些之後我只能說有三種情況,1全都HW處理2全都OS處3.HW+OS處理目前能確定的是cache一定是HW處理,猜測是為了快而memory那部分就是HW(MMU)+OS(決定replacement algo.)源來做trade-off,而這也就是現實的複雜之處說得還蠻模糊的,希望有大神出來點破我XD謝拉,原來是ISA,柱子本會講到這邊嗎?Intel flush指令我知道,如果TLB entry沒有ASIDs(恐龍)為了確保context switch時,下個process不會轉換到上個process的PPN,會用flush來保證這件事情
作者: skyHuan (Huan)   2019-01-16 23:11:00
長知識了感謝b大跟原po

Links booklink

Contact Us: admin [ a t ] ucptt.com