走入IBM小型机世界
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

CHAPTER1 认识IBM小型机

It was the best of times, it was the worst of times.

——Charles Dickens, A Tale of Two Cities

本章要点

◆ 什么是小型机,小型机的历史

◆ RISC, CISC, 各种CPU

◆ IBM /小型机行业术语

1.1 小型机和小型机的历史

让我们先回到十几年前,重温一下IT大时代发展的背景。20世纪70、80年代伴随着DOS,Windows,8086成长起来的电脑发烧友们都有过自己攒机的经历,对Intel的Xeon、AMD的Athlon、825主板、Seagate硬盘、ATI显卡之类耳熟能详,觉得计算机不过如此而已。然而,真正踏入IT行业的朋友会忽然之间发现计算机远非这么简单,单单CPU就有IBM的POWER系列;惠普的PA-RISC、EV系列(原DEC产品);Sun的SPARC系列;Intel的IA-64等。这些CPU之间几乎完全互不兼容,大部分不能运行Windows操作系统,与自己所熟知的PC系列产品大相径庭。但是这些CPU却是高端计算机市场的核心产品,与仅仅价值几千元的PC相比,少则几十万,动辄上千万一台,如此巨大的价值差距让我们不得不去思考这些“另类”的“计算机”到底有哪些关键之处胜过PC?

本书的目的之一就是要向大家详细介绍这一大类计算机。它们有很多种,经常被称为“小型机”、“小机”或者“UNIX服务器”。由于作者涉猎范围有限,不能历数所有类型的小型机,只能聚焦于其中市场前景最好的一款计算机(小型机)产品:IBM公司的eServer pSeries计算机,其他相近的小型机产品只能略有提及。

所谓小型机是一个历史遗留的概念,由于口耳相传,已经约定俗成。在许久以前(其实也并不太久,只有三、四十年的时间),计算机都是很大的家伙,在一栋机房几百平方米的空间内只能安置下一台计算机,因此这些计算机都被叫做“大型计算机”,最著名的是IBM的360/390系列计算机,被称为“Mainframe”。此名字的由来也许正是因为它太大了,“矗立”在那里如同一面屏风。

电子技术日新月异,计算机在以惊人的速度小型化、微型化,两个不同时代的计算机产品之间丧失了可比性,但如果是生产于同一时代的计算机,体积大的计算机计算能力当然会更强一些,由于生产数量较少,其价格也比较昂贵;相对体积小的计算机能力则稍逊一筹,不过由于价格便宜,普及度比“大型”计算机更广。

计算机作为一种电子产品,本身的使用寿命很长,甚至可以使用10年以上。在这期间,市场上可能已经产生了3~5代新计算机产品,因此就会发生“四世同堂”的现象。在几十年前,市场依据其外观“大小”,将计算机称为“大型机”、“中型机”或者“小型机”,而最小的被叫做“微型机”或“个人计算机”,也就是我们常说的PC机——Personal Computer。体积较大的计算机由于能力强,一般多用于处理复杂的商业业务或者同时为许多人服务,因此又被称为服务器;体积小的PC机则是为了个人用户完成简单的工作而设计的。

这些计算机生产之初,没有统一的标准和型号,每个计算机公司都有自己的硬件、操作系统、软件标准。即使同样都是PC机,也有很多种类,甚至在同一类硬件设备上,也有许多种操作系统可以运行。所有这些硬件、软件产品之间,几乎都是不通用的,也就是说,没有兼容性。

随着IT技术和市场的演化,硬件、操作系统、软件产品之间竞争激烈,很多硬件平台、操作系统都已经销声匿迹。特别是在PC机领域,由于生产量巨大,规模效应非常明显,一旦某一个标准取得了微弱的优势,其生产成本、使用成本会比其他标准更低廉,因此能够快速将差距拉大,并最终形成事实上的垄断。在这种情况下,最终操作系统有Windows,硬件CPU有x86标准一统天下关于技术发展趋势和技术垄断的概念,有兴趣的读者可以参考《从海盗船到黑色直升机:一部技术的财富史》一书。作者:德伯拉·L·斯帕,翻译:倪正东,中信出版社,ISBN: 7800736032。。在非PC机领域,计算机产品的销售量比PC机少很多,规模效应还没有成为决定因素,可靠性、可管理性、性能、现有人力技术资源等方面的因素互相牵制,使得每一种计算机都有自己的生存空间,没有哪一家能够独占鳌头。

计算机芯片的集成度越来越高,能力越来越强,外形尺度却越来越小,在体积从“大型”变成“中型”和“小型”的过程中,性能和处理能力不但没有降低,反而大幅度提高。不同时代的计算机之间已经无法用“大型”、“小型”作为比较其性能指标的依据。“四世同堂”的太爷爷是10年前耗资千万买来的大型机,却不如几年前价值百万的小型机,而可能跟最新购买的几万元的高端PC机性能相差无几,“大”与“小”在此已经失去了意义。

若干年的竞争之后,计算机市场最终形成了两大类产品:个人计算机(PC机)和商用计算机。在PC机领域,由于信息技术能够提供近乎零的软件复制成本(盗版现象在此发挥了重要的作用),导致异常明显的规模效应,其他硬件平台和操作系统的生存空间被侵蚀殆尽,微软的Windows操作系统和x86硬件平台从竞争中胜出,仅存的苹果电脑(型号为Macintosh)也只能在图形显示和处理领域还有些回旋的余地,其他所有为个人用户设计的计算机硬件平台和操作系统都在计算机发展史中被“灭绝”了。当然,近年来Linux异军突起,已经成为PC市场上有可能与Windows操作系统一争雌雄的另一种操作系统,这种现象大概是“合法盗版”(即Open Source开源软件)的威力吧!

另外在某些专业场合,例如作为更大型计算机设备的控制终端,或者是作为嵌入式(附属于一个电器设备,提供简单的管理功能)的计算机系统,还能见到其他一些硬件CPU“残骸”。不过“残骸”这个词并不意味着稀少,有一些资料统计,世界上每有1块x86 CPU,就有9块嵌入式CPU。举例来说,一部普通的汽车上就有5~8块嵌入式CPU,而高档汽车可能拥有多达几十块嵌入式CPU用于协助驾驶者控制油门、刹车、方向,甚至用于汽车音响播放MP3音乐、提供GPS导航服务,而且几乎都不是x86系列的CPU。

正如PC机当初的名字所揭示的:PC机的使用者往往是一个人,即使几个人共用一台PC机,也不会同时使用。与PC机相对应的另一类计算机(商用计算机或非个人计算机)则天生就是为了多人同时使用而设计的。由于设计目标不同,此类计算机往往比同时代的PC机体积更大一些,因此具有更为强大的处理能力和稳定性(当然也更为昂贵),并且使用一些专用的软件和操作系统以便支持与个人用户的文字处理、图形显示截然不同的功能。

很早以前的非个人计算机通过被称为“哑终端”或者“傻终端”此名字源于这些设备只能进行键盘输入和屏幕显示,不做任何计算处理,很“傻”或不会发出声音,比较著名的傻终端有原DEC公司的VT系列(例如VT100)和IBM的3151(即著名的绿屏终端)等型号。的设备利用RS/232标准串行通信接口与大型计算机相连,提供字符方式的访问界面;随着网络技术发展,非个人计算机增强了对网络访问的服务能力,用户可以使用模拟终端(运行着字符终端仿真程序的个人计算机)或者使用具有图形显示功能的终端(X终端或运行X仿真程序的个人计算机)与商用计算机进行命令、信息交互。

随着IT技术被越来越多地引入到商业环境之中,需要计算机处理的业务过程越来越复杂,一台计算机已经不能独立完成全部业务处理工作,这些处理要求被细分,每台计算机运行一种大型商业软件,完成一类处理功能,多台计算机构成一个业务处理体系,计算机和计算机之间、计算机和最终使用者之间通过网络连通,不再通过终端提供命令行方式的交互操作界面,而是依靠网络传送处理要求,再通过网络返回处理结果,交由个人计算机用图形方式展示结果。由于这些计算机可以(通常也是仅仅可以)通过网络向使用者提供处理、服务,因此又被称为网络服务器或者简称为服务器。

个人计算机在初期的性能较差,不能胜任复杂的图形处理工作(例如CAD,即计算机辅助设计),此类处理工作必须使用能力更强的中、小型计算机,专用于这种用途的中小型计算机又被称为Workstation——工作站。

由此可见,PC、服务器、小型机、大型机仅仅是从不同角度,在不同时代对不同计算机的命名,这些计算机之间有许多相似之处,很多组件和功能也是相同的。其中,服务器更倾向于提供网络服务,可能是大型机,也可能就是PC机(一台按照服务器的需求而设计的PC机被称为PC服务器)。PC服务器与你面前的台式机都使用“PC”这个名称是由于它们使用相同的CPU(处理器,一般是Intel或AMD生产的x86兼容系列)。大型机、小型机平均来说比PC机性能(网络服务相关的功能)更强,当然也并不是绝对如此。

经过这么多年的变迁之后,业界对于以上这些名词的使用已经日趋统一:

● 大型机

大型机,又叫做Mainframe,通常特指IBM的生产的一款服务器系列——eServer zSeries(原为390系列)。此系列服务器从20世纪60~70年代开始设计、生产,历经半个世纪,专门用于商业交易处理环境。虽然Mainframe历史悠久,但由于依然在不断进行技术创新、改良产品,至今仍然占领着高端商业交易领域,曾经几度被预言即将退出历史舞台,而每次却又都能神奇地逃过劫难,老树新花。

Mainframe可以算做是商业服务器领域的遗留贵族,看似没落,却有着非常深厚的底蕴,其功能已经极端专业化,力求满足各种商业交易环境的苛刻要求:例如非常稳定、安全性极高,一台计算机能够高效率地支持几千,甚至几万用户的并发访问,并可以严格保证每个访问的响应时间(通常Unix服务器支持的并发访问是几百到一两千这个范围),而其计算能力(复杂数学公式计算)却不是很好。这些特点使得它比较适合商业环境的需求。

● 小型机、UNIX服务器

小型机则用来泛指各个计算机厂商生产的基于RISC(Reduced Instruction Set Computer,精简指令集计算机)技术的CPU,运行UNIX一类操作系统(每个厂商都有自己“改良版”的UNIXUNIX操作系统软件起源于AT&T贝尔实验室的UNIX,后发展为两大系列,一个是AT&T的UNIX,另一个是BSD(伯克利大学)的UNIX。其后各个厂家的改良版UNIX都是从这两大系列之一发展而来,或者兼收并蓄。)的服务器。此类服务器是计算机世界的“中产阶级”,担负着商业领域计算、处理的重担,由于其开放(兼容)的特点,采购、维护、软件成本低,为众多用户所喜爱,随着其综合能力直逼大型机,并且单凭其某方面的处理性能——例如计算能力——已经可以凌驾于大型机之上,所以逐渐占据了商业服务器市场主导地位。

● PC机及PC服务器

PC机指兼容x86指令集(可以这样理解兼容的概念:软件copy过来就可以使用),由Intel或者AMD生产的x86系列CPU为核心的个人计算机(通常为单CPU设计),用于个人的文字处理、邮件、网络浏览、甚至游戏。PC服务器则是以x86 CPU为核心处理器,专门为提供网络服务优化过的计算机,可以安装多块CPU和拥有更多的连接扩展卡接口。PC服务器的操作系统也以Windows居多,现在大部分还可以运行Linux操作系统(Redhat,SuSe,Turbo等)或者Sun公司的Solaris86版。

● IBM的pSeries小型机

作为UNIX服务器产品中的一员,IBM的pSeries服务器是一款非常成功的“小型机”,在许多商业领域担当重要角色,国内有数十万台的装机量,就业市场上对于pSeries服务器相关技术人员的需求也非常大。但pSeries服务器还远没有PC那样普及到随处可见,在PC上也无法运行pSeries所使用的AIX操作系统(也是UNIX的一种),即使使用VMWare等虚拟机也不可以。这是因为VMWare与在PC上运行的游戏机仿真程序不同,模拟的“虚拟机”还是x86系列指令,而pSeries / AIX使用的是POWER CPU/指令集,这两种指令集之间二进制不兼容,也就没有办法让为pSeries编译的AIX操作系统软件在PC上运行。

问题:什么是指令集?

答案:指令集就是计算机CPU可以直接解读的“语言”。程序能否在此CPU上运行,最关键因素之一就是两种类型CPU的指令集相互兼容,即“讲”同一种语言。当然,如果两类系统的总线、外部设备相差太大,也会影响到程序是否可以执行。不过如果指令集相同,就可以在不太降低系统性能的情况下仿真执行另一系统的程序。如果指令集不同,尽管也可以仿真,但这个“翻译”工作往往以牺牲性能为代价。也就是说,仿真执行不同指令集的代码,性能只能达到前一两代CPU的性能。

如果想要走入小型机的领域,去了解pSeries和AIX,如何能快速入门?一台试验机似乎是最有效的办法,但是想拥有价值几十万元、上百万元的pSeries服务器作为试验机,对于个人实在太难实现,即便是大企业也舍不得投入如此高昂的资金用于购买员工培训机,而生产机又绝不可能允许在上面任意操作,因此试验机这条路也不大畅通;另一方面,没有相关技能想进入此领域获得更多“练手”机会障碍颇多,这成了鸡和蛋的悖论。其实,pSeries服务器的超级可伸缩性让我们可以见到只有几千元的二手服务器(工作站),或者几万元全新的低端服务器产品,这些机器与价值几百万的高端服务器相比,90%以上的软件操作过程都相同,硬件结构和概念也非常类似。与我们所熟知的Windows操作系统不同,Windows有个人使用的XP / Professional个人机版,也有企业用的Enterprise服务器版,还有给大型数据中心服务器使用的Data Center服务器版,AIX无论在什么型号的机器上运行,只有一个版本,使用一套介质,在不同档次的pSeries服务器上运行的AIX操作系统界面和命令完全相同,只是在低端机器上,有些命令无法使用,或者由于没有高端机型上才有的设备,不能对其进行操作而已。

提到小型机就要谈一谈RISC和CISC。我们所熟知的Intel x86系列CPU或者AMD的兼容CPU采用的都是CISC技术。而小型机却几乎清一色都是采用RISC技术。

1.1.1 RISC、CISC和CPU生产技术

许多著名计算机厂商都生产或者生产过小型机,这些计算机的特点是采用RISC CPU作为核心处理器,运行某一种UNIX操作系统。RISC(Reduced Instruction Set Computer精简指令集)是一种计算机处理器设计技术,由IBM沃森实验室在1974年研发大型电信网络处理器时提出。RISC主导思想是简化CPU设计、简化指令处理,争取在每个CPU时钟周期内执行完一条指令。由于程序逻辑很复杂,而CPU指令很简单,所以需要编译程序功能更为强大,能够将复杂的高级语言语句程序分解、转化为非常简单的,CPU可直接处理的指令,这些操作在程序编译的时候由程序编译器自动完成。

IBM的首席科学家之一John Cocke最先提出RISC思想。他深入分析了当时的CPU硬件设计和生产技术之后,发现软件优化工作相对更容易,也能更加灵活地进行,硬件设计则相对更为复杂、单位成本更高,并且不能对同一产品持续优化。这一点非常好理解:我们可以不断地升级软件、打补丁,但是从未把一块芯片拆开,修改里面的电路,更换硬件芯片的成本又太高,大型计算机2/3以上的成本都在于CPU。而且如果只让CPU执行有限的、比较简单的指令时,同样的设计和生产工艺能让CPU具有更快的处理速度。今天,RISC架构已经成为大部分工作站和UNIX服务器的核心技术,John Cocke在1987年也因此获得了图灵奖图灵奖被称为“计算机界的诺贝尔奖”,以英国著名数学家图灵的名字命名。,如图1-1所示。

图1-1 John Cocke和RISC处理器版图片引用自http://domino.watson.ibm.com/comm/pr.nsf/pages/bio.cocke.html

问题:CPU的性能由什么决定?

答案:CPU的性能由以下4个方面决定:

指令效率:一条指令能实现多少操作,例如一个乘法运算需要几条指令完成;

并行指令数:一个CPU能同时执行的指令数,有超流水线、超标量两种技术;

指令消耗的时钟周期:一条指令需要几个时钟周期完成;

CPU主频:一秒钟内CPU可以完成多少个时钟周期。

思考问题:CPU的性能是否就是计算机的性能?

至今依然有CISC(复杂指令集)和RISC之争,但现在看起来CISC与RISC似乎都是不错的选择,并没有悬殊的优劣之分,实际上它们一直在相互学习,现在CISC CPU指令也不会随意增加、变得无比复杂;而RISC CPU也设计了一些复杂的指令,允许在更多的时间周期内完成。在几十年前CISC一枝独秀的时候,RISC技术确实引发了计算机处理器设计的革命,并产生了众多RISC CPU。在具体介绍这些CPU/处理器之前,我们先了解一下CPU(大规模集成电路)的生产过程,如图1-2所示。

(1)在芯片工厂里非常纯净的硅被加热熔融变成“硅溶液”之后,在其中放入很纯净的一小粒硅结晶,并不断向上拉伸出“硅溶液”,“硅溶液”就以这个结晶为“种子”,在其周围凝结,通过控制环境温度和拉伸速度,保证凝结过程平稳,硅结晶就会非常整齐,成为圆柱形的单晶硅铸块,此过程被称为Growing Ingot(铸块生成)。

图1-2 由硅到芯片(尚未切割、封装)

(2)下一步,铸块被切割成单晶硅晶圆薄片(Wafer Slicing),如图1-3所示。我们经常听到120mm,150mm,300mm晶圆厂就是指这些晶圆薄片的直径,显然晶圆直径越大,生产原料利用率越高(因为芯片都是方形的,晶圆的边角不能用于加工芯片,晶圆直径越大,边角料相对比例越小。每次加工过程成本相近,同时生成的芯片越多,单位成本越低),另外也只有大晶圆片,才能生产更大的芯片。

(3)晶圆通过照相制版,采用类似洗胶片的方式根据需要在不同部位覆盖上保护物质,然后通入氧气氧化、蒸发金属镀膜、半导体材料渗透,在没有被覆盖的晶圆部分发生物理、化学反应。这样就在晶圆上刻蚀出了电路或者生成了功能单元(Polishing),这些功能单元也就是一个一个的小晶体管元器件。

图1-3 单晶硅铸块和晶圆片

(4)晶圆再次经过几次反复镀膜、氧化、渗透、生长等工艺,生成完整的芯片电路(Epitaxial Growth)。

(5)晶圆经过切割,生成成品芯片。

(6)最后还需要经过封装,添加保护和引脚,成为真正可以在市场上销售的芯片。

集成电路芯片制造自20世纪80年代起发生了巨大变化,从集成设计制造模式向代工模式转变。如图1-4所示,到20世纪90年代中期,逐渐形成了以欧、美、日、韩、中国台湾为核心的几大芯片设计、生产、制造中心:

图1-4 芯片生产模式转型

欧:集成设计制造,主要精于通信领域芯片设计。

美:国际芯片设计、销售的中心。主要优势:芯片设计专利、原材料、制造工艺。

日:集成设计制造,主要精于人工智能系统芯片。

韩:DRAM最大的制造商,现在向集成设计、制造转型。

中国台湾:世界最大规模的芯片代工工厂。

由于代工技术含量低、能源消耗大、污染较严重(来自生产过程中的各种化学药剂处理)、投资规模巨大、受市场影响大、收益低,现在代工工厂逐渐向发展中国家转移(中国东南沿海一些城市已经有趋势成为芯片生产的大户,也因此产生了很多新的污染来源),而传统的芯片生产企业争相向芯片设计、专利技术开发、芯片产品销售转型。

提示

芯片设计IP(Intelligent Property,专利技术,即设计图纸)、芯片制造工艺、芯片加工工厂、芯片使用领域是芯片行业赖以生存和盈利的4大法宝。很多国际知名芯片设计场商只进行IP设计,其他任何厂商都可以购买他们的设计专利,全部或者部分地将这些技术应用于自己生产的芯片,像采购零部件一样,“组装”自己的产品,当然,每个成品都要给IP厂商一笔“专利费”,这其中最著名的厂商就是ARM公司(生产嵌入式CPU的著名企业)。Sun公司也将自己的SPARC芯片设计卖了出去,由于自己的生产技术不好,现在反而采购富士通生产的SPARC芯片用于自己的服务器。

制造工艺决定了芯片的体积、成品率,越是高端的芯片,要求制造工艺越先进。在这一方面,全世界只有几家公司,垄断了所有的技术,而其他公司只能购买专利或者找代工。例如IBM公司将自己生产铜导线芯片的技术卖给了竞争对手HP公司,日进斗金。芯片工厂盈利很显然直接与芯片的成本息息相关,IBM公司和Intel公司最近都在世界各地兴建自己的芯片加工厂,规模达到几十亿美元的投资额度。市场决定一切,能给自己的芯片找到更多的销路,不但分摊了研发成本,还推广了芯片的市场,使用自己的芯片的人越多,自己的芯片越有竞争优势。因此IBM公司的Power系列芯片不仅用于高端服务器,也一直在向嵌入式CPU市场推广。

众所周知,CPU处理器生产技术一次又一次地验证了摩尔定律。按照此定律推算,到2015年,计算机的信息处理能力将能首次达到人类大脑的水平。如图1-5所示,曾经计算性能排名第一的IBM蓝色基因可以达到一只老鼠的信息处理能力,离人脑还有差距,然而如果单纯比较计算能力,计算机已经远远超越了人类。虽然计算机的体积和计算效率现在还不是人类的对手,但随着3D集成电路、量子并行处理技术的实用化,摩尔定律将被延续,估计我们每个人都可以在有生之年看到计算机真正超越于人类。

图1-5 几款超级计算机的“智能”比较

1.1.2 曾经繁星闪烁

在并不漫长的计算机发展历史中,曾经有许多CPU被研发、装备在小型机、服务器和各种电子控制系统上。

1.Acorn ARM,铺天盖地的RISC

ARM(Advanced RISC Machine)是足以让人类引以为荣的现代处理器之一。ARM并不仅仅是一款CPU,而是一系列芯片,包括ARM - CPU,MEMC - MMU和DRAM/ROM控制器,VIDC - video和DACDAC Digital Analogy Converter:数字、模拟转换控制器。,IOC - I/O,时钟控制,中断控制等,这是一个能够完整地支持多任务操作系统的计算机体系架构。它最早由VLSI Technologies Inc公司开发,后来成立了单独的ARM公司。ARM部分基于伯克利伯克利和哈佛是两种计算机结构,简要来说:伯克利设计不区分指令与数据,在内存中等同处理,Intel x86 CPU就是伯克利设计;哈佛结构则明确区分内存中的指令与数据,指令部分不可改写。设计思想,它非常简单,只有一个3阶段的流水线,可以在大尾段或小尾段(big or little endian)

模式工作。最早的ARM(ARM1,2和3)是32位的CPU,但是使用26位的地址总线。比较新的ARM 6xx开始使用32位的地址总线,它有用户、管理和中断三种运行模式,有16个寄存器。

提示

大尾段Big Endian和小尾段Little Endian是和汇编语言有关的概念。

大尾段:一个Word中的高位的Byte放在内存中这个Word区域的低地址处。

小尾段:一个Word中的低位的Byte放在内存中这个Word区域的低地址处。

如果我们将0x1234abcd写入以0x0000开始的内存中,则结果为:

在ARM处理器中,对每一条指令都进行预测(此技术也被后来的HP PA-RISC芯片采用),这样减少了指令异常跳转,加速了指令执行速度。另外在进行寄存器和地址指令操作的时候,可以同时进行移位操作,这样就把两条指令合并成一条。这些技术使ARM的指令代码可以具有更高的“密度”,并且能更有效地执行。虽然ARM时钟频率不高,流水线级数也很少(在流水线结构下,级数越多则可以并行处理的指令数越多),但ARM 6实现了相当不错的处理能力,大约可以与我们所熟知的CPU Intel 80486相当。

提示

流水线方式是增加CPU处理速度的一种设计技术。在CPU执行每条指令的时候,需要先进行取指、解码、执行等几个动作,而流水线则依次排列,穿插着几个动作同时执行。例如:当一条流水线进行取指时,另一条流水线则进行解码,第三条流水线进行执行操作。这样,在同样时间里,流水线方式可以执行更多的指令。不过流水线在发生指令跳转的时候会出现一些复杂的情况(计算机在指令没有执行前,并不知道下一条指令会跳转到其他地方去),需要更多的处理,例如分支预测。与流水线方式对应的另一种技术是超标量,就是同时进行多条指令的处理,而处理的时序相同,例如同时进行三条指令的取指。

ARM 6系列包括ARM 6 CPU内核(35000个晶体管,可以作为其他定制CPU的处理核心),ARM 60 CPU,ARM 600 CPU(增加了4K Cache,MMU,写缓存,协处理器接口)。1997年推出的ARM 7系列在性能上又有了很大提高,而且增加了类似DSP(类似数学协处理器)的扩展单元,包括32位和64位乘法器,Cache也提高到8Kb,还包含对电路仿真支持,时钟频率也有所提高。在1997年稍晚些时候,全功能的DSP协处理器被集成进ARM。1998年发布的ARM 10则增加了矢量浮点单元,可以在一个时钟周期完成一个矢量运算。

DEC公司在1996年购买了ARM的设计架构(专利),开发了SA-110(Strong ARM),在100~233MHz运行5级流水线,仅仅消耗1W功率! Intel公司通过专利合作,接手了Strong ARM,替代自己的i960系列嵌入式系统,并开发出XScale处理器(2000年发布),这款处理器增强了电源管理功能,可以在不同的时钟频率运行。由于这些芯片性能好、功耗低,被广泛用于嵌入式系统或者手持PDA设备。

在ARM 7和DEC/Intel Strong ARM在市场上大出风头的这段时间,ARM公司悄悄地开发了ARM 8/800,它包含了Strong ARM的许多特性。其他一些公司,例如摩托罗拉、IBM和德州仪器公司也购买了ARM的专利授权,生产自己的处理器。ARM设计被如此众多的公司采用,使其当之无愧为有史以来最成功的嵌入式处理器。

ARM也曾经开发过低成本的16位ARM处理器,叫做Thumb,这使得ARM能够向下涉足16位处理器领域。与最新的80x86处理器为了兼容旧指令而进行的指令解码一样,Thumb巧妙地通过解码方式把16位指令平滑地转换为32位内部指令执行,而且没有损失任何性能。Thumb由于采用16位编码,使得程序大小只有本来就已经非常紧凑的32位程序的30%~40%。这对于节省“寸土寸金”的嵌入式系统固态存储器(内存)资源非常重要。

Jazelle(2000年10月发布)与Thumb类似,但是它解码的是Java虚拟机的伪代码,简单的代码直接执行,复杂的代码被捕获,由ARM指令仿真执行。由于使用的是Java虚拟机方式,所以可以执行各种Java程序。

凭借性能卓越、省电,ARM打入了苹果公司,苹果的掌上型电脑Newton采用了ARM CPU。苹果公司以Newton品牌开创了掌上电脑(PDA个人数字助理)时代,却没能够将其发扬光大,不久,这个产品就停产了。但是,从此以后一大批类似的产品,从手机到掌上电脑,都开始使用ARM处理器,都是由于性能、省电这两个最重要的原因。苹果公司最近凭借iPod品牌重新杀回个人数字产品市场,又是一段佳话,部分型号iPod的CPU就是采用ARM。

ARM公司生产CPU的方式有点特别:只研发,销售设计图纸,自己却不制造芯片,而将这些芯片设计专利(IP)出售给其他的CPU设计生产厂商,让他们结合ARM的设计,生产出自己的独立CPU产品,ARM也因此被称为“CPU行业里的微软”。

2.Apollo PRISM,超级工作站

这是最早被称为工作站的计算机产品,它使用UNIX操作系统,通过高性能的微处理器(通常都是摩托罗拉的680x0系列处理器),提供强大的图形处理能力,而且又足够廉价。这些RISC处理器实现了4倍于上一代计算机的性能,第一次让“迷你”的计算机能够完成以往大型计算机才能负担的工作,其大小却仅仅比现在的一台PC机大不了多少,结果是以往需要占满工作场所一整间屋子的计算机设备被“微缩”进一个小箱子大小的体积中——这就是工作站名称的由来。

当时Apollo,Sun和HP公司各自拥有大约20%的工作站市场份额。Apollo生产了单CPU的DN3000和四CPU的DN10000工作站(DN的含义是“DOMAIN Node”,区域节点,运行DOMAIN/OS)。在这款工作站中,首次使用了PRISM CPU,它是第一款真正的VLIW类型(超长指令)微处理器,它的性能一直在工作站类小型机中处于领先地位,直到后来被IBM RS/6000系列(本文主角pSeries的前身)取代(现在又有被PC图形工作站取代的趋势)。

第二个版本的PRISM主频翻了一倍,可是由于与芯片供应商(BTT公司)之间的财务问题,推出时间大大延迟。最后Apollo在1989年被HP公司并购,并且在1991年,这条产品线被彻底放弃,但是HP公司在自己的PA-RISC CPU中大量借鉴了PRISM的技术,算是延续了PRISM的技术生命。

3.DEC Alpha,为未来而设计

DEC公司的Alpha系列芯片最先进的设计思想是PAL calls(可改写的指令集扩展),被称为为未来而设计的设计思想,可以保证在可预见的一段时间之内,该设计结构不用做本质改变,仅仅通过更新芯片生产工艺,就可以大幅度提升处理性能。第一款Alpha芯片是21064 EV4架构(EV的含义是:Extended VAX,即VAX的后续版,VAX是继PDP之后,DEC公司设计的又一款非常成功的小型机)。Alpha的起步设计就是64位架构(32位指令),不支持8位、16位操作,但允许通过转换仿真执行8/16位程序。由于Alpha芯片在转换执行程序时不会牺牲性能,与之相比,当时的许多CPU虽然都可以进行类似的转换处理,但都会降低一些处理性能,所以Alpha的设计非常成功。Alpha 32位与64位操作的唯一区别是溢出检测。Alpha芯片与MIPS R2000一样,用一个通用寄存器保存条件码,但与R2000不同,Alpha有一个可以互锁的流水线,并且也没有如R2000一样在几年后升级到R8000/R10000时变得过于复杂,这些都是Alpha设计的成功之处。

Alpha芯片的研发目标是替代DEC公司的两个旧产品线:MIPS工作站和VAX小型机。为了延续VAX生命,Alpha同时提供了对IEEE、VAX 32和64位浮点操作指令的支持。通过Privileged Architecture Library(PAL)调用——这是一组可编程的Alpha指令的宏操作(在执行这组指令宏的时候不能接收中断)—— 使Alpha能够通过类似翻译的方式转换执行另一种指令集的二进制目标码,运行另一种操作系统。众所周知,Alpha可以执行VAX代码和VMS系统,同时是当时仅有的一款支持Microsoft Windows NT的小型机。

Alpha之所以被称为是为未来而设计,是考虑到了未来Alpha芯片1000倍的性能增长:其中10倍来自于时钟频率、10倍来自于芯片扩展执行指令、10倍来自于并行处理。EV4有一个整型、一个浮点、一个存取单元,EV5(21164,1995年发布)通过增加了一倍的整型、浮点、存取单元而提高了并行能力,时钟频率也从200 MHz提高到300 MHz(比当时其他厂商的CPU主频快一倍),并第一个引入了片内2级缓存。EV6(21264,1998年发布)又增加了一些处理单元,同时主频也提高到500MHz。

EV7(21364,2003年发布)开始了多处理器(内核)设计,在处理器之间增加了5个高速连接,4个CPU之间用总计10GB/s的通道连接,同时还有一个3GB/s的I/O通道。EV8(21464)设计了8个CPU的内核,开始支持单核多线程。

在1998年,DEC公司被康柏公司收购,当媒体猜测DEC公司能否在EV6突破833MHz的主频时,许多CPU生产厂商如Intel,AMD和SiByte(MIPS)公司都已经超越了1GHz主频,可见DEC公司此时已经落后于时代,风光不再。在此之前,Alpha的性能可是一直处于领跑的位置,也总是以高主频著称。保持原有CPU架构不变,康柏公司继续开发EV7和EV8,然而没坚持多久,在2001年,康柏公司却取消了EV8的研发,转而投奔IA-64,并准备把所有Alpha的知识产权(从设计电路到编译系统,甚至开发小组)都卖给Intel。此计划未等实施,康柏就与惠普合并了。这两次合并对业界造成了空前巨大的冲击,据说当康柏收购DEC的时候,Alpha开发小组的许多工程师跳槽到AMD,使AMD得以抢先Intel推出Athlon处理器,在性能上给Intel迎头一击。康柏和HP及后来的HPQ(新惠普)把赌注都压在Intel的另一个高端产品IA-64,它却一直没有上佳表现,与同类的处理器相比,性能太差,即使是其后与HP联合开发的Itanium 2处理器性能也仅仅差强人意,却难以圈点。无论怎样,EV8还是问世了,但是Alpha系列的寿命已经终结。最近的消息是HP在去年(2007年)4月27日终止了Alpha系列的研发,但是将对现有产品继续支持到2012年。

DEC的Alpha处理器从许多方面都与IBM著名的POWER处理器采用截然相反的策略。Alpha依靠复杂性获得性能,从大量的晶体管、高速的主频取得计算力,当然,也因此必须消耗更高的功率,散发出更多的热量,因此很早以前DEC的Alpha服务器就安装了巨大无比的散热风扇。

4.HP PA-RISC,保守的RISC

与其他RISC处理器相比,PA-RISC有不同寻常的“复杂”指令集,这可能是由于此芯片的设计之初RISC思想刚刚萌芽,还没有深入人心,另外一些分析结论也表明适当“复杂”的指令集可以大幅度提高性能,因此其后的PA-RISC又增加了一些指令。由于年代久远,当时的PA-RISC还是一个比较简单的设计,只有115 000个晶体管。1994年发布的PA-RISC 7200采用48位地址,后来扩展到64位。PA-RISC 7200也包括集成的Cache和MMU,支持高速64位总线。

1996年4月,惠普发布了PA-RISC 8000,扩充了内部寄存器和64位地址总线,超标量设计,可以同时乱序执行5条指令,使用56个可变名称寄存器、10个处理单元(5对ALU,移位/合并处理,FPU乘法/加法,除法/开方,存取单元),竞争对手是MIPS的R10000和SUN公司的UltraSPARC(IBM公司的Power处理器当时还很不成功)。1996年的PA-RISC 8500增加了片内的1.5Mb缓存。HP率先在处理器中增加了多媒体指令,1994年的PA-7100LC支持MAX-1(Multimedia Acceleration eXtension,多媒体加速扩展指令),在PA-8000种支持64位(2.0版本)的MAX-2,可以允许向量操作。

PA-RISC系列的下一个产品是8700,与惠普设计的IA-64使用相同的总线,具有双内核的8700芯片在2002年发布,这个芯片与其他芯片不同的设计是使用了廉价的DRAM作为片外二级缓存,而没有使用更快的SRAM,这样即使使用了较大的缓存,芯片价格成本也较低,而且功耗少、芯片尺寸小。在PA-RISC上没有特别的新技术,但它还是能够凭借比较均衡的设计获得不错的性能,跻身同时代芯片的前列。

5.IBM POWER,缓慢启动的高速列车

当IBM公司决定真正抢占工作站市场的时候(在它不成功的ROMP处理器的PC/RT产品之后),她准备使用RISC技术开发全新的CPU——这就是POWER(Performance Optimization With Enhanced RISC)CPU,用增强RISC技术进行性能优化的CPU处理器名称的由来。Power系列CPU是本书的重点,在后面会专题介绍,此处只介绍一下IBM Power系列家族产品,如图1-6所示。

图1-6 IBM POWER系列芯片家族

IBM的POWER家族有3个分支:POWER系列,主要用于大型商业服务器;PowerPC系列,主要用于刀片服务器刀片服务器是一种高度集成化的服务器,可以理解为“单板计算机”,由于其集成度很高,所以可以在一个机柜里放置几百台“刀片”,比较适合于在大型数据中心作为应用服务器、Web服务器,但是由于其集成度高,也限制了自身的扩展性,没有额外的I/O卡槽。和Linux终端;另一款PowerPC嵌入式系列用于游戏机、工业控制和领域,作为小型设备的核心处理器,最新的PowerPC嵌入式芯片代号是CELL。

这三大系列的CPU相互之间基本实现了二进制兼容的,也就是说,为其中某一种CPU开发的程序,如果不考虑外设情况,可以很容易地移植到其他两种类型的CPU上去,甚至完全不需要修改一个字节。这使得POWER家族拥有了极强的可伸缩性,从计算器到最高端服务器或者游戏机复杂的三维图形和声音处理,只要一次开发,可以在任何地方使用!

6.Intel / HP IA64(安腾Itanium),联合出击

当Intel和惠普准备联合开发能够同时兼容80x86和PA-RISC架构的CPU的时候,引起了很多人争论。在当时“RISC”技术看来比80x86架构先进,x86架构在不久可能就会退出领导市场,单纯在提高性能的同时保持对80x86指令集兼容已经让Intel自己煞费苦心,而同时还要支持PA-RISC?在市场评论家的眼中,这无异于是在市场利益驱动下做出的疯狂举动。大家猜想其原因是Intel力图保持其当前的设计架构,持续占领巨大的Windows个人机市场,同时通过完成RISC芯片所不能完成的工作去杀入RISC阵营,超越“RISC”。

最早在1992年惠普就已经开始了类似的设计,但是它发现这种设计太复杂,而且难以实现4路以上的CPU结构(多CPU结构是小型机的性能引擎,不能支持两位数CPU的计算机,还叫做小型机么?)。Intel作为惠普的合作伙伴,也在为惠普设计PA-RISC的背板,这是当时芯片设计的普遍做法,目的是为了分担设计成本,同时提高芯片的“知名度”。

IA-64有128个65位(64位数据、1位NaT)整型寄存器、128个64位浮点寄存器,分离的指令寄存器和8分支寄存器存放着跳转分支目的地址,这样可以预先把下一跳的可能地址(指令)都准备好。为了和旧的80x86系列兼容,需要进行寄存器映射工作,IA-64的G8到G31映射IA-32(即32位的x86)寄存器,浮点寄存器FR8到FR31映射IA-32的FPU和SSE寄存器,这样就直接实现了二进制兼容。PA-RISC和IA-64很相似,因此可以直接通过重新编译实现兼容。

由于IA-64在设计过程中没有找到统一的内存数据和指令的访问方式,发布曾经一度延迟。IA-64如同ARM等CPU一样,对指令进行预测,但是它使用了更复杂的方案:用64个1位的预测寄存器(PR0到PR63)进行指令控制。通过指令预测,两个分支的指令可以同时执行,然后根据上一步的结果选择最终真正正确执行的路线。

IA-64同时支持80x86 MMX和SSE、PA-RISC的MAX多媒体扩展指令集,不过这些指令在执行时使用了Intel的传统方式:通过浮点寄存器执行而不像PA-RISC用整型寄存器执行。IA-64增加了大量硬件层面对编程语言的支持,可以把编程语句直接映射为机器指令,这种设计方式有点违反RISC传统,当然也可以说是对RISC技术的一种进化:让简单的处理指令组合在一起去实现复杂的语言功能,从某种意义上看也还是RISC吧。

经过漫长的市场等待,Intel设计的安腾(IA-64)终于面世了,低于预期的主频(只有800MHz),同时各种测试指标也让评论家大跌眼镜。HP设计的安腾晚了一年推出(2002年),被称为Itanium 2,性能尚可,可惜生不逢时,市场上IBM的POWER 4和富士通生产的SPARC64 V都有很好的性能表现,所以Itanium 2成了雷声大、雨点小的广告产品。

尽管在硬件层面,安腾可以执行IA-32程序,但性能非常糟,为了面对AMD Opteron的挑战,Intel做出了一个软件仿真系统,它源自许久以前DEC开发的FX!32软件,可以让Alpha模拟x86 CPU。Intel从康柏购买了这个原型技术,并用于安腾模拟执行x86指令,它甚至比硬件实现还要快。通过这个软件,Itanium 2可以以奔腾4一半的速度运行IA-32程序,即便如此,还是比直接在硬件上跑IA-32程序快!

7.Intel i960,市场不喜欢好产品

80960是非常好的一款芯片(这条产品线从960 MC开始,是BiiN公司生产的处理器),由英特尔和西门子合资公司生产。M系列代表“Military”,也就是军队的意思,实际上这是专门为军方制造的计算机(Military Computer,MC)。以后i960目标是高端的嵌入式处理器市场,它包括多处理器,支持debugging/排错,有强大的中断/错误处理功能,但是缺乏MMU(Memory Management Unit,内存管理单元)。尽管没有MMU功能,i960还是被誉为“这个世界上最好的嵌入式RISC处理器”。

i960的目标非常明确,为嵌入式计算机生产,而不是高端应用,但是它做到了可以非常灵活地扩展,可能原因在于这款芯片并不是完全由Intel设计的,它使用了DEC制造Strong ARM的专利。最终i960也没能够继续发展下去,不过现在很多RAID磁盘陈列依靠i969的强大XOR计算性能,专门进行校验计算。

8.MIPS R2000,辗转反侧

R2000起源于斯坦福大学的MIPS(Microprocessor without Interlocked Pipeline Stages)项目。该项目希望设计一种内部流水线之间不需要互锁的处理器,这样可以大大简化处理器的设计过程,避免流水线之间必须进行的锁同步问题。这意味着在一个指令周期处理器可以存取32个32位寄存器中的任意一个,因为没有锁机制,它需要编译器通过复杂的编译算法来完成多条流水线处理的调度工作,以避免冲突。LOAD/STORE和跳转指令只需要一个时钟周期就可以完成,但由于乘法和除法需要几个时钟周期才能实现,因此需要特别的HI/LO乘/除寄存器,此时还是需要寄存器锁。

与AMD 29000和DEC Alpha相比,R2000的设计认为条件码寄存器可能是一个性能瓶颈,因此没有这种寄存器。CPU包括一个MMU和Cache控制器,是第一款同时可以进行大尾段和小尾段操作的处理器。R2000加上与之配合的FPU,叫做R2010。

在1988年,R2000的下一代产品R3000问世了,它增强了Cache控制;1991年的R4000则升级到64位,采用超流水线结构,每条流水线的工作更为简单,但与前一代相比增加了一倍的流水线数量,提高了时钟频率。由于当流水线不能及时得到指令会导致处理中断,例如当存在指令分支的时候就会发生这种情况,因此R4000不得不增加了流水线之间的锁机制,实际上已经违背了原有设计的初衷,但无论怎样,这依然是一款很好的芯片。后续产品R4400是将FPU集成到同一个芯片的设计,到R4600又放弃了超流水线机制。

1994年的产品R8000采用超标量设计,为浮点运算进行优化,可以同时进行两个整型运算或者存取操作以及两个浮点数操作(浮点指令被送到单独的R8010浮点协处理器)。1996年发布的R10000和1997年发布的R12000增加了多个FPU,而且同其他新一代CPU设计一样,增加了分离的2路指令/数据缓存(每个32K),还有片内的二级控制器(高速8路分离的处理总线,当前一个处理尚未完成,就可以启动下一个处理),超标量执行(同时载入4条指令,可以乱序处理5条指令:两个整型处理、两个浮点数、一个存储单元),动态寄存器重命名(在R10000中有32个,在R12000中有48个寄存器),可以部分替代CPU完成指令解码的指令缓存,分支预测和目标数据预缓存技术都在这款CPU中得到实现。

1996年还有一款R5000超标量处理器,能在6个时钟周期完成2路整型、浮点运算,它只是填补R4600和R10000之间的空缺的产品,没有什么特别的技术。而新的CPU预想将Java虚拟机功能加入到CPU中。

SGI公司,也就是MIPS的母公司近年来的财务状况不佳,影响了新CPU的设计和生产,从R10000和R12000的滞后发布后,只推出了一款R14000,就宣布中止了MIPS架构的高端研发。最后MIPS公司被出售,之后的MIPS处理器在嵌入式系统中却发展得很好,在2001年发布的R20000采用了MIPS-3D技术,将整型处理单元扩展到6个。2003年,中国的BLX IC设计公司参考MIPS架构设计了另一款芯片,被称为Godson(英语中龙的意思),也就是著名的“龙芯”。任天堂公司在N64游戏机中也使用了一种MIPS处理器,到1999年,有3/4任天堂游戏机的处理器都使用MIPS,直到后来转为IBM的Power PC。一些来自SGI公司的工程师后来成立了另外一个公司,名叫ArtX,专门生产图形处理器,也被任天堂采纳。Power PC和ArtX的图形处理器成为任天堂新产品Game Cube(内部代码:海豚)的核心。索尼公司也在它的Playstation里面也用到MIPS芯片。

9.Motorola 88000,迟到的流星

摩托罗拉88000(原名78000)是32位处理器,哈佛架构设计的CPU,数据、指令总线有单独的缓存,因此同时进行数据、指令访问不会出现冲突。它与惠普的Precision Architecture(HP/PA)架构类似,在设计中包含许多只能在控制模式才可见的控制、状态寄存器。

88000也采用流水线(支持内部锁),这样一个流水线的处理结果可以直接在下一个周期被另一个流水线所用。存取数据也是由缓存处理,除非直接读取数据的地址正在进行保存操作,否则都不需要等待。

Motorola 88000发布于1988年,没过多久,摩托罗拉就改变了策略,与IBM和Apple共同研发Power PC处理器,此系列芯片也因此后继无人了。

10.SUN MAJC,从虚拟到现实

为了支持Sun公司自己的Java,Sun公司决定生产专门的Java处理器,可以直接执行Java编译后的伪代码,而不需要Java虚拟机程序。MAJC的含义就是:Microprocessor Architecture for Java Computing——为了Java而设计的微处理器。此类产品共有三种:picoJava,这是一个处理器核心,可以嵌入到其他处理器设计中;microJava,这是一个独立的picoJava内核芯片,通常需要配合其他芯片使用;ultraJava,这是一个完整的高速Java处理器。按以往的经验,市场不会接受单独为某种语言开发的处理器,除非因为某种特殊的应用程序需要,或者将某种语言转换成传统CPU指令的效率太低(实际上能通过硬件实现高效率,软件编译程序也没有道理实现不了)。也许正因如此,完整的Java处理器很快就消失了,但是作为Java处理器内核,还在一些嵌入式系统中存在并发展下去。

在MAJC中,引入了许多先进的设计思想,例如可以支持指令级的并行能力,能够让寄存器在4个线程中进行切换(可以视为寄存器重命名),这是在超级计算机中的设计方案,IBM的Northstar POWER CPU可以支持2个线程切换,Alpha EV7也可以实现这种功能。当处理器发现指令不在缓存中时,需要等待指令调入,这时就可以将处理器切换到另一个执行线程,因而提高了CPU利用率。此技术又被称为硬件多线程技术。

在MAJC中的另一个设计是单片、多处理器(同样在IBM的POWER 4和Alpha EV7中使用),这样也可以提高并行能力。可能有两个线程共享一块内存,通过单片多处理器可以将这块内存“复制”出两份,这两个线程分别修改内存,当线程操作结束后,又可以把两块内存合并回原来的一份。在Myrias超级计算机中使用了这种技术,叫做PAMS(Parallel Applications Management System,并行程序管理系统),但是它是由C,C++和Fortran编译程序完成的。

总体来说,MAJC是很复杂的设计,与其他CPU相比,虽然MAJC不是一款通用CPU,但实际上它已经足够复杂,很容易就可以改造为通用CPU。不过最后,SUN还是放弃了MAJC的后续研发。

11.SUN SPARC,真正RISC

SPARC也叫做Scalable处理器(在Sun公司的原名),是由Sun Microsystems自己独立设计的产品,用于制造工作站,目的是作为升级型号,替换它们自己用68000处理器生产的工作站。Sun公司的芯片研发机构已经开发出性能非常高的芯片,但是其委托的芯片制造厂却严重滞后于市场,于是Sun公司决定自己生产芯片(基于伯克利的设计),依照Sun公司的商业哲学,它同时把CPU设计的License对外公开销售,其他厂商也可以依照这种设计生产自己的芯片。

SPARC不是第一款RISC处理器,AMD 29000是比它更早的RISC芯片,其后有MIPS R2000(基于斯坦福设计),惠普公司的PA-RISC CPU等。而SPARC设计比较激进,更加“RISC”,甚至根本不考虑乘除运算(在其后的产品中增加了乘除指令),实现了绝对每时钟周期完成一条指令,与之相比,其他的处理器更传统一些,介于RISC和CISC之间。

SPARC包含了128或144个整型寄存器(通常当时的CPU设计只有少于16个寄存器),在每个周期,总有32个寄存器可使用,而其中8个是全局的,另外24个在寄存器栈中用一种“Window”技术寻址。在每个功能调用,寄存器“窗口”向下移动16个寄存器,因此最上面的8个和最下面的8个可以被两个功能调用共享,用于返回数据,另外8个用来进行局部处理。当调用返回,窗口上移,只有最上和最下的寄存器内容需要保存。这种技术使调用能够在一个时钟周期内完成。其后的SPARC处理器增加了FPU,有32个寄存器(不使用窗口)。SPARC与其他的RISC处理器类似,通过流水线方式提高性能,有一个专用的条件码寄存器用于保存比较结果,但与MIPS等其他处理器不同,它有分支跳转等待周期。

SPARC之所以被称为“scalable”(可扩展的),原因在于SPARC设计中寄存器栈可以扩充到512个(或32个“窗口”),这样就减少了在不同功能调用之间的现场保存、恢复工作,或中断时上下文切换时间。由于功能调用比中断发生得更频繁,因此更多的寄存器可以提供更好的性能,编译程序使用固定的寄存器可以利用滑动窗口在不同调用之间更有效地传递数据。

SPARC不是一种芯片,而是一种设计思想,因此有很多具体实现方案,也就有了很多版本,包括32位和64位的超标量设计(例如1992年美国德克萨斯州仪器公司设计的SuperSparc)。SPARC与其他处理器相比性能一直不佳,总是落后于同期的Intel 80x86处理器。直到1995年的UltraSPARC问世,这种情况才发生逆转,它是由德州仪器和Sun公司联合生产的,另一个是富士通/HAL生产的SPARC64多芯片CPU。还有许多厂商购买了SPARC授权,在生产廉价的嵌入式SPARC。

UltraSPARC是一款64位超标量处理器,可以同时利用9个处理单元执行4条指令(但不能乱序执行),包括2个整型单元、2个浮点单元/图形处理单元、分支处理单元和2个存取单元。UltraSPARC也增加了批量移动指令,用来进行缓存处理(2路16K指令和16K数据)。像素处理操作(VIS - Visual Instruction Set视像处理指令集,可以并行完成8、16或32位整型数处理),也出现在UltraSPARC中,可以进行快速图像掩码、3维到2维投影等操作。

UltraSPARC I/II的架构相同,UltraSPARC III在2000年中期推出,依然不支持乱序指令。考虑到当内存访问比较慢的时候,在14个时钟周期的流水线中可能只能同时处理6条指令而不是14条指令,支持乱序执行并没有提高处理能力,因此该芯片力图在提高数据和指令带宽方面做文章。

HAL/Fujitsu的SPARC64系列(在富士通的服务器上使用,也运行Sun Solaris软件)更希望提高计算性能而不是处理带宽。初始版本可以同时支持4条顺序指令,而且可以乱序完成,这与UltraSPARC不同:当一条指令正确完成后,如果在它之前的所有指令也都成功完成,则认为此指令成功,而如果它所需要的资源被其他处理冻结,则此指令需要重新执行,这是在SPARC64流水线中“隐藏”的时钟周期。

2002年晚期推出的SPARC64 V更重视乱序执行和支持分支预测,而不是指令读入等待,虽然它也包括数据预取功能(在数据在实际被使用之前就调入到缓存,如果恰好数据被使用,则节省了数据调入时间,如果不幸失败,则需要重新进行数据调入,这是在L1 Cache中常用的算法)。它可以同时处理6到8条指令,包括4个整型单元、2个FPU(其中一个支持VIS)、2个载入单元、2个存储单元(存储需要1个周期,载入至少需要2个周期,因此在这种CPU设计中是分开考虑的。它有9个阶段的流水线,通常一个周期可以完成一条指令,但也有需要12个周期的复杂指令)。

UltraSPARC III在性能测试指标中性能平平,而SPARC64 V则达到了当时处理器性能的最高点。