64位的内存限制

2025-02-26 01:53:43
推荐回答(1个)
回答1:

目前大部分的 CPU(截至2005 年),其单个寄存器可存放虚拟内存中任意数据的内存地址(本机)。因此,虚拟内存(计算机在程序的工作区域中所能保留的数据总量)中可用的地址取决于寄存器的宽度。自 1960 年的 IBM System/360 起,然后1970年的 DEC VAX微型计算机,以及1980年中期的 Intel 80386,在事实上一致开发合用的 32 位大小的寄存器。32 位寄存器意味着 2^32 的地址,或可使用 4 GB 的内存。当时在设计这些架构时,4 GB 的内存远远超过一般所安装的可用量,而认为已足够用于寻址。认为 4 GB 地址为合适的大小,还有其它重要的理由︰在应用程序中,如数据库,42 亿多的整数已足够对大部分可计算的实例分配唯一的参考引用。
然而在 1990年初,成本不断降低的内存,使安装的内存数量逼近 4 GB,且在处理某些类型的问题时,可以想像虚拟内存的使用空间将超过 4 GB 上限。为此,一些公司开始释出新的 64 位架构芯片家族,最初是提供给超级计算机、顶级工作站和服务器机器。64位运算逐渐流向个人计算机则出现在 2003 年,某些型号的 Apple Macintosh 生产线转向 PowerPC 970 处理器(Apple 称为“G5”),并在 2006 年,转向 EM64T 处理器,且 x86-64 处理器在顶级的 PC 中遂渐普及。64 位架构的出现,有效的将内存上限提升至 2^64 地址,16 EB 的内存。从这个角度来看,在 4 MB 主内存很普遍时,最大的内存上限 2^32 的地址大约是一般安装内存的 1000 倍。如今,当 1 GB 的主内存很普遍时,2^64 的地址上限大约是 1 百亿倍。
今天市面上大部分的消费级 PC 存在着人为的内存限制,因受限于实例上的限制,而几乎不太可能需要完整支持 16 EB 容量。举例来说,Apple的 Mac Pro 最多可安装实例内存至 16 GB,而无必要支持超过的大小。最新的Linux内核(版本 2.6.16)可编译成最高支持 64 GB 的内存,Windows VistaUltimate支持超过128G内存。