1.1 计算机的发展及其分类
1.1.1 计算机的发展
自1946年第一台电子计算机诞生以来,计算机技术在60余年的时间里得到了突飞猛进的发展。今天,价值不到500美元的个人计算机就比1985年花100多万美元购买的大型计算机具有更高的性能、更大的存储器和磁盘空间。计算机的高速发展不仅在于器件技术的进步,更离不开计算机系统结构的创新。
在大规模集成电路出现之前,器件的发展和对冯·诺依曼系统结构的改进使计算机性能大约以每年25%的速度提高。20世纪70年代,VLSI(超大规模集成电路)技术和微处理器的出现加速了计算机的发展,其性能约以每年35%的速度提高,并逐步转向以微处理器为基础来组成计算机系统。在软件上,人们已极少使用汇编语言对计算机进行编程,从而降低了目标代码兼容性的要求。通用、跨平台操作系统如UNIX和Linux的出现与发展,使得新的计算机系统结构的成本和风险进一步降低。这促使了20世纪80年代RISC(精简指令系统计算机)的出现和迅速发展,并使指令级并行(从采用流水线到多指令发射)和Cache(高速缓存)技术的使用得以推广。Intel及时跟上了发展的脚步,在其处理器内部将x86(或IA32)指令翻译成类RISC指令,并大量采用多种RISC新技术。而红极一时的CISC(复杂指令系统计算机)VAX系统结构则惨遭淘汰,被RISC系统结构所取代。
1986 年之后的16 年,计算机系统性能的提高更以每年50%的速度持续增长。进入21世纪以来,基于微处理器的计算机占据了统治地位,工作站和个人计算机(PC)成为计算机产品的主流。基于微处理器的服务器取代了基于逻辑电路或门阵列的小型机,由多个微处理器构成的多处理器系统已经取代了大型机,甚至以复杂计算为主的高端的超级计算机也由多个高性能微处理器构成。
例如,2007年名列世界超级计算机第一的IBM蓝色基因/P,其中共有73728颗PowerPC 450处理器(主频850 MHz,单芯4核)、共计294912个计算核心,根据Linpack基准测试,其最高运算速度达到了1 petaFLOPS(1 petaFLOPS = 1000 TFLOPS;FLOPS即Floating-point Operation Per Second,浮点操作每秒),即每秒1000万亿次!其后起之秀即2008年上半年名列第一的IBM Roadrunner(走鹃)计算机系统(部署于美国能源部的Los Alamos国家实验室),就由IBM PowerXCell 3.2 GHz和AMD Opteron DC 1.8 GHz两种处理器组成,拥有122400个计算核心,其最高性能为1.026 petaFLOPS,峰值性能为1.375 78 petaFLOPS。
然而,自2002年开始,处理器性能的增长降到了每年约20%的水平。其原因大致有3个:
● 器件集成度的提高带来器件内部热耗的迅速增大。
● 半导体器件集成度提高的余地不多。
● 系统结构上没有多少可以有效发掘的指令级并行,很难设法降低存储器延迟。
2004年,Intel取消了其高性能单一处理器的研究计划,转而加入IBM和Sun的阵营,宣称将通过发展多核处理器来进一步提高计算机性能。这标志着一个历史性的转折,处理器的性能不再只依赖于指令级并行,而应更关注线程级并行和数据级并行。一般来说,指令级并行属于隐式并行,它主要利用编译器和硬件技术,可以不需要程序员的干预。而线程级并行和数据级并行是显式并行,要求程序员编写并行代码来改善系统性能。
1.1.2 计算机的分类
可以从多种角度对计算机进行分类,例如,根据处理的对象,可以划分为数字计算机、模拟计算机及数字/模拟混合计算机。由于模拟计算机几乎绝迹,这种分法已毫无意义;也可按照用途将计算机分为通用型计算机和专用型计算机两种,但是这种分法粒度过粗,难以概括计算机的基本特征。
1989年11月,美国电气与电子工程师协会(IEEE)的科学巨型机委员会提出把计算机划分为巨型机、小巨型机、大型机、小型机、工作站和个人计算机6类。这种分类方法兼顾了计算机的性能、应用和发展趋势,在当时是非常合理的,也为世人普遍采用。直到今天,在大众媒体上,在多种流行的计算机基础教材中,包括最新出版的有关计算机基础的书籍、高校教材等仍然普遍采用了这种分类方法或与之相近的方法。
进入21 世纪以来,随着计算机技术的发展,特别是计算机网络、多媒体技术的蓬勃发展及计算机系统结构的极大改进,本书认为,19年前提出的这种分类方法已不能正确反映当前计算机在性能、应用和发展趋势等方面的现状,原因如下所述。
① 所谓巨型、大、中、小、微型计算机之间的界限逐渐模糊。例如,现代价格低廉的个人计算机已具有过去大、中型甚至巨型计算机的性能。有人曾根据SPECint基准程序测试数据,做过这样的性能比较:以1978年的小型机VAX-11/780为基准(性能取1),则1984年的VAX-11/785为1.5,1990年的IBM RS6000/540为24,而现在的处理器Intel Pentium III 1.0 GHz达到了1779(2000年),2002年的Intel Pentium 4(3.0 GHz)更达到了4195。
② 现代计算机的硬件处理核心基本相同。无论是高性能的超级计算机还是PC,甚至包括排名在世界计算机前10强的超级计算机,它们的处理核心无一例外,几乎都由相似的处理器(过去常称为微处理器)组成;只不过在PC上多采用低端处理器而已。例如,2006年曾名列世界第3的Gray“红色风暴”(Red Storm),它包含了26544颗AMD Opteron 2.4 GHz双核处理器(部署于美国Sandia国家实验室),浮点运算速度为每秒101.4万亿次。2006年排名第7的Tera-10-NovaScale 5160,采用了9968颗Intel安腾2(Itanium 2)1.6 GHz处理器。
事实上,从20世纪80年代开始,计算机的设计者逐步转向以微处理器为基础来组成计算机系统。其原因,一是器件集成度的提高,有可能使微处理器包容更复杂的结构。二是许多在巨型机和大、中、小型计算机上用到的技术也下移到低一级或微型计算机上,如RISC技术、流水线技术、超标量技术、超流水线技术、超标量超流水线技术、超长指令字技术、Cache技术乃至线程级并行技术、多核(多处理器)技术等,已普遍用于现代处理器上,使得处理器的性能快速提高。这样,拥有单处理器的价格低廉的PC也具有大、中型甚至巨型计算机的性能。三是多处理器系统中同类型处理器应用的批量优势和多线程并行优势又大大降低了机器成本并提升了机器性能。因此,进入21世纪以来,基于微处理器的计算机占据了统治地位,工作站和PC成为计算机产品的主流。以处理器为核心的服务器取代了基于逻辑电路或门阵列的中、小型机,由多个微处理器构成的多处理器系统已经取代了大型机和 巨型机。
③ 出现于20 世纪90 年代的计算机网络和多媒体技术,扩大和深化了计算机的应用范围。对于通用计算机而言,无论何种机型,都存在实现网络高带宽和高速处理多媒体信息的要求,应用促使了处理器的融合。同时,由一个规模较大的主机带多个用户终端的分时式多用户系统,要么很快由松散的、相互可频繁进行消息传递的网络计算机结点所替代,要么由基于网络的分布式计算机系统甚至集群来构成紧耦合系统。这种现象削弱并消除了大、中、小型机的功能划分,规模较大的、拥有更多处理器的计算机,更多地成为承担网络中心任务的服务器角色。
也许有人说,巨型、大、中、小、微型计算机之间的划分是会随着计算机的发展而产生动态变化的,但这种分法并没有真正体现出计算机的本质特征。例如,今天的计算机几乎都基于网络,在传统的分类上看不出它们在网络应用上的区别。又如,在规模上,现代多处理器系统在构成处理器阵列上具有一定的灵活性,可依据计算的规模来组织参与计算的处理器数目,它究竟属于何种类型的计算机就很难下定论了。
应该说,将计算机分为巨型机、小巨型机、大型机、小型机、工作站和个人计算机的分法在20世纪还是基本正确的。而进入21世纪后,基于前述的理由,应该修正现代计算机的分类方式。现在,一般将现代计算机分为4种:桌面计算机、服务器、超级计算机和嵌入式计算机。表1.1列出了这4种计算机的主要特征。
表1.1 4种主流计算机的主要特征
1.桌面计算机
桌面计算机(desktop computer)崛起于20 世纪80 年代,分为个人计算机(Personal Computer,PC)和工作站(workstation)两种。PC就是人们常说的微型计算机,通常是单机系统,主要面向个人应用。目前,较为普遍的是IBM或X86 PC系列机及其兼容机(多使用Intel和AMD的处理器芯片);以及使用IBM、Apple和Motorola联合研制的PowerPC芯片的机器,如苹果公司的Macintosh;还有DEC公司推出的使用自己的Alpha芯片的机器。工作站是外围设备配套较完整的单机系统或多机系统,机型与个人计算机相同,采用了较为高端的处理器芯片,主要面向单位团体应用。
计算机网络的出现,导致了桌面计算机取代了传统的分时系统。这类计算机市场在目前是最大的,市场需求趋势是提高性价比,其中多媒体和网络应用性能是用户最为关注的。顺便提一下,微型计算机是过时的提法,实际上正确的提法应该是个人计算机或PC。另外,这里所说的“桌面”也并非特指“摆在桌面上”的含义,虽然这一类计算机大部分是摆在桌面上应用的。
2.服务器
计算机网络的发展,特别是WWW(万维网)的普及,服务器(server)在提供大量数据的集中存储、处理和管理方面的作用日趋明显。服务器基本上取代了传统的大、中型机而成为高可靠性、高数据安全性和对企业进行大规模信息处理的中枢。服务器的主要设计目标就是高效的吞吐量,即以每分钟处理的事务数或每秒提供的页面数来衡量。服务器的一个关键特性是可靠性,很难想象一个管理重要网站的服务器系统出现故障会带来怎样的灾难性的损失。另一个是可扩展性,服务需求或功能需求的增长,要求服务器在存储容量、输入/输出(I/O)带宽、处理能力等方面应能进行有效升级。
对服务器分类目前尚无明确的提法,以拥有处理器多少来划分规模是一种方式,例如小型的服务器可能只有一个高性能处理器,中型服务器具有数十个处理器,大型服务器拥有多达数百个处理器。但处理器价格的降低、多核处理器的出现,使得越来越多的服务器采用规模更大的多处理器结构,因而人们对这种以处理器数目作为划分标准的时间有效性提出了质疑。
3.超级计算机
超级计算机(supercomputer)拥有最强的并行计算能力,主要用于科学计算,在气象、军事、能源、航天、探矿等领域承担大规模、高速度的计算任务。在结构上,虽然超级计算机和服务器都可能是多处理器系统,二者并无实质区别;但是现代超级计算机较多采用集群系统,更注重浮点运算的性能,可将其看成是一种专注于科学计算的高性能服务器,而且价格非常昂贵。
4.嵌入式计算机
嵌入式计算机(embedded computer),即嵌入式系统(embedded system),是一种以应用为中心、以微处理器为基础且软、硬件可裁剪的精简计算机系统。它是计算机市场中增长最快的领域,也是种类繁多、形态多种多样的计算机系统。小到日常生活随处可见的智能电器、PDA(手持数据设备),大到某些昂贵的工业和医用控制装置,都有它们的身影。
嵌入式系统的核心部件是嵌入式处理器,分成4 类:嵌入式微控制器(MicroController Unit,MCU;俗称单片机),嵌入式微处理器(MicroProcessor Unit,MPU),嵌入式数字信号处理器(Digital Signal Processor,DSP),以及嵌入式片上系统(System on Chip,SoC)。嵌入式系统对系统的功能、成本、可靠性、实时性、体积、功耗等有严格要求,系统结构和组成按需而定,例如根据用途尽量简化操作系统、最小化存储器、最小化接口和最小化功耗,从而以较低的成本来满足应用的要求。