因为内存价格的持续走低,目前各大内存厂商相继推出了单条2GB的DDR2内存,这些内存给人最大的感觉就是价格便宜量又足。很多用户就直接买了两条2GB的内存,想组成双通道使用。可拿回家一看,原本4GB的内存容量被识别出来的只有3.2GB左右。通过检查,发现内存本身并没有问题。那又是什么吞食了你的内存呢?这就是我们本期将要给大家说清楚的一个问题。
大家或许会发现一种很奇怪的现象,在我们的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内存是没有问题的。