x86-64位处理器中的PAE - Linux内核

时间:2017-01-15 10:20:49

标签: linux-kernel x86 operating-system x86-64 paging

我注意到CR4寄存器中的PAE位在我的Linux(3.19)x86-64机器上打开了。 PAE功能允许访问高达64gb的物理地址,但我不明白为什么在启用长模式时需要它。我已经查了一会儿,但没有找到任何令人满意的答案。

有什么建议吗?

1 个答案:

答案 0 :(得分:7)

正在使用IA-32e分页。

  

如果 CR0.PG = 1, CR4.PAE = 1, IA32_EFER.LME =,逻辑处理器将使用IA-32e分页1.
  使用IA-32e分页,使用 CR3 的内容定位的内存中分页结构层次结构转换线性地址。
  IA-32e分页将48位线性地址转换为52位物理地址   虽然52位对应4个PBytes,但线性地址限制为48位;在任何地方都可以访问最多256 TB的线性地址空间   给定时间。

x86处理器支持三种分页模式:

  1. 32位分页( CR0.PG = 1且 CR4.PAE = 0)
  2. PAE分页( CR0.PG = 1, CR4.PAE = 1, IA32_EFER.LME = 0)
  3. IA-32e分页( CR0.PG = 1, CR4.PAE = 1, IA32_EFER.LME = 1)
  4. 此处报告了一个总结差异的表格(不幸的是,作为图像)

    Differences between the three paging modes on x86