关于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兼容问题. xp的话,2G DDR2(或者1G DDR1)就可以了,用3G DDR2内存也是浪费资源
Vista倒是4G比较爽
页:
[1]