学海荡舟手机网
导航

主页 > 电子设备技术 > 电器电路基础 > > 详细内容

什么是64位?

在计算机架构中,64位整数、内存地址或其他数据单元,是指它们最高达到64位(8字节)宽。此外,64位CPU和算术逻辑单元架构是以寄存器、内存总线或者数据总线的大小为基准。

 64 位CPU在1960年代,便已存在于超级计算机,且早在1990年代,就有以 RISC 为基础的工作站和服务器。2003年才以 x86-64 和 64 位 PowerPC 处理器架构的形式引入到(在此之前是 32 位)个人计算机领域的主流。  

 一个 64 位的 CPU,内部可能有外部数据总线或不同大小的地址总线,可能比较大或比较小;术语“64位”也常用于描述这些总线的大小。例如,目前有许多机器有着使用 64 位总线的 32 位处理器(如最初的 Pentium 和之后的 CPU),因此有时会被称作“64位”。同样的,某些 16 位处理器(如 MC68000)指的是 16/32 位处理器具有 16 位的总线,不过内部也有一些 32 位的性能。这一术语也可能指计算机指令集的指令长度,或其它的数据项(如常见的 64 位双精度浮点数)。去掉进一步的条件,“64位”计算机架构一般具有 64 位宽的整数型寄存器,它可支持(内部和外部两者) 64 位“区块”(chunk)的整数型数据。

 处理器中的寄存器通常可分为三种︰整数、浮点数、其它。在所有常见的主流处理器中,只有整数寄存器(integer register)才可存放指针值(内存数据的地址)。非整数寄存器不能存放指针来读写内存,因此不能用来避开任何受到整数寄存器大小所影响的内存限制。
  几乎所有常见的主流处理器(大部分的 ARM 和 32 位 MIPS 实作是明显的例外)集成了浮点数硬件,它有可能使用 64 位寄存器保存数据,以供处理。例如,x86 架构包含了 x87 浮点数指令,并使用 8 个 80 位寄存器构成堆栈结构。后来的 x86 修改版和 x86-64 架构,又加入 SSE 指令,它使用 8 个 128 位宽的寄存器(在 x86-64 中有 16 个寄存器)。与之相较,64 位 Alpha 系列处理器,除了 32 个 64 位宽整数寄存器以外,也定义了 32 个 64 位宽的浮点数寄存器。

 目前大部分的 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 Vista Ultimate支持超过128G内存。


相关文章