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的物理内存上限