64位元

64位元

目录导航

概述

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

架构影响

64位处理器64位处理器处理器中的寄存器通常可分为三种︰整数、浮点数、其它。在所有常见的主流处理器中,只有整数寄存器(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 VistaUltimate支持超过128G内存。[2]

实现条件

64位操作系统64位操作系统要实现真正意义上的64位计算,光有64位的处理器是不行的,还必须得有64位的操作系统以及64位的应用软件才行,三者缺一不可,缺少其中任何一种要素都是无法实现64位计算的。目前,在64位处理器方面,Intel和AMD两大处理器厂商都发布了多个系列多种规格的64位处理器;而在操作系统和应用软件方面,目前的情况不容乐观。因为真正适合于个人使用的64位操作系统现在就只有Windows XP X64,而Windows XP X64本身也只是一个过渡性质的64位操作系统,在Windows Vista发布以后就将被淘汰,它的优点在于它可以完全兼容32位应用程序,缺点是Windows XP X64本身也不太完善,易用性不高,一个明显的例子就是各种硬件设备的驱动程序很不完善,而且当时64位的应用软件还基本上没有,确实硬件厂商和软件厂商也不愿意去为一个过渡性质的操作系统编写驱动程序和应用软件。所以无法使用一些硬件,即使用操作系统自带的驱动程序勉强运行,性能也会大大的降低。所以要想实现真正的64位计算,最好的选择就是windows 7。

目前主流CPU使用的64位技术主要有AMD公司的AMD64位技术、Intel公司的EM64T技术、和Intel公司的IA-64技术。其中IA-64是Intel独立开发,不兼容现在的传统的32位计算机,仅用于Itanium(安腾)以及后续产品Itanium 2,一般用户不会涉及到。

64位技术

AMD64位技术

AMD64的位技术是在原始32位X86指令集的基础上加入了X86-64扩展64位X86指令集,使这款芯片在硬件上兼容原来的32位X86软件,并同时支持X86-64的扩展64位计算,使得这款芯片成为真正的64位X86芯片。这是一个真正的64位的标准,X86-64具有64位的寻址能力。

X86-64新增的几组CPU寄存器将提供更快的执行效率。寄存器是CPU内部用来创建和储存CPU运算结果和其它运算结果的地方。标准的32-bit x86架构包括8个通用寄存器(GPR),AMD在X86-64中又增加了8组(R8-R9),将寄存器的数目提高到了16组。X86-64寄存器默认位64-bit。还增加了8组128-bit XMM寄存器(也叫SSE寄存器,XMM8-XMM15),将能给单指令多数据流技术(SIMD)运算提供更多的空间,这些128位的寄存器将提供在矢量和标量计算模式下进行128位双精度处理,为3D建模、矢量分析和虚拟现实的实现提供了硬件基础。通过提供了更多的寄存器,按照X86-64标准生产的CPU可以更有效的处理数据,可以在一个时钟周期中传输更多的信息。

EM64T技术

EM64T技术EM64T技术Intel官方是给EM64T这样定义的:EM64T全称Extended Memory 64 Technology,即扩展64bit内存技术。EM64T是Intel IA-32架构的扩展,即IA-32e(Intel Architectur-32 extension)。IA-32处理器通过附加EM64T技术,便可在兼容IA-32软件的情况下,允许软件利用更多的内存地址空间,并且允许软件进行32 bit线性地址写入。EM64T特别强调的是对32 bit和64 bit的兼容性。Intel为新核心增加了8个64 bit GPRs(R8-R15),并且把原有GRPs全部扩展为64 bit,如前文所述这样可以提高整数运算能力。增加8个128bit SSE寄存器(XMM8-XMM15),是为了增强多媒体性能,包括对SSE、SSE2和SSE3的支持。

Intel为支持EM64T技术的处理器设计了两大模式:传统IA-32模式(legacy IA-32 mode)和IA-32e扩展模式(IA-32e mode)。在支持EM64T技术的处理器内有一个称之为扩展功能激活寄存器(extended feature enable register,IA32_EFER)的部件,其中的Bit10控制着EM64T是否激活。Bit10被称作IA-32e模式有效(IA-32e mode active)或长模式有效(long mode active,LMA)。当LMA=0时,处理器便作为一颗标准的32 bit(IA32)处理器运行在传统IA-32模式;当LMA=1时,EM64T便被激活,处理器会运行在IA-32e扩展模式下。

目前AMD方面支持64位技术的CPU有Athlon 64系列、Athlon FX系列和Opteron系列。Intel方面支持64位技术的CPU有使用Nocona核心的Xeon系列、使用Prescott 2M核心的Pentium 4 6系列和使用Prescott 2M核心的P4 EE系列。

32位比较

从32位到64位架构的改变是一个根本的改变,因为大多数操作系统必须进行全面性修改,以取得新架构的优点。其它软件也必须进行移植,以使用新的性能;较旧的软件一般可借由硬件兼容模式(新的处理器支持较旧的 32 位版本指令集)或软件模拟进行支持。或者直接在 64 位处理器里面实作 32 位处理器内核(如同 Intel 的 Itanium 处理器,其内含有 x86 处理器内核,用来执行 32 位 x86 应用程序)。支持 64 位架构的操作系统,一般同时支持 32 位和 64 位的应用程序。

明显的例外是 AS/400,其软件执行在虚拟的指令集架构,称为 TIMI(技术独立机器界面),它会在执行之前,以低阶软件转换成本地机器码。低阶软件必须全部重写,以搬移整个 OS 以及所有的软件到新的平台。例如,当 IBM 转移较旧的 32/48 位“IMPI”指令集到 64 位 PowerPC(IMPI 完全不像 32 位 PowerPC,所以这比从 32 位版本的指令集转移到相同指令集的 64 位版本的规模还要庞大)。

64 位架构无疑可应用在需要处理大量数据的应用程序,如数码视频和早期的大型数据库。在其它工作方面,其 32 位兼容模式是否会快过同等级的 32 位系统,这部分已有很多争论。在 x86-64 架构(AMD64 和 Intel 64)中,主要的 32 位操作系统和应用程序,可平滑的执行于 64 位硬件上。

Sun 的 64 位 Java虚拟机的启动速度比 32 位虚拟机还慢,因为 Sun 仍假定所有的 64 位机器都是服务器,而且只有为 64 位平台实作“服务器”编译器(C2)。“客户端”编译器(C1)产生较慢的代码,不过编译较快速。所以尽管在 64 位 JVM 的 Java 程序在一段很长的周期会执行的较好(一般为长时间运作的“服务器”应用程序),它的启动时间可能更久。对于短生命期的应用程序(如 Java 编译器 javac) 增加启动时间可控制执行时间,使 64 位的 JVM 整体变慢。

应当指出,在 32 位和 64 位处理器时,速度并不是唯一的考量因素。应用程序,如多任务、应力测试(stress testing)、丛集(clustering)(用于HPC)可能更适合 64 位架构以正确部署。为了以上原因,64 位丛集已广泛部署于大型组织,如 IBM、Vodafone、HP、微软。

所谓64位的电脑,就是指这台电脑使用了64位的CPU,相比较32位的CPU来说,64位CPU最为明显的变化就是增加了8个64位的通用寄存器,内存寻址能力提高到64位,以及寄存器和指令指针升级到64位等。”

寄存器:为了处理数据,暂时储存结果,或者做间接寻址等等动作,每个处理器都具备一些内建的内存,这些能够在不延迟的状态下存取的内存就称为寄存器。

32位的处理器为什么会比64位处理器的性能差很多,这其实是一个受虚拟和实际内存尺寸的限制影响。目前主流的32位处理器在性能执行模式方面存在一个严重的缺陷:当面临大量的数据流时,32位的寄存器和指令集不能及时进行相应的处理运算。”

所谓32位处理器就是一次只能处理32位,也就是4个字节的数据,而64位处理器一次就能处理64位,即8个字节的数据。如果我们将总长128位的指令分别按照16位、32位、64位为单位进行编辑的话:旧的16位处理器,比如Intel 80286 CPU需要8个指令,32位的处理器需要4个指令,而64位处理器则只要两个指令,显然,在工作频率相同的情况下,64位处理器的处理速度会比16位、32位的更快。而且除了运算能力之外,与32位处理器相比,64位处理器的优势还体现在系统对内存的控制上。由于地址使用的是特殊的整数,而64位处理器的一个ALU(算术逻辑运算器)和寄存器可以处理更大的整数,也就是更大的地址。传统32位处理器的寻址空间最大为4GB,使得很多需要大容量内存的数据处理程序在这时都会显得捉襟见肘,形成了运行效率的瓶颈。而64位的处理器在理论上则可以达到1800万个TB,1TB等于1024GB,1GB等于1024MB,所以64位的处理器能够彻底解决32位计算系统所遇到的瓶颈现象,速度快人一等,对于那些要求多处理器可扩展性、更大的可寻址内存、视频/音频/三维处理或较高计算准确性的应用程序而言,AMD 64处理器可提供卓越的性能。

现在发展的趋势是64位所以大部分双核处理器都是64位的,但是也有32位双核的处理器比如Yonah Core Duo就是32位双核处理器但是Core 2 Duo就是64位的处理器。

发展历程

1961︰IBM 发表 IBM 7030 Stretch 超级计算机。它使用 64 位数据字组,以及 32 或 64 位的指令字组。

1974︰Control Data Corporation 推出 CDC Star-100 向量超级计算机,它使用 64 位字组架构(先前的 CDC 系统是以 60 位架构为基础)。

1976︰Cray Research 发表第一台 Cray-1 超级计算机。它以 64 位字组架构为基础,它成为后来的 Cray 向量超级计算机的基础。

1983︰Elxsi 推出 Elxsi 6400 平行微型超级计算机。Elxsi 架构具有 64 位数据寄存器,不过地址空间仍是 32 位。

1991︰MIPS科技公司生产第一台 64 位微处理器,作为 MIPS RISC 架构 R4000 的第三次修订版本。该款 CPU 使用于以 IRIS Crimson 启动的 SGI 图形工作站。然而,IRIX 操作系统并未包含对 R4000 的 64 位支持,直到 1996 年释出 IRIX 6.2 为止。Kendall Square Research 发表他们的第一台 KSR1 超级计算机,以专有的执行于 OSF/1 的 64 位 RISC 处理器架构为基础。

1992︰Digital Equipment Corporation(DEC)引入纯 64 位 Alpha 架构,其诞生自 PRISM 项目。

1993︰DEC 释出 64 位 OSF/1 AXP 类Unix 操作系统(后来改名为 Tru64 UNIX)和 OpenVMS 操作系统给 Alpha 系统。

1994︰Intel 宣布 64 位 IA-64 架构的进度表(与 HP 共同开发)作为其 32 位 IA-32 处理器的继承者。以 1998–1999 推出时间为目标。SGI 释出 IRIX 6.0,即支持 64 位的 R8000 CPU。

1995︰Sun 推出 64 位 SPARC 处理器 UltraSPARC。富士通所有的 HAL 计算机系统推出以 64 位 CPU 为基础的工作站,HAL 独立设计的第一代 SPARC64。IBM 释出 64 位 AS/400 系统,能够转换操作系统、数据库、应用程序的升级。DEC 释出 OpenVMS Alpha 7.0,第一个全 64 位版本的 OpenVMS for Alpha。

1996︰HP 释出 PA-RISC 处理器架构的 64 位 2.0 版本的实作 PA-8000。 任天堂引入 Nintendo 64 电视游戏主机,以低成本的 MIPS R4000 变体所打造。

1997︰IBM 释出 RS64 全 64 位 PowerPC 处理器。

1998︰IBM 释出 POWER3 全 64 位 PowerPC/POWER 处理器。Sun 释出 Solaris 7,以完整支持 64 位 UltraSPARC。

1999︰Intel 释出 IA-64 架构的指令集。AMD 首次公开 64 位集以扩充给 IA-32,称为 x86-64(后来改名为 AMD64)。

2000︰IBM 推出他自己的第一个兼容 ESA/390 的 64 位大型计算机 zSeries z900,以及新的 z/OS 操作系统。紧接着是 64 位 Linux on zSeries。

2001︰Intel 终于推出他的 64 位处理器产品线,标记为 Itanium,主打顶级服务器。它无法满足人们的期待,因一再拖延 IA-64 市场而导致失败。Linux 是第一个可执行于该处理器的操作系统。

2002︰Intel 引入 Itanium 2 作为 Itanium 的继承者。

2003︰AMD 产出他的 AMD64 架构 Opteron 以及 Athlon 64 处理器产品线。Apple 也推出 64 位“G5”PowerPC 970 CPU courtesy of IBM,并连同升级他的 Mac OS X 操作系统,其增加对 64 位模式的部分支持。若干 Linux 发行版本释出对 AMD64 的支持。微软宣布将为 AMD 芯片建立新的 Windows 操作系统。Intel 坚持 Itanium 芯片仍维持只有 64 位的处理器。

2004︰Intel 承认 AMD 在市场上的成功,并着手开发 AMD64 延伸的替代品,称为 IA-32e,稍后改名为 EM64T。升级版本的 Xeon 和 Pentium 4 处理器家族支持了新推出的指令。Freescale 宣布 64 位 e700 core,以继承 PowerPC G4 系列。VIA Technologies 宣布 Isaiah 64 位处理器。

2005︰Sun 于 1 月 31 日释出支持 AMD64 和 EM64T 处理器的 Solaris 10。3 月,Intel 宣布其第一个双内核 EM64T 处理器 Pentium Extreme Edition 840 和新的 Pentium D 芯片将于 2005 第二季推出。4 月 30 日,微软公开释出提供给 AMD64 和 EM64T 处理器的 Windows XP Professional x64 Edition。5 月,AMD 引入他的第一个双内核 AMD64 Opteron 服务器 CPU,并宣布其桌上型版本,称为 Athlon 64 X2。将原本的 Athlon 64 X2 (Toledo) 处理器改为两个内核,并为每个内核的 L2 配上 1 MB 高速缓存内存,以大约 2.332 亿个晶体管组成。它有 199 mm² 那么大。7 月,IBM 宣布他最新的双内核 64 位 PowerPC 970MP (codenamed Antares),由 IBM 和 Apple 使用。微软释出 Xbox 360 游戏主机,其使用由 IBM 生产的 64 位、三内核 Xenon PowerPC 处理器。

2006︰双内核 Montecito Itanium 2 处理器进入生产。Sony、IBM、Toshiba 开始生产用于 PlayStation 3、服务器、工作站以及其它应用的 64 位 Cell 处理器。苹果公司在新的 Mac Pro 和 Intel Xserve 计算机中采用 64 位 EM64T Xeon 处理器,稍后更新 iMac、MacBook、MacBook Pro 使用 EM64T Core 2 处理器。

优缺点

优点

可以进行更大范围的整数运算;

可以支持更大的内存。

缺点

不能因为数字上的变化,而简单的认为64bit处理器的性能是32bit处理器性能的两倍。实际上在32bit应用下,32bit处理器的性能甚至会更强,即使是64bit处理器,目前情况下也是在64bit应用下性能更强。所以要认清64bit处理器的优势,但不可迷信64bit。

相关百科
返回顶部
产品求购 求购