32位机器如何支持大于4GB的RAM?可以使用32位寻址的虚拟内存是2 ^ 32,包含所有间接(页面表/页面目录等)。这是如何完成的?
答案 0 :(得分:3)
物理内存超过4GB的32位机器仍然只能处理4GB的虚拟内存(指针仍为32位)。但请记住,每个进程都有自己的一组页表,因此每个进程都可以映射物理内存的不同部分 - 所有进程所处理的总物理内存可以是大于4GB。
在x86 PAE(物理地址扩展)的特定情况下,将处理器置于PAE模式会更改页表的结构。它使用具有8字节页表条目的三级页表方案,而不是具有4字节页表条目的两级页表方案。页面仍然是4KB,但它们的物理基地址(存储在页表项中)现在是64位。
在PAE模式下,32位线性(“虚拟”)地址分为4个部分。从最高有效位到最低有效位,前2位用作4条目页目录指针表的索引。此表中的条目各为8个字节,每个条目包含页目录的64位物理基址。虚拟地址的下一个9位用作页面目录的索引,此表中的条目再次包含页表的64位物理基址。虚拟地址的后9位用作页表的索引,每个页表项包含页框的64位物理基址。虚拟地址的12个最低有效位用作页帧内的字节偏移量。