史海钩沉
谁发明了微处理器
大多数工程师都误以为微处理器是从英特尔4004开始的,但是故事并不是那么简单。
晶体管,这种常见于从口袋收音机到仓库大小的超级计算机的心脏部位的电子放大器和开关,是在1947年发明的。早期的设备都是双极型晶体管类型,至今仍在使用。到了1960年代,工程师们已经搞清楚如何将多个双极型晶体管整合成单个集成电路。但是,由于这些晶体管的复杂结构,一个集成电路只能包含少量的晶体管。因此,尽管由双极型集成电路构建的微型计算机比早期的计算机小很多,但它仍然需要多个板子和百数晶体管。
1960年,展示了一种新型的晶体管:金属氧化物半导体(MOS)晶体管。一开始,这种技术并不那么有前途。这些晶体管比它们的双极对应物慢,不可靠,并且价格更贵。但到1964年,基于MOS晶体管的集成电路在密度和制造成本上都超过了双极竞争对手。集成电路的复杂性不断增加,这是由摩尔定律所描述的,但现在MOS技术走在了前列。
到1960年代末,一个单一的MOS集成电路可以包含100个或更多的逻辑门,每个逻辑门都包含多个晶体管,这使得这种技术特别适合构建计算机。这些带有许多组件的芯片被赋予了LSI(大规模集成电路)的标签。
英特尔的4位4004芯片被广泛认为是世界上第一个微处理器,但它并不是没有竞争对手
工程师们认识到,MOS晶体管的密度增加最终将使整个计算机处理器能够放置在一个单独的芯片上。但是,因为MOS晶体管比双极晶体管慢,所以基于MOS芯片的计算机只有在需要相对较低的性能或者当设备必须小且轻巧--例如用于数据终端、计算机或者航空电子设备的情况下才有意义。因此,引领了微处理器革命的是这些种类的计算应用。
大多数现在的工程师都有着这样的印象,即革命的开始是在1971年,英特尔的4位4004芯片开始,然后逻辑上紧跟着的是该公司的8位8008芯片。事实上,微处理器的诞生的历史更丰富,更出人意料。特别是,一些新发现的文件揭示了一个被长久遗忘的芯片--德州仪器的TMX 1795--如何在成为第一个8位微处理器时击败了英特尔8008,但却沉沦在了遗忘中。
打开第一代微处理器大门的,是应用MOS集成电路的计算。由MOS-LSI芯片创建的第一台计算机,就是1967年Autonetics,一个位于加利福尼亚州安纳海姆的北美航空公司的分公司,创建的D200。
这台小巧的、24位的通用计算机旨在航空和导航。其中央处理单元由24个MOS芯片构建而成,并受益于一种名为四相逻辑的设计技术,这种技术使用了四个独立的时钟信号,每个信号都有不同的开关模式或阶段,以驱动晶体管状态的变化,使得电路的复杂性大幅减少。这台只有几公斤重的计算机被用于引导波塞冬潜射弹道导弹,以及B-1轰炸机的燃料管理。它甚至已被考虑用在航天飞机上。
紧接着D200的是另一台航空计算机,该计算机包含了三个CPU,并总共使用了28个芯片:这是由Garrett AiResearch(现为霍尼韦尔一部分)制造的中央空气数据计算机。该计算机是一种为F-14战斗机设计的飞行控制系统,使用了MP944 MOS-LSI芯片组,Garrett AiResearch在1968至1970年间进行了开发。这台20位的计算机处理来自传感器的信息,并生成了用于仪表和飞机控制的输出。
F-14计算机的架构很不寻常。它有三个并行操作的功能单位:一个用于乘法,一个用于除法,还有一个用于特殊逻辑功能(包括将值夹在上限和下限之间)。每个功能单元都由几种不同的MOS芯片组成,例如只读存储器(ROM)芯片,它包含了决定单元如何操作的数据;数据-转向芯片;各种算术芯片;以及临时存储的RAM芯片。
因为F-14计算机是机密的,所以很少有人知道MP944芯片组。但是,Autonetics广泛宣传了它的D200,这激发了另一台更小巧的基于MOS的计算机:System IV。这台计算机是李·博伊赛尔的智慧结晶,他在1968年离开仙童半导体公司共同创立了Four-Phase Systems,并以Autonetics的四相逻辑为新公司命名。
24位System IV的CPU由至少九个MOS芯片构建:三个被称为AL1的算术逻辑单元(ALU)芯片(执行诸如加减等算术运算以及AND,OR和NOT等逻辑操作),三个ROM芯片,以及三个随机逻辑芯片。
虽然德州仪器的TMX 1795和英特尔的8008有类似数量的晶体管,但前者需要更大的硅芯片。 事实上,TMX 1795比Intel 8008和4004加起来还要大。英特尔的工程师们认为,TI芯片的大尺寸使其无法进行商业批量生产,但TI在大约同一时间推出的非常成功的TMS 0100计算器芯片有一个更大的芯片。因此,芯片尺寸和商业可行性之间的联系一定不是简单的。
TMX 1795, 3078个晶体管
4004 ,2300个晶体管
8008 ,3098个晶体管
几乎同时,一家总部位于马萨诸塞州的初创公司Viatron Computer Systems也加入了游戏。该公司在1967年11月启动后的一年内,宣布推出了它的System 21,一款16位迷你计算机,带有各种附件,全部由定制的MOS芯片构建。
我们可以感谢Viatron的某位员工创造了“微处理器”这个词。 该公司首次在1968年10月宣布一款名为2101的产品时使用了它。但是Viatron的这款微处理器并不是一颗芯片,这个词在Viatron的词汇中,是指一种智能终端的部分,配备有键盘和磁带驱动器,并且与单独的小型计算机连接。Viatron的“微处理器”控制了终端,并由三块独立的板上的18个定制的MOS芯片组成。
在1960年代末的这些活动中,日本的计算器制造商商用计算机公司(即Busicom)与Intel签订了为多芯片计算器定制芯片的合同。最后的产品被简化为一个单芯片的CPU,即现在知名的Intel 4004,以及用于存储和输入/输出(I/O)的伴侣芯片。这款4位的4004(意味着它处理的数据字只有4位)通常被认为是第一款微处理器。
包含4004的计算器首次在1971年初组装起来。那时,它已经有了很多竞争。一个名为Mostek的半导体公司生产了第一款计算器芯片,MK6010。Pico电子和通用仪器也拥有他们的G250计算器芯片。在六个月内,得克萨斯仪器的TMS 1802计算器芯片也开始运营,它是TI非常成功的0100线的第一颗芯片。这些电路作为计算器工作得很好,但除此之外它们无法做任何其他事情,而4004通过执行存储在外部ROM中的指令进行操作,因此它可以作为一台通用计算机使用。
这对电子计算器业务来说是一个发展迅速的时期,Busicom在遇到财务困难后放弃了对4004芯片的独家权利。 1971年11月,Intel开始将其和相关的支援芯片作为一种供一般计算应用的独立产品进行市场营销。然而,几个月之后,4004被更强大的微处理器所超越,所以只找到了几种商业应用。它们包括几种弹球机,一种文字处理器和一种计票系统。
CPU触发器:Datapoint 2200终端的制造商从Intel和Texas Instruments寻求单芯片CPU。TI和英特尔的CPU芯片都没有在Datapoint 2200中使用,但它们引领了一波8位微处理器的浪潮,推动了微型计算机的革命。
所以,可以说,第一款微处理器,Intel的4位4004,是由电子计算器衍生出来的。但是紧随其后的8位微处理器的创世纪跟这是完全不同的。那个故事始于1969年时,一家名为Computer Terminal Corp(CTC)的公司开发了Datapoint 2200的“可编程终端”。
Datapoint 2200其实是一台通用计算机,不仅仅是一个终端。它的8位处理器最初由大约100个双极芯片构成。它的设计者正在寻找使处理器消耗更少的电力和产生更少热量的方法。因此在1970年初,CTC让Intel制造一片单一的MOS芯片来替代Datapoint处理器的板,虽然至今不清楚使用单片芯片的想法是来自Intel还是CTC。
到了1970年6月,Intel已经开发出了基于Datapoint 2200架构的芯片的功能规格,然后将该项目暂停了六个月。这就是将成为Intel 8008的设计了。所以,无论你认为是受计算器启发的4004,还是受终端启发的8008是第一个真正有用的单芯片通用微处理器,你都应该将其创造归功于Intel,对吧?其实并非如此。
你看,在1970年,当Intel开始研发8008的时候,它是一家只有大约100名员工的初创公司。在得知Intel的处理器项目后,得克萨斯仪器或TI(一家巨大的公司,拥有45,000名员工)向CTC问询它是否也可以为Datapoint 2200制造一个处理器。CTC将计算机的规格给了TI的工程师们,并告诉他们继续进行。当他们带着一个由三块芯片复制的设计回来时,CTC指明地问了一句,TI能否如Intel那样将它制作在一块芯片上。于是TI就开始在1970年4月左右为CTC设计一个单一芯片的CPU。这个设计在第二年完成,最早被称为TMX 1795(X代表“实验”),在芯片从原型变成实际产品的时候,名字变成了TMC 1795。
1971年6月,TI为TMC 1795发起了一场媒体宣传活动,描述这款“芯片上的中央处理器”将如何使新的Datapoint 2200成为“拥有初始版本无法提供的功能的强大计算机”。然而,这并未发生:在测试了TMC 1795之后,CTC拒绝了它,选择继续使用半导体芯片的板构建它的处理器。Intel的芯片直到那年年底才会准备就绪。
许多技术历史学家认为,TMC 1795就此消亡了。但是芯片的主要开发者Gary Boone晚期现身的一些文件表明,CTC拒绝后,TI试图将芯片(经过一些小改进后,被称为TMC 1795A)销售给各种公司。福特汽车公司在1971年有意使用这款芯片作为引擎控制器,这使得Boone写到,“我想我们找到了我们的‘CPU-on-a-chip’(芯片上的CPU)绝望需要的大批市场。”不过,这些努力都失败了,TI停止了TMC 1795的营销,转而专注于其更赚钱的计算器芯片。然而,如果你要分配第一款8位微处理器的荣誉的话,你应该把这个荣誉赋予TI,无论它是如何丧失这个机会的。
到1971年年底,Intel使8008运作起来时,CTC已经对单一芯片的CPU失去了兴趣,并放弃了对设计的独家权利。Intel继续开发8008,于1972年4月宣布,并最终生产了数十万个芯片。两年后,8008孵化出了Intel的8080微处理器,这直接影响了8086,进而为Intel现行的x86芯片系列敞开了大门。所以,如果你现在正在使用一台搭载有x86处理器的个人电脑,那你正在使用的是一台根据Datapoint公司1969年发布的2200可编程终端设计原型构建的电脑。
正如此历史所清楚指出的,微处理器的发展路径远非一条直线。很多结果其实是偶然的,也有许多其它可能方向的商业决策。考虑一下CTC为Datapoint 2200设计的8位处理器架构,就有四种明显不同的实现方式。CTC使用填充有双极芯片的板两次做到了这一点,首先是以串行方式传输数据,然后使用并行设计,那要快得多。TI和Intel都满足了CTC的要求,用单一的芯片实现了几乎相同的指令集,但是这两块芯片的封装,控制信号,指令计时和内部电路完全不同。
和TI不一样,Intel使用了更先进的技术,尤其是由多晶硅制成的自对准门,这使得晶体管更快,提高了产量。这种方法还允许晶体管能更密集地布局。因此,4004和8008,即使合在一起,也比TMC 1795小。事实上,Intel的工程师认为TI的芯片过大,不实用,但实际上并非如此:TI非常成功的TMS 0100计算器芯片,不久后就发布了,其造型甚至比TMC 1795还要大。
那么,我们应该归功谁发明了微处理器呢?有人说,微处理器实际上并非一项发明,而只是大家都知道的必然发生的事,只是在等待技术和市场对接。我觉得这种看法最有说服力。
另一种看法是,“微处理器”本质上是一个市场术语,因为Intel,TI和其他芯片公司需要为他们的新产品标记品牌。尽管Boone是TMC 1795的开发者,但他后来归功于Intel对将微处理器转变为一种可行产品的决心。在一份日期未注的信件中,看起来是在谈论谁应该得到微处理器发明的荣誉的法律讨论部分,他写道:“微处理器发展的主要主题是Intel在1972-75年期间做出的企业承诺...他们在设计、软件和市场营销方面的创新使得这个行业成为可能,或至少推动了它的发展。”
创建第一款微处理器的荣誉也取决于你如何定义这个词。有些人把微处理器定义为一款CPU芯片。有人说需要的只是一款芯片上的算术逻辑单元。还有些人会允许这些功能被装进几颗芯片中,这些芯片集合在一起就构成了微处理器。
在我看来,微处理器的关键特性是它在一片单一的芯片上提供了一个CPU(包括算术逻辑单元,控制功能,如程序计数器的寄存器等),并且它是可编程的。但是微处理器并不是一台完整的计算机:通常需要额外的芯片来用于记忆,输入/输出,以及其他辅助功能。
第一个微处理器:通常归功于英特尔4004,一个设计用于计算器的4位芯片。但也有其他可能的第一次,这取决于你的定义。一个是来自Four-Phase Systems的AL 1算术逻辑单元芯片,它早于4004,并在一场关于微处理器早期专利的纠纷中被用来演示一台工作的计算机。
从这个意义上说,大多数人认为Intel 4004是第一款微处理器,因为它把所有的中央处理单元组件都集成在一片芯片上。Boone和Federico Faggin(Intel的4004团队成员)都同意4004比最早的TMX 1795原型提前一两个月。那么,后者就是第一款8位微处理器,而Intel 8008就是第一款商业上成功的8位微处理器。
但是,如果你采用对“微处理器”更宽松的定义,那么许多系统可能被认为是第一款。那些认为一颗有算术逻辑单元的芯片就是微处理器的人,会将1968年在离开以后成立Four-Phase Systems公司前在Fairchild做的第一个芯片的荣誉归给Boysel。Four-Phase Systems的AL1也是一个候选者,因为它在一个单一的芯片上结合了寄存器和算术逻辑单元,控制电路设在外部。如果你允许微处理器由多个大规模集成电路芯片组成,那么Autonetics D200可以被认为是第一款。
专利为微处理器的发明提供了另一个视角。TI很快意识到专利利润满满。它获得了许多关于TMX 1795和TMS 0100的专利,并在诉讼及授权协议中大量使用这些专利。
根据它的专利,可能会认为TI既是微处理器的发明者,又是微控制器的发明者(CPU、内存和各种支持功能被打包在一块芯片上的单个)。或者可能不是。这是因为,基于他1969年用双极芯片制作的16位串口计算机,Gilbert Hyatt在1990年获得了一个单芯片处理器的专利。这导致有人宣称Hyatt是微处理器的发明者,直到1996年TI在一场复杂的法律战斗中打败了Hyatt的专利。
另一位可能值得归功的发明者可能是Boysel。在Gordon Bell嘲讽地称之为“TI对每个人(PDF)”的法律程序中,Boysel在1995年使用一个1969年的单一的AL1算术逻辑单元芯片,向法庭演示了一台运作的计算机,以对抗TI的单一处理器专利。他的举动有效地击败了TI的案件,尽管我并不认为他的示范有说服力,因为他用了一些技术的小伎俩来完成。
不论你认为哪个系统是第一款微处理器,你都必须承认,竞争这个标题的候选者绝对不少。真是遗憾,大部分人寻求在这场比赛中只承认一位赢家,许多令人着迷的亚军现在几乎完全被遗忘了。但对于我们这些对微计算的早期发展感兴趣的人来说,这段丰富的历史会永远活在心中。
本文译自 IEEE Spectrum,由 超载鸡 编辑发布。