2008年4月14日星期一
32位windows操作系统使用4G内存问题
症状
如果计算机上安装了 4 GB 随机存取内存 (RAM),则 Windows Vista 中的“系统信息”对话框中报告的系统内存将小于预期值。例如,如果某台计算机上安装了 4 GB (4,096 MB) 内存,但“系统信息”对话框可能报告系统内存为 3,120 MB。
原因
这一行为是某些硬件和软件因素导致的预期结果。 典型计算机中的各种设备均需要内存映射访问。这称为内存映射 I/O (MMIO)。若要使 MMIO 空间可用于 32 位操作系统,MMIO 空间必须驻留在前 4 GB 地址空间内。例如,如果您具有一个板载内存为 256 MB 的视频卡,此内存必须被映射到前 4 GB 地址空间内。如果已安装了 4 GB 系统内存,则图形内存映射必须保留部分此地址空间。此图形内存映射会覆盖一部分系统内存。这些情况降低了操作系统可用的系统内存总量。 可用系统内存的减少情况取决于计算机中安装的设备。不过,为避免潜在的驱动程序兼容性问题,Windows Vista 32 位版本将可用总内存限制为 3.12 GB。有关潜在驱动程序兼容性问题的信息,请参见“更多信息”一节。 如果计算机中安装了多台设备,则可用内存可能会减小到 3 GB 或更少。但是,在 Windows Vista 32 位版本中,最大可用内存通常为 3.12 GB。
替代方法
如果要使 Windows Vista 使用安装有 4 GB 内存的计算机上的全部 4 GB 内存,则该计算机必须符合下列要求:
•
芯片集必须至少支持 8 GB 地址空间。具有此功能的芯片集包括:
•Intel 975X
•Intel P965
•采用 Socket 775 插槽的 Intel 955X
•支持 AMD 处理器的芯片集,AMD 处理器采用 Socket F、Socket 940、Socket 939 或 Socket AM2 插槽。这些芯片集包括任意 AMD 插槽和 CPU 的组合,其中内存控制器位于 CPU 内。
•CPU 必须支持 x64 指令集。AMD64 CPU 和 Intel EM64T CPU 支持此指令集。
•BIOS 必须支持内存重新映射功能。利用内存重新映射功能,可以将先前被外围组件互连 (PCI) 配置空间覆盖的系统内存段重新映射到 4 GB 地址行以上。必须在计算机上的 BIOS 配置实用程序中启用该功能。有关如何启用此功能的说明,请查看计算机产品文档。大多数面向消费者的计算机可能不支持内存重新映射功能。在产品文档或 BIOS 配置实用程序中未使用与此功能有关的任何标准术语。因此,您可能必须阅读有关各种可用 BIOS 配置设置的说明,以确定是否有任何 BIOS 设置启用了内存重新映射功能。
•必须使用 Windows Vista x64(64 位)版本。请与计算机供应商联系以确定您的计算机是否符合上述要求。 注意:当计算机安装的物理 RAM 等于芯片集支持的地址空间时,操作系统可用的系统内存总和始终小于所安装的物理 RAM。我们以一台具有 Intel 975X 芯片集(支持 8 GB 地址空间)的计算机为例。如果安装 8 GB RAM,则 PCI 配置要求将减少操作系统可用的系统内存。在此情况下,PCI 配置要求会将操作系统的可用内存减少约 200 MB 至 1 GB,减少的数量取决于配置。
更多信息
PAE 模式引发的驱动程序兼容性问题
与数据执行保护 (DEP) 有关的驱动程序兼容性问题通常为物理地址扩展 (PAE) 模式引发的兼容性问题。注意:仅在其处理器支持硬件强制 DEP 功能的计算机上,PAE 才是必需的。对于执行代码生成或使用其他技术实时生成可执行代码的任意驱动程序,DEP 可能导致与该驱动程序的兼容性问题。出现上述问题的许多驱动程序均已得到修复。对 Windows 64 位版本上的驱动程序来说,由于 DEP 总是处于启用状态,因此这些驱动程序经常遇到兼容性问题。但是,并不保证所有驱动程序均已更新为可以修补 PAE 模式引发的兼容性问题。不过,很少有驱动程序使用这些技术。DEP 自己通常不会引起驱动程序兼容性问题。在 32 位计算机上运行 PAE 模式时可能出现驱动程序兼容性问题,这是您可能遇到的主要驱动程序兼容性问题。PAE 模式使处理器使用 4 GB 以上内存。PAE 和非 PAE 内存分页方案的主要区别在于在 PAE 模式下需要附加级别分页。PAE 模式需要三个级别的分页而不是两个级别的分页。如果启用了 PAE 模式,则某些驱动程序可能不会进行加载,因为设备可能无法执行 64 位寻址。或者,假设 PAE 模式需要 4 GB 以上内存,驱动程序可能会被写入。在写入此类驱动程序时,预计这些驱动程序在 PAE 模式下总是会收到 64 位地址,且此类驱动程序或相应设备无法解释该地址。其他驱动程序可通过直接修改系统页表项 (PTE) 在 PAE 模式下进行加载,但这会导致系统不稳定。这些驱动程序需要 32 位页表项,但在 PAE 模式下它们收到的却是 64 位 PTE。驱动程序的最常见 PAE 兼容性问题与直接内存访问 (DMA) 传输和映射寄存器分配有关。许多支持 DMA 的设备(通常是 32 位适配器)都无法进行 64 位物理寻址。当这些设备在 32 位模式下运行时,它们可以对所有物理地址空间进行寻址。在 PAE 模式下,数据可存在于超过 4 GB 的物理地址中。为了使具有这些约束条件的设备可以在此情况下工作,Microsoft Windows 2000 Server 和更高版本的 Windows 为 DMA 事务提供双缓冲功能。Windows 2000 Server 和更高版本的 Windows 通过提供由映射寄存器指示的 32 位地址来实现这一目的。该设备可对 32 位地址执行 DMA 事务。内核将内存复制到提供给此驱动程序的 64 位地址。当计算机在禁用 PAE 模式的情况下运行时,32 位设备的驱动程序不要求将系统内存分配到其映射寄存器。这意味着不需要双缓冲,因为所有设备和所有驱动程序均包含在 32 位地址空间内。在基于 64 位处理器的计算机上对 32 位设备的驱动程序进行测试的结果表明,经客户端测试的具有 DMA 功能的驱动程序通常需要无限的映射寄存器。本文中提到的第三方产品由 Microsoft 以外的其他公司提供。对于这些产品的性能或可靠性,Microsoft 不作任何暗示保证或其他形式的保证。
如果计算机上安装了 4 GB 随机存取内存 (RAM),则 Windows Vista 中的“系统信息”对话框中报告的系统内存将小于预期值。例如,如果某台计算机上安装了 4 GB (4,096 MB) 内存,但“系统信息”对话框可能报告系统内存为 3,120 MB。
原因
这一行为是某些硬件和软件因素导致的预期结果。 典型计算机中的各种设备均需要内存映射访问。这称为内存映射 I/O (MMIO)。若要使 MMIO 空间可用于 32 位操作系统,MMIO 空间必须驻留在前 4 GB 地址空间内。例如,如果您具有一个板载内存为 256 MB 的视频卡,此内存必须被映射到前 4 GB 地址空间内。如果已安装了 4 GB 系统内存,则图形内存映射必须保留部分此地址空间。此图形内存映射会覆盖一部分系统内存。这些情况降低了操作系统可用的系统内存总量。 可用系统内存的减少情况取决于计算机中安装的设备。不过,为避免潜在的驱动程序兼容性问题,Windows Vista 32 位版本将可用总内存限制为 3.12 GB。有关潜在驱动程序兼容性问题的信息,请参见“更多信息”一节。 如果计算机中安装了多台设备,则可用内存可能会减小到 3 GB 或更少。但是,在 Windows Vista 32 位版本中,最大可用内存通常为 3.12 GB。
替代方法
如果要使 Windows Vista 使用安装有 4 GB 内存的计算机上的全部 4 GB 内存,则该计算机必须符合下列要求:
•
芯片集必须至少支持 8 GB 地址空间。具有此功能的芯片集包括:
•Intel 975X
•Intel P965
•采用 Socket 775 插槽的 Intel 955X
•支持 AMD 处理器的芯片集,AMD 处理器采用 Socket F、Socket 940、Socket 939 或 Socket AM2 插槽。这些芯片集包括任意 AMD 插槽和 CPU 的组合,其中内存控制器位于 CPU 内。
•CPU 必须支持 x64 指令集。AMD64 CPU 和 Intel EM64T CPU 支持此指令集。
•BIOS 必须支持内存重新映射功能。利用内存重新映射功能,可以将先前被外围组件互连 (PCI) 配置空间覆盖的系统内存段重新映射到 4 GB 地址行以上。必须在计算机上的 BIOS 配置实用程序中启用该功能。有关如何启用此功能的说明,请查看计算机产品文档。大多数面向消费者的计算机可能不支持内存重新映射功能。在产品文档或 BIOS 配置实用程序中未使用与此功能有关的任何标准术语。因此,您可能必须阅读有关各种可用 BIOS 配置设置的说明,以确定是否有任何 BIOS 设置启用了内存重新映射功能。
•必须使用 Windows Vista x64(64 位)版本。请与计算机供应商联系以确定您的计算机是否符合上述要求。 注意:当计算机安装的物理 RAM 等于芯片集支持的地址空间时,操作系统可用的系统内存总和始终小于所安装的物理 RAM。我们以一台具有 Intel 975X 芯片集(支持 8 GB 地址空间)的计算机为例。如果安装 8 GB RAM,则 PCI 配置要求将减少操作系统可用的系统内存。在此情况下,PCI 配置要求会将操作系统的可用内存减少约 200 MB 至 1 GB,减少的数量取决于配置。
更多信息
PAE 模式引发的驱动程序兼容性问题
与数据执行保护 (DEP) 有关的驱动程序兼容性问题通常为物理地址扩展 (PAE) 模式引发的兼容性问题。注意:仅在其处理器支持硬件强制 DEP 功能的计算机上,PAE 才是必需的。对于执行代码生成或使用其他技术实时生成可执行代码的任意驱动程序,DEP 可能导致与该驱动程序的兼容性问题。出现上述问题的许多驱动程序均已得到修复。对 Windows 64 位版本上的驱动程序来说,由于 DEP 总是处于启用状态,因此这些驱动程序经常遇到兼容性问题。但是,并不保证所有驱动程序均已更新为可以修补 PAE 模式引发的兼容性问题。不过,很少有驱动程序使用这些技术。DEP 自己通常不会引起驱动程序兼容性问题。在 32 位计算机上运行 PAE 模式时可能出现驱动程序兼容性问题,这是您可能遇到的主要驱动程序兼容性问题。PAE 模式使处理器使用 4 GB 以上内存。PAE 和非 PAE 内存分页方案的主要区别在于在 PAE 模式下需要附加级别分页。PAE 模式需要三个级别的分页而不是两个级别的分页。如果启用了 PAE 模式,则某些驱动程序可能不会进行加载,因为设备可能无法执行 64 位寻址。或者,假设 PAE 模式需要 4 GB 以上内存,驱动程序可能会被写入。在写入此类驱动程序时,预计这些驱动程序在 PAE 模式下总是会收到 64 位地址,且此类驱动程序或相应设备无法解释该地址。其他驱动程序可通过直接修改系统页表项 (PTE) 在 PAE 模式下进行加载,但这会导致系统不稳定。这些驱动程序需要 32 位页表项,但在 PAE 模式下它们收到的却是 64 位 PTE。驱动程序的最常见 PAE 兼容性问题与直接内存访问 (DMA) 传输和映射寄存器分配有关。许多支持 DMA 的设备(通常是 32 位适配器)都无法进行 64 位物理寻址。当这些设备在 32 位模式下运行时,它们可以对所有物理地址空间进行寻址。在 PAE 模式下,数据可存在于超过 4 GB 的物理地址中。为了使具有这些约束条件的设备可以在此情况下工作,Microsoft Windows 2000 Server 和更高版本的 Windows 为 DMA 事务提供双缓冲功能。Windows 2000 Server 和更高版本的 Windows 通过提供由映射寄存器指示的 32 位地址来实现这一目的。该设备可对 32 位地址执行 DMA 事务。内核将内存复制到提供给此驱动程序的 64 位地址。当计算机在禁用 PAE 模式的情况下运行时,32 位设备的驱动程序不要求将系统内存分配到其映射寄存器。这意味着不需要双缓冲,因为所有设备和所有驱动程序均包含在 32 位地址空间内。在基于 64 位处理器的计算机上对 32 位设备的驱动程序进行测试的结果表明,经客户端测试的具有 DMA 功能的驱动程序通常需要无限的映射寄存器。本文中提到的第三方产品由 Microsoft 以外的其他公司提供。对于这些产品的性能或可靠性,Microsoft 不作任何暗示保证或其他形式的保证。
标签: 32bit vista 4G phsical memory
订阅 博文 [Atom]