32位,64位系统寻址空间及最大内存

 

理论上:32位=2^32B = 4 * 2^30B = 4GB,这是 32 位下单进程内存上限

 

目前(2015年5月),Intel的32位架构下,可使用的地址线是36个,可使用的最大物理地址是2^36B,折合64GB,可用的地址空间是4GB。

64位架构下,地址线是46个,所以最大的物理地址是2^46B,折合64TB,可用地址空间也是这么大(目前为止):

 

为什么32位Windows中实际可用内存少于4G:

虽然物理地址有4G,但CPU如果要访问你的显卡上的显存,就必须把物理地址空间的一部分用于标识显存,这种技术被称为memory-mapped I/O,这样可以让CPU操作显存像操作内存一样。

在Windows的设备管理器里,查看显卡的属性页里的“资源”,可以看到内存映射的地址范围,实际上不管32位还是64位,都需要占用一部分地址空间,32位Windows只有4G的地址空间,被显存占去了一部分,所以可用的地址空间就少于4G了

 

实际上不仅仅是显存,你电脑上的PCI控制器,各种网卡、声卡、USB控制器等等都需要占用一定的物理内存,所以最终的后果就是可用的物理地址范围变得特别少,最少可能只有1.99GB,这种限制在32位Windows上是不可改变的。

所以,32位WIN7的可用内存才变得那么少,解决问题的唯一途径是换64位系统,或者Linux。

 

 

 

CPUCPU Address Bus Size Maximum RAM 
808620 bit 1MB
8088 20 bit 1MB
80286 24 bit 16MB
80386SX24 bit 16MB
80386DX 32 bit 4GB
80486SX 32 bit 4GB
80486DX32 bit 4GB
Pentium I 32 bit 4GB
K632 bit 4GB
Duron 32 bit 4GB
Athlon 32 bit 4GB
Athlon XP 32 bit4GB
Celeron  36 bit64GB
Pentium Pro36 bit 64GB
Pentium II36 bit64GB
Pentium III36 bit64GB
Pentium 4 36 bit64GB
Athlon  40 bit1TB 
Athlon-64 40 bit1TB 
Athlon-64 FX 40 bit1TB 
Opteron  40 bit1TB 
Itanium 44 bit 16TB 
Itanium 2  44 bit16TB 

 

 

PAE确实可以让x86硬件支持到能够访问64G的地址空间,Windows的内核也支持使用多达64G的物理地址空间,但是微软偏偏要对各个版本的Windows的物理内存上限作出限制,下面是XP和Win7的物理内存上限

 

 

 

参考:https://blog.csdn.net/w892824196/article/details/80558114

https://bbs.pediy.com/thread-137830.htm

https://docs.microsoft.com/zh-cn/windows/win32/memory/memory-limits-for-windows-releases?redirectedfrom=MSDN

 

 

 

 

 

 

 

 

 

  • 9
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值