找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 384|回复: 0

无法识别4G内存是怎么回事

[复制链接]
发表于 2011-8-22 23:58:23 | 显示全部楼层 |阅读模式
在我们的Windows XP、Vista、Win7中,安装4GB内存后,显示出来的只有3.25GB左右甚至更少,有800多MB的内存“无缘无故”地消失了,这让人感觉十分费解,那么究竟是谁限制了4GB内存的使用呢?我们下面就一一排查一下与内存息息相关的部件——CPU、内存控制器、BIOS和操作系统。

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

下面是内存控制器。与主板安装的内存直接关联的是内存控制器。内存控制器一边管理内存,一边通过地址总线与CPU通信。内存控制器的地址总线决定了可以支持的内存地址编码数量,同时内存控制器的实际连接内存的地址线决定了可以支持的内存容量。目前内存控制器基本都集成在CPU里面,而CPU采用的都是64位架构,所以内存控制器的地址总线是64位架构的,即便使用40位,可以支持1000GB的地址编码。所以,内存控制器支持4GB内存也是没有问题的。

BIOS,早在之前Intel和AMD就像BIOS研发机构提出了解决内存地址不够的问题,并提出“映射”方式,随后AMI等厂商就开发出相应的BIOS。早期的BIOS里面会显示出“映射”选项,用户可以开启或关闭。现在已经是默认开启,不再显示这项设置。所以可以说,对于现在的BIOS来讲,在支持4GB内存方面是没问题的。

前三者的罪名都已经洗清,那么剩下的只能是操作系统了。操作系统在管理和使用物理内存时也必须有一个逻辑(虚拟)地址系统,与主板上的所有存储地址(包括内存的、I/O设备的、BIOS的)对应,也有类似“地址总线”的结构。32位操作系统是按32位地址总线设计,32位的地址寄存器,因此只能管理4GB的地址,去掉系统占用的,也不能完全使用全部4GB内存。而换成64位操作系统后,则可以完全识别4GB内存。

我们可以看出,现在的主板芯片组或内存控制器已经不再是吞食我们内存的主要原因。而罪魁祸首则是出在我们使用的32位操作系统上。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|腾飞在线 ( 冀ICP备05002530号 )

GMT+8, 2026-2-13 14:19 , Processed in 0.052635 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表