比如两级page table,我觉的也可以用一级page table将offset的位数变小,va base 的位数变大来实现,这样和两级page table的实现有什么区别呢?
比如两级page table,我觉的也可以用一级page table将offset的位数变小,va base 的位数变大来实现,这样和两级page table的实现有什么区别呢?
如果用一级的话,page table size会大很多。我们以32位地址为例,如果page size 是4K的话,那么VA的offset地址是11:0, VA的index是31:12, 拿这个地址作为index索引去找page table entry,那么这样的话,page table entry的个数就是1M。 而如果把31:12分成两段,比如,两段都是10 bits, 分别来索引 L1 和L2 page table, 这样的话,有些没有用到的空间,那么就不用定义L2 page table的entry, 这样的话,整个page table entry的个数就会少了很多。entry少了,占用的物理内存也就少了,那么很容易就在cache里面拿到,这样的话性能就能提高。