物理地址扩展

物理地址扩展 (PAE) 是一项处理器功能,它使 x86 处理器能够在 Windows 的 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位位域、2 9 位位域,以及与 Intel 体系 (结构实现的页面大小相对应的12位位域) 。 在 PAE 模式下 (PDEs) 的页表条目 (Pte) 和页面目录项的大小从32提高到64位。 其他位允许操作系统 PTE 或 PDE 引用超过 4 GB 的物理内存。

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

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

适用于 PAE 的系统支持

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

  • 仅限 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 一起使用。 但是,某些版本的 Windows 会限制使用4GT 时可以支持的最大物理内存量。 在此类系统上,启用4GT 后启动会导致操作系统忽略超出限制的任何内存。

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

IsProcessorFeaturePresent

PAE X86 技术参考