2023年12月6日发(作者:)
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。
CPU
8086
8088
80286
80386SX
80386DX
80486SX
80486DX
Pentium I
K6
Duron
Athlon
Athlon XP
Celeron
Pentium Pro
Pentium II
Pentium III
CPU Address Bus Size
20 bit
20 bit
24 bit
24 bit
32 bit
32 bit
32 bit
32 bit
32 bit
32 bit
32 bit
32 bit
36 bit
36 bit
36 bit
36 bit
Maximum RAM
1MB
1MB
16MB
16MB
4GB
4GB
4GB
4GB
4GB
4GB
4GB
4GB
64GB
64GB
64GB
64GB
Pentium III
Pentium 4
Athlon
Athlon-64
Athlon-
64 FX
Opteron
Itanium
Itanium 2
36 bit
36 bit
40 bit
40 bit
64GB
64GB
1TB
1TB
40 bit
40 bit
44 bit
44 bit
1TB
1TB
16TB
16TB
PAE确实可以让x86硬件支持到能够访问64G的地址空间,Windows的内核也支持使用多达64G的物理地址空间,但是微软偏偏要对各个
版本的Windows的物理内存上限作出限制,下面是XP和Win7的物理内存上限
发布评论