首页 > 硬件 > 内存 > 正文

谁动了我的内存 解析4GB内存无法识别问题

2020-10-26 22:22:45
字体:
来源:转载
供稿:网友
  因为内存价格的持续走低,目前各大内存厂商相继推出了单条2GB的DDR2 800内存,这些内存给人最大的感觉就是价格便宜量又足。很多用户就直接买了两条2GB的内存,想组成双通道使用。可拿回家一看,原本4GB的内存容量被识别出来的只有3.2GB左右。通过检查,发现内存本身并没有问题。那又是什么吞食了你的内存呢?这就是我们本期将要给大家说清楚的一个问题。   800MB内存被吞食了
  大家或许会发现一种很奇怪的现象,在我们的Windows XP和Vista中,安装4GB内存后,显示出来的只有3.2GB左右甚至更少,有800多MB的内存“无缘无故”地消失了,这让人感觉十分费解,主板和操作系统之所以不能使用全部的4GB内存,问题的根源就在于计算机那32位X86架构。32位X86架构是指个人电脑的地址总线是32位的,CPU、内存控制器、操作系统都是按32位地址总线设计。32位地址总线可以支持的内存地址代码是4096MB,也就是有4GB的地址代码,可以编4GB个地址。这4GB个地址码正好可以分配给4GB内存。但是,这4GB个地址码不能全部分配给安装在主板上的物理内存。因为个人电脑还有很多设备需要地址代码,以便CPU可以根据地址码找到它们,同时CPU和这些设备交换数据需要暂时存放数据的存储器――寄存器,这些寄存器也需要地址代码。比如硬盘控制器、软驱控制器、管理插在PCI槽上的PCI卡的PCI总线控制器,PCI-E总线控制器和PCI-E显卡,它们都有寄存器都需要系统分配给它们地址代码。这些地址由系统分配,电脑用户在使用中感觉不到。这样一来,当我们为电脑插上总容量为4GB的内存时,就有一部分内存分配不到地址代码而不能使用。
  要深入了解4GB内存之谜,我们就得弄清楚各部件与4GB内存关系,其中涉及到的部件有CPU、内存控制器(Intel平台集成在北桥,AMD平台集成在CPU)和操作系统。
CPU能支持4GB内存

  从386时代开始,CPU的地址总线就是32位的,可以访问4GB的地址代码。从奔腾Ⅱ到奔腾Ⅳ,理论上已经可以访问64GB的地址编码。后来支持64位架构的奔腾Ⅳ到现在的酷睿2,地址总线已经升级到64位,64位地址总线可以访问千亿GB的地址编码。实际上用不到这么多的地址总线,一般用42位足够了,可以编码的地址量有4TB。兼容64位架构的CPU用在32位系统时地址总线就缩小为36位。所以现在的CPU支持4GB内存是没有问题的。

内存控制器的地址总线

  与主板安装的内存直接关联的是内存控制器。内存控制器一边管理内存,一边通过地址总线与CPU通信。内存控制器的地址总线决定了可以支持的内存地址编码数量,同时内存控制器的实际连接内存的地址线决定了可以支持的内存容量。Intel把内存控制器放在北桥,AMD把内存控制器放在CPU。所以要分开介绍。

1、Intel的内存控制器

由于Intel的内存控制器放在北桥内,内存控制器的改变就与北桥密切相关。我们可以看下面的北桥列表:

谁动了我的内存解析4GB内存无法识别问题(2)
表1
  从上面的北桥地址总线发展表可以看出,从P965开始内存控制器已经是36位地址总线,可以编64GB的地址代码,除系统占用的地址码,分配给主板安装的4GB内存绰绰有余。所以,从P965开始Intel的北桥支持4GB内存是没有问题的。

2、AMD的内存控制器

AMD从支持64位架构的CPU(Athlon64)开始把内存控制器集成到CPU。内存控制器的地址总线是64位架构的,使用40位,可以支持1000GB的地址编码。所以,AMD 从Athlon64开始,内存控制器支持4GB内存也是没有问题的。

BIOS能支持4GB内存

  BIOS不是主板厂家自己开发的,BIOS版权控制在AMI等几个公司。它们与Intel和AMD合作共同开发BIOS。所以当Intel和AMD提出“映射”方式解决4GB内存问题,AMI等厂商就会开发出相应的BIOS。早期的BIOS里面会显示出“映射”选项,用户可以开启或关闭。现在已经是默认开启,不再显示这项设置。所以可以说,对于现在的BIOS来讲,在支持4GB内存方面是没问题的。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表