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 处理器支持三种分页模式:
- 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)
这里报告了 table 总结差异(不幸的是,如图所示)
我注意到 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 处理器支持三种分页模式:
- 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)
这里报告了 table 总结差异(不幸的是,如图所示)