取
mmu 的 TTB (translation base register) 內的bit 14-31
和
要轉換的address的 bit 20-31
組合成一個 30 bit的address
H --------------------------L這個位址就是level one descriptor。
[TTB 31-14] [ Address 20-31] 1. 0
descriptor的內容決定address要怎麼轉換。
問題是...address只有 30 bit呀,後面還有兩個bit怎麼辦?
都用 0 ? 那這個descriptor table不就不連續 ?
真蠢。
descriptor的size是32 bit,所以一個descriptor需要4 bytes。
最後兩個bit當然就不能用囉。
會被混淆的原因是 descriptor的內容,
剛好bit 0, 1 用作 traslation type 的id:
00 - Fault
01 - Coarse Page
10 - Section
11 - Fine Page
沒有留言:
張貼留言