xrayden 发表于 2008-1-15 13:43

关于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 ]

evernever 发表于 2008-1-15 13:45

加林仙人,呵呵,很久不见的一位超版啊
暂时还没有这个问题的困惑。。。因为俺的43最高支持2g*.*lll

Drifter 发表于 2008-1-15 13:58

Posted by xrayden on 2008-1-15 13:43 http://www.ibmnb.com/images/common/back.gif
发现蛮多人问这个问题的,前段正好自己也遇到这问题,就收集了一些资料,也读了很多高人的看法,将自己认可的一些观点总结以后发在这,或许能给同样问题的兄弟一点帮助。

1. 32bit 架构 的理论寻址极限是4GB ...

能否具体到tp呢? 比如61代的bios是否支持等等.

下弦月 发表于 2008-1-15 14:29

我是弥次郎卫兵:D

[ Edited by下弦月 on 2008-1-15 14:42 ]

8610 发表于 2008-1-15 15:47

有点笔误“MMIO”也成了“MiMo”

redsea 发表于 2008-1-15 16:43

T61 装 2003 可以用齐 4G内存, 我装了 standard 版本进行测试.
由于 2003 还不熟, 没有时间折腾, 现在用 xp, 浪费1G.

happylei007 发表于 2008-1-15 22:02

呵呵,2G都用不了啊~~

飞跃 发表于 2008-1-15 23:04

不错的好文。
看来51nb现在真是萧条,居然没有几个人顶。。。

神武 发表于 2008-1-15 23:46

这样的话是否可以理解965芯片的t61由于bios中没有提供相关设置,则4G的内存在XP下面实际上只被使用了3G

专家 发表于 2008-1-16 00:17

上次看到
http://www.ibmnb.com/thread-622935-1-1.html
15楼说得还比较有道理
版主说得更有条理些

kopkop 发表于 2008-1-16 05:49

32bit 架构 的理论寻址极限是4GB。

--------------------------------------------------------

我觉得这句话就有问题,比如8086是16位的处理器,按照你这个算法就是64KB的内存寻址极限了,但是实际上8086有1MB的寻址能力,学过8086汇编的哥们应该都没忘吧?

[ Edited bykopkop on 2008-1-16 20:42 ]

小松鼠 发表于 2008-1-16 10:28

回复 #5 8610 的帖子

MIMO(Multiple-Input Multiple-Out-put)

server 2008应该完美支持4G

xrayden 发表于 2008-1-18 13:30

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根地址线。所以只是理论寻址极限。

lztzd 发表于 2008-3-10 15:38

我的电脑-属性-高级-启动和故障恢复-设置-编辑,这里编辑操作的是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 利用了另外的空间。

dp3000 发表于 2008-3-10 15:56

回复 #11 kopkop 的帖子

你这个是偏移量寻址方式吧,要用个寄存器
跟这个不是一回事
页: [1]
查看完整版本: 关于4G内存在32bit OS下使用的一点个人认可的解释