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

PAE in x86-64 bit processors - Linux kernel

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

有什么建议吗?

正在使用 IA-32e 寻呼。

A logical processor uses IA-32e paging if CR0.PG = 1, CR4.PAE = 1, and IA32_EFER.LME = 1.
With IA-32e paging, linear address are translated using a hierarchy of in-memory paging structures located using the contents of CR3.
IA-32e paging translates 48-bit linear addresses to 52-bit physical addresses.
Although 52 bits corresponds to 4 PBytes, linear addresses are limited to 48 bits; at most 256 TBytes of linear-address space may be accessed at any given time.


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)

这里报告了 table 总结差异(不幸的是,如图所示)