黑客X档案官方论坛's Archiver

a2773652 发表于 2008-2-9 10:28

4GB内存平台全探秘

[b][i]插上4GB只有3.25GB?

[/i][/b]  随着近来国际市场内存颗粒的逐渐跌价,内存条的价格也在不断降低,玩家们纷纷装备上了2GB容量的内存,而插满所有插槽达到4GB的内存容量对很多人也是一个极大的诱惑,在单条1GB内存价格300元上下的时候,4条也仅1200元,很多发烧友都能承受得起,因此时下组建4GB容量内存平台的玩家也不在少数。
[img]http://publish.it168.com/2007/0430/images/418070.jpg[/img]
然而,人们兴冲冲地买回4GB内存后,打开电脑进入系统,却发现系统显示的内存却远远不到4GB,是内存缩水了么?还是操作系统不支持4GB内存呢?无论如何,花了这么多钱却得不到应有的东西,无论是谁都很难受的。

  那么,这些丢失的空间究竟哪里去了呢?
[img]http://publish.it168.com/2007/0430/images/417362.jpg[/img]
从上图可以看出,4GB的系统地址空间中,PCI内存范围占用了大量的地址范围——接近750MB,导致最后系统内存只有3.25GB的罪魁祸首就是这部分空间。

  这部分空间主要是什么内容呢?
[img]http://publish.it168.com/2007/0430/images/417379.jpg[/img]
[img]http://publish.it168.com/2007/0430/images/417383.jpg[/img]
上表列出了这部分黑洞空间包含的内容,我们可以看出,这些都是跟BIOS、PCI/PCIE设备等有关,系统和这些设备都是使用内存地址空间来通信的(以往也使用I/O Port来进行通信,然而其速度不够理想),我们称这部分空间为MMIO(MemoryMappedInput/Output,内存映射输入输出)空间,由于这些地址空间被设备所占用,实际上插在内存插槽上对应的空间就闲置、浪费了,因此我们花了4GB内存的钱,实际却只能得到3.25GB的可用空间!

  这部分内存能不能回收利用呢?
符合PCI标准具有MMIO空间的系统,内存空间主要分为6大部分,如下图P965芯片组上的例子,分为一个保留地址区域、两个主内存地址区域、两个PCI内存地址区域及一个主内存回收地址区域:

[img]http://publish.it168.com/2007/0430/images/417392.jpg[/img]
首先我们要清楚,在一个IA32系统上具有很多个地址的概念,在不考虑软件方面因素的时候,我们需要讨论到两个地址:物理地址和系统地址。

  物理地址是指CPU可以寻址的地址范围,具有36bit内存总线的现代CPU可以支持对64GB的地址空间进行寻址(通过PAE技术,Physical Address Extension,物理地址扩展,从PentiumPro开始IA32CPU便开始支持这样的技术),而系统地址是指一个系统中插在内存槽上的内存的实际分配方式,也是操作系统中对应着的物理内存分配方式。

  这样按照物理地址空间来划分,低于4GB的内存中具有的一个PCI内存区域就是我们通常说指的MMIO区域,由于对这部分地址的寻址都被内存控制器路由至相关的设备(如显卡等),因此这部分的内存就消失了,不能使用了,要想回收这部分空间,就要将对这部分地址的寻址正确地路由至内存,而不是路由至MMIO设备,这就是“回收地址空间”。
由于MMIO占用的空间过于巨大——可以达到1GB以上,在一些4GB~8GB内存容量的服务器上损失就非常巨大——通常服务器需要大量的内存,这部分内存很重要——因此,芯片组厂商们——如Intel就开始考虑采用一些技术来回收利用这部分丢失的MMIO内存空间(实际上,MMIO的存在可以说是PCI标准所规定的,而PCI标准,就是Intel制定并力推的,因此解决这个问题,Intel责无旁贷)。

  Intel在服务器/工作站芯片组上率先布署了Memory Remapping(内存重映射)技术,用以解决这个问题。[img]http://publish.it168.com/2007/0430/images/417411.jpg[/img]
如图所示,在CPU寻址的物理空间中,MMIO空间仍然存在,然而,在实际插入的内存中,这部分MMIO空间对应的却是一部分重映射内存空间,在CPU想使用这部分内存的时候,CPU将寻址高于4GB内存的这部分空间,内存控制器再对其进行转换,再寻址到实际的内存条。

  由于对MMIO空间部分的地址进行了转换操作,因此这个技术就被称为Memory Remapping技术,通过这个技术,系统得以完全利用所有插上去的4GB(或者更多)的内存,而得以消除令人尴尬的3.25GB系统内存容量显示。





本帖是从其他网站转的。。个人认为有点意思所以转载的

di2xuan 发表于 2008-2-11 21:33

经典
学习了
:face20 :face20 :face20 :face20

wanghhyy 发表于 2008-2-13 11:11


懂了
还要这么麻烦的设置

fzshot 发表于 2008-2-13 23:55

貌似是某一期的《微型计算机》上的………………

傻Ы尛魚 发表于 2008-2-18 10:43

貌似看过1次~~~
呵呵`~顶下吧~~~

server0202 发表于 2008-2-18 11:26

我的没有问题

p6509668 发表于 2008-2-18 23:58

[quote]原帖由 [i]wanghhyy[/i] 于 2008-2-13 11:11 发表 [url=http://bbs.hackerxfiles.net/redirect.php?goto=findpost&pid=692478&ptid=93423][img]http://bbs.hackerxfiles.net/images/common/back.gif[/img][/url]

懂了
还要这么麻烦的设置 [/quote]好东西顶顶顶顶~~

mini19881117 发表于 2008-3-1 20:29

我家才2个G的``要4G的可能有点鸡肋了`` 内存太多了没什么用`

白色蜗牛 发表于 2008-3-3 12:27

貌似是某一期的《微型计算机》上的………………
i agree with you. I saw it .::08:: ::08::

沙漠路人 发表于 2008-5-18 08:57

行,有意义,我顶 谢谢您了

笨笨家属 发表于 2008-5-19 03:13

看过 不错 支持下..

巨商居民 发表于 2008-5-20 11:29

汗,我就是帮你顶的呀

沙漠路人 发表于 2008-5-20 13:40

谢谢楼主提供!谢谢分享好东西!!!
感谢分享!!!

笨笨家属 发表于 2008-5-24 06:02

传说中的沙发。。。

紫夜非雪 发表于 2008-5-25 00:45

真不错,赞一个,继续努力啊

死亡领主 发表于 2008-5-25 00:53

想灌就灌

灌水快乐

灌醉不是错

开开心心发贴,快快乐乐回贴.

死亡领主 发表于 2008-5-26 23:22

哈哈,我喜欢,~~~~~顶

独步侏罗纪 发表于 2008-5-27 00:00

来了,看了,顶了!

临渊羡鱼 发表于 2008-5-27 00:46

好,应该顶,今后继续努力

江户川新次 发表于 2008-5-27 02:23

感激涕零,谢谢楼主的好贴

页: [1] 2


Powered by Discuz! 6.1.0  © 2001-2007 Comsenz Inc.