康老师

4GB内存的地址长度为什么是32

2015-02-05 23:13:01
相关推荐

1.硬件原因

X86架构CPU分为32位与64位,这里所说的32位与64位指的是CPU一次能够处理的数据宽度。而决定CPU支持多大内存的是CPU的地址总线数目。

一般情况下32位的CPU的地址总线是32位的(可以理解成32根),那么提供的可寻址物理地址范围为2^32=4G。64位的CPU一般采用36位(64G)或者40位(1T)。因为64位的CPU理论上支持的物理寻址范围非常大,正常情况下根本用不到那么大,所以CPU不会满配地址总线,想要查看64位CPU最大支持的内存,可以去官网看一下。

2.软件原因

用户在使用计算机的时候能够访问的最大内存不仅仅是由CPU地址总线的位数决定的,操作系统访问内存是访问的逻辑地址,这个逻辑地址是操作系统提供的。

对于32位的Windows操作系统,其逻辑地址编码采用的地址位数是32位的,所提供的逻辑地址范围是2^32,每一个逻辑地址对应一个字节所以就是4GB。对于64位的操作系统理论上支持的最大内存是2的64次方个逻辑地址。

3.总结

计算机能够使用的最大内存是操作系统和CPU共同决定的,如果在64位的CPU上安装32位的操作系统依旧是支持4G。有的时候我们安装了4G的内存条,但显示可用的却不到4G这是因为有的CPU采用了内存映射技术,在内存逻辑地址中一部分要划分出来与BIOS ROM、CPU寄存器、I/O设备这些部件的物理地址进行映射,在Windows中叫做硬件保留空间。

阅读剩余内容
网友评论
相关阅读
小编推荐