CPU 架构

来自BetaWorld百科
跳转至: 导航搜索

综述

CPU 架构是 CPU 厂商给属于同一系列的 CPU 产品定的一个规范,主要目的是为了区分不同类型CPU的重要标示。目前市面上的 CPU 分类主要分有两大阵营,一个是 Intel、AMD 为首的复杂指令集 CPU,另一个是以 IBM、ARM 为首的精简指令集 CPU。两个不同阵营的 CPU,其产品的架构也不相同,例如,Intel、AMD 的 CPU 是 x86 架构的,而 IBM 公司的 CPU 是 PowerPC 架构,ARM 公司是 ARM 架构。

世界上的 CPU 架构前前后后有很多,我们在这里以实用与知名度的角度出发,只列举出几种常见的 CPU 架构指令集,为读者们介绍。

x86

x86 架构在于 1978 年推出的 Intel 8086 中央处理器中首度出现,它是从Intel 8008处理器中发展而来的,而 8008 则是发展自 Intel 4004 的。8086 在三年后为 IBM PC 所选用,之后 x86 便成为了个人计算机的标准平台,成为了历来最成功的CPU架构。

其他公司也有制造 x86 架构的处理器,计有 Cyrix(现为 VIA 所收购)、NEC 集团、IBM、IDT 以及 Transmeta。Intel 和 AMD 是 x86 处理器市场上最成功的两个企业,AMD的早先产品Athlon系列处理器的市场份额仅次于Intel Pentium。

8086 是 16 位处理器;直到 1985 年 32 位的 80386 的开发,这个架构都维持是 16 位。接着一系列的处理器表示了 32 位架构的细微改进,推出了数种的扩充,直到 2003 年 AMD 对于这个架构发展了64位的扩充,并命名为 AMD64 。后来 Intel 也推出了与之兼容的处理器,并命名为 Intel 64。

值得注意的是 Intel 早在 1990 年代就与 HP 合作提出了一种用在安腾系列处理器中的独立的 64 位架构,这种架构被称为 IA-64。IA-64 是一套崭新的系统,和 x86 架构完全没有相似性;不应该把它与 x86-64 或 x64 弄混。

AMD64(x64)

AMD 试图以自家的 AMD64 指令集去清理 Intel 的 x86-32 专属的,并把 x86 更新至近似领先的 RISC 环境。曾参与设计 DEC Alpha64 位处理器的 Dirk Meyer 也参与制定了 AMD64 的规格,以及AMD的员工中有不少前 Alpha 处理器的工程师,因此他们为 AMD64 立下不少功劳。

此架构的一个显著特征就是地址阔度加长;SSE2、SSE3指令;"禁止执行"位元 (NX-bit):AMD64其中一个特色是拥有"禁止执行"(No-Execute, NX)的位元,可以防止蠕虫病毒以缓冲区满溢的方式来进行攻击(也称:缓冲区溢位攻击,Buffer Overflow)。

Windows on Windows 64 Bit

Wow64(Windows on Windows 64-Bit)是微软公司为旗下 Windows 64 位版本(包括 IA-64 和 AMD64 版本的 Windows)开发的 x86 虚拟环境,旨在让 Windows 64 位操作系统运行为 32 位操作系统开发的程序,是 Windows 中一个非常重要的组件。

WoW64 被用来处理许多在 32-bit Windows 和 64-bit Windows 之间的程序差异, 尤其是在Windows自身的结构变化上的不同。

该组件首次出现于 Windows 2000 Advanced Server Limited Edition 和 Windows 2000 Datacenter Server Limited Edition 中,直到今天的 Windows 10/Server 2016,它仍然存在。

而在此之前的运行于 Alpha 处理器上的 Windows NT 3.5x/4.0 系列操作系统也有类似的组件,只不过不叫 WoW64,而是叫Fx!32。

IA64

IA64 处理器 Itanium(安腾)是 Intel 自推出 32 位微处理器以来,在高性能计算机领域的又一座里程碑。基于 IA64 处理器架构的服务器具有 64 位运算能力、64 位寻址空间和 64 位数据通路,突破了传统 IA32 架构的许多限制,在数据的处理能力,系统的稳定性、安全性、可用性、可管理性等方面获得了突破性的提高。

其实 IA64 的历史早于 x86-64,最初由 Intel 和惠普于 1990 年联合推出。由于 IA64 不与 32 位兼容,所以没有受到重视。而后为了日益扩张的计算需求,Intel重新将ia64拿出来,发布了安腾系列服务器CPU。IA64 是一种崭新的系统,和 x86 架构完全没有相似性,不应该把它与 x86-64 或 x64 弄混。基于 IA64 处理器架构的服务器具有 64 位运算能力、64 位寻址空间和 64 位数据通路,突破了传统 IA32 架构的许多限制,在数据的处理能力,系统的稳定性、安全性、可用性、可管理性等方面获得了突破性的提高。它是 Intel 自推出 32 位微处理器以来,在高性能计算机领域的又一座里程碑。

IA64与AMD64的区别

x64 和 IA64 处理器都能够运行 64 位操作系统和应用程序,但是区别在于:x64 架构基于 x86,是为了让 x86 架构 CPU 兼容 64 位计算而产生的技术。x64 架构的设计是采用直接简单的方法将目前的 x86 指令集扩展。这个方法与当初的由 16 位扩展至 32 位的情形很相似。优点在于用户可以自行选择 x86 平台或 x64 平台,兼容性高。IA64 则是原生的纯 64 位计算处理器,并且与 x86 指令不兼容。如果想要执行x86指令需要硬件虚拟化支持,而且效率不高。优点在于 IA64 架构体系将拥有 64 位内存寻址能力,能够支持更大的内存寻址空间。并且由于架构的改变,性能比起 x64 的 64 位兼容模式更高更强。所以,IA64 操作系统也是比较少见的,由于只能在 Intel 安腾系列处理器及 AMD 部分服务器处理器运行,所以主流市场并不常见。而且,这些 IA64 架构处理器也不能够使用 x64 操作系统。而 x64 处理器则可以自由选择 x86 或是 x64 操作系统。

EM64T与IA64

EM64T(又称为Intel 64),中文名为扩展 64 位内存技术。是 IA32 指令集的扩展,也称为 IA32e,和 AMD64 一样,也是通过 64 位兼容指令实现 64 位运算,也是在 Intel CPU 上运行 AMD64 的一个关键。

IA64 是一个独立于 x86 指令之外的 64 位架构,其实现 64 位的方式与 EM64T 和 AMD 完全不同,是一个完全的 64 位指令集。

ARM

ARM 是英国 Acorn 有限公司设计的低功耗成本的一款 RISC 微处理器。全称为 Advanced RISC Machine。ARM 本身是 32 位设计,但也配备 16 位指令集,一般来讲比等价 32 位代码节省达 35%,却能保留 32 位系统的所有优势。

ARM 的 Jazelle 技术使 Java 加速得到比基于软件的 Java 虚拟机(JVM)高得多的性能,和同等的非Java加速核相比功耗降低80%。CPU功能上增加DSP指令集提供增强的16位和32位算术运算能力,提高了性能和灵活性。ARM 还提供两个前沿特性来辅助带深嵌入处理器的高集成 SoC 器件的调试,它们是嵌入式 ICE-RT 逻辑和嵌入式跟踪宏核(ETMS)系列。 ARM的三大特点是:耗电少功能强、16 位/32 位双指令集和合作伙伴众多。

1、体积小、低功耗、低成本、高性能;

2、支持 Thumb(16 位)/ARM(32 位)双指令集,能很好的兼容 8位/16 位器件;

3、大量使用寄存器,指令执行速度更快;

4、大多数数据操作都在寄存器中完成;

5、寻址方式灵活简单,执行效率高;

6、指令长度固定。

ARM64

与 32 位 ARM 架构相比,64 位 ARM 架构包括以下重大变动:首先是名称的变化——它的官方名称为 “AArch64”,但这个名字读起来很绕口,敲起来也别扭。苹果称它为 ARM64。

较32位ARM架构而言,ARM64 的整数寄存器数量增加了一倍,32 位 ARM 架构有 16 个整数寄存器,其中 1 个是专用的程序计数器,还有2个用于堆栈指针和链接,其他 13 个则作一般用途。而 ARM64 架构有 32 个整数寄存器,包括 1 个专用的零寄存器,1 个链接寄存器和1个帧指针寄存器,还有 1 个寄存器预留给平台,另外 28 个则为通用整数寄存器。ARM64 上可用浮点寄存器的数量有所增加。32 位 ARM 处理器有 32 个 32 位浮点寄存器,还有 16 个额外的 64 位寄存器。这些寄存器的结构有些特殊,可被视为等价于 16 个重叠的128位寄存器。 ARM64 则将其简化为 32 个 128 位寄存器,且没有重叠。

寄存器的数量 会对性能会产生巨大影响。与 CPU 相比,内存要慢得多。与 CPU 处理一条指令的时间相比,读取和写入内存都需要更长时间。CPU 试图通过引入缓存来缓解这一差距。但与 CPU 内部的寄存器相比,即使速度最快的缓存也慢得多。更多的寄存器意味着更多数据能存储在 CPU 内部,这降低了内存访问频率,同时提高了性能。

除了增加寄存器数量,ARM64 也为指令集带来了重大变化。大多数 32 位 ARM 处理器可基于运行时条件寄存器的状态执行条件指令,这使得在编译 if 等语句时无需分支。不过这种方式引入的麻烦多于便利,因此 ARM64 取消了条件执行。ARM64 的 NEON SIMD 单元完全符合 IEEE754 双精度标准,而 32 位版本的 NEON SIMD 单元只支持单精度。ARM64还增加了专门的 AES、SHA-1、SHA-256 加密指令。这些指令也许对普通应用帮助不大,但对特定领域的应用来说价值无穷。

现在流行的 Qualconm Snapdragon, Hisilicon Kirin 和 MediaTek 系列处理器都基于本架构。

PowerPC

PowerPC(英语:Performance Optimization With Enhanced RISC – Performance Computing,有时简称PPC)是一种精简指令集(RISC)架构的中央处理器(CPU),其基本的设计源自 IBM 的 POWER(Performance Optimized With Enhanced RISC;《IBM Connect 电子报》2007年8月号译为“增强 RISC 性能优化”)架构。POWER是1991年,Apple(苹果电脑)、IBM、Motorola(摩托罗拉)组成的 AIM 联盟所发展出的微处理器架构。PowerPC 是整个 AIM 联盟平台的一部分,并且是到目前为止唯一的一部分。但苹果电脑自2005年起,将旗下电脑产品转用 Intel CPU。虽然如此,时至今日还有部分机械工业与教育事业使用 Motorola 和 Freescale(NXP)的 PowerPC 微处理器产品。 自苹果公司停用 PPC 以后,个人电脑的 PPC 就凉了。


MIPS

MIPS是世界上很流行的一种RISC处理器。MIPS的意思“无内部互锁流水级的微处理器”(Microprocessor without interlocked piped stages),其机制是尽量利用软件办法避免流水线中的数据相关问题。它最早是在80年代初期由斯坦福(Stanford)大学Hennessy教授领导的研究小组研制出来的。MIPS公司的R系列就是在此基础上开发的RISC工业产品的微处理器。这些系列产品为很多计算机公司采用构成各种工作站和计算机系统。

MIPS处理器是八十年代中期RISC CPU设计的一大热点。MIPS是卖的最好的RISC CPU,可以从任何地方,如Sony, Nintendo的游戏机,Cisco的路由器和SGI超级计算机,以及中国电信,中国移动等通信运营商的无线路由器看见MIPS产品。目前随着RISC体系结构遭到x86芯片的竞争,MIPS有可能是起初RISC CPU设计中唯一的一个在本世纪盈利的。和英特尔相比,MIPS的授权费用比较低,也就为除英特尔外的大多数芯片厂商所采用。

MIPS的系统结构及设计理念比较先进,其指令系统经过通用处理器指令体系MIPS I、MIPS II、MIPS III、MIPS IV到MIPS V,嵌入式指令体系MIPS16、MIPS32到MIPS64的发展已经十分成熟。在设计理念上MIPS强调软硬件协同提高性能,同时简化硬件设计。

中国龙芯2和前代产品采用的都是64位MIPS指令架构,它与大家平常所知道的X86指令架构互不兼容,MIPS指令架构由MIPS公司所创,属于RISC体系。过去,MIPS架构的产品多见于工作站领域,索尼PS2游戏机所用的“Emotion Engine”也采用MIPS指令,这些MIPS处理器的性能都非常强劲,而龙芯2也属于这个阵营,在软件方面与上述产品完全兼容。

Alpha(AXP)

DEC Alpha,是 64 位的 RISC 微处理器,支持 VMS 操作系统、Linux 和 BSD,曾经有部分 Windows 兼容本架构。

DEC Alpha,也称为 Alpha AXP,是 64 位的 RISC 微处理器,最初由 DEC 公司制造,并被用于 DEC 自己的工作站和服务器中。作为 VAX 的后续被开发,支持 VMS 操作系统,如 Digital UNIX。不久之后开放源代码的操作系统也可以在其上运行,如 Linux 和 BSD。

Microsoft 支持这款处理器,直到 Windows NT 4.0 SP6 ,但是从 Windows 2000 64 Bit RC 阶段后便开始放弃了对 Alpha 的支持。虽然如此,目前仍有极小比重的服务器与超算产业使用该架构及其改进架构,CPU 结构性质也趋于封闭化。

本架构在个人电脑上已凉。


PC-98

PC-98推出于1982年,其初代产品9801使用一枚频率5MHz的Intel 8086 CPU,搭配2枚NEC µPD7220显示控制器(一枚用于文字显示,专门处理英文和日文字符;另一枚产生视频图形信号),出厂时装备128KB的内存(可扩展至640KB),该机可在640x400像素的分辨率下显示8色图像。随后于1983年推出8MHz的改进型9801E。第二代的9801(编号9801U)推出于1985年,采用了2硬盘+3.5寸软盘的格局,并改为使用性能较8086更强大的日本国产CPU:NEC V30。1980年代末,新规格的9801改为采用更先进的Intel 80286/386处理器。

在1980年代和1990年代初,PC-9801基本上垄断着日本微机市场,占有60%以上的市场份额,而当时风靡世界的IBM PC及其兼容机却没有打进日本市场。这是因为1980年代的IBM PC及其搭配的MS-DOS操作系统无法显示日文字符。1990年,IBM日本开发了能显示日文的DOS/V系统;自此,PC-98在日本的垄断地位开始动摇。


到1995年,微软发布革命性的Windows 95操作系统。Win95平台的软件不再需要NEC制造的系统便可运行,通用性大大提高;而9801系列计算机因为图形装置(GPU)过于简单,不能安装及使用Win95。至此,PC-98开始衰落了。1997年,在PC-9801度过它的15岁生日后,NEC宣布停产PC-9801系列计算机,推出后继机型PC-9821。2000年,PC-98全系列最后一款机型PC-9821Ra43,搭配Intel 赛扬 433 CPU。到2003年,NEC正式宣布,PC-98系列全面停产,退出市场。自此,日本人独特的自主研发PC格式彻底消亡;此后生产的日本个人计算机,全部采用IBM兼容机方案。

68k

68K是美国摩托罗拉公司出品的68000处理器的俗称,也是一种处理器架构。68K的最初型号为MC68000,与其衍生的MC680X0一系列处理器,统称为68K系列,与Intel英特尔公司的80X86系列对应。

1979年美国摩托罗拉Motorola公司(现为Freescale半导体)推出一款型号为MC68000的16位通用微处理器,用于最早的Apple Macintosh计算机,以及Apple LaserWriter ⅡSC和Hewlett-Packard公司的LaserJet打印机。此外SEGA MD游戏机、SNK NEO·GEO游戏机、CAPCOM CPS-1/CPS-2等大型游戏机平台亦采用MC68000作为中央处理器。

标准MC68000具有32位内部寄存器,但只能在16位数据总线上传送数据。处理器能访问16兆内存,是IBM PC中Intel 8088的16倍。直至今日,68K仍是许多工业控制和嵌入式系统的首选处理器工作平台。目前,68K系列最新的后续产品有飞思卡尔Freescale半导体的Coldfire和Dragonball系列。

PA-RISC

HP(惠普)公司的RISC芯片PA-RISC于1986年问世。第一款芯片的型号为PA-8000,主频为180MHz,后来陆续推出PA—8200、PA- 8500和PA-8600等型号。HP公司开发的64位微处理器PA-8700于2001年上半年正式投入服务器和工作站的使用。这种新型处理器的设计主频达到800MHz以上。PA-8700使用的工艺是0.18微米SOI铜CMOS工艺,采用7层铜导体互连,芯片上的高速成缓存达到2.25MB,比 PA-8600增加了50%。

UNIX服务器具有区别X86服务器和大型主机的特有体系结构,基本上,各厂家UNIX服务器使用自家的UNIX版本和处理器。比如IBM公司采用Power处理器和AIX操作系统,Sun、Fujitsu(富士通)公司采用SPARC处理器架构和Solaris操作系统,HP采用PA-RISC架构(现在转向于安腾处理器)和HP-UX操作系统;过去的Compaq公司(已经被并入HP)处理器架构采用Alpha。使用小型机的用户一般是看中Unix操作系统的安全性、可靠性和专用服务器的高速运算能力。

HP公司陆续推出PA-8800和PA-8900处理器,其主频分别达到1GHz和1.2GHz。RA-RISC同时也是IA-64的基础。在未来的IA-64芯片中,会继续保持许多PA-RISC芯片的重要特性,包括PA-RISC的虚拟存储架构、统一数据格式、浮点运算、多媒体和图形加速等。

SPARC

全称为“可扩充处理器架构”(Scalable Processor ARChitecture),是RISC微处理器架构之一。它最早于1985年由Sun电脑所设计,也是SPARC国际公司的注册商标之一。这家公司于1989年成立,其目的是向外界推广SPARC,以及为该架构进行符合性测试。此外该公司为了扩阔SPARC设计的生态系统,SPARC国际也把标准开放,并授权予多间生产商采用,包括德州仪器、Cypress半导体、富士通等。由于SPARC架构也对外完全开放,因此也出现了完全开放原始码的LEON处理器,这款处理器以VHDL语言写成,并采用LGPL授权。

对于需要在所有应用层都提供高性能、一流可用性和无与伦比的可伸缩性的任务关键型应用程序而言,运行Oracle Solaris的Oracle SPARC服务器是一个理想选择。Oracle制定了一个强有力的计划,可通过SPARC/Solaris完全二进制兼容性确保最高级别的投资保护,这在二十多年以来的成百上千次部署中得到了验证。

SPARC服务器为各种企业应用程序提供创世界纪录的性能,只需大型机成本的一小部分,即可获得无与伦比的任务关键型可靠性,唯一包含片上加密和Oracle Solaris安全框架的平台与Oracle数据库、业务应用程序、中间件软件和Oracle优化的解决方案完全集成,并利用全面、内置的零成本虚拟化功能提高系统利用率。

1987年,SUN和TI公司合作开发了RISC微处理器——SPARC。SPARC微处理器最突出的特点就是它的可扩展性,这是业界出现的第一款有可扩展性功能的微处理器。SPARC的推出为SUN赢得了高端微处理器市场的领先地位。

1999年6月,UltraSPARC III首次亮相。它采用当年举世瞩目的0.18微米工艺制造,全部采用64位结构和VIS指令集,时钟频率从600MHz起,可用于高达1000个处理器协同工作的系统上。UltraSPARC III和Solaris操作系统的应用实现了百分之百的二进制兼容,完全支持客户的软件投资,得到众多的独立软件供应商的支持。

在64位UltraSPARC III处理器方面,SUN公司主要有3个系列。首先是可扩展式s系列,主要用于高性能、易扩展的多处理器系统。目前UltraSPARC IIIs的频率已经达到750MHz。还有UltraSPARC Ⅳs和UltraSPARC Ⅴs等型号。其中UltraSPARC Ⅳs的频率为1GHz,UltraSPARC Ⅴs则为1.5GHz。其次是集成式 i系列,它将多种系统功能集成在一个处理器上,为单处理器系统提供了更高的效益。

SPARC架构原设计给工作站使用,及后应用在sun、富士通等制造的大型SMP服务器上。而sun开发的Solaris操作系统也是为SPARC设计的系统之一,除Solaris外,NeXTSTEP、Linux、FreeBSD、OpenBSD及NetBSD系统也提供SPARC版本。

2006年SUN推出SPARC开源版本OpenSPARC。

最新版本

现时最新版本的SPARC为第8及第9版,在2005年12月,Sun方面宣布其UltraSPARC T1处理器将采用开放源代码方式。2006年4月12日,sun计算机宣布完整的UltraSPARC T2处理器已经进行试产。Oracle收购Sun之后,于2010年发布了UltraSPARC T3。

对于需要在所有应用层都提供高性能、一流可用性和无与伦比的可伸缩性的任务关键型应用程序而言,运行Oracle Solaris的Oracle SPARC服务器是一个理想选择。Oracle制定了一个强有力的计划,可通过SPARC/Solaris完全二进制兼容性确保最高级别的投资保护,这在二十多年以来的成百上千次部署中得到了验证。

  • SPARC服务器为各种企业应用程序提供创世界纪录的性能
  • 只需大型机成本的一小部分即可获得无与伦比的任务关键型可靠性
  • 唯一包含片上加密和Oracle Solaris安全框架的平台
  • 与Oracle数据库、业务应用程序、中间件软件和Oracle优化的解决方案完全集成
  • 利用全面、内置的零成本虚拟化功能提高系统利用率

T4-4

SPARC SuperCluster T4-4是一款适用于服务器整合和任务关键型企业应用程序的集成式系统,集SPARC T4-4服务器强大的计算能力、Oracle Solaris 11无可比拟的可伸缩性、Oracle Exadata的数据库优化以及Oracle Exalogic中间件云服务器的更快处理速度于一身。

T5-8

Oracle SuperCluster是一个完全集成设计的系统,是整合数据库和应用以及用于私有云部署的理想之选。它可提供极致性能、最高可用性和效率,消除了自构建架构的多种风险。

运行Oracle Solaris的Oracle SPARC T4服务器提供了创世界纪录的性能,其单线程性能提高了5倍、内存容量高达2 TB且实现了极高的系统吞吐量和I/O容量。SPARC T4服务器适用于需要极高的可靠性、可用性和集成式片上加密加速的企业应用程序和任务关键型应用程序,可确保最终的安全性。