为什么你的4GB内存只能看到3GB左右呢?

问题描述

我的系统物理内存明明是4GB的,BIOS里显示的也是4GB,但是Windows系统显示给我的才是2.75GB-3.5GB范围,这是什么原因呢?

概述

如果你运行的系统是32位的,那么这是无法改变的,不可能看到你的4GB内存的。

如果你的系统是64位的,那么这也可能是无法避免的。因为还要依赖于你的主板芯片组,你的系统可能支持内存重映射。如果是这样的话,那么你就可以使用所有的4GB内存了。

解释

由于以前的架构设计原因,如果你安装了4GB物理内存,windows只能报告4GB物理内存的一部分,一般是2.75-3.5GB,具体大小和你安装的设备和芯片组以及BIOS有关系。

这是由于内存映射的IO预留,这些预留空间覆盖了物理地址空间,屏蔽了这些物理地址,因此被屏蔽的物理地址就不能用于工作内存。这是独立于运行的操作系统的。

4GB以下的很大一块地址空间(32比特可访问的最高地址)被保留用于系统的硬件:

  • BIOS - 包括ACPI和视频BIOS支持
  • PCI总线 – 包括南桥北桥等
  • PCI Express – 保留至少256MB内存,最高可达768MB,具体大小取决于显卡上安装的内存大小.

这就意味着典型的系统上可能有256MB-1GB的内存被硬件保留,而不能被操作系统所用。

如果要想使用4GB内存,至少需要以下条件:

1、 操作系统是否支持4GB以上的内存。32位是不可以的,64位的有可能,取决于主板的芯片组限制。

2、处理器是否可以访问4GB以上的内存。如果是最新的处理器,那么可能访问4GB以上的内存,如果处理器是AMD64或者EM64T,那么几乎肯定可以的。

3、你的主板芯片组是否支持4GB以上的页重映射。有可能不支持,这就是有些人安装了64位的vista后还不能看到4GB内存的原因。

引用自微软网站补充信息

“......,如果要使 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,减少的数量取决于配置。”

引文的原文URL : http://support.microsoft.com/?scid=kb%3Bzh-cn%3B...