x86-64位处理器中的PAE - Linux内核
问题描述:
我注意到我的Linux(3.19)x86-64机器上的CR4寄存器中的PAE位已打开。 PAE功能允许访问高达64GB的物理地址,但我不明白为什么在启用长模式时需要它。我查了一会儿,但没有找到任何满意的答案。x86-64位处理器中的PAE - Linux内核
有什么建议吗?
答
它使用IA-32e分页。
逻辑处理器使用IA-32E寻呼如果CR0.PG = 1,CR4.PAE = 1,和IA32_EFER.LME = 1
随着IA-32e的寻呼,线性地址使用内存分页结构的层次结构进行翻译,所述分层结构使用CR3的内容来定位。
IA-32e分页将48位线性地址转换为52位物理地址。
尽管52位对应4 PBytes,线性地址被限制为48位;在任何时间,任何 可以访问至多256TB的线性地址空间。
x86处理器支持三种分页模式:
- 32位寻呼(CR0.PG = 1和CR4.PAE = 0)
- PAE寻呼(CR0.PG = 1,CR4.PAE = 1和IA32_EFER.LME = 0)
- IA-32E寻呼(CR0.PG = 1,CR4.PAE = 1,和IA32_EFER.LME = 1)
的表总结了不同此处报告(如图像,不幸地)