【发布时间】:2017-05-30 07:50:42
【问题描述】:
我注意到 CR4 寄存器中的 PAE 位在我的 Linux (3.19) x86-64 机器上打开了。 PAE 功能允许访问高达 64gb 的物理地址,但我不明白为什么在启用长模式时需要它。我查了一段时间,但没有找到满意的答案。
有什么建议吗?
【问题讨论】:
标签: linux-kernel x86 operating-system x86-64 paging
我注意到 CR4 寄存器中的 PAE 位在我的 Linux (3.19) x86-64 机器上打开了。 PAE 功能允许访问高达 64gb 的物理地址,但我不明白为什么在启用长模式时需要它。我查了一段时间,但没有找到满意的答案。
有什么建议吗?
【问题讨论】:
标签: linux-kernel x86 operating-system x86-64 paging
它正在使用 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 TBytes 的线性地址空间 给定时间。
x86 处理器支持三种分页模式:
此处报告了总结差异的表格(不幸的是,作为图像)
【讨论】: