品牌Vista笔记本打折热卖 Vista系统下玩转赚钱软件 戴尔笔记本预装Vista 2999元 强势杀毒让Vista系统更安全 Win2008超越Vista之秘 360度保障你的Vista系统安全 Vista系统更快速的秘密 Vista下玩转远程教育系统 Vista下如何搞定网络安全 精美Vista壁纸一网全打尽 网络监控电脑的一举一动 上网防范各种恶意点击
当前位置:首页 >> Vista应用 >> Vista知识

全面解析32位Vista、XP系统4GB内存无法完全识别问题


2008年8月1日 编辑:电脑报 人气: 评论:19
史上最便宜的Windows Vista电脑
惠普戴尔超多品牌2008大礼包放送
160G超大硬盘,2G内存免费升级……

Windows Vista下最强的杀毒软件
屡获多次世界第一大奖的杀毒工具
保护你的Windows Vista系统不受侵犯

Windows Vista 系统全方位防护
Norton 360,诺顿360度全面系统保卫
把您的Vista 系统安全武装到牙齿

Windows Vista 装机必备软件大全
Google  

Vista之家www.vista123.com):全面解析32位Vista、XP系统4GB内存无法完全识别问题

  因为内存价格的持续走低,目前各大内存厂商相继推出了单条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、内存控制器、BIOS:能支持4GB

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的内存控制器放在北桥内,内存控制器的改变就与北桥密切相关。我们可以看下面的北桥列表: 

  从上面的北桥地址总线发展表可以看出,从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内存方面是没问题的。

4GB内存的“原罪”:X86架构

   CPU和内存控制器从硬件上为使用4GB内存提供了保障。但是还没有解决4GB内存的问题。障碍来自于个人电脑的体系标准——32位X86架构。早在8086时代,内存是焊接在主板上的,一般也就几KB的内存,IBM规定640KB的地址是最高端,这个地址分配给BIOS,接下来有一段地址分配给系统的显示设备和I/O设备。电脑的迅速发展很快突破640KB内存达到并超过1MB。但是640KB下面这一段地址分配不能改变,因为CPU、DOS操作系统都是从640KB读取BIOS通过640KB下面的显示设备寄存地址,I/O设备寄存地址与显示设备、I/O设备通信、交换数据。如果更改,以前的所有电脑都要作废。所以必须寻找一个办法,既不改变640KB地址分配,又可以使用640KB到1MB的内存。那就是这种地址分配规则不变,采用“内存地址映射”技术,把640KB到500多KB的这一段地址映射到640KB-1MB的空间里,映射工作由BIOS负责。操作系统则由两条DOS命令HIMEM.SYS和EMM386.SYS负责,熟悉DOS的用户,都会知道这两条命令。通过映射,就可以让DOS软件使用更多的内存。内存发展到4MB,16MB,都是通过“内存映射”技术解决。到现在,个人电脑只要兼容DOS,就必须遵守640KB这种地址内存分配规则。

  奔腾Ⅱ时代,SDRAM内存容量达到128MB。那时候的地址总线是32位,最大地址空间是4GB,这时32位X86架构已经完全形成。除保留以前的内存地址分配规则外,还要把BIOS地址映射到地址空间的顶端——4GB。一直到815时代的DDR内存,915时代的DDR2内存。真正使用的内存单条最大容量为512MB,系统使用的内存不会超过2GB。所以4GB内存问题没有显现。

  945时代时1GB的DDR2内存出现后,内存控制器的设计者们开始考虑主板安装4GB的内存条。但当时很少有用户使用4GB内存,4GB内存问题依然没有凸现。

  其实,Intel在915时期就提出要解决32位X86架构硬件支持4GB内存的问题。到P965正式解决时,解决方案还是“内存地址映射”。这个方案不是新想出来的,在32位X86架构的服务器系统早已经采用,只是被移植到个人电脑上来。

  从64GB的地址空间顶部开始,映射PCI设备的I/O地址,然后映射系统占用的3GB到4GB的地址。把3GB到4GB的这段地址代码留给安装在主板上的物理内存,就可以使用安装的全部内存了。

  为什么必须要采用“映射”的办法?因为内存的编址必须是连续的,不能断开。而系统的地址空间(也叫逻辑地址)是可以不连续的。就像我们给街道两边的房屋号码牌一样,编制方案(相当于逻辑地址)可以规划很大,可以分割。给到这一条街房屋的号码牌必须是连续的,这是真实的地址,以便于人们按地址寻找房屋。

  当然这种“映射”工作还是由BIOS完成。要支持4GB内存,还必须要BIOS支持。

  通过内存地址重映射把系统占用的4GB地址还给物理内存,是32位X86架构的规则。AMD也要采用这个规则,虽然它的内存控制器集成在CPU内。也正是由于内存控制器集成在CPU内,北桥不再含有内存控制器。主板厂家开发AMD平台主板时,会依据市场定位设计主板支持的内存容量。有支持2GB的,也有支持4GB、8GB或更多。所以AMD平台的4GB问题还要看主板。

操作系统才是“罪魁祸首”

  操作系统管理和使用物理内存,因此在操作系统内也必须有一个逻辑(虚拟)地址系统,与主板上的所有存储地址(包括内存的、I/O设备的、BIOS的)对应,也有类似“地址总线”的结构。32位操作系统是按32位地址总线设计,32位的地址寄存器,因此只能管理4GB的地址,去掉系统占用的,也不能完全使用全部4GB内存。个人电脑的32位操作系统都不能支持4GB内存,即使是Vista 32 SP1也不能。Vista 32 SP1比XP 32 SP3进步一点的是在系统属性里面可以显示实际安装多少内。

上图 :32位的Vista SP1已经能顺利识别4GB内存

上图:在任务管理器可以看到系统真正使用的内存不到4GB。

  那么哪些操作系统可以支持并使用4GB内存?第一是64位操作系统,因为64位操作系统是按64位地址总线设计的。比如Windows XP 64,Vista 64。第二是具有物理地址扩展功能,并且地址寄存器大于32位的服务器操作系统,但有些具备物理地址扩展的服务器操作系统,由于地址寄存器限于32位也不能支持4GB。

写在最后

  我们可以看出,现在的主板芯片组或内存控制器已经不再是吞食我们内存的主要原因。而罪魁祸首则是出在我们使用的32位操作系统上。虽然现在的Vista SP1已经能识别到完整的4GB内存,但实际使用的内存还是和以前的那3GB左右的没区别。所以现在来谈4GB内存的普及依然为时过早。另一方面,有的内存厂商为了避免出现内存浪费的情况发生,推出了三条1GB内存的组合套装,这也是相当贴心的一个设计。

Vista之家www.vista123.com),爱上网,爱上Vista123.com

      
Vista之家网友 (124.92.193.*) 于 2008-8-15 21:10:30 发表下列评论:   [删除]
不太明白啊
Vista之家网友 (122.70.43.*) 于 2008-8-14 11:52:59 发表下列评论:   [删除]
32位的系统理论上是支持4G内存的,但,实际的使用2G是最合适也是利用率最大的了,如果你有资本的话,搞到3G内存已经是极限了,当然,你要是非搞一套64位的系统就别看了。
Vista之家网友 (58.49.140.*) 于 2008-8-10 10:00:25 发表下列评论:   [删除]
偶的机子是1+2的,不过偶把页面文件禁用了,好像也蛮好用的。
Vista之家网友 (124.89.71.*) 于 2008-8-7 13:06:27 发表下列评论:   [删除]
32位系统只支持2G系统进程和2G用户进程。所以有些人为什么还有1G内存,系统不使用而去使用虚拟内存
Vista之家网友 (119.9.0.*) 于 2008-8-6 19:25:52 发表下列评论:   [删除]
终于知道了~~~我还以为我新买的2g800的内存有问题~~只是电脑公司的老板是熟人不好意思去说。因为只255块钱的事儿~~现在终于知道了,是误会哩~~
Vista之家网友 (58.248.216.*) 于 2008-8-5 21:11:18 发表下列评论:   [删除]
俺的2.5G,呵呵
Vista之家网友 (58.44.248.*) 于 2008-8-3 11:46:26 发表下列评论:   [删除]
32位系统只支持2G系统进程和2G用户进程。所以有些人为什么还有1G内存,系统不使用而去使用虚拟内存
Vista之家网友 (123.187.6.*) 于 2008-8-3 0:36:03 发表下列评论:   [删除]
但不可否认,4g浪费了将近2g的内存,3g浪费不到1g,但在xp或者vista,尤其是vista下比1~2g物理内存有较大的性能提升。
本人目前使用的就是2g+1g的方案,某网络游戏多开至12客户端(3d游戏)仍有1g内存空闲,而页面文件达到4.6gb,除非没有任何操作,否则硬盘狂读,很是郁闷的说
Vista之家网友 (123.187.6.*) 于 2008-8-3 0:35:45 发表下列评论:   [删除]
虽然能显示安装4g,使用3070mb,但实际可真正使用的内存地址范围不超过2g,总会有800~1000mb左右的空间空闲。
你可以开多任务看看,当前内存使用在2g左右时就不再增加了,而是增加交换空间的大小。
Vista之家网友 (222.94.232.*) 于 2008-8-2 23:22:45 发表下列评论:   [删除]
很好,很强大
发表评论(最新评论将在5分钟内出现
昵称:
内容:
(按Control+Enter直接提交)   点击一下,Vista问题有问必答
Vista优化大师
闪游 - 最快最强最安全的网络浏览器
搜狗拼音输入法

Windows Vista 最好的木马间谍查杀软件
彻底保护你的电脑,防止Trojan(特洛伊木马)和病毒
防止黑客入侵您的Windows Vista系统

史上最便宜的Windows Vista笔记本大比拼
七天免费试用?免费升级内存硬盘?
更有超多礼物发送中,不抢白不抢

全方位、360度的保护你的 Windows Vista 系统
无忧上网,保护您的系统没有病毒
把您的 Windows Vista 系统安全武装到牙齿

戴尔(DELL)笔记本预装Windows Vista送现金200元
预装正版Windows Vista家庭高级版 享受玻璃特效
2008大礼包 硬盘内存显卡升级还折扣

Windows Vista 装机必备软件大全
压缩、备份、杀毒、优化、办公、美化、虚拟光驱等常用软件
Windows Vista操作系统软件安装一条龙

Google  

热门文章