谁动了我的内存?

来源 :微型计算机 | 被引量 : 0次 | 上传用户:jonnyyu
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  随着微软新一代操作系统Windows Vista的发布,以及市场上大容量内存的普及,机箱里面也变得分外热闹起来。原来大家多会选择2×512MB或者4×512MB的内存,现在4×1GB甚至2×2G8的内存成为很多发烧友用户的选择。但问题也随之而来,尽管我们给系统装上了4GB的内存,但是为什么在BIOS里面不能识别出完整的4G8?我们在Windows里面看到的内存容量也会出现缩水现象,是谁动了我们的内存呢?
  尽管众多主板都宣称自己支持4GB以上的内存容量,但情况远没有想像中那么简单,现在的问题是哪些主板和操作系统可以支持4GB以上的内存?这其中有会涉及到哪些技术原理,BIOS又将做怎样的改变呢?本文将——回答这些问题。
  随着大容量内存的普及,拥有4GB乃至4GB以上内存的用户越来越多,大家在使用中可能很多人都遇到了内存容量莫名其妙“缩水”的问题。这就好像我们在市场上买了四斤猪肉,但是回家一称发现只有3斤多一点,剩下的哪里去了呢?喜欢刨根寻底的朋友们一定会问一个为什么。
  
  4GB地址空间的局限
  
  用户安装了4GB内存,自然希望这4GB内存全部被操作系统所使用,但为什么还会出现无缘无故“缩水”的情况呢?其实,我们将内存装在主板上之后,只是在电路上连通了,而这些物理内存空间还需要编址才能够被识别和使用。
  为了搞清楚其中的过程,我们必须先了解两个概念:
  其一是“物理内存”。大家常说的物理内存就是指安装在主板上的内存条,其实不然,在计算机的系统中,物理内存不仅包括装在主板上的内存条(RAM),还应该包括主板B10S芯片的ROM,显卡上的显存(RAM)和BIOS(ROM),以及各种PCI、PCI.E设备上的RAM和ROM。
  其二是“地址空间”。地址空间就是对物理内存编码(地址编码)的范围。
  
  从中我们可以看出,安装3GB内存时1~7项并没有占用内存条的地址空间,只有8、9项占用了部分内存空间,但因为占用容量较小,所以平时我们并没有在意。安装4GB内存之后,1~7项的地址空间就会与内存发生冲突,导致内存条的部分存储空间因得不到编址而不能被使用,这样可使用的空间就小于4GB。
  我们用列表的形式列出了各部分RAM及ROM所占用的物理空间,为了给大家一个更形象的概念,我们用柱状图来说明一下各物理内存之间的寻址关系。
  从图中我们可以看到4GB的地址空间可以分为两大部分,0MB~物理内存顶端的地址分配给主板上安装的物理内存(A部分),4GB到物理内存顶端的地址分配给BIOS(ROM)和PCI/PCI-E设备的存储器(B部分)。由于这些存储器基本上是用于系统的输入和输出,所以Intel又把这段地址空间称为“MMIO”(Memory-Mapped I/O-I/O存储器映射)。当系统安装3GB以下的内存时,MMIO区域不会与物理内存条的地址空间相重叠,操作系统可以访问几乎全部的物理内存,而操作系统属性里显示的物理内存基本接近实际内存的容量。
  
  而当系统安装上4GB内存时,问题出现了。由于位于4GB下面的部分地址空间要优先分配给MMIO,内存条上对应的这段区间就得不到编址,所以操作系统就不能使用。
  严格意义上来说,即使安装更低容量的内存时操作系统也不可能使用到全部的内存容量,诸如传统DOS的UMA区就有部分被占用的地址空间,但因为被占用的容量相比之下实在太少,所以就被很多读者忽略了。MMIO占用的地址空间在256MB~1GB之间,这么大的“浪费”大家肯定不能“熟视无睹”。
  既然已经知道了原因所在,那有没有办法来解决这个问题呢?答案可能会令部分用户失望了,因为受4GB芯片组地址空间的限制(32条地址线的限制),Intel 945系列及以前的芯片组、NVIDIA nForce 550R以前的芯片组都没有办法绕过这个限制。具体原因有三面:其一是芯片组没有剩余空间(配额)来供操作系统调配;其二是物理内存的编址必须是连续的,不能被割断;其三是系统开机时必需先从4GB的顶端地址(FFFF_FFFFh)读取BIOS数据,这是IA32架构和4GB地址空间的局限。
  所以我们建议使用这些芯片组主板的用户不要安装4GB的内存,这样会有部分内存容量不能被操作系统所使用。而解决4GB内存限制的唯一办法就是扩展地址空间。
  
  支持大于4GB内存的芯片组
  
  面对原有芯片组4GB内存的局限,Intel和NVIDIA早就开始未雨绸缪,他们对传统的32位地址总线进行了调整,将其升级到36位,并推出了一系列可以突破4GB内存限制的芯片组,这就是Intel的965系列以及975系列、NVIDIA的nForce 570/590以及680系列。
  从上面的芯片组参数来看,地址总线从32位提升到36位,地址空间达到64GB,支持安装8GB的物理内存。但由于IA32架构的规则是开机时必须从4GB的FFFF_FFFFh地址读取BIOS信息,尽管芯片组支持的地址空间变大了,且最大支持的物理内存容量也达到了8GBf或以上),但从本质上来说仍然不能解决MM10地址占用4GB内存编址的问题。这要怎么办呢?
  36位地址总线最大可以支持64GB的地址空间,这就为移动MMIO地址区提供了条件。现在我们解决这个问题的办法就是“内存重映射”技术一一就是在IA32架构的基础上,把BIOS(ROM)和PCI/PCI-E设备占用的MMIO地址区段重新映射到内存条顶端地址以上(例如4GB以上)的地址空间,从而把IA32架构规定的这一段 操作系统不可使用的、位于4GB下面的MMIO地址空间回收给物理内存使用,保证物理内存编址的连续性。
  MMIO地址空间回收的第一步是在系统地址空间建立一个回收区,在图中回收区的下边界是“回收区基地址”,回收区基地址=物理内存的顶端地址,在本例中就是4GB;回收区的上边界是“回收区上限地址”,回收区上限地址=回收区基地址 X,X就是MMIO占用的地址空间量,在本例中是800MB。由此我们可以计算得到上边界的地址是4GB 800MB=4.8GB,重映射就是把MMIO占用的4GB~3.2GB的地址空间移到4.8GB~4GB的位置,然后把4GB~3.2GB的地址空间回收给物理内存。
  第二步则是在“可用内存顶端地址”和“物理内存顶端地址”之间界定了一个侦测窗口。本例中的可用内存顶端地址=3.2GB,物理内存顶端地址=4GB,构成800MB大小的侦测窗口。当系统I/O寻址的地址落在这个侦测窗口内,系统就自动加Z4GB的偏移地址转到回收区;如果地址落在侦测窗口内但不是系统I/O寻址,就不会把这个寻址转到回收区,而是直接访问物理内存。
  在安装8GB内存时也存在类似的MMIO地址占用问题,同样需要内存重映射来解决。
  上面我们所说的回收区和侦测窗口的边界地址是BIOS依据用户的硬件配置和设置经过计算得到的,并存放在芯片组(MCH)相关的地址寄存器中。从这个意义上说,BIOS必须具有支持内存重映射的功能模块,以便根据用户安装的内存容量来确定是否需要启用内存重映射功能。同时,在BIOS的设置选单中也要有“MemoryRe-Mapping”的设置选项,使用4GB或者4GB以上内存的用户一定要将此项设置设为“Enable”。
  
  解决4GB内存问题还需要操作系统支持
  
  在硬件方面我们已经可以解决4GB的限制问题,但事情还没有结束,因为要支持更大容量的内存还需要操作系统的支持。例如我们使用的桌面操作系统多是32位的,如Windows XP(32bit)虽然理论上可以支持4GB的内存,但是依然没有办法完美解决4GB内存的限制。因此我们应该使用支持大于4GB地址空间的32位操作系统或64位的操作系统。
  
  小结
  
  在文章的最后,让我们对内存4GB限制问题所涉及到的技术点做一下总结,以期对遇到这个问题的读者朋友们有所帮助。
  1.由于IA32架构的要求,BIOS(ROM)芯片的地址、PCI/PCI-E存储器地址以及APCI中断路由地址等必须占用从4GB开始以下的256M~1GB空间。这段MMIO地址区不能分配给内存条,这就导致4GB内存中会有256MB~1GB的容量因不能编址而浪费。
  2.如果要使用4GB以上的内存,必须使用地址(编址)空间64GB的芯片组主板。
  3.内存重映射就是把被MMIO占用的地址移到内存条容量以上的地址空间,BIOS中应有开启对应的“Memory Remap Feature”选项。
  4.必须安装寻址空间大于4GB的操作系统,如Windows 2000高级服务器版本或者64bit的操作系统才能支持4GB以上的内存。
  5.只有32bit地址总线的芯片组(Intel 945和NVIDIA nForce 550以前的芯片组)不能通过“内存重映射”技术来解决4GB内存限制的问题。
其他文献
对于喜欢英特尔平台的玩家来说,最新的P35芯片组自然是搭配酷睿2和Pentium E2000系列处理器的最佳搭档,最近,盈通推出了一款非常起值的P35战神版主板,上市价只有599元,再次刷新了P35主板的低价记录。那么这款主板是否值得选择呢?  P35战神版主板采用了lntel P35北桥搭配最常见的ICH9南桥支持1333MHz前端总线,采用四相供电设计,最大支持8GB双通道DDR2 800内存
长期以来,玩家一谈到显卡超频,想到的就是核心和显存超频,但是在GeForce 8系列显卡上,除了核心和显存,还有独立的流处理器频率对显卡性能也有着巨大的影响。那么如何才能超频流处理器,提高流处理器频率列显卡性能提升究竟有名大的作用呢?本文将用超频实战来告诉你。    不久前笔者购买了GeForce 8600 GT显卡,作为一名DIYer,当然要尽量挖掘显卡潜力。但在超频上,GeForce 8系列显
你喜欢看电影吗?你是否非常喜欢《终结者》或者《X-Man》之类的科幻题材?如果没猜错的话,那你也一定很希望有一副看起来“酷酷”的眼镜,一来可以将你扮得更帅一点,二来这副眼镜还内置了显示屏,让你看到别的东西……那些好莱坞的“高科技”距离我们确实有些遥远,普通人就只有想想的份了!不过最近编辑部就收到了这样一副民用级的“高科技眼镜”——迪兰恒进的i-Screen头戴显示仪,它能实现我们愿望吗?  i-S
在Radeon HD 2000系列仅上市半年之后,ATI又推出Radeon HD 3850/3870,拉开了新一代RadeonHD 3000系列的序幕。其实大可不必感叹ATI推陈出新的效率,尽管Radeon HD 3850/3870两款产品的型号令不少读者感到生疏,但它们采用的RV670核心想必大家却早有耳闻。RV670的核心架构与Radeon HD 2900XT采用的R600核心大体相同,根据A
2007年5月9日,迅驰家族迎来了第四代成员Santa Rosa,当大家还在为Santa Rosa的高效性能欢呼的时候,英特尔已经为Santa Rosa选好了接班人,它就是Montevlna。与CarmeI、Sonoma、Napa、SantaRosa一样,Montevlna也是美国加混为洲一个地名,但是随着成为第五代迅驰的名称,相信用不了多久它就将成为全世界关注的名字了。    你知道吗?  迅驰
FullhD分辨率的24英寸宽屏LCD是不少HDTV爱好者追求的PC显示设备。因为24英寸LCD的分辨率达到了1920x1200能够满足1080p高清影片的要求,画面大小无压缩。其次24英寸LCD的尺寸够大在处理图片办公又档时有无可比拟的优势,再次,24英寸LCD般拥有较丰富的接口可以连接多种设备成为家庭的多媒体中心甚至用来取代卧室的电视也未尝不可。但是,要享受到以上的功能也要付出较高的代价。目前
虽然NVlDIA即将发布主流DirectX10显卡,但目前上市的DirectX 10游戏还寥寥无几。显然,目前购买一款性能强劲、价格合理的DirectX9显卡更划算。虽然上市之处GeForce 7900 GS定位高端,但它一直受众多游戏爱好者追捧目前价位已经调整到千元左右,突破了中端游戏玩家的心里底限。不过市场上多数品牌的GeForce 7900 GS显卡基于公版制造,相近的频率和性能,供玩家选择
前两天陪朋友去装电脑,考虑到目前的用途和将来的升级,我们将目标锁定为nForce 550主板 低端显卡的组合。装机店的业务员很快写好了配置单,作为参谋的我把配置单拿过来一看,居然发现主板一栏写着:磐正AF550G Pro,显卡一栏写着:整合。我寻思这谈单的业务员是不是新来的,nForce 550主板怎么会整合显卡呢?我拿过主板一看发现确实提供了VGA接口,而且从主板的型号看似乎也是nForce 5
相信很多新手朋友都只顾着关心显示芯片的升级换代,却忽略了显示传输接口相关技术的发展。不信,你到电脑城中随便找一个商家问问“VGA接口和DVI接口有啥区别”,大部分人只会笼统地告诉你“DVI接口是数字的比较清晰”,如果你想更深入地了解DVI接口有多少种为什么每一种的针脚数还不一样,多数商家只能爱莫能助了;今天我们就带大家去认识一下各式各样的视频接口,看看VGA、DVI 、HDMI这些熟悉的名字背后还
像菜菜这样爱好体育运动的朋友都知道,在一百米短跑世界记录上第一名与第二名之间,往往只有零点几秒的差距;在外人看来这点差距是微不足道的,但是对天追求极限的“体育精神”来说,一丝一毫的差距就是天渊之别。对于超频来说也是一样,哪怕是几MHZ,几十MHz的差别也足以决定极限超频爱好者的名誉和头衔。  为了在比赛上能够取得更好的成绩,大部分运动员都会在平时积极锻炼,增强体质,以便在比赛时以最佳的状态出战;正