linux内存寻址

来源:互联网 发布:java语言就业培训 编辑:程序博客网 时间:2024/04/28 05:18

CPU管脚从32个增加到36个,寻址能力=2^36=64GB,一页4KB,即64GB/2^12=2^24页。

PAE的引入把32位线性地址转换为36物理地址。

首先,页大小为4KB=4096=2^12,这就需要偏移量的最大值达到2^12,才能寻址完全,所以线性地址的最低12位用来存放数据在页中的偏移量。

内存中一共2^24页,即需要24位来指定页的首地址,那么一级页表的每一项都存放着一个指向页首地址的字段,另外有12位的标志位,总共需要36位,这样的话,PAE将页表项大小从原来的32位调整到64位,满足了这一要求。

那么一个页框4KB,一个页表能存512个页地址,需要9位线性地址。同理,二级页表也需要9位线性地址,32-9-9-12=2,这样就剩下2位,PAE引入了页目录指针表,包含4个64位表。

原创粉丝点击