物理地址扩展

物理地址扩展 (PAE) 是一项处理器功能,使 x86 处理器能够在支持 Windows 的版本上访问超过 4 GB 的物理内存。 在基于 x86 的系统上运行的某些 32 位版本的 Windows Server 可以使用 PAE 访问高达 64 GB 或 128 GB 的物理内存,具体取决于处理器的物理地址大小。 有关详细信息,请参阅 Windows 版本的内存限制

Intel Itanium 和 x64 处理器体系结构可以本机访问超过 4 GB 的物理内存,因此不提供等效的 PAE。 PAE 仅由在基于 x86 的系统上运行的 32 位版本的 Windows 使用。

使用 PAE 时,操作系统将从两级线性地址转换转换为三级地址转换。 与其将线性地址拆分为三个单独的字段用于索引到内存表,不如将其拆分为四个单独的字段:一个 2 位位域、两个 9 位位域和一个对应于 Intel 体系结构实现的页大小 (4 KB) 的 12 位位域。 在 PAE 模式下,PTE (页表条目的大小) 和页目录条目 (PTE) 从 32 位增加到 64 位。 附加位允许操作系统 PTE 或 PDE 引用超过 4 GB 的物理内存。

在基于 x64 的系统上运行的 32 位 Windows 中,PAE 还支持多种高级系统和处理器功能,包括支持硬件 的数据执行防护 (DEP) 、 非统一内存访问 (NUMA) ,以及 (热添加内存) 向系统添加内存的功能。

PAE 不会更改进程可用的虚拟地址空间量。 在 32 位 Windows 中运行的每个进程仍限制为 4 GB 虚拟地址空间。

PAE 的系统支持

PAE 仅在基于 x86 的系统上运行的以下 32 位版本的 Windows 上受支持:

  • 仅 Windows 7 (32 位)
  • Windows Server 2008 仅 (32 位)
  • Windows Vista 仅 (32 位)
  • Windows Server 2003 仅 (32 位)
  • 仅 Windows XP (32 位)

启用 PAE

如果在支持支持硬件的 DEP 的计算机上启用了 DEP,或者如果计算机配置为内存范围超过 4 GB 的热添加内存设备,则 Windows 会自动启用 PAE。 如果计算机不支持启用硬件的 DEP,或者未针对内存范围超过 4 GB 的热添加内存设备进行配置,则必须显式启用 PAE。

若要显式启用 PAE,请使用以下 BCDEdit /set 命令设置 pae 启动条目选项:

bcdedit /set [{ID}] pae ForceEnable

如果启用了 DEP,则无法禁用 PAE。 使用以下 BCDEdit /set 命令禁用 DEP 和 PAE:

bcdedit /set [{ID}] nx AlwaysOff
bcdedit /set [{ID}] pae ForceDisable

Windows Server 2003 和 Windows XP:若要启用 PAE,请使用 boot.ini 文件中的 /PAE 开关。 若要禁用 PAE,请使用 /NOPAE 开关。 若要禁用 DEP,请使用 /EXECUTE 开关。

比较 PAE 和其他大型内存支持

PAE、 4 GB 优化 (4GT) ,以及 地址窗口扩展 (AWE) 具有不同的用途,可以彼此独立使用:

  • PAE 允许操作系统访问和使用超过 4 GB 的物理内存。
  • 4GT 将可供进程使用的虚拟地址空间部分从 2 GB 增加到 3 GB。
  • AWE 是一组 API,允许进程分配非分页物理内存,然后将此内存的一部分动态映射到进程的虚拟地址空间。

当未使用 4GT 和 AWE 时,单个 32 位进程可以使用的物理内存量受其地址空间大小限制 (2 GB) 。 在这种情况下,已启用 PAE 的系统仍然可以使用超过 4 GB 的 RAM 来同时运行多个进程或在内存中缓存文件数据。

4GT 可与 PAE 一起使用,也可以不带 PAE 使用。 但是,某些版本的 Windows 会限制使用 4GT 时可以支持的最大物理内存量。 在此类系统上,在启用 4GT 的情况下启动会导致操作系统忽略超出限制的任何内存。

AWE 不需要 PAE 或 4GT,但通常与 PAE 一起使用,以便从单个 32 位进程分配超过 4 GB 的物理内存。

IsProcessorFeaturePresent

PAE X86 技术参考