微处理器

  微处理器(micro processor,缩写为μP或uP),是可编程化特殊集成电路。用作处理通用数据时,叫作中央处理器(Central Processing Unit, CPU);专于作图像数据处理的,叫作Graphics Processing Unit图形处理器(如Nvidia GeForce 6150 GPU);用于音频数据处理的,叫作Audio Processing Unit音频处理单元(如Creative emu10k1 APU),等等。从物理性来说,它就是一块集成了数量庞大的微型晶体管与其他电子组件的半导体集成电路(Integrated Circuit, IC)芯片。之所以会称为微处理器,并不只是因为它比迷你计算机(mini computer)所用的处理器还要小而已。最主要的原因,还是因为当初各大芯片厂之制程,已经进入了 1 微米的阶段,用 1 微米的制程,所产制出来的处理器芯片,厂商就会在产品名称上用“微”字,强调他们很高科技。就如同现在的许多商业广告一样,很喜欢用“纳米”字眼。  早在微处理器问世之前,电子计算机的中央处理单元就经历了从真空管到晶体管以及再后来的离散式TTL集成电路等几个重要阶段。甚至在电子计算机以前,还出现过以齿轮、轮轴和杠杆为基础的机械结构计算机。文艺复兴时期的著名画家兼科学家列奥纳多·达·芬奇就曾做过类似的设计,但那个时代落后的制造技术根本没有能力将这个设计付诸实现。微处理器的发明使得复杂的电路群得以制成单一的电子组件。  从1970年代早期开始,微处理器性能的提升就基本上遵循着IT界著名的摩尔定律。这意味着在过去的30多年里每18个月,CPU的计算能力就会翻番。大到巨型机,小到笔记型电脑,持续高速发展的微处理器取代了诸多其他计算形式而成为各个类别各个领域所有计算机系统的计算动力之源。

发展概况

   微处理器的发展大致分为四个阶段。第一阶段(1971~1973年)的代表性机种是美国 Intel公司制成的4004、4040和8008。这一阶段微处理器的主要特点是采用P沟道金属-氧化物-半导体集成电路(PMOS电路),速度较慢,指令系统也不太完整,主要用于控制和简单仪表。第二阶段(1974~1977年)微处理器设计日趋成熟,代表性的机种是Intel公司8080和8085、美国Motorola公司的Mc 6800和Zilog公司的 Z80。这一阶段微处理器采用了N沟道金属-氧化物-半导体集成电路(NMOS电路),处理数据宽度为8位,指令系统比较完整,功能较强,用其构成的微型计算机可以配备较多的外围设备,并有较成熟的系统软件。第三阶段(1978~1980年)微处理器向16位数据宽度发展,其代表性的机种是Intel 8086、Motorola Mc68000和ZilogZ8000。这一阶段微处理器采用了短沟道高性能的NMOS电路,16位微处理器构成的微计算机采用了传统的小型机以至大型机的系统结构的设计思想,所以功能很强,存储容量在 1兆字节以上,还可配备大容量的二级存储器;操作系统功能也很强;一般还考虑了多机系统工作环境。这一期间微处理器的研制更加注意系列化,用它构成的微计算机的软件能向上兼容,软件研究工作的比重也显著增加。第四阶段是从1981年开始的。这一时期内,16位微处理器结构更加完善,32位数据处理宽度的微处理器也已研制成功。这些微处理器构成的微型机的系统结构、系统软件和外围设备的配置日益接近超级小型机。

·最早的芯片

  正如近现代其他科技的发展一样,微处理器时代仿佛一夜之间就到来了。三个公司,三个计划,几乎不约而同地成为微处理器产业的先锋。它们就是英特尔的Intel 4004,德州仪器公司的TMS 1000和盖瑞特艾雷赛奇(Garrett AiResearch)工业部的CADC(Central Air Data Computer)。  1968年盖瑞特被邀请参加研制一种数字计算机,以同正在开发中的用于美国海军F-14雄猫战斗机的主飞行控制电脑的电机系统竞争。这个以基于MOS技术的芯片组为内核的CPU于1970年设计完成,并以更小的体积和更高的可靠性打败了基于电机系统的设计,被运用于早期的所有雄猫战斗机。但今天看来,知道CADC和MP944芯片组的人并不多,主要原因在于美国海军认为这种技术太过先进而不允许将其设计细节公开,这种情况一直持续到1997年。  德州仪器公司开发出以预编程嵌入式应用(pre-programmed embedded applications)为主打技术的4位微处理器TMS 1000,并于1971年9月17日推出代号为TMS1802NC的市场版本,用于生产单芯片计算器。英特尔的4004计划则由弗得里克·法金(Federico Faggin)主持开发,并于1971年11月15日发布。

分类

   微处理器的分类有多种方式。按照生产工艺划分,微处理器除上述MOS电路工艺以外,还有双极型电路工艺。MOS电路微处理器的特点是集成度较高,功耗较小;而双极型微处理器的特点是速度快,一般是位片式结构(见位片式微处理器),即把运算器和控制器按一位或四位构成一片电路,可用多个位片组成不同字长的完整的微处理器。按照片数划分,微处理器可分为单片式和多片式两类。按功能划分,微处理器可分为主处理器、协处理器和从处理器。协处理器用以扩大主处理器的浮点运算功能,如浮点运算处理器;从处理器完成主处理器控制下的整个系统中的一部分功能,如输入输出处理器。但是,微处理器最常用的分类方法,还是按处理数据宽度进行划分,即分为1位、4位、8位、 16位和32位微处理器。

·8位

  紧随4位的4004之后,英特尔设计出世界上第一片8位微处理器,Intel 8008。此后,在市场运作中非常成功的Intel 8080和Zilog公司的Z80以及一系列其他8位微处理器又相继推出。原先在摩托罗拉公司设计Motorola 6800的一群人离开公司,另组建了MOS Technology公司并在6800的技术基础上推出改良产品6502,借此与Z80在20世纪80年代的微处理器市场上分庭抗礼。  Z80和6502芯片的设计目标都是要减少整个系统的成本,为此开发者使用了缩小规模,简化总线,合并专用芯片(比如Z80就包含了一个内存控制器等方法。这些措施导致了1980年代早期家用电脑的“革命”:消费者用99美元的价格就能买到一台半可用的电脑了。  摩托罗拉推出了MC6809,成为8位处理器市场的领头羊。有人认为这是有史以来功能最强大的纯8位处理器-也是所有投产的硬布线处理器中最复杂的。比MC6809更先进的处理器后来都用了微代码技术。这是因为硬布线逻辑无法满足越来越复杂的设计,逐步被淘汰了。  另一种早期的8位处理器是Signetics 2650。由于其指令集架构新颖而功能强大,这种芯片风靡一时。  RCA公司生产的CDP1802,即RCA COSMAC,是应用于航天的处理器的先锋。1970年代,NASA的旅行者号和海盗号空间探测器都使用了这种芯片。1989年发射的木星探测器伽利略号也装配了这种处理器。选用CDP1802,一是因为它可以在很低的功耗下运行*;二是因为它采的工艺可以更好地抗宇宙射线和电脉冲。因此1802也被认为是第一块抗辐射微处理器。

·16位

  第一款多片16位微处理器是美国国家半导体公司(National Semiconductor)于1973年初期推出的IMP-16,8位的IMP-8芯片组又于1974年推出。1975年该公司推出了第一款单片16位微处理器,PACE,其基于NMOS技术的新版本,INS8900不久就替代了它。  其他早期的多片16位微处理器包括DEC用于PDP11小型机系列中LSI-11和PDP-11/30上的主板,还有仙童公司的MicroFlame 9440,这两款都是在1975年到1976年推出的。  另外德州仪器出的TMS 9900也是早期的单片16位处理器,同TI 990兼容。9900用在了TI 990/4 小型机,TI-99/4A家用电脑和TM990系列OEM品牌微机上。这块芯片封装成在一块陶瓷64脚双内线(DIP)芯片,而当时大多数8位微处理器都用更便宜的40脚DIP。 后续产品TMS 9980针对英特尔的8080推出,全兼容TI 990的16位指令集,一次传输8位数据,设计成塑料40脚DIP,但是只能寻址16KB。TMS 9995是这个系列的第三块芯片,使用了全新的设计。此系列产品后来扩展到了99105和99110。  英特尔走了一条不同的路,由于没有小型机可以模拟,他们采取扩充8080的办法设计出了16位的8086,这是后来几乎统治PC芯片的x86家族的第一个成员。英特尔推出的8086使得8080上的软件可以很经济的移植重用,商业上获得的成功超出预期。接着英特尔又发布80186, 80286, 还有1985年推出的32位80386,这些处理器都是向前兼容的,造就了英特尔PC市场的霸主地位。  集成内存管理器的微处理器是英特尔公司的柴尔茨等开发的,获得美国专利号4442484。

·32位

  16位的设计刚刚进入市场,32位的微处理器就出现了。  世界上第一块单片32位微处理器是AT&T贝尔实验室的BELLMAC-32A,样本于1980年,1982年正式投产。1984年AT&T解体后更名为WE32000(WE代表西部电子),后来又推出了后续产品WE32100和WE32200。这些芯片用在了AT&T的3B5及3B14小型计算机、世界上第一台超级台式微机3B2,还有世界上第一台笔记本式超级微机“亚历山大”上(这种系统使用类似于现在游戏机上用的ROM插件)。所有这些系统都运行贝尔实验室的UNIX操作系统,包括叫做xt-layers的第一个窗口系统。  最著名的32位微处理器是摩托罗拉于1979年推出的MC68000。这片被称为68K的芯片具有32位的寄存器,但是内部和外部数据总线都是16位的,这样可以减少芯片的脚数。摩托罗拉将其描述为16位处理器,但是显然这是块有32位结构的芯片。由于速度快、内存寻址空间大(16兆)价格低廉,MC68000很快成为此类CPU中最流行的型号。1980年代中期,很多公司都用它来装配机器,其中包括Atari ST 和 Commodore Amiga,最为知名的大概算苹果公司的Apple Lisa和Macintosh了。  英特尔的第一款32位微处理器是iAPX 432,于1981年推出,但市场上并未获得成功。此产品有先进的面向对象架构,但同其它同类产品,特别是68000比,性能较差。  68000的成功让摩托罗拉继续推出MC68010,这块芯片加入了对虚拟内存的支持。1985年又推出了MC68020,增加了完全的32位数据和地址总线。68020在Unix超级微机市场上获得巨大成功,许多小公司也用它生产桌面系统。MC68030芯片内集成了内存管理器,几乎成为除DOS外所有机器的标准处理器。MC68040合成了浮点运算器,数学运算性能得到提高。68050未能达到设计要求,没有发行。后继的68060采用了更快的RISC设计。1990年代早期,68K开始淡出桌面系统的市场。  其他大公司用68020设计嵌入式系统。曾几何时,运行在嵌入式系统上的68020芯片比运行在PC机上的英特尔奔腾芯片都多。(见此网页。摩托罗拉的"冷火"处理器也是68020的一种变种。  在此期间(1980年早期到中期),国家半导体推出了一种非常类似的16位外部数据线,32位内部总线的微处理器,称为NS 16032(后改名为32016)。全32位版本称作32032,以及一系列工业用OEM微机。待到1980年代中期,Sequent使用NS 32032推出了第一款对称多处理器服务器。这款服务器少有对手,但1980年代晚期就消失了。  其他较值得注意的芯片包括Zilog的Z 8000,但是推出太迟,未能在市场上立足即消声匿迹了。  一些芯片在20世纪80年代晚期上演的微处理器大战中开始淡出,甚至逐渐退出市场。结果仅有一种出色产品的Sequent NS 32032系统逐步消失,Sequent也改用英特尔的微处理器。

内部结构和功能

   16位微处理器(图中为8086微处理器)可分成两个部分,一部分是执行部件(EU),即执行指令的部分;另一部分是总线接口部件(BIU),与8086总线联系,执行从存储器取指令的操作。微处理器分成EU和BIU后,可使取指令和执行指令的操作重叠进行。EU部分有一个寄存器堆,由8个16位的寄存器组成,可用以存放数据、变址和堆栈指针、算术运算逻辑单元 (ALU)执行算术运算和逻辑操作,标志寄存器寄存这些操作结果的条件。执行部件中的这些部件是通过数据总线传送数据的。总线接口部件也有一个寄存器堆,其中CS、DS、SS和ES是存储空间分段的分段寄存器。IP是指令指针。内部通信寄存器也是暂时存放数据的寄存器。指令队列是把预先取来的指令流存放起来。总线接口部件还有一个地址加法器,把分段寄存器值和偏置值相加,取得20位的物理地址。数据和地址通过总线控制逻辑与外面的8086系统总线相联系。        

RISC技术

  1980年代中期到1990年代早期,一类新型高性能RISC(精简指令集计算机)崭露头角,这些芯片最初用于专用机器和unix工作站,但很快就在各领域流行起来了。当然,不包括英特尔的个人计算机。  最早的商业产品是MIPS发布的32位R2000微处理器(R1000没有正式发布)。后续产品R3000是真正实用的型号,R4000则是世界上第一个64位RISC芯片。同类产品还有IBM的Power系列和Sun的SPARC系列。很快所有的厂商都开始生产RISC,包括AT&T的CRISP,AMD 29000,英特尔的i860及i960,摩托罗拉88000,DEC Alpha和HP的PA。  激烈的市场竞争淘汰了很多系列,现在POWER和派生的PowerPC系列成了个人电脑RISC芯片的主流。只有Sun还在使用SPARC架构。MIPS继续为SGI系统提供支持,但主要用于嵌入式系统,特别是思科的路由器。其他的系统要么已经绝迹,要么也奄奄一息。其他公司也曾经试图分一杯羹,如ARM公司原打算进军家用电脑市场,但后来还是专注于嵌入式处理器了。现今基于RISC的计算设备由MIPS,ARM和PowerPC占据了市场的主流。  当然在IBM兼容机领域内,英特尔,AMD以及台湾的VIA都生产x86兼容的微处理器。到2004年底,DEC和AMD合作的ALPHA,AMD 64,以及HP和英特尔合作的安腾是最流行的型号。