第一章 火种 有功之臣
微处理器使电子技术进入了一个新时代。它改变了我们社会的结构。
——引自1981年罗纳特·诺伊斯与小马希安·霍夫著的《英特尔公司微处理器发展的历史》
1969年初,硅谷半导体制造商英特尔开发公司接到日本计算器公司Busicom的一份委托书,要求为它的计算器生产线制造芯片。英特尔公司完全具备这样的资格,因为它是仙童半导体公司派生出来的一家公司,它的总裁罗伯特·诺伊斯曾经为集成电路的发明立下过汗马功劳。虽然英特尔公司开业只有几个月,然而公司的发展步伐与整个半导体工业的发展一样迅速。
马希安·“特德”·霍夫是几个月前刚刚加入英特尔公司的一名工程师,他是公司的第12名员工,不过当他开始参与为日本Busicom公司开发计算器芯片时,公司已经发展到200名员工的规模。霍夫刚刚大学毕业,他取得博士学位后,继续担任斯坦福大学电气工程系的研究员,从事半导体内存芯片的设计工作,并因此而获得若干项专利,又进入了英特尔公司。当时英特尔公司总裁诺伊斯认为,公司应该全力以赴生产半导体内存芯片,不搞别的产品,他聘用霍夫的目的是让他为这些内存芯片的应用制订一个规划。不过,当Busicom公司提出要英特尔生产计算器芯片时,诺伊斯考虑,公司在接受Busicom公司的生产任务的同时,也要发展其内存芯片的业务,以便做到一箭双雕。
霍夫受公司委派与日本工程师洽谈,了解Busicom公司的意图,由于按计划霍夫于当晚飞抵大洋洲塔希提岛,因此与日本工程师的第一次会见很简短。这次行程使他有时间充分思考为日本公司生产计算器芯片的问题,以便提出真知灼见。使他感到特别恼火的是,Busicom公司的计算器成本几乎与一台小型计算机不相上下。当时小型计算机的价格已经不算十分昂贵了,美国的许多科研实验室都准备购买小型计算机。在大学的心理学系或物理系中,这种设备已经并不鲜见。霍夫曾经参与数字设备公司的新型PDP-8计算机的研制,这是该系列中体积最小和价格最便宜的一种计算机,他发现这种计算机的内部结构非常简单。他知道,PDP-8能够执行Busicom公司准备制造的计算器要执行的所有功能,而且功能还要强大,然而价格却几乎一样。霍夫认为,制造这种计算器完全是违背常识的做法。
霍夫向英特尔公司的老板提出一个问题,即人们为什么花一台计算机的钱,去买一个功能只有计算机几分之一的计算器。这个问题表明他书生气十足和对市场营销的无知,他宁肯要计算机,而不要计算器,因此他认为其他人一定也是这样想的。市场营销人员耐心向他解释说这是个包装问题。如果有人只想进行数学计算,他们就不想启动计算机去运行计算器的程序。此外,大多数人,甚至包括科学家,也对计算机的使用抱着胆怯心理。计算器从启动之时起,就只起一台计算器的作用,而计算机则属于功能很难界定的设备。霍夫慢慢开窍了,不过他花了很长时间才弄明白,在通用设备同样容易制造而且价格也不贵的情况下,为什么还要生产专用设备。此外,他认为通用性质的设计会使产品的开发更有意思。他向日本工程师建议,采用大致以PDP-8为基础的改进型设计方案。
这个设计方案与PDP-8计算机相比存在着很大的差异。霍夫建议采用一组芯片,而不是一台完整的计算机。这些芯片中,有一个芯片非常关键。首先这个芯片的密度很高。当时的芯片包含的功能器件不到1000个,相当于1000个晶体管,但是霍夫建议的这个芯片所包含的功能器件数目至少翻一番。此外,该芯片像任何集成电路一样,能够接收输入信号,并产生输出信号。虽然这些信息可以代表简单数学运算芯片中的数字和逻辑运算芯片中的逻辑值(真或假),但是输入霍夫的芯片的信息以及从该芯片输出的信息将形成一组供集成电路使用的指令。
总之,这种芯片能够执行程序。日本客户需要的是计算机芯片,而霍夫设计的却是个集成电路EDVAC计算机,它是在单个硅片上的真正的通用计算机器件,即在一个芯片上运行的计算机。虽然霍夫的芯片设计方案类似一台非常简单的计算机,但是它不包括某些重要的计算机部件,如内存和用于人工输入和输出的外部设备。这种器件的专用术语称为微处理器,由于它能够在程序控制下运行,因此微处理器属于特殊的通用器件。
鉴于英特尔公司的微处理器采用了存储程序的概念,因此计算器制造商能够使微处理器按照他们想要的任何种类的计算器那样来运行。这就是霍夫的想法。他相信这是能够做到的,并且这是解决问题的正确方法。然而日本工程师对霍夫的想法不以为然,这使霍夫灰心丧气,于是他请示公司总裁诺伊斯怎么办,诺伊斯鼓励他按自己的思路干下去。当芯片设计师斯坦·梅宙退出仙童公司,进入英特尔时,霍夫与梅宙便着手设计该芯片。当时他们实际上尚未制造出集成电路,半导体设计专家必须将设计方案变成二维蓝图,再将蓝图蚀刻到硅晶片中。芯片开发的这些后续步骤需要投入资金,因此英特尔公司决定先与日本客户谈妥后再从芯片的逻辑设计阶段进入实际生产阶段。1969年10月,心存疑虑的Busicom公司代表前来与英特尔公司洽谈具体开发计划。日本工程师提出了他们的技术要求,霍夫则展示了他们的设计方案。尽管技术要求与设计方案之间并不完全吻合,但是经过几次洽谈,Busicom公司决定接受英特尔公司的芯片设计方案。双方洽谈的结果使Busicom公司独家获得了该芯片的合同,而对于英特尔公司来说,这次洽谈却并不是最为有利,不过至少他们都准备实施这项芯片开发计划。
芯片开发计划上马后,霍夫终于松了一口气。他们将该芯片称为4004,它表示单个芯片能够取代的晶体管的大概数目,同时又说明了它的复杂程度。
曾经考虑用一个芯片来制造一台计算机的决非霍夫一人,不过霍夫是实施这一开发计划的第一个人。在开发过程中,他与梅宙攻克了一系列设计难题,进一步完善了微处理器的理论思路。不过计划与具体实施之间还有很大的距离。
英特尔公司芯片设计业务部负责人莱斯利·瓦达兹知道费德里克·费金最适合将设计方案付诸实现。费金是一位卓越的芯片设计师,早在仙童公司期间,他就为瓦达兹工作过,并在早期为意大利的好利获得(Olivetti)公司设计过一种计算机。但是,当时费金尚未加入英特尔公司,更为糟糕的是,他不能为英特尔工作,至少不能立即为英特尔工作,因为根据美国的工作签证,他不能随意改换工作而仍然保留他的签证。至少要等到次年春季,他才能进入英特尔公司从事芯片设计。
1970年4月费金进入英特尔公司后,立即被指定负责4004芯片的设计工作。日本工程师正田志摩即将前来考察和审定最后的设计方案,而费金则着手将设计方案变为硅芯片。
可惜,设计方案还远远没有完成。霍夫与梅宙完成了该芯片的指令集的设计和总体设计,但是必要的具体设计方案尚未出笼。志摩立即明白,这个设计方案不过是一套设计思路。他对费金大声吼叫说,“这只不过是个设计思路!根本不是设计方案。我来这儿来是要审定方案,可是根本没有方案可审!”
费金说他是刚刚接手这项设计工作,准备先完成设计方案,然后再将方案付诸实施。在梅宙和志摩的协议下,他以极短的时间完成了他的工作,每天工作长达12~16个小时。由于他的工作是前人都没有做过的,因此他必须创造新的技术,才能完成他的工作。
1971年2月,费金终于大功告成,向Busicom公司提交了他的工作成果,包括4004微处理器和计算器运行所需的另外8种芯片。这是个重大的技术突破,而且它的价值远远超出了实际交付的芯片本身所具备的意义。
另一方面,这个新型微处理器只不过是半导体制造商多年来一直在制造的用于数学运算和逻辑运算的集成电路芯片的一种延伸。这种微处理器只是将更多的功能塞进一个芯片之中。同样,由于该微处理器能够执行的功能太多,而且它们集成密度太大,因此,若要使用该设备,用户必须学会一种新语言,尽管这种语言比较简单。4004的指令集构成了一种编程语言。
今天的微处理器比1950年时构成计算机的满屋子电路系统更加复杂,功能更强大。1969年霍夫设计的4004芯片是实现霍夫、诺伊斯和英特尔公司的管理部门预期目标的第一步。两年后英特尔公司生产的8008芯片则是第二步。8008微处理器是为当时的计算机终端设备公司(CTC)开发的(该公司后来又改名为数据点公司)。计算机终端设备公司拥有一种技术先进的计算机终端,希望采用某种芯片为它提供更多的功能。
这时,霍夫描绘了一幅如何使用现有产品的更加灿烂的前景。他建议采用单个芯片作为控制电路,以便用单个集成电路取代它的所有内部电子元件。霍夫和费金对8008芯片开发计划很感兴趣,部分原因是英特尔与Busicom签订的4004芯片独家合同束缚住了芯片的推广应用。当时从事电子测试设备实验室工作的费金发现,4004是用于控制测试设备的理想工具,但是与Busicom公司签订的合同不允许4004芯片用于这一目的。
由于Busicom公司拥有4004芯片的独家使用权,霍夫认为新的8008终端设备芯片应该推向市场,并用于测试设备。4004有它的不足之处,它每次只能处理4个二进制数字,这大大制约了它的计算能力,因为它每次运算时处理的数据还不到一个字符。而新型8008芯片则每次能够处理一个字符。8008原先由另一位工程师负责开发,不久费金受命接替该工程师的工作。1977年3月,英特尔正式开始生产8008芯片。
但是,在8008投入生产前,计算机终端设备公司的官员却对该产品失去了兴趣。这时英特尔公司发现,它投入大量时间和力量开发的4004和8008这两个非常复杂而昂贵的产品,并没有很大规模的市场。随着计算器经营领域竞争的激化,Busicom公司要求英特尔降低4004芯片的价格,否则它将中断履行合同。霍夫向诺伊斯建议说:“让我们将这些芯片卖给别的公司吧。”诺伊斯同意了这个建议。不过英特尔公司以后再也没有采取这种做法。
对于将专用芯片销售给一般工程设计公司的做法,英特尔公司的营销部并不热心。英特尔公司的建立,其宗旨是生产内存芯片,它的使用非常方便,并且像剃须刀片一样便于批量销售。对于微处理器来说,客户必须学习如何使用它们,因此需要给年轻的公司提供大量的客户支持。霍夫则不同意这种观点,他提出了人们尚未考虑到的新的微处理器应用领域。例如,电梯控制器可以用一个芯片制造而成。此外,他还指出,新型微处理器可以节省费用开支,它可以取代许多比较简单的芯片,就像他在设计8008时所做的那样。工程技术人员将设法把微处理器纳入他们的产品之中。霍夫知道他自己能够做到这一点。
霍夫的执着终于得到了回报。英特尔公司聘请广告人雷吉斯·麦肯纳在1971年秋季号的《电子新闻》期刊上为该产品做广告。广告词是“芯片上的微型程控计算机开创了集成电子设备的新时代”。难道一个芯片上能够放下一台计算机吗?从技术上讲,这种说法有些夸大其辞,但是这年秋季的电子设备博览会参观者阅读4004的产品说明书时,这种芯片的程控能力给他们留下了深刻的印象。从某种意义上讲,麦肯纳的广告词毫无不实之处,4004和8008中纳入了计算机的重要判定功能。
与此同时,德州仪器公司与计算机终端设备公司签订了合同,并且也推出了一种微处理器。(德州仪器公司与英特尔公司一样雄心勃勃地窥视着微处理器市场。该公司的加里·布恩刚刚申请了一项称为单芯片计算机的专利技术。)这时出现了三种不同的微处理器。英特尔公司的营销部正确地预见到了微处理器需要较大的客户支持工作量。例如,用户需要关于芯片执行的各种操作、它们能够识别的语言、它们使用的电压、它们产生的热量以及其他许多方面的资料。必须有人负责编写关于各种信息的手册,在英特尔公司中,这项工作交给一位名叫亚当·奥斯本的工程师负责,后来他在使计算机成为个人计算机的工作中起到了非常特殊的作用。
微处理器软件构成了另一类重要的客户支持内容。通用计算机或通用处理器的缺点是,离开程序它将一事无成。作为通用处理器的芯片也离不开程序,它要由指令来告诉它执行什么操作。为了编写这些程序,英特尔公司首先用它的两种微处理器芯片中的每一种组装一台完整的计算机。这些计算机并不是上市销售的产品,而是用于开发的系统,是帮助编写处理器程序用的工具。它们也称为微型计算机,不过当时没有人使用这个术语。
最早开始编写这些程序的人之一是加里·基尔多尔,他是离硅谷不远的美国海军研究生学院的一名教授。与奥斯本一样,基尔多尔是个人计算机开发过程中的一位重要人物。1972年底,奥斯本已经为4004编写了一种简单的语言,它基本上是个程序,用于将秘语命令转换成0和1,从而形成微处理器的内部指令集。虽然该程序是为4004编写的,不过它实际上是在IBM360大型计算机上运行的。如果4004与IBM计算机相连接的话,运用该程序,用户可以通过IBM键盘键入命令,并产生一个4004指令文件,再发送给4004。将4004与任何设备连接起来是件很不容易的事情。微处理器必须插入一个专门设计的电路板,该电路板则与其他芯片和打字机之类的设备相连接。英特尔公司的开发系统正是为解决这个问题而建立的。于是,基尔多尔被调到英特尔公司安装有开发系统的微机实验室。
最后,基尔多尔与英特尔公司签订了合同,为该公司开发一种实用语言。微型计算机编程语言(PL/M)属于所谓的高级语言,而低级语言则是由微处理器的指令集构成的语言。借助PL/M语言,程序员只需编写程序一次,就可以使它在4004处理器、8008或英特尔将来生产的处理器上运行。这就加快了编程界的编程进程。
但是语言的编写决非轻而易举的事情。如果要懂得这项工作的复杂性,我们必须了解计算机语言究竟是如何工作的。计算机语言是计算机能够识别的一组命令。计算机只能对纳入电路或安装在芯片中的这组固定命令做出响应。要使一种语言能够运行,必须编写一个程序,将用户能够理解的各种命令转换成机器能够使用的命令。
微处理器不仅体积很小,而且它能够进行的逻辑操作也有限。它们具备的智能量很少,因此很难编程。要为微处理器设计语言谈何容易,更不要说设计PL/M这样的高级语言。基尔多尔的一位朋友兼同事后来在介绍他所做的选择时说,加里·基尔多尔之所以编写PL/M语言,主要是因为这是一项极其艰巨的任务。与他以前和以后的许多著名的编程人员一样,基尔多尔参与这项工作主要是为了接受智力上的挑战。不过当时他开发的最重要的软件在结构上要简单得多。
英特尔公司早期生产的微型计算机使用纸带来存储信息,因此程序必须使计算机能够自动控制纸带阅读机或低带穿孔机的运行,用电子方式接收来自磁带的数据信息,将数据存入内存并从内存中查找所需的数据,并将数据送往纸带穿孔机。计算机还必须能够对内存中的数据进行操作,并跟踪哪些区域可用于存储数据,哪些区域已被占用。大多数编程人员不想在每次编写程序时考虑这些具体的细节问题。大型计算机可以通过使用称为操作系统的程序自动执行这些任务。对于使用大型计算机语言编程的程序员来说,他们已经具备操作系统,它是计算机运行手段的组成部分,也是计算环境中不可分割的特性。然而基尔多尔开发的是个比较原始的系统。在英特尔公司中,他编写了一个非常简单的操作系统的几个部分,它们必须在微处理器上运行。后来,这个操作系统又演变成基尔多尔所谓的CP/M(控制程序/监视器)操作系统。基尔多尔向英特尔公司的官员提出,是否可以让他自己去推销CP/M操作系统,他们只是向他耸了耸肩说,请便吧!他们不打算由公司来销售这种操作系统。结果CP/M使基尔多尔发了一笔大财。
通过制造微处理器,英特尔公司将它的经营业务扩大到了仅仅制造内存芯片的范围之外。虽然公司不想放弃微处理器的经营领域,但是有人坚决反对进一步扩大微处理器的经营规模。确实有人谈论过用微处理器设计计算机的问题,基至将微处理器用做小型计算机的主要组件,但是,微处理器控制的计算机的销售前景似乎并不十分看好。
当时公司总裁诺伊斯认为,微处理器的主要市场是用于制造手表。英特尔公司的高层官员讨论过其他可能的应用领域,比如微处理器控制的电饭锅、立体声音响和汽车等嵌入式系统。可是制造电饭锅、立体声音响和汽车要靠英特尔公司的客户,英特尔公司只销售芯片。英特尔公司有一条硬性规定,那就是反对制造被视为与它的客户相竞争的产品。
1972年,英特尔公司是个令人激动的工作场所。它的官员认为,英特尔公司处于微处理器工业高速发展的中心。基尔多尔和英特尔公司的内存芯片营销部经理迈克·马库拉以及其他一些人显然认为,具有创新精神的微处理器设计人员应该在半导体公司中工作。他们决定继续从事硅片逻辑功能提高的工作,而将计算机的制造和编程交给大型机和小型计算机公司去做。然而小型计算机公司却并没有着手进行这方面的开发,于是马库拉、基尔多尔和奥斯本决定放弃芯片的经营。在后来的10年中,他们每个人都创办了自己的规模庞大的个人计算机公司或个人计算机软件公司。