白羊 发表于 2013-10-17 00:38:01

关于内存地址空间的问题。

刚学到内存地址空间
一个小问题一直没想明白
一个32位的CPU,那么他的寻址能力因该是2^32次方对吧,也就是4G。
那如果PC机配置的是的4G内存+1G独显显卡再加上其他的存储空间,
那么远远超过了32位CPU所能寻址的范围,那多出来的存储空间就没用了吗?

ssk66b1223 发表于 2013-10-17 06:17:25

玩玩硬件吧,我试过在32位的装1g的都不行

福禄娃娃 发表于 2013-10-17 08:56:52

尽管从许可上来说,32位系统的最大内存支持是4GB,但是实际上的限制会更低,这要看计算机的芯片组以及所连接的设备。这是因为物理地址映射不仅仅包含物理内存,还包含设备内存,X86和X64位系统会把所有设备内存映射到低于4GB的地址边界,以便确保和32位操作系统的兼容性,这些操作系统不知道如何处理超过4GB的地址部分。如果计算机配备4GB内存和类似显卡、声卡和网卡这样的设备,Windows会给这些设备内存分配共计500MB空间,而4GB物理内存中的500MB只能占用超过4GB的地址边界。

其他设备占用其他大部分的地址空间,PCI总线会保留一部分地址范围,以供系统引导时某些设备固件所使用。哪怕计算机只有2GB内存,在32位Windows中也无法使用所有的内存,因为芯片组会为设备强制保留一部分内存范围。我们的一台家庭公用计算机,几个月前从一家OEM厂商那里购买的,显示安装了2GB内存,但是只有1.97GB是可用的:    
其中7E700000到FFFFFFFF的物理地址范围是给PCI总线和设备所保留的,理论上还有最多7E700000字节(1.976GB)的物理地址空间,但是其中还有一些还要给设备内存所保留,这就是为什么Windows报告说1.97GB。
页: [1]
查看完整版本: 关于内存地址空间的问题。