关于4G内存在32bit OS下使用的一点个人认可的解释
发现蛮多人问这个问题的,前段正好自己也遇到这问题,就收集了一些资料,也读了很多高人的看法,将自己认可的一些观点总结以后发在这,或许能给同样问题的兄弟一点帮助。1. 32bit 架构 的理论寻址极限是4GB。
2. PCI协议导致近1G的内存地址被留为设备使用,所以我们不能使用这部分地址的物理内存。这被称为MMIO,即Memory Mapped Input/Output,内存映射输入输出。
3.对于这个问题,CPU厂商提出了内存重定址(Memory Remapping)作为解决方案。通过该技术把被MMIO占用的地址映射到其他地址位去,以便CPU使用。这个技术最早在服务器芯片组上使用,现在已经普及到许多桌面系统。对于Intel来说,在955X以后的芯片组似乎都支持,但是主板BIOS也要设计可设置的地方。对于AMD而言,Athlon 64等级以上的CPU都对类似的技术提供了支持,而NVIDIA只有680i SLI芯片组有提供。
4.有了Remapping事情还没完,映射完的地址大于4G,这就需要PAE(Physical Address Extension)技术,好在这个技术在pentium pro的年代就广泛应用,就是32bit的CPU36bit的内存地址线,使得CPU支持4G外的寻址。要windows支持这个技术需要在引导项后面加/PAE参数。
5.有了PAE,Remapping,软件上还得OS支持,根据所用OS的不同还是未必能用到4G。据网络测试资料说明,常见WINDOWS里表现最好的是2003,4G全支持,其次是XP SP1及更老的XP,可以支持到3.87G,XP SP2反而只能到3.2G了。但是我自己在XPSP2下用msinfo32看,其实是可以看到已经是4G了。但是只要是不支持remapping技术的系统,至少要浪费掉750M的内存。
6. 部分旧版显卡驱动在4G内存下可能导致不可开机。估计是MMIO和Remapping兼容问题.
[ Edited byxrayden on 2008-1-15 15:55 ] 加林仙人,呵呵,很久不见的一位超版啊
暂时还没有这个问题的困惑。。。因为俺的43最高支持2g*.*lll Posted by xrayden on 2008-1-15 13:43 http://www.ibmnb.com/images/common/back.gif
发现蛮多人问这个问题的,前段正好自己也遇到这问题,就收集了一些资料,也读了很多高人的看法,将自己认可的一些观点总结以后发在这,或许能给同样问题的兄弟一点帮助。
1. 32bit 架构 的理论寻址极限是4GB ...
能否具体到tp呢? 比如61代的bios是否支持等等. 我是弥次郎卫兵:D
[ Edited by下弦月 on 2008-1-15 14:42 ] 有点笔误“MMIO”也成了“MiMo” T61 装 2003 可以用齐 4G内存, 我装了 standard 版本进行测试.
由于 2003 还不熟, 没有时间折腾, 现在用 xp, 浪费1G. 呵呵,2G都用不了啊~~ 不错的好文。
看来51nb现在真是萧条,居然没有几个人顶。。。 这样的话是否可以理解965芯片的t61由于bios中没有提供相关设置,则4G的内存在XP下面实际上只被使用了3G 上次看到
http://www.ibmnb.com/thread-622935-1-1.html
15楼说得还比较有道理
版主说得更有条理些 32bit 架构 的理论寻址极限是4GB。
--------------------------------------------------------
我觉得这句话就有问题,比如8086是16位的处理器,按照你这个算法就是64KB的内存寻址极限了,但是实际上8086有1MB的寻址能力,学过8086汇编的哥们应该都没忘吧?
[ Edited bykopkop on 2008-1-16 20:42 ]
回复 #5 8610 的帖子
MIMO(Multiple-Input Multiple-Out-put)server 2008应该完美支持4G Posted by kopkop on 2008-1-16 05:49 http://www.ibmnb.com/images/common/back.gif
32bit 架构 的理论寻址极限是4GB。
--------------------------------------------------------
我觉得这句话就有问题,比如8086是16位的处理器,按照你这个算法就是64KB的内存寻址极限了,但是实际上80 ...
8086有20根地址线。32bit的pentium pro也有36根地址线。所以只是理论寻址极限。 我的电脑-属性-高级-启动和故障恢复-设置-编辑,这里编辑操作的是c盘根目录下隐藏的boot.ini文件,各位也可以通过在c盘显示隐藏文件的方法找到它,我的boot.ini里的内容如下:
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
那么接下来在“multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect”的表明操作系统的“Microsoft Windows XP Professional ”加上“/PAE”
即“multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /PAE /noexecute=optin /fastdetect”
用以上方法打开PAE然后再用ramdisk 利用了另外的空间。
回复 #11 kopkop 的帖子
你这个是偏移量寻址方式吧,要用个寄存器跟这个不是一回事
页:
[1]