例如以保存在粗页表中的大页描述符
1 页表基址寄存器C2的高18位[31:14]和MVA[31:20]组成一个低2位为0的32位地址,MMU利用这个地址找到粗页表描述符
2 取出粗页表描述符的位[31:10]----粗页表基址,它和MVA的[19:12]组成一个低2位为0的32位物理地址----据此找到大页描述符
3 取出大页描述符的位[31:16]---即大页基址,它和MVA[15:0]组成一个32位的物理地址---这就是MVA所对应的PA
上面步骤2和3中,用于在粗页表中索引的MVA[19:12]、用于大页内寻址的MVA[15:0]有重合的位:位[15:12]。当[15:12]从0b0000变化为0b1111时,步骤2返回的大页描述符相同
问题:在ARM9中的虚拟地址是2^32=4GB,分为4096个1MB,在步骤2中取出对应的粗页表基址,粗页表基址加上偏移量2^8,可以找到大页表描述符。。。。
1 物理地址空间的计算 (2^8)*64K = 2^24 为什么空间不是1M??
求大虾帮忙解决!!!!
另外在粗页表中 位[31:20]称为粗页表基址,在此描述符的低10位0后就是一个二级页表的物理地址。此二级页表含256个条目(所以大小为1KB)称为粗页表。其中每个条目表示大小为4KB的地址空间,所以一个粗页表表示1MB的物理空间
2 以上的256,1KB,4KB是怎么来的???? |