千家论坛_弱电智能化技术与工程讨论(建筑智能,家居智能,人工智能)

标题: 32位Windows 上4GB 内存问题 [打印本页]

作者: dd009    时间: 2011-3-1 09:22
标题: 32位Windows 上4GB 内存问题
1) 为什么32位的系统可以使用超过4GB的内存? 只要CPU、主板、操作系统都支持并启用PAE(物理地址扩展),那么此时的物理内存地址总线就是36位。 2^36 = 68719476736 = 64 GB 另外,当前的x64并非真正使用64位的地址总线,而是48位,所以内存上限是 2^48。 所以,现在的32位系统并非纯正的“32位”;x64并非纯正的"64位"。 2) 为什么Windows 2003 32位版本最高可以支持128GB内存? 20090417修正 by fujianabc: 自P4、K8以后的32位CPU,物理地址地址都是40位,所以可以支持128GB。 详细见此贴。 3) 为什么主板支持4GB内存,并且已经安装上4GB内存,但32位Windows只能使用3.1GB? 原因有两个: 3.a, 受限于Windows 的许可证限制。 Windows内核会在系统启动时检查当前操作系统的许可,从中确定当前允许使用的物理内存最大值。 例如Windows XP/Vista许可的上限为4GB。 3.b, 主板,及其上面的各种PCI设备的资源的限制。 主板必须支持超过4GB以上内存,并且必须支持内存重影射功能。 主板在不支持内存重影射功能时,所有PCI设备的内存地址范围都落在4GB空间内,占用大约750MB的物理地址空间。因此与此相同地址空间的物理内存将不可用。 当主板打开内存重影射功能时,PCI设备的内存地址将被BIOS影射到4GB以上的空间,所以PCI设备此前所占用的地址空间可以空出来而为物理内存使用。此时系统可用的物理内存可以达到接近4GB。 4) 为什么有些设备的驱动程序在4GB内存时无法正常工作? 如3所示,设备的内存地址超出4GB,这些旧的驱动无法接收正确的地址。 5) 为什么32位的Windows 可以管理超过4GB的内存? 将32位的地址从两层转换改为三层转换。 PDPE/PDE/PTE都扩展到64位。
作者: 低调本色    时间: 2011-3-1 11:51
学习了
作者: gzjm8729614    时间: 2011-3-1 16:42
以前遇到这样的问题,
作者: david2marin    时间: 2011-5-27 15:59
helpful , thanks
作者: ly8800180    时间: 2012-1-28 14:31
企业版可以支持




欢迎光临 千家论坛_弱电智能化技术与工程讨论(建筑智能,家居智能,人工智能) (http://bbs.qianjia.com/) Powered by Discuz! X3.2