首页 > 编程知识 正文

32位系统如何支持4g以上内存,为什么32位系统只支持4g内存

时间:2023-05-06 20:42:45 阅读:250688 作者:51

之前一直知道32位的系统最大支持4G内存,但没有深究其原因,正好最近考试需要这个知识点,在这里总结一下加深一下印象。

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中叫做硬件保留空间。

RoadRunner有哪些特性C#设置页面单位和缩放的方法

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。