查看原文
其他

一篇读罢头飞雪:计算机发展时间线(中)| 跟陶叔学编程

风云之声 2021-01-27

The following article is from 跟陶叔学编程 Author 跟陶叔学编程

      


关注风云之声

提升思维层次


导读


书接上回:一篇读罢头飞雪:计算机发展时间线(上)| 跟陶叔学编程。欢迎来到20世纪,这是一个悲伤的世纪,发生了两场世界大战。这又是一个充满激情与创意的世纪,我们熟悉的各种科学理论与科技产品纷纷出现,二进制运算、量子力学、电子管、晶体管……奇思妙想不断闪耀光芒。这还是一个英雄辈出的时代,范内瓦、图灵、香农、冯·诺依曼……正排着队向我们走来。这更是一个技术门派不断兴替的江湖,机械派、机电派、电子派……你方唱罢我登台。江湖为什么精彩?因为江湖中有英雄,有起伏跌宕的人生,有数不尽的传说!


注:风云之声内容可以通过语音播放啦!读者们可下载讯飞有声APP,听公众号,查找“风云之声”,即可在线收听~



  因本文篇幅较长,所以我试着编了回目:

第一回 马可尼跨洋发报,电子管上台鞠躬

第二回 范内瓦模拟计算,图灵机开辟宗门

第三回 Model K二制运算,香农爷理论奠基

第四回 师徒首用电子管,维纳提出五原则

第五回 祖思机命运多舛,少年郎春风得意

第六回 诺依曼指明道路,范内瓦畅想未来

第七回 ENIAC精彩亮相,晶体管雏凤新声

第八回 两书生商场饮恨,直拉法晶圆现世

第九回 学科祖魂归天界,双子星降临人间


第一回 马可尼跨洋发报,电子管上台鞠躬

20世纪

  1900年,奥德纳算术仪的销量超过了托马斯算术仪。至奥德纳的工厂于1918年关闭,30年不到的时间里它生产了约23000台机器。

  1901年,意大利发明家伽利尔摩·马可尼(Guglielmo Marconi,1874年4月25日—1937年7月20日)发射的无线电信息成功地穿越大西洋,从英格兰传到加拿大的纽芬兰省。

1901年,马可尼演示无线电设备

  这次表演是无线电从实验室走向商业化的标志性事件,也是马可尼为自己的无线电公司打的一个非常成功的广告。从此,他的“马可尼无线电报公司”一鸣惊人,赚得盆满钵满。但是马可尼此时接收无线电使用的检波器是十分落后的“金属屑”检波器(检波是调幅的逆过程,其频谱搬移与调幅相反,即把调幅波的频谱由高频不失真地搬到低频),性能很差亟需改进。

金属屑检波器

  1904年,英国物理学家约翰·安布罗斯·弗莱明(John Ambrose Fleming,1864年11月29日—1945年4月18日)利用爱迪生效应发明了电子管(或真空管),结构和爱迪生的灯泡类似,因为有两个电极(涌出电子的灯丝为阴极,接收电子的金属片为阳极)而被称为电子二极管(或真空二极管)。当阴极与电源负极相连、阳极与电源正极相连时,二极管导通,表现为没有电阻的导线;反之,二极管不通,表现为一个没有合上的开关。由于这样单向导通的特性,电子二极管主要用作交流电整流器(把交流电转换成直流电的装置)和无线电检波器。

弗莱明及其电子二极管

  1905年,据当时统计销轮计算器的历史总产量已有数百万台,并持续增长到70年代电子计算器普及为止。

  1906年,美国发明家李·德福雷斯特(Lee de Forest,1873年—1961年)在二极管的灯丝和金属片阴阳两极之间增加一个电极——一根波浪形的金属丝(后来金属丝被改成金属网),称为栅极(Grid),加上原来的阴极、阳极,真空玻璃管内就有了三极。就这样他发明了电子三极管。

德福雷斯特及其三极管

德弗雷斯特惊讶地发现,波浪形金属丝装入真空管内之后,只要把一个微弱的变化电压加在它之上,就能在阳极接收到更大的变化电流,而且变化频率完全一致——德弗雷斯特发现的正是三极管的“放大”作用。但是当时的人们并没有马上认识到三极管具有的重大意义,把它当作一个“毫无价值的玻璃管”。为了证明自己的发明有用,德弗雷斯特坚持不懈地设计着各种试验。

  同年,霍尔瑞斯给制表机添加了接插线板(plugboard)——一块布满导电孔的板卡,可通过改变导线插脚在板上的位置改变线路逻辑。这是因为原来的制表机线路是固定的,遇到新的统计任务,改造起来十分麻烦。而接插线板的内部已经布好了具有各种功能的线路,但它们都处在断开状态,各自连接着接插线板上的某两个孔位,线路就被导通以后这部分功能才会运行。这是对可编程性需求的一种最低程度的支持。

接插线板

  1912年,德弗雷斯特来到加利福尼亚旧金山附近的帕洛阿托小镇。在爱默生大街913号小木屋,德弗雷斯特把若干个三极管级连起来,即上一个三极管的输出作为下一个的输入,再把电话机话筒接入第一个三极管的栅级,最后一个三极管的阳极与耳机相连。当他把自己的手表放在话筒前方时,手表的“滴哒”声几乎把戴着耳机的耳朵震聋。成功了!三极管可以用作通信中的电信号放大器。帕洛阿托市的德弗雷斯特故居,至今依然矗立着一块小小的纪念牌,以市政府名义书写着一行文字:“李·德弗雷斯特在此发现了电子管的放大作用。”用来纪念这项伟大发明为新兴电子工业所奠定的基础。这个城市,如今已成长为全球闻名的硅谷

  二极管中,与电源正负极的相连本质上造就了阴极与阳极之间的电压差,与电源正极相连总能获得更高的电压。水往低处流,电流也一样,从高压的地方流向低压,可电子却不是,它总爱从低压的地方挪向高压,因为它带负电荷,所以要跟我们的常识反着来。那么,有么有可能通过增加电源和电极,以产生更多不同的电压差,从而实现更复杂的功能呢?还真有。栅极的表现与阳极十分类似,其作用取决于它和阴极之间的电压差。当施加在栅极上的电压比阴极低时,从阴极发射的部分电子将受到阻碍而无法到达阳极,栅极上的电压比阴极低得越多,这种阻碍效应就越大,直至完全阻隔;反之,当栅极上的电压比阴极高时,它反而开始吸引电子,助阴极一臂之力将更多电子传到阳极。结果是,稍微改变一下栅极上的电压,就可以对阳极上的电压产生很大影响,因而三极管常用作无线电通信中的信号放大器。

三极管阻断(左)和导通(右)原理电路

  1912年,刚成立的门罗公司开始商业化生产鲍德温的销轮计算器。

  1913年7月,经过一番谈判,最终德福雷斯特把他的真空三极管专利以39万美元的价格卖给了美国电话电报公司(AT&T)。作为电信号放大器,三极管不管对于无线电通信还是长途有线电话通信都有极大的价值。

  1914年,菲尔特出版了一本厚达600页的专著——《Applied Mechanical Arithmetic as practised on the Comptometer》,提供了各种主流计算问题的最佳算法。菲尔特不仅开辟了按键计算器市场,还诱发了另一个配套行业的兴起——计算仪培训。由于人机交互方式从手摇到按键的根本性变革,解决计算问题的操作步骤和技巧也与以前有了很大不同。菲尔特认为,本身只提供加减功能的计算仪更像一款通用型工具,只有掌握了丰富的算法,才能应对各领域复杂的计算问题。到20年代晚期,全美一共涌现了超过百家计算仪的培训学校,加上其他国家的学校,平均每年约有2万名毕业生成为合格的计算仪操作员(comptometrist),支撑起日渐繁荣的机械计算时代。

  1914年~1918年,因为在无线电等技术中的应用,一战中西方电子公司(Western Electric,AT&T的供应商)为美军生产了50万支电子管。在1918年一年内,美国制造了100多万支电子管,这已经是战前的50多倍。

  同样在一战期间,矿石检波器在无线电接收机中也得到了大量应用。矿石检波器一般是用方铅矿或者黄铁矿来作为核心部件。找一小块矿石,然后用针扎到矿石上,矿石本身就能完成检波的作用。使用矿石检波器的无线电接收机,不需要电源就可以使用。

美军BC-14A型军用接收机,右图中心位置是矿石检波器

  实际上,矿石检波器起到的作用和真空二极管是相同的,但是内部原理和真空管完全不同。矿石检波器的好处是结构简单,使用时不需要通电也不用加热,经久耐用。但是矿石检波器的调试需要工程师不断的寻找探针接触的位置。针扎在哪里效果最好,这全靠人一点一点去测试。因此矿石检波器的品控非常难。

  矿石能起到检波的作用,这是因为它是个天然半导体。半导体是指一种导电性可控,范围从绝缘体到导体之间的材料。半导体的电导与所加电场的方向有关,即它的导电有方向性,在它两端加一个正向电压,它是导通的;如果把电压极性反过来,它就不导电,这就是半导体的整流效应。矿石检波器就是对半导体整流效应的一种简单应用。

  1924年,CTR制表机公司更名为IBM,全面进入计算机领域。

  1925年1月1日,AT&T总裁华特·基佛德(Walter Gifford)收购了西方电子公司的研究部门,成立一个叫做“贝尔电话实验室公司”的独立实体(AT&T和西方电子各拥有该公司的50%的股权)。再后来,这个公司改名为贝尔实验室。

  同年10月2日,英国发明家约翰·洛吉·贝尔德(John Logie Baird,1888年8月13日—1946年6月14日),

采用机械扫描的方法,经过上百次的反复尝试,在影像接收机中看到自己玩偶比尔的脸。

最早传输的电视图像

贝尔德的发明思路是把图片分解成无数的小点,通过改变小点的位置来改变图像,最终让图片运动起来。由于经费不足,贝尔德收集了大量破旧的零件来制造机器。他的机箱外框是盥洗盆制作的,电动机是垃圾堆捡来的,“扫描圆盆”是用马粪纸自制而成,投影灯固定用的是饼干盒子,像霓虹管、加热棒等大部分电子元件都来自报废电台。

贝尔德和他发明的半机械式电视机

  1928年,德国物理学家、量子力学创始人之一马克斯·普朗克(Max Karl Ernst Ludwig Planck,1858年4月23日—1947年10月4日,就是那个普朗克常数)在应用量子力学研究金属导电问题中,提出固体能带理论。能带论第一次科学地阐明了固体为什么可按导电能力的强弱,分为绝缘体、导体、半导体。

马克斯·普朗克

  随后在1931年,英国物理学家查尔斯·威尔逊(Charles Thomson Rees Wilson,1869年2月14日—1959年11月15日)在能带理论的基础上,提出半导体的物理模型。威尔逊模型相当完好地说明了与体内性质有关的半导体的行为特征,它奠定了半导体学科的理论基础。1939年,苏联物理学家А.С.达维多夫(А.С.Давыдов,关于达维多夫的资料太少了!)、英国物理学家内维尔·莫特(Nevill Francis Mott,1905年9月30日—1996年8月8日)、德国物理学家华特‧肖特基(Walter Hermann Schottky,1886年7月23日—1976年3月4日)各自独立地提出了解释金属—半导体接触整流作用的理论。达维多夫首先认识到半导体中少数载流子的作用,而肖特基和莫特提出了著名的“扩散理论”。

  就这样,能带论、导电机理模型和扩散理论这三个相互关联逐步发展起来的半导体理论模型,大体上确立半导体器件发展的理论背景。


第二回 范内瓦模拟计算,图灵机开辟宗门

  1930年,美国麻省理工学院和哈佛大学的博士范内瓦·布什(Vannevar Bush,1890年3月11日—1974年6月26日),在一些工程技术人员的协助下,试制出一台微分分析仪的样机。

范内瓦研制计算器的初衷是为了求解与传输电路有关的微分方程。那时为了求出一个方程的解,演算工作量大得惊人,常常冥思苦想好几个月,浪费掉几百张草稿纸也得不出答案。有一天他突然冒出个想法,与其再这样因为计算耗费时间,不如制作一台计算装置帮助求解更合算。完成的微分分析仪是一台“大型”计算机器,说它是“大型机”并不为过,因为这台机器自重超过了100吨,占地约几十平方米。它与现代的计算机很不一样,它没有键盘,看起来像好多个台球桌,又有点像印刷机。装备着数百根平行的钢轴,需要用一系列电动机驱动。一个参观过微分分析仪的人曾挖苦说,必须“一手拿扳手,一手拿改锥”才能操作机器进行计算。但当时它却让麻省理工学院的科学家们兴奋不已,因为他们终于有了求解数学难题的有力武器。

  微分分析仪是第一台模拟计算器。前面介绍的计算器都是属于数字计算器(不管它是机械的,还是电子的),这条道路是由帕斯卡提出差分思想后开辟的,即将各种函数用幂级数展开方式转换为多项式,将函数运算最终变为相乘与相加。在求微积分时也是同样的思路,以差分代微分,以求和代积分,总之是以有限代无限。而模拟是用一种物理量来表征另一种物理量,就好比我们测体温的水银温度计,就是一个典型的模拟设备,温度有多高,水银高度就成比例地有多高。模拟计算器则是由想要解的方程支配的物理系统。在给出初始条件后,模拟计算器的变量随时间变化,其结果就是该方程的解。微分分析仪是用钢轴的连续转动来模拟变量的变化,从而运算得出最终结果。

  在试制出第一台样机后,范内瓦又采用电子元件来取代某些机械零件,成为“洛克菲勒微分分析仪2号”。但总的来说它仍然是一台机械式的计算装置。这种机器至少被人仿造出5台,在第二次世界大战中,美军曾广泛用它来计算弹道射击表。而英国也用它来计算德军V-2导弹的弹道表,发挥了重要的作用。现今在麻省理工学院和伦敦博物馆里,还各收藏着一台不太完整的这种机器,但都已不能正常运转了。

  1931年,IBM推出IBM 601机。这是一台能在一秒钟算出乘法的穿孔卡片计算器。这台机器无论在自然科学还是在商业意义上都具有重要的地位。大约造了1500台。

  1936年,英国数学家阿兰·图灵(Alan Turing,1912年—1954年),发表了在计算机发展历史上影响深远的论文《论可计算数及其在判定问题中的应用》,提出了使其成为“计算机科学之父”的图灵机。

  逻辑结构上图灵机由四个部分组成:

  1. 一个无限长的存储带。带子由一个个连续的存储格子组成,每个格子可以存储一个数字或符号

  2. 一个读写头。读写头可以在存储带上左右移动,并可以读、修改存储格上的数字或符号

  3. 内部状态存储器。该存储器可以记录图灵机的当前状态,并且有一种特殊状态为停机状态

  4. 控制程序指令。指令可以根据当前状态以及当前读写头所指的格子上的符号来确定读写头下一步的动作(左移还是右移),并改变状态存储器的值,令机器进入一个新的状态或保持状态不变。

  或者可以将图灵机总结为四大集合,即:输入集合、输出集合、内部状态集合和程序指令集合。

  图灵机提供了一个这样的解决问题的思路:问题从简单到复杂,都可以通过分别增加机器4个部分的丰富程度来解决——存储带符号类型更多,读写头输出符号类型更多,状态存储器状态更多,控制程序指令组合更多。我们根据要解决的不同问题可以设计出具有各种功能的图灵机,其中控制程序指令组合实质就是编程。图灵想到,如果把控制程序指令组合信息(可以称为策略)以统一的格式写成符号串,放在纸带的头部,再将图灵机设计成能在运行开始时从纸带上读取这些策略(也就是通过第1和第2部分的操作,对第3和第4部分进行初始化),那么针对不同的任务,就不需要设计不同的图灵机,而只需改变纸带头部的策略即可。这种能靠纸带制定策略的图灵机,称为通用图灵机UTM(universal Turing machine)。如今的所有通用计算机都是图灵机的一种实现,两者的能力是等价的。当一个计算系统可以模拟任意图灵机时,我们称其是图灵完备的(Turing complete);当一个图灵完备的系统可以被图灵机模拟时,我们称其是图灵等效的(Turing equivalent)。图灵完备和图灵等效成为衡量计算机和编程语言能力的基础指标。如今几乎所有的编程语言都是图灵完备的,这意味着它们可以相互取代,一种语言能写出的程序用另一种也照样可以实现。

  图灵这篇论文的本意是提出一个模型来解答数学上的判定问题。判定问题是数理逻辑中的一个重要问题。它表现为寻求一种可行的方法、一种机械的程序或者算法,从而能够对某类问题中的任何一个在有穷步骤内确定是否具有某一特定的性质。图灵在论文中证明了没有任何机器可以解决所有数学问题(图灵机存在“停机问题”无法从根本上解决),却同时也证明了机器可以完成所有人类能完成的计算工作。图灵首次阐明了现代计算机原理,从理论上证明了现代通用计算机存在的可能性。图灵回答了判定问题,更参透了数学和计算机的本质关系——计算机是为解决数学问题而诞生的,却又基于数学,因而数学自身的边界也框定了计算机的能力范围。从图灵开始,计算机有了真正坚实的理论基础,更多人开始投身计算机的理论研究,而不仅是尝试构建一台机器。从如今的应用来看,图灵机之于计算机领域的价值远高于数学领域,毕竟判定问题还有许多其它解答,但计算机的原始公式,只有图灵机这一个。(数学才是数学家真正追求的快乐,计算机只是他们的副产品!)

  同年,德国工程师康拉德·祖思(Konrad Zuse,1910-1995)从建造军用飞机的亨舍尔公司辞职。

因为祖思负责飞机在飞行过程中的受力分析,要解各种各样的微分方程。这份在外人眼中的高智商工作,在祖思看来却无异于体力劳动,他被大量的重复运算损耗着精力,无暇顾及更有价值的创造性设计。尽管办公桌上配有一台当时先进的手摇计算器,但他仍然觉得很不方便。他决定建造一台更便捷的计算机器。他的父母十分开明,把整个客厅腾出来作为他的工作室。

  同年,苏联科学家Vladimir Lukyanov打造了液压积分器(Hydraulic Integrator)的第一台原型机。制造它的目的是为了研究和计算铁路桥梁的混凝土,在不同温度下开裂的相关数据。它是世界上第一台可以求解偏微分方程的计算器,它更大的独特之处是用水作为计算载体:水箱中液位高度代表数据。若干水箱间用各种水管连接,不同的水管出水的压力不同,再用它们作为变量实现运算。不同于别的计算机叫做电脑,它被称为“水脑”。从原理可以得知,这是一种机械式模拟计算设备。

现存于莫斯科理工博物馆的液压积分器

在此基础上,1941年,Lukyanov又采用模块化的设计理念,对其进行改进,甚至五十年代还进行了量产。直到70年代,这种计算器依然在苏联的115个工厂、研究院所服役,后逐渐被数字电子计算机所取代。


第三回 Model K二制运算,香农爷理论奠基

  1937年的某一天,贝尔实验室研究员乔治·斯蒂比茨(George Robert Stibitz,1904年—1995年),

他觉察到继电器的开闭状态与二进制之间的联系。于是他找来两节电池、两个继电器和两个小灯泡,然后从易拉罐上剪下一个U形触片,用电线把它们连成了一个最简单的二进制加法电路。

实现的效果是:按下触片B,灯泡L2亮;按下触片A,灯泡L2亮;同时按下A和B,灯泡L1亮(进位)。所实现的加法逻辑如下:

因为是在厨房(kitchen)里搭建的模型,斯蒂比兹的妻子称之为Model K。Model K看似简单,却为斯蒂比茨验证了制造二进制计算机的可行性。

  从结果来看,贝尔实验室产生用继电器实现二进制运算的技术,是源于他们长期使用继电器的经验和对复数运算的需要。电话的拨号系统由继电器电路实现,通过一组继电器的开闭决定谁与谁进行通话。同时,最早的电话系统是靠模拟量传输信号的,信号随距离衰减,长距离通话需要用到滤波器和放大器以保证信号的纯度和强度。设计这两样设备时需要处理信号的振幅和相位,两个信号的叠加是两者振幅和相位的分别叠加,复数的运算法则正好与之相符。贝尔实验室面临大量的复数运算,全是简单的加减乘除,工程师们不堪重负,并开始雇佣文化程度不高的妇女(当时的廉价劳力)全职辅助计算。当时研究数学的人对继电器不熟悉,而一般在工作中使用继电器的工程师又对复数运算不尽了解,而斯蒂比茨正好是将两者联系到一起那个人。

  随后的夜晚,斯蒂比茨对这个简单的一位加法器进行改进与扩充,使之能完成其他运算。在初步设计完成以后,他把装在胶合板上的这台“样机”带到实验室表演给数学部主任桑顿·弗雷(Thornton C. Fry)演示。弗雷开始时对斯蒂比茨的这一创新并没有太重视。

  同年,一名哈佛大学在校的物理学博士生——霍华德·艾肯(Howard Hathaway Aiken,1900年—1973年)受困于自己的博士论文。

因为博士论文涉及空间电荷传导理论,需要计算非常复杂的非线性微分方程。艾肯在图书馆里发现了巴贝奇和艾达的论文,他产生了发明一种机器代替人工计算,用来解决数学难题的想法。艾肯准备好了一份可行性报告,四处寻找愿意合作的公司。他曾找到生产销轮计算器的门罗公司,但是没有谈成。

  1938年,第一台祖思机——Z1建造完成。这是一台纯机械的机器,由成千上万的金属片和金属杆组成,靠电动马达驱动运转。与以往靠齿轮实现计算的机械设备大不相同,Z1利用了布尔代数的原理,是第一台完全采用二进制运算方式的可编程计算机。Z1从未投入实际使用,并连同图纸毁于1944年1月30日的一场空袭。

Z1的珍贵照片

  1987年~1989年,在西门子公司的资助下,祖思重建了Z1并移交柏林德国技术博物馆。后人对Z1的了解基本源自这台复制品。可惜的是,尽管祖思的设计看起来精致而优雅,然而不论是1938年的Z1还是1989年的复制品都无法顺利运行。

位于德国技术博物馆的Z1复制品

  Z1在组成上已初具现代计算机的特点,主要包括控制器、存储器、运算器、输入设备(穿孔带读取器和十进制输入面板)和输出设备(十进制输出面板)5大部分。Z1计算机最大的贡献是第一次采用了二进制数。从机身侧视,可以看到下层一列列整齐的金属杆支撑着上层一叠叠整齐的金属片。靠金属片和金属杆在水平面内4个方向(前后左右)移动,它们相互作用就可以完成二进制计算。在薄钢板组装的存储器中,楚泽用一个在细孔中移动的针,指明数字“0”或“1”。他的这种选择,明显地受到莱布尼茨著作的启发,他后来发表的研究报告,副题就是“向莱布尼茨致敬”。和制表机一样,Z1也用到了穿孔技术,不过不是穿孔卡片,而是穿孔带,由35毫米电影胶卷制成。数据则由一个数字键盘敲入,计算结果用小电灯泡显示。

  Z1是世界上第一台二进制可编程计算机,其设计是极富开创性的,其中许多理念都被现代计算机所沿用:

  • 基于完全的二进制架构实现内存和处理器,引入了实现二进制计算的基本要素——逻辑门。为了用二进制数表示小数,引入浮点数表示法,如今已被纳入IEEE标准。

  • 将数据存储和指令处理分开,这正是现代计算机的做法。在复制品中,机器大约一半由内存和穿孔带读取器构成。另一半由处理器、I/O控制台和微控制单元构成。

  • 可编程:拥有由8条指令组成的指令集(四则运算、内存读/写、从十进制面板读入数据、将结果寄存器里的内容显示到十进制展板)。具体编程操作是用穿孔带记录8比特长的代码后传入机器(穿孔带只存储指令,数据通过按键面板输入)。代码的组成方式为两种:一是2位表示内存读写操作码、6位表示内存地址,二是以3位表示四则运算和I/O操作的操作码)。

  • 有了明确的机器周期概念。操作被分解成一系列微指令,一个机器周期一条微指令。

从架构上看,我们今天的计算机进与1938年的祖思机一致,反而与1945年的ENIAC不同。直到后来的EDVAC报告草案,以及冯·诺依曼和图灵开发的位串行机中,才为ENIAC引进了更优雅的体系结构。

  同年,由于贝尔实验室计算任务压力的增大,有人建议把台式机械计算器的轴连在一起以加快计算。这从理论上来说虽然是可行的,但实现起来很复杂,操作也麻烦。弗雷这时想起斯蒂比茨的发明,问他能不能用他的发明解决复数计算问题。斯蒂比茨这时已成竹在胸,当即接受了任务。在实验室另一位工程师塞缪尔·威廉姆斯(Samuel Williams)的协助下,新型计算机的研制工作开始了。

  同年,麻省理工学院就读的克劳福德·香农(Claude Elwood Shannon ,1916年4月30日—2001年2月24日,这是祖师爷要拜拜🙏)完成了自己的“硕士毕业论文”《继电器和开关电路的符号分析》,在这篇论文中,香农首次用布尔代数对开关电路进行了相关的分析,并证明了可以通过继电器电路来实现布尔代数的逻辑运算,从而奠定了数字电路的理论基础。同时明确地给出了实现加,减,乘,除等运算的电子电路的设计方法。香农在MIT就读期间,他的老师中有一位就是范内瓦·布什。

祖师爷之凝视

  香农完成论文之后曾去贝尔实验室与斯蒂比茨交流彼此的研究成果。但香农并未参与到斯蒂比茨的计算机开发工作之中。在30年代末期,使用继电器实现二进制逻辑是一种普遍共识,同时期在日本也有类似的发现。

  同年,图灵在取得美国普林斯顿大学博士学位后返回了正在紧张备战的英国。不久,他便秘密参与到政府的密码破译项目中,和全国各地顶尖的数学家们一起,在白金汉郡的布莱切利公馆(Bletchley Park)中深居简出,左右世界战争的格局。二战时期,各国已经使用无线电进行作战指挥,由于信号可以轻易被敌国接收,需要对无线电内容进行加密。当时的德国使用一种叫谜机(Enigma machine)的加密机器,按下某个字母的按键,其加密后对应的字母小灯就会亮起。内部的转轮和接插线板将这种对应关系随意打乱,每按一次按键,转轮就会转动一次,组合成新的对应关系,比如第一次按下A,D灯亮起,再按一次A,亮起的可能是Z灯,毫无规律可循。更棘手的是,德军几乎每天都会变更其中的接线。

3转轮谜机

解密的方式是穷举,即遍历所有可能的对应关系,直到找出有意义的关键词,而这恰恰是机器最擅长的事。英国的同盟国波兰在战前就成功研制了破解谜机的炸弹机(bomba),可惜德国在1938年年底将谜机上的转轮从3个增加到了5个,解密的复杂度呈爆炸式增长,针对3转轮谜机设计的炸弹机还未在二战发挥价值就已经宣告报废。

  解决这个难题的关键人物正是图灵,新建的炸弹机(bombe)成功破解了5转轮谜机。其难度之大,大到英国首次利用破解的信息破坏德军行动时,德国的密码专家首先排除了谜机被破解的可能性。

图灵炸弹机

随后,对密码学有着深刻认识的图灵还探索出一种高效的解密算法,人称图灵方法(Turingery),该算法成为布莱切利破解德国密码的核心理论。布莱切利的工作是图灵在短暂的一生中,为人类所做的第二项伟大贡献。他的成果使战争至少提前2年结束,挽救了至少1400万人的生命。前英国首相温斯顿·丘吉尔曾表示,二战的胜利最该感谢的人就是图灵。这段故事被改编成电影《模仿游戏》(The Imitation Game),由两个“大长脸”本尼迪克特和凯拉主演,并在奥斯卡获奖。


第四回 师徒首用电子管,维纳提出五原则

  1939年10月,斯蒂比茨带领贝尔实验室的团队完成了专门用于进行复数运算的复数计算器,后人也称之为Model I。它是世界上最早的电磁式计算器,使用继电器组成的运算单元。Model I只支持复数的乘除运算,而没有实现最基本的加减,因为贝尔实验室认为加减法足够简单,只需要口算就够了,再不济也可以直接使用现成的机械计算器。不过后来他们惊喜地发现,只要不清空前一个数,在此基础上把新的数和1(或-1)相乘,就相当于与前一个数求和(或求差)。Model I进行一次复数乘法用时约30~45秒。

  在最终实现的时候,为了电路实现的简单,Model I并未完全采用二进制,而是引入了一种混合编码方式BCD(binary-coded decimal‎,二进制编码的十进制),将十进制数的每个数位都用4位二进制码表示。每个数位上的值进行运算时都是二进制的,用继电器实现运算,而在整体上又表现成十进制。这说明当时的人们还没有完全理解二进制运算带来的进步,更多的是认可继电器开关对比机械传动还来的效率上的提升。

  Model I的另一大亮点是它首次采用了操作终端和后台计算明确分离的架构,用现在的行话讲,就是C/S(客户端/服务器)架构。斯蒂比茨为Model I配备了3台操作终端,用户在任意一台终端上键入要算的式子,后台将收到相应信号并在解算之后传回结果,由集成在终端上的打字机打印输出。

Model I的操作终端

只是这3台终端并不能同时使用,像电话一样,只要有一台“占线”,另两台就会收到忙音提示。Model I不仅是第一台多终端的计算机,还是第一台可以远程操控的计算机。贝尔实验室利用自身的技术优势,在达特茅斯学院(Dartmouth College)和400多公里开外的纽约本部之间搭起线路。1940年9月9日,斯蒂比茨带着一台小小的终端来到学院演示,不一会就从纽约传回结果,在与会的数学家中引起了巨大轰动,他们纷纷上台亲自验证,其中有很多计算机史上鼻祖级的人物,包括日后大名鼎鼎的冯·诺依曼、“控制论之父”诺伯特·维纳(Norbert Wiener)、“人工智能之父”约翰·麦卡锡(John McCarthy)和“ENIAC之父”约翰·莫奇利(John Mauchly)等。斯蒂比兹由此成为远程计算第一人。(考虑到电话公司是干什么的,远程计算由贝尔实验室发明似乎也是一种必然)

  同年,时任美国爱荷华州立大学数学和物理学教授的约翰·阿塔纳索夫(John Vincent Atanasoff,1903年—1995年)申请到了学校给的启动经费(区区650美元),决定自己建造一台计算机。

约翰·阿塔纳索夫

  他拥有佛罗里达大学电气工程学士学位、爱荷华州立大学数学硕士学位和威斯康星大学理论物理博士学位,专业上繁重的计算令他苦恼已久。受到范内瓦微分分析仪的启发,他曾经计划改造学校的一台IBM制表机,在被阻止之后决定自己建一台新的。扎实的数学功底使他在设计机器时游刃有余,电气和物理方面的专业知识使他在开始设计时的目标就是用电子管来组成运算逻辑单元。一位同事将自己优秀的学生克利福德·贝里(Clifford Berry,1918年—1963年)推荐给了他,当时贝里刚从电气工程专业本科毕业,便顺势成为了阿塔纳索夫的研究生。师生二人组成了“系统设计+工程实现”的搭档。

  具有通断两种状态的电子管和电磁继电器作用类似,但继电器中衔铁的摆动是机械的,而电子管的通断几近光速。如果使用电子管组成开关电路,进而实现逻辑门,以此为基础元件建造的计算机不就可以拥有空前的运算速度了吗?显然,用电子管建造计算机在理论上是完全可行的。下图给出了一种用电子二极管和三极管构建的与、或、非门电路,用相对的高电压表示1、相对的低电压表示0。

与门(左)、或门(中)、非门(右)

  • 与门由两个二极管组成,输入端X和Y与两者阴极相连,输出端Z与两者阳极相连并施以高电压。给X和Y任意一者施加低电压时,对应的二极管导通,Z也便处于低压;给X和Y同时施加高电压时,两个二极管都不通,Z便保留了高压。

  • 或门也由两个二极管组成,输入端X和Y与两者阳极相连,输出端Z与两者阴极相连并施以低电压。给X和Y任意一者施加高电压时,对应的二极管导通,Z也便处于高压;给X和Y同时施加低电压时,两个二极管都不通,Z便保留了低压。

  • 非门由单个三极管实现,输入端X与其栅极相连,输出端Z与其阳极相连并施以高电压。给X施加高电压时,三极管导通,Z便获得了阴极的低电压;给X施加比阴极更低的低电压时,三极管不通,Z便保留了高压。

  虽然理论上可行,但因为那时的电子管不但体积大、能耗高、价格昂贵,可靠性还差,只是以极少的数量应用在无线电设备中,用成千上万的电子管建造计算机几乎是不可能完成的任务。然而,还是有一批不惧困难的科学家在历史的关键时刻接下了这个任务,用一根根灯丝的微弱之光,点亮了电子计算的前途。

  同年3月31日,哈佛和IBM签订协议共同研发计算机。哈佛方面由艾肯主导设计,IBM方面则派出顶尖的工程师团队负责实现,最终成果归哈佛所有。在经过艾肯2年坚持不懈的奔走后,IBM伸出了橄榄枝。彼时的IBM,已是单元记录市场的巨头企业,拥有丰富的计算设备建造经验。而除了其主营的制表机型,当时的总裁托马斯·沃森(Thomas John Watson,1874年2月17日—1956年6月19日)对通用计算机也颇有兴趣。艾肯想实现自己的理想,沃森想进一步提高公司的声誉,两人一拍即合。

IBM老板托马斯·沃森

有了钱,艾肯开始了“MARK I”的研发。与同时期其他“重复制造轮子”的先驱不同,艾肯“站在了巨人的肩膀上”,他充分参考了帕斯卡、莱布尼茨、巴贝奇、霍列瑞斯等前人的成果,也将他们的失策引以为戒——正是有了巴贝奇的教训,艾肯选择直接利用IBM现成的制表机零件,而没有走自己生产元件的弯路。MARK I借助电流进行运算,最关键的部件采用继电器组成,安装了大约3000个继电器。继电器接通电路表示“1”,继电器断开则表示“0”。继电器能在大约1/100秒内接通或断开电路。

  为MARK I编制计算程序的人中有一位女数学家格蕾斯·霍波(Grace Murray Hopper)。有一天,在调试程序时出现了故障,拆开继电器后,人们发现有只飞蛾被夹扁在触点中间,从而“卡”住了机器的运行。从此,霍波恢谐地把程序故障统称为Bug(虫子)。

  同年,惠普(Hewlett-Packard,HP)公司在帕洛阿尔托市成立。两位创始人比尔·惠利特(Bill Hewlett)和戴维·普卡德(Dave Packard)(知道为啥叫HP了吧)都是时任斯坦福大学电子通讯实验室主任弗雷德里克·特曼(Frederick Emmons Terman,1900年6月7日—1982年12月19日)的学生。弗雷德里克·特曼被誉为“硅谷之父”。

硅谷之父弗雷德里克·特曼

特曼在MIT获得电子学博士学位的导师是范内瓦·布什。美国两个著名的高科技工业园区——加州的“硅谷”和波士顿128号公路的“高科技走廊”的诞生都凝结了范内瓦的心血。

  1940年,阿塔纳索夫的计算机器就在物理大楼的地下室开始运转了。这是一台专用的计算机,用于求解线性方程组,最多支持29个方程。机器有数百个电子管,以鼓状电容器来存储数字(因为电容便宜)。因为是阿塔纳索夫设计的,人们便理所当然地称之为阿塔纳索夫机,其实贝里的贡献也不容忽视。在1963年贝里自杀去世之后,阿塔纳索夫为了纪念这位出色的学生、自己的得力助手,正式将机器命名为阿塔纳索夫—贝里计算机(Atanasoff–Berry computer),简称ABC。巧合的是,这个在英文中代表“入门”和“基础”的单词,也正是第一台电子计算机的名字。

  可惜的是,这台划时代的计算机没有保留下来,我们现在所能见到的是爱荷华州立大学1997年重建的复制品。它借用IBM的80列穿孔卡片输入十进制数据,读卡器在读入后将它们转换为二进制形式存入两个滚筒状的存储器(图中另一个滚筒存储器被右侧控制台遮挡),计算单元由电子三极管逻辑电路构成,计算结果被转换回十进制后通过示数齿轮显示。滚筒的筒壁上整整齐齐排布着32圈、每圈50个电容,其中30圈用于存储数据,多余的2圈作为备份。电容具有两个电极,可分别施加高电压和低电压,故而可用“一高一低”和“一低一高”两种状态表示0和1。并且,带电的电容可以提供导通电子管的电压,反之,电子管也可以为电容充电——两者天生具备着二进制数据的传递能力。由于电容比较“健忘”(离开电源后在一定时间内会自行失电),滚筒每秒旋转一周,固定在台面上的电刷就对电容进行一次充电。在滚筒旋转一周的短短1秒内,计算单元便完成了30对二进制数的加减运算,机械和机电时期的人们估计很难想象这种魔鬼般的计算速度。

ABC滚筒电容存储器

ABC使用了二进制加法器(减法通过二进制补码转换为加法),每个单数位加法器由14个三极管(7个双三极管)组成。机器工作时,站在一旁的操作人员能明显感觉到它们的热量。

尽管有着很高的计算速度,但ABC每次只能处理2个方程的已知数,使用者需要不断地输入新的数据,并通过控制台上的指令开关告诉它下一步该干什么。据估计,求解29个线性方程需要约25小时。除了通用性,自动化和可编程性也是ABC的短板。ABC有着许多现代计算机的特点,比如二进制数据、电子计算、并行处理和计算/存储分离结构,但它是专用的,不可编程的,更达不到图灵完备,因此还不属于现代计算机的范畴,这为后来ABC与ENIAC的第一之争埋下了伏笔。

  阿塔纳索夫另一大贡献是提出了计算机的三条原则:

1. 以二进制的逻辑基础来实现数字运算,以保证精度;

2. 利用电子技术来实现控制、逻辑运算和算术运算,以保证计算速度;

3. 采用把计算功能和二进制数存储功能相分离的结构。

  正是这三条原则的确立,使得后世的计算机设计有了最基础的标准,结束了之前百花齐放,却又毫无章法的局面。

  同年,祖思完成Z1的改进型—Z2。Z1的不可靠,很大程度上归咎于机械材料的局限性。简单的机械运动一方面速度不快,另一方面无法灵活、可靠地传动。祖思早有采用电磁继电器的想法,无奈那时的继电器不但价格昂贵,体积还不小。完成Z1之后,祖思灵机一动:Z1中零件最多的其实是存储器部分,何不保留机械存储器,而把运算和控制部分改用继电器实现呢?按这个想法制造出来的Z2是一台半机械、半继电器的机电计算机,用到了约600个电磁继电器。继电器的引入和存储字长的缩减大大减轻了机器的重量,总重约300kg。为了提高机械存储器的可靠性,祖思将字长缩减至16位,并使用了简单的定点数。机器的工作频率则提高到了5Hz,计算一次加法仅需约0.8秒。可惜的是,Z2也毁于Z1遭遇的那场空袭。不过在它建成之际,祖思就及时向德国航空太空中心做了演示,他十分走运,这次演示是Z2为数不多成功运转中的一次。德国航空太空中心看到了它的军用价值,当即决定资助这个项目。

  同年,美国应用数学家,控制论的创始人诺伯特·维纳(Norbert Wiener,1894年11月26日—1964年3月18日)

写信给范内瓦·布什(此时已是美国罗斯福总统的科学顾问、国防研究委员会(National DefenseResearch Committee,NDRC)主席),提议制造电子计算机,并提出了制造电子计算机的五点要求,即计算机设计五原则:

1. 计算机负责运算的中心部件不应是模拟式,而应是数字式;

2. 开关装置应该采用电子元件;

3. 采用二进制,而不是十进制;

4. 运算和逻辑判断都由机器完成,中间应该没有人的干预;

5. 内部要有存贮数据的装置,支持快速读写。

  维纳关于计算机五原则的思想,部分来自于其对生物神经系统的剖析,部分来自于工程实现的需要——从防空火炮系统的研究中萌发。第一次世界大战期间,维纳受美国军方之邀,在维纳在马里兰的阿伯丁实验场研究高射炮打击飞机的弹道学,编制射击火力表,用于确定火炮瞄准飞机的方位。第二次世界大战爆发后,战斗机性能的提高要求防空火力对飞机进行更为精确的跟踪,美国军方又一次邀请维纳参与其研究工作。那时,希特勒的战斗机速度很快,飞行员们又大耍曲线、翻筋斗的伎俩,美英法盟军的高射火炮根本打不着他们。地面指挥官和炮手们为此很苦恼。因此,需要制订新的火力表。维纳认为用手工和机械计算机计算肯定不行了,只有研制高速的电子计算机。

  当时几乎所有的军事研究计划都出自范内瓦的领导,其中最著名的莫过于“"曼哈顿计划”。(领导懂技术,实力挺恐怖!)

科学研究与开发办公室咨询顾问们的合影,左四是范内瓦·布什

注:科学研究与开发办公室(Office of Scientific Research and Development,OSRD)是取代国防研究委员会的机构,成立于1941年

范内瓦非常赞成维纳的提议和设想,并将维纳的提议提交罗斯福总统。美国政府同意并批准了维纳的提议,并立即立项,成立了以冯·诺依曼为首的电子数字计算机研究设计课题组。

  同年12月,阿塔纳索夫去费城参加美国科学进步协会(AAAS)年会。他听了约翰·莫奇利教授的演讲。莫奇利认为电子学可以为停滞不前的数据处理问题提供答案,只是还不知道该如何做。会后,阿塔纳索夫找到莫奇利,告诉他自己已经建造了这样的机器,莫齐利大感兴趣。1941年6月,莫奇利来到爱荷华州立大学现场观摩了ABC机,阿塔纳索夫对机器进行了详细的讲解。


第五回 祖思机命运多舛,少年郎春风得意

  1941年,祖思建造成功Z3计算机,建成之后就开始服役,用于计算炸弹的空气动力学问题。Z3和Z1的架构完全一致,只是用2000多个电磁继电器替换了原本的机械功能部件。和使用十进制的制表机不同,具有开、合两种状态的继电器在Z3的二进制处理中表现出极高的“天赋”。没有了机械的先天缺陷,Z3的可靠性有了质的飞跃。不过比起Z1和Z2,Z3更加“短命”,摧毁它的空袭来得更早(1943年12月21日)。1961年,祖思建造了Z3复制品,藏于德意志博物馆。

德意志博物馆的Z3复制品

不同于Z1复制品,Z3复制品和原Z3一样可靠,至今仍可正常工作。它以5.3Hz的频率工作,一次加法仅需0.8秒,一次乘法仅需3秒,通过指示灯显示结果。它不仅支持四则运算,还可以求平方根。1998年,来自柏林自由大学的劳尔·罗雅斯(Raúl Rojas)教授证明了Z3的“图灵完备性”(Turing completeness)。只不过Z3本身不支持循环和分支结构,需要通过手动将穿孔带的两头接起来形成环来实现指令循环,通过数学上的等效来模拟条件分支。

  同年6月,意识到谜机可能已被破解的德军启用了一种复杂度更高的加密系统——“金枪鱼”,而这一次英国没能拿到相应的机器,布莱切利的密码学家们要和一个完全未知的强大敌人抗争。8月,“金枪鱼”的操作员由于一时疏忽将同一条信息发送了两遍,尽管两条密文并不一样,但经验丰富的布莱切利在截获之后立马意识到它们指向同一条明文。这个小小的马脚,被这里绝顶聪明的密码学家们牢牢抓住。他们据此精准地推测出“金枪鱼”的组成结构和工作原理。它包括12个谜机那样的转轮,每个转轮的旋转模式各不相同,每个转轮上导电触点的数量也不一样,导电触点可以在接通和断开两个状态之间切换,使用前可改变各触点的状态和转轮的起始位置。

金枪鱼

和谜机的字符级加密不同,“金枪鱼”进行的是编码级加密。破解“金枪鱼”,不仅要猜出转轮上所有导电触点的通断状态,还要猜出各转轮的起始位置,其组合数量之巨,不仅远远超出了人力处理的能力范围,也令炸弹机这类机电设备束手无策。布莱切利急需一种更高速的解密机器,电子管方案成为不二之选。

  1943年2月,在图灵的推荐下,来自伦敦西北角的邮局研究站的托马斯·弗劳尔斯(Thomas Harold Flowers,1905年—1998年)扛起研制破解“金枪鱼”的电子计算机这面大旗。

该研究站有着丰富的电子通信经验,在布莱切利的部分密码学家对电子管的可靠性还抱有疑虑的时候,邮局研究站的工程师早已对电子管的大规模应用驾轻就熟。

  同年4月9日,美国陆军军械部和宾夕法尼亚大学莫尔电气工程学院签订了6.17万美元的研制合同,研制一台功能强大的计算机器。这个项目的起因是军方遇到计算难题——炮弹弹道的计算太过于复杂。每种型号的炮弹都需要计算2000~4000条弹道,每条弹道都涉及复杂的微积分运算,转换成四则运算平均涉及750次乘法和更多次加减,普通计算员使用机械计算器平均需要20个小时才能算完。多型新型火炮的投入使用给美国陆军的弹道研究实验室带来了很大的制表压力,他们雇佣了100多名女计算员,以满足阿伯丁试验场每天6张弹道表的需求。苦劳是做足了,一旦出错却没了功劳。实验室很快意识到,磨刀不误砍柴工,他们急需一台强大的计算机器。

  这个创造历史的项目,其实论起资历与声望,如果交给麻省理工学院会是更好的选择。但MIT与弹道研究实验室的距离是600公里,而莫尔学院只有120公里。同时因为莫尔学院“近水楼台先得月”,早与弹道研究实验室建立了友好的合作关系,那些计算弹道的计算员就是由莫尔学院负责培训的。

  项目总工程师是年轻的约翰·埃克特(John Presper Eckert Jr.,1919年4月9日—1995年6月3日),是学院的一名在读研究生,签订合同的那天正好是他的24岁生日。

这个任命并不是莫尔学院无人可用,而是因为埃克特确实是一个天才。和埃克特搭档的,是年龄大他一轮的约翰·莫奇利(John William Mauchly,1907年8月30日—1980年1月8日,他在前面已经出场两次),此时莫奇利已是乌尔辛纳斯学院(同在宾夕法尼亚州)的物理系主任,拥有约翰·霍普金斯大学物理学博士学位。

  莫奇利被委任为项目顾问,由于教学工作不能投入全部精力,但只要一有时间就会钻进项目里,最终出色地完成了总体设计。埃克特主要负责工程实现。他们共同领导莫尔学院50人的兼职团队,一个主理论、一个主工程的黄金搭档模式像极了造出ABC机的阿塔纳索夫和贝里。

  这个项目研制的计算机就是大名鼎鼎的ENIAC(Electronic Numerical Integrator and Computer,电子数字积分器与计算机)。由于是为了处理弹道计算中的微积分而设计的,起初,它的名字是Electronic Numerical Integrator(电子数字积分器),但由于它的通用性,后来被用于各种其它计算,才有了追加的“and Computer”。

  同年,洛斯·阿拉莫斯国家实验室在当地的牧场学校成立。建立的原因是因为当时几个大学里进行的核武器的初级研究遇到了资源分配的困难,这迫切需要建立一个实验室来单独进行此项研究。这里云集了大批世界顶尖科学家,包括“原子弹之父”尤利乌斯·罗伯特·奥本海默(Julius Robert Oppenheimer,1904年4月22日—1967年2月18日)、“氢弹之父”爱德华·泰勒爱德华·泰勒(Edward Teller,1908年1月15日—2003年9月9日)以及诺贝尔物理奖得主欧内斯特·劳伦斯(Ernest Orlando Lawrence,1901年8月8日—1958年8月27日)。当时的第一个任务是曼哈顿计划,开展原子弹的研制。

  冯·诺依曼作为顾问加入实验室。在对原子核反应过程的研究中,要对一个反应的传播做出“是”或“否”的回答。解决这一问题通常需要通过几十亿次的数学运算和逻辑指令,尽管最终的数据并不要求十分精确,但所有的中间运算过程均不可缺少,且要尽可能保持准确。洛斯·阿拉莫斯实验室为此聘用了一百多名女计算员,利用台式机械计算器从早到晚计算,还是远远不能满足需要。无穷无尽的数字和逻辑指令如同沙漠一样把人的智慧和精力吸尽。冯·诺伊曼一直被计算工作所困扰。

  1944年1月,在布莱切利一部分人“等机器造好战争怕是早就结束了”的冷嘲热讽中,弗劳尔斯带领50人的团队仅用了11个月就完成了第一台原型。当这台包含了约1600个电子管的“庞然大物”来到布莱切利,密码学家们被深深震撼了,它比他们之前使用过的任何计算设备都庞大得多,因而被形象地称为巨人机(Colossus)。巨人机有二型,1943年开始的原型机为Mark 1。在其建造过程中,弗劳尔斯就已经开始了Mark 2的设计。

  同年6月1日,第一台Mark 2巨人机正式交付,如期赶上了重大的诺曼底登陆战役。德军万万没有想到,他们引以为傲的机电式“金枪鱼”,面对的是领先了一个时代的电子计算机。巨人机不负众望破解了德军密码,为战役的最终胜利做出了不可磨灭的贡献。

  Mark 2包含2400个电子管,速度更快,功能更强,截止欧洲胜利日(1945年5月8日)共建有10台之多。可惜的是,出于保密考虑,这11台机器连同其图纸都在60年代被下令焚毁,如今我们在布莱切利的英国国家计算博物馆所能见到的,是后人在1992年~2008年耗时16年重建的复制品。

巨人机Mark 2复制品

巨人机使用穿孔纸带输入密文,纸带每行有5个孔位。纸带长约61米,穿孔25000行。纸带的读取速度十分惊人——每秒5000行,工作时发出湍急的流水声,纸带上的孔洞以近44公里的时速飞驰。这得益于光电技术的应用,在纸带的一侧安装一个灯,另一侧安装5个并排的光电探测器,一个探测器负责盯住一个孔位。当灯光穿过某个孔洞,其对应的光电探测器就能迅速发出电流脉冲,产生二进制信号1;当灯光被未穿孔的孔位遮挡,对应的探测器就产生二进制信号0。

  巨人机基于图灵方法(图灵并没有直接参与巨人机的建造,但是机器的实现用到了他的图灵方法),用电路模拟“金枪鱼”的转轮位置及其导电触点的通断状态。密文流入机器后,经过一系列以异或为主,与、或、非为辅的逻辑运算,最终由电动打字机输出结果。密码学家根据统计结果找到密文中暗藏的线索,调整机器程序,得到新的统计结果后继续分析,如此往复,一步步逼近最终的正确答案。

  巨人机的可编程性是靠开关、旋钮和接插线板实现的。巨人机的编程本质上是一组选择,选择每个开关和旋钮的位置,选择接插线板上每个导电孔的通断。

巨人机的开关面板

  由于涉密,巨人机的知名度比ABC机更低,其存在直到70年代中期才公开。巨人机是世界上第一台可编程电子计算机,但它是专用的——不具有图灵完备性。但一位旧金山大学的教授于2009年证明,将10台巨人机以某种方式组合之后可以达到图灵完备。但这种证明其实意义并不大,巨人机本身是为完成特定任务而设计的,弗劳尔斯也承认在建造它时从没想过现代计算机是什么模样的,甚至还没听说过有用“computer”来称呼机器的做法。

  同年,哈佛大学与IBM联合完成名叫Harvard Mark I(这里是Mark I,而英国巨人机是Mark 1,可见起名时想个独特的名字有多么重要!)的计算机,在“娘家”IBM被称为IBM自动顺序控制计算器(IBM Automatic Sequence Controlled Calculator,ASCC)。在机器建好之后的庆典上,哈佛新闻办公室与艾肯私自准备的新闻稿中,片面强调了己方的功绩,对IBM的功劳没有给予足够的认可,沃森气得与艾肯老死不相往来。

  Mark I是第一台大型计算机(大型机),它由约765000个机电元件组成,包括3500个继电器,内部电线总长达800公里。机器长约15.5米,高约2.4米,重达5吨,由开关、继电器、转轴以及离合器构成,撑满了整个机房的墙面。其基本计算单元使用同步式机械,所以它有一根15米长的传动轴,并由一台4千瓦的马达驱动。机器左侧的玻璃柜中,是2个30行24列的置数旋钮阵列(图中只出镜了一半),可输入60个23位十进制数(留出1位表示正负,0表示正、9表示负);中间部分是更为壮观的计算阵列,由72个计数器组成,每个计数器包括24个机电计数轮,共可存放72个23位十进制数;机器的右侧部分是若干台穿孔式输入输出装置,包括2台读卡器(用于输入相对固定的经验常数)、3台穿孔带读取器(分别读取存有常数表、插值系数和控制指令的3种穿孔带)、1台穿孔机和2台自动打字机。从数据输入,到数据处理,再到输出,Mark I自始至终在与十进制打交道,即便它使用了继电器和穿孔技术。不论是置数旋钮,还是计数器,其背后都是10齿的金属轮。

Mark I上的纸质穿孔带

控制机器运行的穿孔带上每一行有24个孔位,使用时分成3组,每组8位,用于表示数据地址或操作指令。将由数字构成的简单语句按照一定顺序排列,用穿孔机在纸带上打出相应的孔洞,就形成了Mark I可以识别的程序,足以解决各种复杂的数学问题。在Mark I上运行的第一批程序,就包括了冯·诺依曼为曼哈顿计划所编写的原子弹内爆模拟程序。在计算速度上,Mark I的表现并不出众,一次加减运算需要3秒,乘法6秒,除法15.6秒,正弦和乘方往往超过1分钟,对数运算更是高达89.4秒。但它仍是当时一台十分成功的通用计算机巴贝奇的理想终于在艾肯手中完全实现,此时转眼已是百年。从1944年5月开始,Mark I在美国海军服役了14年之久。

  Mark I在存储结构上有一大特点:在硬件上将程序和数据分开存储,即有专门存储程序的存储器和专门存储数据的存储器,分开存储分别加载。中央处理器首先到程序指令储存器中读取程序指令内容,解码后得到数据地址,再到相应的数据储存器中读取数据,并进行下一步的操作(通常是执行)。该特点被总结为“哈佛结构”,它与后出现的“冯·诺依曼结构”并行于世。冯·诺依曼结构与它的区别主要是把程序和数据存储在同一个存储器中,通过同一条总线进行加载。一定程度上冯·诺依曼结构是对前者的改进,简化了实现,成本低,对外围设备的扩展性也好。正是冯·诺依曼结构极大加快了通用电子计算机的发展步伐。但随着后续技术的成熟CPU运算能力越来越强,通过总线传输程序与数据的带宽无法满足处理器的运行速度,处理器就不得不停下来等等它的数据。这一问题被称为”冯·诺依曼瓶颈“(Von Neumann bottleneck)或者称为“存储墙”(Memory Wall)。解决这个问题的方法之一却是改回哈佛结构,因为它可以同时读取程序和数据(分开存储的),大大提高了数据吞吐率,反倒适合高速数据处理。这真是白云苍狗、世事难料啊!

哈佛结构

  Mark I也是一台采用机械/电磁方式的计算机。机电时期是机械与电子之间一段狭小的过渡时期,时间虽短,却取得了质跃式的显著成就。这一时期的计算机不再局限于单纯的数学运算,开始具备更丰富的功能。它们有着五花八门的构造,并在专用和通用之间来回游走,却都不约而同渐渐朝着现代计算机的模样靠拢。随着穿孔时代的开启,“新秀”二进制开始挑战十进制的“权威”,我们在祖思机、贝尔机和哈佛机上一步步领略过它的魅力。二进制在计算中的应用,既是布尔代数计算理论的探索成果,也是穿孔技术和开关电路在硬件上的“倒逼”使然。比起追逐可靠性的机械时期,恰逢现代化战争伊始的机电时期将计算速度视为更重要的指标,这一需求敦促着先驱者们不断尝试新的材料和技术,加快电子时期的到来。


第六回 诺依曼指明道路,范内瓦畅想未来

  同年,在ENIAC还未建成之际,埃克特和莫奇利就将研制一台新机器的申请提交给了导弹实验室。导弹实验室同意了这个项目,并提供10万美元的预算。这台新机器名叫EDVAC(Electronic Discrete Variable Automatic Computer,电子离散变量自动计算机)。这并不是一个骗取经费的诡计,而是要解决当时计算机普遍存在的一个缺陷。机电时期,人们使用穿孔卡片或穿孔带编制程序,由于计算机的运算速度受限于机械动作,输入模块有充分的时间读取穿孔介质上的指令信息。而到了电子时期,使用穿孔输入就远远跟不上电子运算的节奏了。因此,人们便利用旋钮、开关和接插线的不同位置来表示程序,虽然消除了控制与运算之间的速度差距,却使编程成为一件非常复杂的难事。在ENIAC上设置一个实用程序,往往需要几个星期的时间,如非必要,使用者很少愿意修改它。因此,尽管ENIAC是通用的,却总在一段时间内只专用于某个问题(比如弹道计算),它的通用价值大大缩水。而如果频繁地设置不同程序,机器在很大一部分时间里将无法运行,它的高速性能又被大大浪费。那么程序能不能像数据一样,通过穿孔介质输入之后长期驻存在机器内部的存储器中呢?这样一来,读取指令就和读取数据一样快了。这就是EDVAC出现的使命。

  其实这个问题已经在Harvard Mark I中得到了解决,但是因为用当时技术实现的哈佛结构过于复杂,用它来存储程序将使本身已经非常复杂的通用计算机庞大到无法承受,迫切需要有更好的解决方案!

  同年夏天,正在火车站候车的冯·诺依曼巧遇赫尔曼·戈德斯坦(Herman H.Goldstine),并同他进行了短暂的交谈。当时,戈德斯坦是作为弹道实验室派出的军方代表参与ENIAC计算机的研制工作。在交谈中,戈德斯坦告诉了诺伊曼有关ENIAC的研制情况。体验过机电计算机Harvard Mark I带来的效率之后,敏锐的冯·诺依曼为这一研制计划所吸引,他意识到了这项工作的深远意义,对ENIAC寄予了更高的期望。随后冯·诺依曼由戈德斯坦介绍作为顾问加入了ENIAC研制组。

  在莫尔学院,冯·诺依曼看到了正在全力赶制中的ENIAC。在静静也听完总工程师埃克特的大致介绍后,冯·诺依曼提出的第一个问题就戳中了ENIAC在逻辑架构上的“痛点”。由于没有程序存储功能,使得ENIAC在执行不同程序时变得相当麻烦。不过,埃克特自豪地告诉冯·诺依曼,他们已经着手准备启动另一个计算机项目EDVAC的研制工作。EDVAC同样是美国陆军军械部弹道研究室与宾夕法尼亚大学合作的电子计算机项目,负责这一项目的,仍然莫奇利与埃克特。与ENIAC相比,EDVAC将会采用二进制,并且增加程序存储功能。听罢埃克特的介绍,冯·诺依曼当即对EDVAC产生了浓厚的兴趣,在接下来的几个月时间里,他一有空闲便思考EDVAC,更准确地说是思考现代计算机应该具有怎么样的逻辑结构。

  1945年2月3日,二战已近尾声,一场轰炸彻底摧毁了祖思的生产车间,祖思不得不将未完成的Z4从柏林紧急转移至哥廷根。战后的德国元气大伤,直到1949年祖思才得以恢复Z4的工作。其实,早在1937年,祖思就已经着手开展了真空电子管的研究。他的搭档赫尔穆特·施赖尔(Helmut Schreyer)也在很早就提出了建造电子计算机的建议,但这个设想在当时的人们眼中简直是天方夜谭。当时的电子设备顶多使用少量的真空管,了解真空管可靠性的行家都清楚地知道,需要成千上万个真空管组成的计算机根本不可能正常运行。就连祖思在一开始也不相信真空管能建造计算机。在施赖尔的坚持下,他们向政府提出了将Z3全面电子化的建议,但政府没有意识到这件事的重大意义,而是在权衡利弊之后,认为机电计算机已经够用了,进一步尝试真空管对战争的意义不大。于是,祖思的第4台机器——Z4仍然是机电结构的,纳粹德国错过了一次改写历史的机会。

德意志博物馆的Z4

  如今,Z4藏于德意志博物馆。Z4是Z1~Z3的集大成者,是研制时间最长的一型,也是唯一在战争中幸存的一型。它用回了机械存储器,字长扩展到32位,除了四则运算和开平方,还多了求最大、最小值和计算正弦的功能。它弥补了Z3的缺憾,装备了两台穿孔带读取器以实现条件分支(一台读取主程序、一台读取子程序)(原设计中,甚至计划配备6台穿孔带读取器)。它的输出也更多样化,可以打印,也可以(在胶卷上)打孔。Z4以40Hz的频率工作,一次加法仅需0.4秒,平均每小时可完成约1000次浮点运算。在Z4的建造过程中,祖思意识到直接使用二进制编程实在太复杂了,于是撰写了一篇博士论文,设计了历史上第一款高级编程语言Plankalkül(Plankalkül在德语中是“Plan Calculus”(计划计算)的意思),并精心编制了一个示例程序——历史上第一个自动下棋程序。Plankalkül在一定程度上启发了后来ALGOL语言的设计,可惜的是,它本身并没有引起足够的重视,这篇论文最终被奥格斯堡大学驳回。

  同年2月,图灵向英国国家物理实验室提交了50页的ACE(Automatic Computing Engine,自动计算机)设计报告,根据通用图灵机的原理提出了详细的计算机设计方案。报告建议研制第一台计算机,预算为11200英镑,未获批准。这份报告保密了27年后才被公开。

  同年6月,在一趟返回洛斯·阿拉莫斯国家实验室的列车上,约翰·冯·诺依曼(John von Neumann,1903年—1957年)奋笔疾书写出了那篇长达101页,影响计算机历史走向的《EDVAC报告书的第一份草案》。草案不仅详述了EDVAC的设计,还为现代计算机的发展指明了道路,提出了著名的冯·诺依曼体系,以一种更加详细的定义,描述了现代计算机的雏形。

  冯·诺依曼作为顾问在EDVAC上投入了许多思考,他认为EDVAC不单纯是一个计算机项目,它潜藏着更深的理论意义。他联想起图灵的论文,通用图灵机能够根据纸带上的策略信息模拟任意图灵机的行为,纸带是它是存储器,策略信息就是程序,这正是存储程序最早的思想萌芽。而他们现在所尝试的,正是用电子管将它变成现实!在他撰写的《草案》中不仅详述了EDVAC的设计,还为现代计算机的发展指明了道路:

1. 机器内部使用二进制表示数据;

2. 像存储数据一样存储程序,程序与数据存储中同一个存储器中;

3. 计算机由运算器、控制器、存储器、输入模块和输出模块5部分组成。

  这些在现在看来似乎是理所应当的原则,在当时却是一次划时代的总结。这份草案与其说是冯·诺依曼对EDVAC的设计描述,不如说是他对当时全世界计算机建造经验集大成式的高度提炼。

  这种基于存储程序思想的计算机结构,后来被称为冯·诺依曼结构。冯诺依曼结构奠定了现代计算机的基调。如果说图灵赋予了计算机的灵魂,那么冯·诺依曼则搭建了计算机的骨架,后人所做的只是不断丰富计算机的血肉罢了。到今天,运算器和控制器就是CPU的主要组成部分,存储器主要对应为内存,输入和输出模块也被芯片化后集成到主板。

冯·诺依曼结构

  这份草案很快流传开来,并轰动了整个计算机界。然而不知道什么原因,戈德斯坦收到这篇报告拿去刊印的时候,只署了冯·诺依曼一个人的名字。这也成为莫奇利后来与戈德斯坦和冯·诺依曼关系交恶的重要原因。尽管事后冯·诺依曼坦承这并非他一个人的思想,但历史最终还是不容分说地将这一伟大的计算机结构称为“冯·诺依曼结构”,把利用这种概念和原理设计的电子计算机系统统称为“冯·诺依曼型”计算机。

  而EDVAC的设计思想中,有多少属于埃克特和莫奇利,有多少又属于冯·诺依曼,这是个永远也解不开的谜。但至少,如果没有冯·诺依曼将设计方案抽象至理论层面,计算机世界的“大一统时代”可能还要推迟到来。

  从巴贝奇的分析机,到图灵机,再到冯·诺依曼结构、哈佛结构,可以看到一条清晰的主线,那就是计算机由专用向通用演进与发展。而通用计算机技术的发展进程中,“存储程序”成为必然趋势。在这一趋势的逼迫之下,存储器,特别是读取速度更快,存储容量更大的存储器的研制就成为全球计算机工业竞争的核心要素。

  冯·诺依曼虽然是EDVAC项目组的顾问,但在完成了《草案》后,他就回到洛斯·阿拉莫斯国家实验室,全身心投入到原子弹研制的最后冲刺。

  同年7月,范内瓦·布什在《大西洋月刊》(Atlantic Monthly)上发表了一篇名为《诚如所思》(As We May Think)的文章,以回答“二战科学发展带来的巨量信息如何处理和利用”等问题。在这篇信息科学经典之作中,范内瓦提出的诸多理论预测了二战后到现在几十年计算机的发展,许多后来的计算机领域先驱们都是受到这篇文章的启发,鼠标,超文本等计算机技术的发明灵感都是源自这篇具有理论时代意义的论文。

  范内瓦用一个名为Memex概念机器概括了未来计算机与信息技术的发展方向。为了协助人类思考及管理信息而设计的Memex,是一种通过电子计算机储存与检索大量信息的数据库系统,它有一个倾斜的半透明屏幕,用来投影微缩资料,还有一个键盘,一系列按钮和把手。这个类似人脑的机器可依使用者的需求检索信息,并着重于使用者和系统之间的互动。系统藉由建立联结路径、搜寻、处理及整合等技术,帮助学术研究者收集、组合、分析各种资料并加以应用。此外,Memex的设计具有缩小储存空间、增快检索速度、扩大存储器等特性。这些构想奠定后世个人计算机、信息检索、超文本、超媒体、在线公用目录、全球网络及数字图书馆等技术发展的方向。在一个没有网络,连计算机也是从机械向电子过渡的时代,提出了如此超前的概念,不能不让人佩服范内瓦的远见卓识!

memex概念机

  正是因为在信息技术领域多方面的贡献和超人远见,范内瓦·布什获得了“信息时代的教父”与“互联网先知”的美誉。

  同年,在菲律宾某个小岛上的红十字会图书馆,一名叫道格拉斯·恩格尔巴特(Douglas C. Engelbart,1925年1月30日—2013年7月2日)的海军雷达技师,读到了范内瓦《诚如所思》深受启发。

  同年,贝尔实验室执行副总裁默文·凯利(Mervin J. Kelly,1894年2月14日—1971年3月18日)决定组建一个固态物理部门,专业主攻半导体三极管。他任命自己亲自到麻省理工学院挖到的威廉.肖克利(William Shockley,1910年2月13日—1989年8月12日)作为部门主管。

  凯利本来对半导体并不重视,因为他是搞真空管出身的,从1917年加入AT&T时他就是研究这个方向。他认为贝尔应该专注于真空管的研究。在20世纪30年代后期,凯利组织投入了数十万美元试图改善这些管子,但实际上收效甚微。在二战中,他领导贝尔实验室和西方电气公司在雷达研发方面的工作,亲眼见证了半导体整流器让人艳羡的性能。之后他拨转马头,开始全面推动半导体器件的研究。

热爱真空管的默文·凯利


第七回 ENIAC精彩亮相,晶体管雏凤新声

  1946年2月14日晚上,大名鼎鼎的ENIAC正式亮相,并于次日交付。它的最终造价是48.7万美元,相当于今天的700多万美元。诞生于一个浪漫日子的ENIAC是一个庞然大物,重达27吨,总长约30米,高约4米,厚约0.9米,占地约167平米,需要布置在一个很大的房间。它有18000个电子管、70000个电阻、10000个电容和1500个继电器,以及500万个焊接点,每小时吞掉150kW电量。功耗之大,一度传出夸张的谣言:ENIAC一启动,整个费城的灯光都要暗下一截。

ENIAC在莫尔学院

  ENIAC主要由40块模块化的功能面板组成,贴着机房的3面墙壁呈U型排布,面板之间通过下侧的接插线板相连。它们的相对位置不是固定的,可根据使用需要或习惯进行调换。此外,有3台可移动函数表通过接插线板与这些面板相连,读卡器和穿孔机直接连接至输入和输出模块的面板。

ENIAC在莫尔学院的模块分布示意图(俯视)

主编程模块占据2块面板,其上分布着密密麻麻的旋钮,使用者可以在此编程,设置各个电信号的走向和先后顺序,就实现了所谓的结构化编程,即程序不再只能从头到尾顺序执行,它可以有条件分支和循环分支等复杂结构。

上图中两位程序员之间的4块面板即初始化模块、时钟周期模块和主编程模块。图中两位女程序员分别是贝蒂·吉恩·詹宁斯(左)和弗朗西丝·比拉斯(右)。比起诸多早已使用二进制或混合编码的前辈,仍然使用十进制的ENIAC就显得有些原始了。埃克特和莫奇利从机械计算器中的十齿齿轮获得灵感,用10个电子管电路存储1个数位,分别表示0~9,同一时间只有1个电路导通,以表示该数位上的值。这意味着,每个累加器需要100个这样的电路,并且,事实上每个电路平均要用到3.6个电子管。虽然比较浪费,但至少降低了设计难度。数据的输入输出设备是现成的IBM读卡器和穿孔机,分别受控于输入模块和输出模块。每张穿孔卡片可存8个10位十进制数,读取一张卡片需要0.48秒,穿孔一张卡片需要0.6秒。输入、输出模块分别占据3块面板,均使用继电器临时存储数据,它们是连接机器外部和内部的数据缓存池,比起内部的运算速度,读卡和制卡动作是如此之慢,所以没有必要使用电子管,毕竟继电器要便宜得多。

  起初,ENIAC的可靠性非常糟糕,每天都会烧坏几个电子管,机器几乎只有一半时间能正常工作,剩下的一半时间都在寻找和替换这些罢工的电子管。不多久,工程师们发现电子管子在工作期间的可靠性其实很高,只是在加热和冷却阶段容易失效,而弹道研究实验室为了节省能源和值班人力,每天夜里都会关机,却不料拣了芝麻丢了西瓜。保持常开后,ENIAC的可靠性大幅提升,平均每两天才有1个电子管失效,并且只要15分钟就能找到它。ENIAC持续运行时间最长的一次是在1954年,它一口气跑了116个小时,接近5天。

  就这样,ENIAC带着空前的计算能力来到了世上,拿下一条弹道仅需30秒,速度是人的2400倍。ENIAC团队毫不夸张地类比道:我们得出弹道所需的时间,比导弹实际飞行的时间还要短。不过此时,二战已经结束,ENIAC并没有达成最初被寄予的厚望。好在莫奇利的设计是图灵完备的,人们很快为ENIAC找到了其他用武之地,比如气流分析和天气预测等,最重要的还是在氢弹研制中的应用。研制出广岛和长崎原子弹的洛斯·阿拉莫斯国家实验室将ENIAC用于氢弹相关的计算,消耗了100万张穿孔卡片。

  ENIAC有着比巨人机更多的旋钮和接插线孔位,在它上面编程十分复杂。ENAIC最早的6位程序员是从莫尔学院培训的女计算员中选拔出来的,她们不仅聪慧过人,而且细致耐心。经过一段时间的学习,她们对ENIAC的工作机制了如指掌,将数学家们的想法精准地转换为旋钮和接插线的位置组合。她们的认真与细致最大程度上减少了Bug的出现,是ENIAC正常运行的重要保障。1946年2月14日,ENIAC第一次公开演示的程序就出自她们之手。ENIAC之后,她们还参与到其他具有历史意义的计算机项目中(比如最早的商业电子计算机UNIVAC和BINAC),继续发挥不可替代的作用。她们的名字是:凯瑟琳·安东内利(Kathleen Antonelli)、贝蒂·吉恩·詹宁斯(Betty Jean Jennings)、弗朗西斯·伊丽莎白·霍尔伯顿(Frances Elizabeth Holberton)、马琳·梅尔泽(Marlyn Meltzer)、弗朗西丝·比拉斯(Frances V. Bilas)、露丝·泰特尔鲍姆(Ruth Teitelbaum)。

  长久以来,人们都误认为第一台电子计算机是ENIAC,而对ABC一无所知。1967年,美国两家公司为此打了一场官司,经过长时间的取证和前后135天的听证会,法院最终在1973年10月19日宣布ENIAC的专利(长达207页、凝聚了无数智慧和心血的专利)无效。这称得上是一次著名的“冤假错案”了,毕竟此前阿塔纳索夫并没有为ABC申请专利,而打官司的也不是ABC和ENIAC的设计者本人。最重要的是,ENIAC实现了许多ABC所没有的功能,并且切实地投入了实际应用(而ABC更接近于一台未能完整实现的原型机)。时过境迁,历史终会给出更公正的判决:ABC实至名归是第一台电子计算机,而ENIAC是第一台通用电子计算机,两者并无冲突。(ENIAC是图灵完备的,而ABC不是)

  同年,冯·诺依曼预感到美苏两个超级大国之间的对抗已不可避免,而要在这场对抗中占得优势,他认为一是要继续发展核武器,以取得绝对优势的核威慑力量;而另一个关键是则是发展大型计算机。冯·诺依曼决定回普林斯顿,并促使美国高等研究院(IAS)开展电子计算机的研制工作。

  IAS缺少实践型的人才,为此冯·诺依曼向戈德斯坦、伯克斯和埃克特发出邀请,希望他们可以来高等研究院主持计算机的研制工作。戈德斯坦与伯克斯二话不说,立即追随冯·诺依曼而去。但埃克特拒绝了,因为冯·诺依曼没有邀请莫奇利。此时的莫奇利在莫尔学院已成为极不受待见的人。在别人眼里,莫奇利傲慢自大、不懂礼貌,喜欢指手划脚又无真才实学。没人喜欢和莫奇利相处,除了埃克特。埃克特始终认为,莫奇利对他有知遇之恩。如果不是莫奇利,他一个连硕士学位都还没拿到手的毛头小子,是无论如何也不能有今天的成就的。因此,不管别人怎么看待莫奇利,他都会一直追随他。

冯·诺依曼与IAS计算机,计算机下方一排圆筒状的物体为威廉姆斯管存储器

  同年,弗雷迪·威廉姆斯(Freddie Williams)和汤姆·吉尔伯恩(Tom Kilburn)发明威廉姆斯-吉尔伯恩管(Williams-Kilburn Tube)(一般称威廉姆斯管)。它是一种用于存储二进制数据的阴极射线管,也是史上最早的随机存取存储器,早期的许多计算机身上都能看到它的身影。阴极射线管(cathode ray tube,CRT,又称显像管)是由德国物理学家卡尔·布劳恩(Karl Ferdinand Braun,1850年6月6日—1918年4月20日)于1897年发明的。

威廉姆斯管存储器

  1947年,艾肯在哈佛大学创立了计算机实验室,并担任实验室的主任。在艾肯的领导下,哈佛计算机实验室成为当时美国领先的计算机技术研究中心和人才培训基地。同时,艾肯还在哈佛大学率先开设了“大型数学计算机”这一课程,随后又引入了计算机研究生课程,成为世界上第一位计算机科学教授,也使得哈佛大学成为了最早授予计算机硕士和博士学位的大学。而近10年之后,其它大学才陆续开设这一专业,并模仿着艾肯的教学体系。

  艾肯本人带出了15名博士生,还有一批在研制Mark系列计算机时的助手。后来,这些人大都成为了全球计算机技术领域大师级人物。

  同年2月23日,国际标准化组织(International Organization for Standardization,ISO)成立,并且从此在标准化编程语言和其它通用计算类别比如操作系统方面扮演重要角色。

  同年12月23日,在贝尔实验室,一块三角形塑料片、一条金箔、一个弹簧和一片放在铜板上方的薄锗半导体材料被组合在一起,当今世界上最重要的电子元器件“晶体管”就这样诞生了。

贝尔实验室制作的第一支晶体管(点接触晶体管)

  这第一块晶体管的诞生有一个曲折的经历。原本肖克利根据莫特—肖特基的整流理论,并结合自己的实验结果作出了重要的预言。他认为,假如半导体片的厚度与表面空间电荷区厚度相差不多,就有可能用垂直于表面的电场来调制薄膜的电阻率,从而使平行于表面的电流也受到调制。这就是所谓“场效应”。可是,当人们按照肖克利的理论设想进行实验时,却得不到明显的效果。

  肖克利认识到自己在实验能力方面的不足,求助于部门成员约翰·巴丁(John Bardeen,1908年5月23日—1991年1月30日)和沃尔特·布拉顿(Walter H. Brattain,1902年2月10日—1987年10月13日)。巴丁是一位优秀的理论物理学家,他提出了半导体表面态理论,解释了在外加电场的作用下,电子被吸引到半导体的表面并被束缚在那里,形成了严密的屏蔽作用,从而导致一直观测不到场效应。

  为了破除屏蔽作用,经过反复尝试他们终于想出一个好点子:在锗表面安置两个靠得非常近的触点,近到大约5×10^-3厘米的样子,这样既可以不让二者直接连通,又可以破除屏蔽作用。但最细的导线直径都要10×10^-3厘米,要安置这么近的触点几乎不可能。实验经验丰富的布拉顿想出了一条妙计。他剪了一片三角形的塑料片,并在其狭窄而平坦的两条侧面上牢牢地粘上一条金箔。然后用刀片在三角形塑料片的顶端对金箔拉了一刀,把它割成两半(这样靠得非常近的触点就有了)。再用弹簧加压,把塑料片和金箔一起压在锗片上。于是,他们做成了世界上第一只半导体三极管放大器,取名为trans-resistor(转换电阻),后来缩写为transistor,中文译名就是晶体管。

第一块晶体管组成说明

  当天巴丁与布拉顿制作出晶体管时,肖克利没在现场,后来闻讯才赶过来见证了晶体管的放大效果。但他知道这样的点接触型晶体管实用性不强。它同矿石检波器一样,利用触须接点,不稳定,噪声大,频率低,放大功率小,性能还赶不上电子管,制作又很困难。他投入了紧张的工作,要发明一种更先进的晶体管。

  1948年4月,ENIAC团队通过线路改造使ENIAC具备了存储程序的能力,但其容量对于程序来说还是太小了。实现存储程序的关键是建造容量足够大的内部存储器,要既有不拖累电子运算的访问速度,也要有相对低廉的成本。一时间,沿着冯·诺依曼结构指明的道路,计算机界百花齐放,涌现出各种不同的存储器。

  同年5月12日第一台冯·诺依曼结构的计算机ARC2在英国投入使用。它是由伦敦大学伯贝克学院的物理学家安德鲁·布思(Andrew Donald Booth,1918年2月11日-2009年11月29日)研制的,这台计算机设计用于X射线研究,原名ARC(Automatic Relay Calculator,自动继电器计算器)。布思在一次赴美的学术访问中接触到了冯·诺依曼,经过一番交流,他豁然开朗,回国后旋即将ARC升级为冯·诺依曼结构,改称ARC2。

  ARC2是机电结构的主要由继电器构成,只包含少量的电子管,其存储器是表面覆盖着金属镍的滚筒状磁鼓。访美期间,布思发现美国人使用的录音机是在一种表面覆盖着磁性氧化物的圆形纸片上记录声音的,由于磁性物质具有南北两极,可以表示二进制数据,布思决定把它引进到计算机中。但是圆形纸片太软了,在高速旋转时难以保持平坦,布思便改用了不会变形的磁鼓,与软盘的发明失之交臂。

这是用于验证的磁鼓存储器原型,ARC2上实用的磁鼓要更大些

  ARC2的磁鼓可以存储256个字长为21位的字,磁鼓表面被均匀地划分为5376块小区域,每块小区域存储一个二进制位。靠近磁鼓表面的地方有个导电的读写头,当读写头中有电流经过,由磁效应产生的磁场会将正对读写头的小区域磁化,即小区域中的金属镍整齐地将南极(或北极)指向同一个方向,电流的方向相反,磁化的方向也就相反,两个方向分别表示0和1。反之,利用电磁感应原理,当磁鼓旋转时,磁化方向各异的区域依次掠过读写头,读写头中就会产生方向不断变化的电流,便读到了二进制数据。ARC2成功后,布思创办了一家公司,专门生产磁鼓和其他计算机部件。磁鼓存储器一直风靡至60年代,直到被后来速度更快的磁芯存储器赶下舞台。

  同年11月,肖克利的论文《半导体中的P-N结和P-N结型晶体管的理论》发表于贝尔实验室内部刊物。肖克利构思出了更先进的“双极结型晶体管”(Bipolar Junction Transistor,BJT),其结构像“三明治”夹心面包那样,把N型半导体夹在两层P型半导体之间。这是一个天才的伟大设计!直到双极结型晶体管出现,晶体管才真正具备实用价值。也是从这时开始拉开电子管退出历史舞台,晶体管逐步上位的序幕。

晶体管的三位发明人:巴丁(左)、肖克利(中)、布拉顿(右)

  晶体管的出现是电子技术发展史上一座里程碑。同电子管相比,晶体管具有诸多优越性:

  1. 晶体管的构件是不会消耗的。无论多么优质的电子管,都将因阴极原子的变化和慢性漏气而逐渐劣化。晶体管的寿命一般比电子管长100到1000倍,称得起永久性器件的美名。

  2. 晶体管消耗电子极少,仅为电子管的十分之一或几十分之一。它不像电子管那样需要加热灯丝以产生自由电子。一台晶体管收音机只要几节干电池就可以半年一年地听下去,而电子管收音机完全做不到。

  3. 晶体管不需预热,一开机就工作。显然,在军事、测量、记录等方面,晶体管是非常有优势的。

  4. 晶体管结实可靠,耐冲击、耐振动,这都是电子管无法想象的。

  5. 晶体管的体积只有电子管的十分之一到百分之一,放热很少,可用于设计小型、复杂、可靠的电路。晶体管的制造工艺虽然精密,但工序简便,有利于提高元器件的安装密度,为发展为集成电路铺平了道路。

  正因为晶体管的性能如此优越,晶体管诞生之后,便被广泛地应用于工农业生产、国防建设以及人们日常生活中,最终使人类社会面貌发生翻天覆地的变化。

  如果您想了解晶体管诞生的更多细节及技术原理,请看我写的一篇番外:第一块晶体管背后的故事(《计算机发展时间线》番外)


第八回 两书生商场饮恨,直拉法晶圆现世

  同年12月世界上第一家商业计算机公司EMCC(Eckert-Mauchly Computer Company)宣告诞生,由ENIAC的研制者莫奇利任董事长,埃克特担任副董事长兼技术总监。

  在ENIAC成功运行以后,宾夕法尼亚大学认为ENIAC属职务发明,要求莫奇利和埃克特将ENIAC专利交还给大学。两人负气出走,在费城一栋临街的小楼里,组建了ECC(Electronic Control Company,电子控制公司),但他们没有给公司注册。埃克特对外宣称,他要设计一台新型计算机,以便遵照冯·诺依曼提出的“储存程序”原则。

  莫奇利则负责寻找可能的客户。找客户非常重要,因为他俩已经没有工资,如果不想公司关门,他们就必须拿到订单。他想起美国10年一次的人口普查已经过去了4年,人口普查局应该愿意用新型计算机替代机械制表机,快速处理普查数据。莫奇利的想法恰好与人口普查局不谋而合。美国政府要求下一次普查扩大调查项目,老式制表机的能力早就不能满足需要。双方相谈甚欢,拍板立即合作。但是根据美国有关规定,政府的公用部门是不能和厂商签订科研开发合同的,而普查局正是属此类部门。过去一直在象牙塔里待着的莫齐利和埃克特哪里知道还有这么一条法令。眼看着合同就要泡汤。

  好在凭着过去干ENIAC时结下的善缘,他们找到了美国国家标准计量局和陆军军械部,这两家属于专业部门不受法令限制。这帮人搞出了一个层层转包的套路:军械部出资30万美元,将钱打到人口普查局账上,然后又转给标准计量局,由标准计量局出面和电子控制公司签开发合同,最后成果由这三个国家单位共享。合同是签下来了,但是问题才解决了一半。美国还有条规定,凡政府专业部门与商业公司开发项目时,必须由专家顾问组对项目进行论证。同时,为了严防政府部门与商家间有“猫腻”,任何项目都采取公开招标形式。还好当时没有别的计算机公司来竞标,直接中标(这规定漏洞太大,不够三家该流标啊!)。这样直到1946年9月,合同才正式过审。合同写明,事成之后,电子控制公司可拿到7.5万美元的酬金。

  正为拿下合同而兴奋的埃克特和莫齐利,到开始做详细预算时却大惊失色,发现以前提出的预算根本不够。按埃克特的设计方案,这台计算机将由5000只电子管组装,名字叫UNIVAC(Universal Automatic Computer,通用自动电子计算机)。仔细核计后,UNIVAC的总造价高达40万美元。而合同上规定,造价是30万美元,工钱是7.5万美元。这样一来,电子控制公司还要倒贴进去2.5万美元。

  情急之下,莫奇利和埃克特居然想起自己的“品牌”效应,他俩的名字就是无形资产,完全可以用这种资产去吸引客户,把UNIVAC“克隆”出一台,寻找其它买主再卖一次。为了正式开展业务,他们注册成立了EMCC。不久,就有一家诺斯罗普飞机公司(Northrop Aircraft Co.)要求定购一台同类机器,作为研制利用天体导航技术制导远程导弹(拿的美国空军的订单)的小型计算机,取名BINAC(Binary Automatic Computer,二进制自动计算机)。于是两台机器在EMCC公司同时上马。

  同年,爱荷华州立大学准备将物理大楼的地下室改造成教室,发现放在这里的ABC机比房间门要宽7厘米根本弄不出去。而且由于ABC整体是用钢条焊死的,他们只得把它锯成小块,除了一个滚筒存储器,其它部分都给扔了。

  1949年,由奥地利工程师科特·赫兹斯塔克(1902年—1988年)设计的科塔计算器正式进入全球市场,售价125美元。

赫兹斯塔克的父亲是个犹太人,在维也纳开了一家“奥地利计算器”公司,该公司是奥地利第一个山寨美国机械计算器的企业。成年后的赫兹斯塔克在父亲的公司中做技术管理工作,他一直被培养以继承家里的企业,所以不但受到了销售和管理的训练,还学习了机械设计和制造,方便他了解这些精密仪器是怎么生产的。赫兹斯塔克早在1938年就完成了科塔的设计并申请了专利,但因为纳粹的统治与二战的原因无法开始生产。后来他因一些莫须有的罪名被关进了布痕瓦尔德集中营。这个集中营是主要的V2火箭生产基地,很多犹太还有外国工程师都被各种各样的罪名指控送到这里,有些还是冯·布劳恩(二战美国人得到的最大战利品,这里就不展开说了)亲自挑选的。集中营看中了他设计的计算器,要求他做出科塔的详细图纸,准备战后献给希特勒作为庆贺胜利的礼物。二战结束后,历尽磨难的赫兹斯塔克才有机会把科塔的设计付诸实现。

  科塔计算器一出现就在工程师,会计,技术员之间中引起了追捧。因为它除了计算功能以外,简直就是一个夺人眼球的精巧玩具。当初销轮计算器为了减小计算器尺寸将“莱系”架构的核心步进轮拍扁为销轮。科塔的改进思路不同,并没有放弃步进轮,而是抛弃了莱布尼茨和托马斯定下的机器形态,将长方体的机器改为圆柱体,并将数字的排列从同一平面改为环绕在步进轮周围,计算手柄和清零拉环则放在顶部。这种设计充分利用了机器内部空间,机器小到可以握在手里、放进口袋。因为顶部的拉环,科塔被称为“数学手雷”。科塔计算器是机械计算器最后的辉煌

  科塔计算器专利在1966年被卖给瑞士公司希尔提,希尔提在1972年结束了科塔计算器的生产,因为此时早期的电子计算器上市了。20年来一共有15万台科塔计算器被制造出来。

  想更多领略这个上世纪中叶机械与美学结合典范风采的,请看这个视频:Curta Type I 第一代手摇计算器https://www.bilibili.com/video/BV1jJ411G7Yd/

  同年8月,在经过一系列测试之后,历史上第一台商业计算机BINAC由制造商EMCC交付给诺斯罗普飞机公司。BINAC抢在UNIVAC之前完工了。

BINAC大型机,左图为实物,右图为结构图解

  BINAC机器名称中的“Binary”不但指机器采用二进制,还指它采用了两个CPU,以提高机器的可靠性(这是诺斯罗普公司所要求的)。两个彼此独立的CPU,每个使用了约700个真空管,同时都配有512字的水银延迟线存储器。

水银延迟线存储器

  水银延迟线存储器本来是埃克特设计来作为EDVAC的存储器。二战期间,他在莫尔学院上本科的时候,他就利用延迟线为军队发明了用于雷达测距的装置。什么是延迟线呢?这就要说到雷达的原理了。对于雷达而言,移动的物体是关注的重点,但收到的反射波大部分是属于静止物体的。如果不做过滤,屏幕上就会显示大片静止物体的亮点,干扰对移动点的观察。为了过滤静止物体的无用信号,人们将接收天线收到的信号分成A和B两路,A路信号直通显示屏,而B路信号则要通过一个“路障”才能到达显示屏。这个“路障”的作用是减缓B的行进,使它比A延迟一段时间。我们知道,信号在电路中的传递是极快的,要拖慢它,可以将它转换成其他形式。人们首先想到的是声音,让B在途中以声音的形式传递一段距离。而让B转换为声音的装置就是水银延迟线。

水银延迟线在雷达中的使用

  当B到达延迟线的入口,名为压电传感器的电声转换器件就会将它转换为声波,待声波传播到延迟线的出口,压电传感器再将它转回电信号。通过调整延迟线的长度,可以让B比A慢半拍(n+0.5个信号周期)。这就使它们的波形正好相互颠倒。如果信号来自静止的物体,因为其频率相等,A和延迟后的B汇合后自动抵消;而来自移动物体的信号因为多普勒效应频率会不断变化,A和延迟后的B汇合后无法完全抵消,就能够最终在屏幕上显示。

  那么用作信号“路障”的延迟线和数据存储又是怎么搭上什么关系的呢?这就是埃克特的天才之处了。所谓创新有原生创新,还有组合创新。埃克特就是一个组合创新能力超强的人。我们看看他是怎么设计的:在一个电回路中,任一时刻都只能存在一位二进制信号,当下一位产生时,前一位也就消失了。而有了延迟线,当前一位信号还在水银中传播时,下一位信号就可以产生并紧跟着进入水银,它们可以同时存在于这个回路中。到延迟线的输出端,经过放大、整形抵消声电转换过程中的损耗后,经由回路再次进入延迟线。每一位信号都从延迟线左端进入,排着队经过延迟线,再从右端流出,又重新进入延迟线,不断循环,这就实现了存储。而在读取时,一连串信号排着长队在回路中有序地循环着,而每个时钟周期会有一位信号以电流的形式存在于延迟线之外,因此任意时刻只能顺序读取存储数据中的一位,因此这类存储器称为“顺序存储器”(Sequential Memory)或叫“循环访问存储器”(Cyclic-Access Memory),而我们现在常用的存储器称为“随机访问存储器”(Random Access Memory,RAM),名称就是相对它而来的。

水银延迟线存储器原理图

  水银有很多缺点,不但重,而且贵,还有毒,并且水银中的声速受温度影响较大,延迟线需要在40℃的恒温环境下才能正常工作。那么为什么还要选择水银呢?那是因为它和石英材质的压电传感器有着相近的声阻抗,可以减少能量损耗和回声的产生。对此,图灵曾提出可以使用金酒(一种原产于荷兰的烈酒)代替水银,真可谓挖空心思。

  BINAC正式交付给诺斯罗普后,诺斯罗普员工说, BINAC从来没有正常工作过。虽然它能胜任一些小任务,但作为生产工具来说并不实用。而对于EMCC来说,这桩买卖更是苦不堪言,在BINAC交货后,他们算账时发现亏损高达18万美元!

  BINAC虽然不是一个成功的产品,但它开启了一个商业计算机的时代。以前的计算机要么是为了自用,要么是国家计划的产品,而BINAC是一个第一个根据订单生产的商业计算机产品。

  同年5月6日,EDSAC(Electronic delay storage automatic calculator,电子延迟存储自动计算器)由英国剑桥大学数学实验室莫里斯·威尔克斯教授(Sir Maurice Vincent Wilkes,1913年6月23日—2010年11月29日)和他的团队研制成功。它比BINAC早3个月面世,因此它才是第一台使用水银延迟线存储器的计算机。这台在缩写上与EDVAC仅相差一个字母的机器,以EDVAC为设计蓝本却比正版更早面世。1946年5月,威尔克斯获得了冯·诺伊曼起草的EDVAC计算机的设计方案的一份复印件。威尔克斯仔细研读了的冯·诺伊曼的著作后觉得心明眼亮,立即安排当年8月亲赴美国参加莫尔学院举办的计算机培训班,广泛地与EDVAC的设计研制人员进行接触、讨论,进一步弄清了它的设计思想与技术细节。

  EDSAC还是史上第二台具有冯·诺依曼结构的存储程序计算机,同时也是第一台冯·诺依曼结构电子计算机。EDSAC使用了约3000个真空管,排在12个柜架上,占地5×4米,功率消耗12Kw。它使用了16条水银延迟线,每条可存储32个字,每字18位。由于每个字的最后一位用作两个字之间的间隔符,单字实际可用17位。当字长不够,需要两个字组合使用时,双字实际可用35位。

EDSAC

  在设计与建造EDSAC的过程中,威尔克斯并不是简单地模仿和照搬EDVAC的设计,而是创造和发明了许多新的技术和概念。诸如“变址”(威尔克斯当时称之为“浮动地址"——floating address);“宏指令“(威尔克斯当时称为“综合指令"——synthetic order);微程序设计(将每一条机器指令的执行分解为一系列更基本的微命令。将可同时执行的微命令组合在一起形成微指令。所谓微程序就是用微指令编写出来的一段微指令序列);子例程及子例程库,所谓子例程即subroutine,就是可用于一个或多个计算机程序中,也可用在一个计算机程序的一处或多处的子程序,其目的在于将复杂的任务分解成若干较小的单位,以便于分别处理;高速缓冲存储器即Cache(位于中央处理器与主存储器之间,对程序员透明的一种高速小容量存储器,以提高处理速度)……。所有这些都对现代计算机的体系结构和程序设计技术产生了深远的影响。

  同年10月2日,美籍华人科学家王安(1920年2月7日—1990年3月24日)申请了“磁芯存储器”的专利。

王安从交通大学(今上海交大、西安交大前身)电机工程专业毕业后,作为一名高级工程技术人员,王安随技术团队藏身广西山区,研究无线电通讯设备,为抗日战争做后援。1945年抗战胜利后,王安被公派至美国,进入哈佛大学深造。1948年,王安顺利获得了哈佛大学应用物理学博士学位后,加入艾肯的计算机实验室,参与Mark IV的研制。没过多久,他就发明了磁芯存储器,大大提高了Mark IV计算机的存储能力。

  磁芯存储器是基于磁芯会被电流改变磁化方向的原理设计。事先可以通过实验和材料的工艺控制得到这个能够让磁芯磁化的电流最小阈值。每个磁芯都有XY互相垂直的两个方向的导线穿过,另外还有一条斜穿的读出线。这些线组成阵列,XY分别做两个不同方向的寻址。磁芯根据磁化时电流的方向可以产生两个相反方向的磁化,这就可以作为0和1的状态来记录数据。

磁芯被不同电流方向改变磁化方向

  写入的时候在需要写入的磁芯所对应的XY坐标线上各输入稍高于50%磁环磁化阈值的电流,所以这样只有XY坐标对应的那个磁芯上会同时在两条线中都有电流,叠加之后会超过阈值的电流,磁芯因而磁化或者改变磁化方向从而写入一位数据,而其他所有的磁芯内通过的电流或者是0,或者是50%磁化阈值,都达不到磁化电流不能被磁化,所以没有数据写入。

  读出的时候比较复杂,分别在XY送入读出电流,读出电流的大小和写入的时候一样也是略大于50%磁化阈值的电流,读出电流的方向我们是事先知道的,这样在XY寻址坐标所对应的那个磁芯里就会有超过阈值的电流,如果它的本来磁场方向和读出电流所对应的磁场方向相反的话,那么由于磁芯的磁性状态发生翻转,有巨大的磁通量变化,在斜穿的读出线上就会有大的感应电流,所以我们就知道这个磁芯存储的是和读出信号相反的数据。如果它的本来磁场方向和读出电流所对应的磁场方向一样的话,那么由于磁芯的磁性状态没有发生变化,在斜穿的读出线上就不会有感应电流,所以我们就知道这个磁芯存储的是和读出信号相同的数据。磁芯中的数据就这样被读出了。不过值得注意的是这时候在读完数据之后显然无论原来磁芯上存的是什么数据,读过之后就都被写成同样的读出数据了,也就是这属于破坏性读出。所以读完之后还需要立即重写一遍原先的数据进去。

每格有16×16=256位,共有4格,总共可存储1024位

  磁芯存储器的优势在于掉电以后磁化方向不会改变,因此可以实现永久保存。同时,因为其XY阵列结构,给定地址后可以任意访问存储器中任何一位,这是技术的一大进步。

  同年11月8日,祖思成立了一家名为Zuse KG的新公司,将Z系列产品持续迭代至Z43,在1967年被西门子收购之前,共生产了251台计算机。祖思的晚年荣誉加身,成为德国和世界计算机界公认的祖师级人物。1984年,柏林以他的名字专门设立了一个研究数学和计算机科学的科研机构——柏林祖思研究所(Zuse Institute Berlin/ZIB)。1987年,德国信息学会设立最高奖项“康拉德·祖思奖”,每两年表彰一次国内杰出的计算机学家。

  1950年2月,莫奇利和埃克特不得不宣告破产。只维持了一年零三个月的EMCC被著名打字机生产厂商雷明顿—兰德(Remington-Rand)公司收购,并接收了UNIVAC的制造业务。EMCC成了世界上第一家破产被兼并的计算机公司

  雷明顿公司是一家老牌军火商。1873年,雷明顿公司买下克里斯托夫·肖尔斯(Christopher Latham Sholes)发明的键盘式打字机的生产权后,开始制造办公机器。肖尔斯键盘即著名的“QWERTY”键盘,至今仍是计算机键盘字母的排列标准。1927年,雷明顿与兰德公司合并,除打字机外,还生产制表机、打孔机、办公柜,并发明了第一把电动剃须刀。收购EMCC后,雷明顿—兰德开始涉足电子计算机制造。莫奇利和埃克特留任,负责继续制造UNIVAC。

莫齐利(左)和埃克特(右)

  虽然埃克特和莫齐利生意没有做成功,但是他们是“吃”计算机产业化这只“螃蟹”的第一人,作为功成名就的大教授下海经商也是开一时风气之先,他们敢于开拓的精神激励着后人。

  同年3月10日,图灵倡议的ACE的简化版Pilot ACE计算机开始运行。完整的ACE直到图灵去世之后才建成。

  同年,图灵第二篇影响世界的论文《计算机与智能》发表。在那个电子计算机才刚刚起步的年代,高瞻远瞩的图灵用一个问题叩开了人工智能的大门:“机器会思考吗?”。图灵认为真正的智能机器必须具有学习能力,他以人的成长为参照模型描述了制造这种机器的方法:先制造一个模拟童年大脑的机器,再进行教育训练。文中还提出了著名的图灵测试(Turing test):让一台机器躲在挡板后回答测试人员的提问,看测试人员能否判断自己面对的是机器还是真人。能否通过图灵测试,是衡量机器智能程度的重要指标。论文中提到“罗浮莱斯夫人异议”(Lady Lovelace’s Objection,AI不能做出真正的思考)。表明图灵读过艾达的笔记。这位“人工智能之父”乐观地预言:到2000年,计算机应该能“骗过”30%的测试人员。(后辈无能,对不起先贤了!)

  同年7月12日,苏黎世联邦理工学院买下了祖思的Z4用于数学和工程研究,Z4成为历史上第二台商业计算机,同时也是当时欧洲大陆唯一在役的计算机。

  1950年4月,贝尔实验室两名科学家戈登·蒂尔(Gordon K Teal,1907年1月10日—2003年1月7日)和摩根·斯帕克斯(Morgan Sparks,1916年7月6日—2008年5月3日)终于将肖克利设计的双极结型晶体管实现。

戈登·蒂尔(左)和摩根·斯帕克斯(右)

  研制PN结锗晶体管在技术上最大的难点就是缺乏足够纯净、均匀的半导体“锗”材料。蒂尔大胆的提出了一个设想—半导体“单晶体”,他认为,需要先制造出一个大的“锗单晶”,才有可能进行P型或者N型的掺杂。通过反复的论证,蒂尔最终选择并借鉴了波兰化学家简·切克劳斯基(Jan Czochralski,1885年10月23日—1953年4月22日)在1917年提出的连续直拉法(CZ法)技术。蒂尔借鉴CZ法的原理,把一个小小的“晶籽”—锗晶体悬浮在熔融锗的坩埚中,然后将籽晶插入熔体表面进行熔接,同时转动籽晶,再反转坩埚,籽晶缓慢向上提升,经过引晶、放大、转肩、等径生长、收尾等过程,单晶体就逐渐生长出来了,最终形成一个又长又圆的锗单晶。

蒂尔直拉法制备硅单晶体

锗单晶成功制成之后,PN结晶体管的研制就变得相对容易了。斯帕克斯率先采用了蒂尔的方法,通过在晶体生长过程中向熔融的锗滴入微小的杂质颗粒,最终形成了一个非常简陋的PN结,这也是全球半导体产业第一个PN结。随后,蒂尔和斯帕克斯开始将目光转向了NPN结晶体管。他们在熔融的锗中加入了“两个连续的小球”,一个具有P型杂质,一个具有N型杂质,最终在内层形成了具有一层很薄的基层—NPN结构。在新工艺的催生下,双极结型晶体管终于得以现世。

世界上第一个NPN结型锗晶体管

  同年,在范内瓦的建议下,美国成立国家科学基金会(National Science Foundation,NSF),任务是通过对基础科学研究计划的资助,改进科学教育,发展科学信息和增进国际科学合作等办法促进美国科学的发展。


第九回 学科祖魂归天界,双子星降临人间

  1951年,EDVAC计算机完成了建造。EDVAC使用了大约6000个真空管和12000个二极管,占地45.5平方米,重达7850千克,消耗电力56千瓦,运算速度达到了ENIAC的十倍,这也是冯·诺依曼的设想第一次完全得到实现。

EDVAC

  EDVAC于1949年8月已经交付给弹道研究实验室,但后来发现了许多问题,直到1951年EDVAC才正式运行,却局限于基本功能。其后几经硬件升级,一直正常运行到1961年。造成其进度拖延的一个重要的原因就是冯·诺依曼、莫奇利、埃克特、戈德斯坦、伯克斯等人都先后离开了EDVAC项目组。

  同年的6月14日,UNIVAC-1交付美国人口普查局用于人口普查,使计算机走出了实验室,开始为社会服务。从此人类社会进入了计算机时代,计算机的应用也同时进入了一个新的、商业应用的时代。

UNIVAC-1全景

  UNIVAC-1占地26.7平方米,重量7.2吨。真空管数量为5600只,与ENIAC相比,仅为三分之一以下。还使用了1.8万只半导体二级管,300个继电器,存储器为100只水银延迟管。

UNIVAC-1内部

  UNIVAC-I第一次采用磁带机作外存储器,共配有10台磁带机。也是第一台使用缓冲区存储的计算机。由于对磁带的读写操作被缓存,因此它们可以独立于其它任务进行,从而大大提高了吞吐量。这两个特性使UNIVAC-I非常适合大型数据处理任务。UNIVAC-I使用的磁带卷中有8条半英寸宽的磁带,磁带上每寸可存128位,每卷有1200英尺长,意味着每卷可存储约1500万位(按现在算法约为2M字节)。磁带容量大也足够便宜,但缺点主要是访问速度慢,访问时需要正转或反转很长距离才能到特定的位置。

UNIVAC使用的磁带机(左)和磁带(右)

  UNIVAC是一个非常成功的商业产品,后续又卖出了46台,客户包括政府与军队机构以及知名公司。美国人口普查局使用的那台UNIVAC-I总共运行了7万多个小时,人口普查局工作人员在这台计算机上创建了许多用于排序和处理大数据文件的开创性软件程序。

  同年,在已升任斯坦福大学副校长的弗雷德·特曼的筹划下,斯坦福研究园区(Stanford Research Park)成立,这是第一个位于大学附近的高科技工业园区。二战结束后,美国大学毕业学生骤增,毕业生就业压力突然增大。斯坦福研究园区里一些较小的工业建筑以低租金租给一些小的科技公司,给毕业生提供了就业机会,也为大学增加了经济来源。这些公司应用大学最新的科技,后来成为重要的技术诞生地。

  同年,苏联的第一台电子计算机在乌克兰电气工程研究所的计算机设备实验室中问世,研发工作在谢尔盖·阿列克谢耶维奇·列别捷夫领导下完成(谢尔盖·列别杰夫,乌克兰人,苏联科学学院院士,1946年乌克兰电气工程研究所所长。苏联计算机工业的创始人)。

谢尔盖·列别捷夫

  这台计算机被称为MESM(МЭСМ,小规模电子计算机),尽管用了“小”这个词,但是个头非常夸张。它占地面积60平方米,有6000个电子管,总功率25千瓦。每分钟可以进行3000次加减乘除法计算。由于忽略了6000个电子管一起工作时的发热量,计算机工作时,机房成了研究所的“非洲地带”,工作人员不得不把机房天花板去掉改善散热条件。

MESM

  同年,王安离开哈佛,怀揣着仅有的600美元开始创业,在一个车库中创办了“王安实验室”,开始售卖他拥有专利的磁芯存储器。IBM看出磁芯存储器将会有很广阔的前景,于是便提出用250万美元向王安购买这一专利技术。不过后来IBM又凭借自己的行业地位,将出价压低到了50万美元。身处弱势的王安最后不得不向IBM妥协,接受了50万美元的报价。之前王安博士毕业后曾去IBM应聘,面试官轻蔑地对他说:IBM是美国最好的企业,这里不适合你,你还是找个汽车修理厂试试吧。这两件事让王安倍感屈辱,使得他和IBM的恩怨贯穿一生。

  1952年,肖克利心心念念的场效应管被制造出来,是使用他的结型结构制成的结型场效应管(Junction-FET,JFET)。如今,场效应管比双极结型晶体管应用更为广泛。

  同年,格蕾斯·霍波(Grace Murray Hopper,1906年12月9日—1992年1月1日)使用UNIVAC-I发明了世界上第一个编译器 :A-0系统 。编译器是将高级语言转换成机器代码的程序。

格蕾斯·霍波(中)在操作UNIVAC

  A-0系统(A-0 System),全名为算术语言版本0(Arithmetic Language version 0)。它实际上是一组指令,可以将数学符号代码转换为机器代码。在制作A-0时,霍波贡献了她多年来积累的所有子例程(subroutine)并将它们存放在磁带上。每个子例程都有一个调用号,以便机器可以在磁带上找到它。霍波说:“我要做的就是写下一组调用号,让计算机在磁带上找到它们,将它们取出来并执行。这就是第一个编译器。”

  在A-0之后,霍波及其小组又推出A-1和A-2版本。A-2编译器是第一个被广泛使用的编译器,为开发编程语言铺平了道路。

  同年下半年,适逢美国大选。共和党候选人是62岁的艾森豪威尔,但是新闻媒体普遍看好民主党竞选人史蒂文森。为了对选举资料进行处理,美国的哥伦比亚广播公司租用了了一台UNIVAC来预测大选结果。在大选进行之前,几乎所有的专家和媒体从不同角度、运用各种方式预测的结果几乎一边倒,都认为当时参与竞选的双方得票结果将会是“势均力敌”、“难分伯仲”。然而,在选举结束后仅仅45分钟,UNIVAC就计算出“艾森豪威尔将得票数为438票”,也就是说他将“以绝对优势赢得这场选举”。但是限于当时人们对计算机的性能尚不了解,所以广播公司拒绝对计算机预测的结果进行报道,UNIVAC的制造商雷明顿—兰德公司慌了手脚下令工程师删改UNIVAC的运算数据,以便和广播电视保持一致。操纵计算机的工程师们不得不重新进行了运算。但是“UNIVAC”计算机预测的结果仍然是“艾森豪威尔将大获全胜”。选举结果正式揭晓后,艾森豪威尔的实际得票数为442票,得票数超过对手五六倍。“4票之差”说明UNIVAC的预测误差率不到1%!媒体、舆论和民众为这一事实所震惊。哥伦比亚公司的广播电台著名节目主持人在新闻节目中夸称UNIVAC是“无与伦比的电子大脑”。这一事件在一夜之间把计算机推举到万众瞩目的地位,雷明顿—兰德公司也因此成为美国早期计算机制造业当中最有影响力的公司之一。

  同年12月,蒂尔离开贝尔实验室,加入德州仪器公司,成为其第一位半导体领域的研究负责人。在他的领导下,德州仪器公司在1954年成功的制造了全球半导体产业界第一个商业化的硅晶体管。

  1953年,磁芯存储器被首次大规模使用,在麻省理工学院研制的Whirlwind I(旋风1号)计算机上,共使用16块磁芯存储器,每块磁芯数为32×32,共可以存储16384位。

Whirlwind的磁芯存储器

  第二次世界大战中,为训练轰炸机飞行员,美国海军曾向麻省理工学院探询,是否能够开发出一款可以控制飞行模拟器的计算机。军方当初的设想只是希望通过该计算机将飞行员模拟操作产生的数据实时反映到仪表盘上。与之前的模拟设备不同,军方要求该计算机应基于空气动力学设计,与实物无限接近,以便进行各种航空训练。MIT对军方拍胸脯保证没问题。于是海军以“旋风计划”(Whirlwind project)为名,开始向该工程提供资金,该校林肯实验室数字计算部负责人杰伊·福里斯特教授(Jay Wright Forrester,1918年—2016年,系统动力学之父)被选任为项目负责人。

杰伊·福里斯特与Whirlwind合影

  研发人员起初开发的是大型模拟计算机,准确度和灵活度均达不到要求。1945年,项目组成员杰里・克劳福德在观看过ENIAC的试运行后,提议以数字计算机作为项目的解决方案。其优点在于,由追加程序取代追加零件,将有可能提高模拟的准确度。当时的主流观点已经认为,计算机拥有极其高速的运算速度,无论如何复杂的模拟,理论上均可实现。

  修改设计后,实体机于1951年4月20日问世。Whirlwind的开发最早是应海军的要求,海军方面为该项目提供数百万美元的经费,因耗时太长已逐渐失去兴趣。1949年,苏联第一颗原子弹试爆成功,美国空军为加以应对,将Whirlwind接手以打造半自动地面环境系统(Semi-Automatic Ground Environment,SAGE)。

  Whirlwind起初的运算速度只有20kips(每秒执行的指令数),问题主要集中在主存储器使用的威廉姆斯管上。为解决难题,福里斯特最终选择了磁芯存储器,并对它进行了改进。之后,读取存储器用时由原来的8500微秒变为仅为8微秒,运算速度也提升一倍,成为当时世界上运算速度最快的计算机。此外,福里斯特还首创使用键盘作为计算机输入设备,因此Whirlwind获得了“最贵的打字机”的外号。同时因为Whirlwind的设计目的是在仪表上实时显示飞行员模拟训练数据,它是第一台实时操作的计算机,并采用了显示器作为视频输出。

  在Whirlwind设计完成并运营之后,更大更快的Whirlwind II设计工作也随之展开。但很快,这种工作耗费了麻省理工学院太多资源。为此,校方决定不研制Whirlwind II,只将精力集中在原机的编程应用上面。后来IBM在Whirlwind II的基础上设计出AN/FSQ-7。有时AN/FSQ-7会被错误地称为“Whirlwind II ” ,其实它们并不是同一种机器或设计。AN/FSQ-7在SAGE中发挥了重要作用——能够显示跟踪的目标,并自动显示哪些防御工事在范围以内。AN/FSQ-7拥有100个系统控制台,下图是其中之一。

  同年,由于与同事的分歧,威廉·肖克利离开贝尔实验室,孤身一人回到他获得科学学士学位的加州理工学院。在这之前,由于不满他的打压,巴丁已于1951年离开贝尔实验室,到伊利诺伊大学香槟分校任教。

  同年,磁鼓存储器进一步完善。它的原理是在金属筒表面覆盖磁性材料以记录数据。周围排列数十个读写头,金属筒以每分钟上千转持续旋转,当转到正确位置时读写头就会读或写1位数据。当年已经可以买到容量为8万位的磁鼓存储器。磁鼓存储器后来发展成为硬盘。

磁鼓存储器

  同年4月7日,IBM正式对外发布自己的第一台商用电子计算机IBM701,也是第一款批量制造的大型计算机。IBM 701的设计以EDVAC为蓝本,存储器由72个威廉姆斯管组成,共2048个字节,每个字节36位。IBM700/7000系列包括704、705、709、7040、7090等产品。

IBM 701

  为宣传该产品,当年1月7日,在IBM纽约总部,进行了一场使用IBM 701型计算机将60个俄语句子自动翻译成英语的试验,这是世界上首次机器翻译。“一位不懂俄语的女孩在IBM的卡片上打出了俄语信息。‘电脑’以每秒2.5行的惊人速度,在自动打印机上迅速完成了英语的翻译。”——IBM报道说。然而,这份洋洋得意的头条却隐藏了一个小细节。它并未提到翻译所用到的例子是经过了精心的挑选和测试,并排除了任何歧义。这个系统实际上相当于一本常用语手册,但是它成功地激发了全球机器翻译的竞赛。

  1954年6月7日,图灵被发现死于家中的床上,床头放着一个被咬了一口的苹果。警方调查结论是剧毒的氰化物中毒。

  1955年,贝尔实验室开发成功第一台晶体管计算机TRADIC,使用了大约800个晶体管和1 万个锗二极管,占地仅有3立方英尺。每秒钟可以执行1百万次逻辑操作,功率仅为100瓦。

TRADIC

  同年10月2日23时55分,运行了近10年的ENIAC正式退役。如今,其部件散藏于宾夕法尼亚大学、美国陆军军械博物馆、美国计算机历史博物馆、史密森学会等多家机构。

  同年2月24日,史蒂夫·乔布斯出生美国加利福尼亚州旧金山。10月28日,比尔·盖茨出生于美国华盛顿州西雅图。


  这正是:

天下风云出我辈,一入江湖岁月催。

皇图霸业谈笑中,不胜人生一场醉。


  20世纪前半叶是电子计算机大放异彩的时代,相对于现在的集成电路计算机,电子计算机就像是恐龙一样的存在。下面我们通过一个视频来领略一下这些巨兽们的风采:

计算机科学(2)电子计算机 


扩展阅读:

一篇读罢头飞雪:计算机发展时间线(上)

第一块晶体管背后的故事(《计算机发展时间线》番外)


未完待续……


整理摘抄自以下资料:

  1. 计算机发展历史https://www.cnblogs.com/lst1010/p/5785526.html

  2. 《书呆子的胜利-计算机发展史》(Triumph of the Nerds)[DVDRip] http://blog.sina.com.cn/s/blog_44f758a40102wbks.html

  3. 书呆子的胜利 中文字幕 经典PC产业纪录片 全3集https://www.bilibili.com/video/av19209011/

  4. 如果没有这20个理科生的存在,估计这世界要倒退100年https://www.sohu.com/a/258735599_722760

  5. 计算机发展史https://www.baike.com/wiki/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%8F%91%E5%B1%95%E5%8F%B2?view_id=cyfwu8jppw000

  6. 第一代计算机  http://www.360doc.com/content/15/0622/23/21786663_479896085.shtml

  7. 黄铁军:计算机出世—你所不知道的电脑秘史 你应该知道的电脑未来https://www.yangfenzi.com/hangye/69039.html

  8. Computing at Columbia Timeline  http://www.columbia.edu/cu/computinghistory/index.html

  9. 计算机编程领域最伟大的20个发明  https://www.evget.com/article/2015/11/10/22938.html

  10. 芯片战争-14:如果没有存储器,人类就没有硅文明 - 知乎  https://zhuanlan.zhihu.com/p/103203209

  11. Western Electric Company Inc.  https://www.britannica.com/topic/Western-Electric-Company-Inc

  12. 销轮计算器——走出阶梯轴的「笨拙」困境https://www.jianshu.com/p/096a8acb231a

  13. 按键式计算器——人机交互的变革https://www.jianshu.com/p/91d1a6cb82f4

  14. 制表机:穿孔时代的到来https://www.jianshu.com/p/49f23b77dced

  15. 图灵机:计算机世界的理论基石https://www.jianshu.com/p/4d8913db593f

  16. 图灵测试论文http://mind.oxfordjournals.org/content/LIX/236/433.full.pdf+html

  17. 带你深入理解图灵机--什么是图灵机、图灵完备 https://www.jianshu.com/p/c07d83c4f3a1

  18. 祖思机:第一台二进制可编程计算机https://www.jianshu.com/p/199b1538408d

  19. 长见识:苏联科学家用“水”来实现计算机,货真价实的“水脑”  https://www.toutiao.com/a6823716800618824200/

  20. 究竟是谁发明了电脑——计算机?http://www.360doc.com/content/16/0516/21/3328689_559705435.shtml

  21. Z1:第一台祖思机的架构与算法https://www.jianshu.com/p/cb2ed00dd04f

  22. 复杂数字计数机参考资料  https://baike.baidu.com/reference/4638558/5273eMQGMPmLrzs4A4EMhv3ALP9eHtw8st3zZu3zDFZJTi3GQTo-Km_RG3r8GR6hLp-IEYSxWjxIfoqseHNuxVaCwg_8CdmTpkNGnUTtJdxS0vVv

  23. 贝尔机:带你领略编码的魅力 - 简书  https://www.jianshu.com/p/81a39ff186a9

  24. History of Computers and Computing, Birth of the modern computer, Relays computer, George Stibitz  https://history-computer.com/ModernComputer/Relays/Stibitz.html

  25. 蠢蠢欲动的机电计算时代https://www.jianshu.com/p/1c7299cdd8fa

  26. 洛斯·阿拉莫斯国家试验室_百度百科  https://baike.baidu.com/item/%E6%B4%9B%E6%96%AF%C2%B7%E9%98%BF%E6%8B%89%E8%8E%AB%E6%96%AF%E5%9B%BD%E5%AE%B6%E8%AF%95%E9%AA%8C%E5%AE%A4/19512540?fromtitle=%E6%B4%9B%E6%96%AF%E9%98%BF%E6%8B%89%E8%8E%AB%E6%96%AF%E5%9B%BD%E5%AE%B6%E5%AE%9E%E9%AA%8C%E5%AE%A4&fromid=1818294&fr=aladdin

  27. 哈佛机:体验一把穿孔纸带上的编程https://www.jianshu.com/p/4f14e6cc8f7b

  28. 什么是冯诺依曼结构、哈佛结构、改进型哈佛结构?https://blog.csdn.net/u014470361/article/details/79774331

  29. (1条消息)计算机体系结构.计算机发展历史  https://blog.csdn.net/stringNewName/article/details/90443787

  30. 电子管发展史https://www.jianshu.com/p/36afa02de7d4

  31. 百度百科:李·德弗雷斯特https://baike.baidu.com/item/%E6%9D%8E%C2%B7%E5%BE%B7%E5%BC%97%E9%9B%B7%E6%96%AF%E7%89%B9/10735202?fr=aladdin

  32. 苏格兰人约翰·洛吉·贝尔德发明的第一部电视机  https://v.qq.com/x/page/d0374sxs7up.html

  33. 谁发明了电视?不止一个人的努力,电视发展起来不容易! https://baijiahao.baidu.com/s?id=1640277274280738590&wfr=spider&for=pc

  34. 约翰·洛吉·贝尔德_百度百科  https://baike.baidu.com/item/%E7%BA%A6%E7%BF%B0%C2%B7%E6%B4%9B%E5%90%89%C2%B7%E8%B4%9D%E5%B0%94%E5%BE%B7/5621226?fr=aladdin

  35. 世界上最早的电视图像是一个玩偶的脸  http://story.kedo.gov.cn/c/2015-10-10/816831.shtml

  36. AI芯天下丨约翰·阿塔纳索夫:被遗忘的计算机之父http://mp.ofweek.com/hr/a945673824826

  37. 百度百科:约翰·阿塔纳索夫https://baike.baidu.com/item/%E7%BA%A6%E7%BF%B0%C2%B7%E9%98%BF%E5%A1%94%E7%BA%B3%E7%B4%A2%E5%A4%AB/6659597?fr=aladdin

  38. 维纳与计算机  http://www.360doc.com/content/12/0407/16/9663732_201689254.shtml

  39. 百度百科:范内瓦·布什https://baike.baidu.com/item/%E8%8C%83%E5%86%85%E7%93%A6%C2%B7%E5%B8%83%E4%BB%80/1085792

  40. As We May Think https://www.theatlantic.com/magazine/archive/1945/07/as-we-may-think/303881/

  41. 科学网—别忘了模拟计算机 (180212) - 闵应骅的博文  http://blog.sciencenet.cn/blog-290937-1099526.html

  42. 计算机是如何计算导数及微分方程的?- asdasd1dsadsa的回答 - 知乎

https://www.zhihu.com/question/278402776/answer/399882927

  1. 硅谷(世界著名高科技产业区)_百度百科  https://baike.baidu.com/item/%E7%A1%85%E8%B0%B7/139194?fr=aladdin

  2. 弗雷德·特曼_百度百科  https://baike.baidu.com/item/%E5%BC%97%E9%9B%B7%E5%BE%B7%C2%B7%E7%89%B9%E6%9B%BC/8744329?fr=aladdin

  3. 超链接的概念来源——范内瓦·布什的《诚如所思》 https://xueqiu.com/3993902801/84635715

  4. 巨人机:第一台可编程电子计算机https://www.jianshu.com/p/1590810bb367

  5. ENIAC:第一台通用电子计算机  https://www.jianshu.com/p/de3d55ccae2f

  6. 冯·诺依曼结构:现代计算机的诞生  https://www.jianshu.com/p/45d831bc9596

  7. [笔记本硬件漫谈]内存篇(上)——笔记本内存的前世今生  http://acer.it168.com/thread-1933809-1-1.html

  8. 元器件科普之晶体管基础知识大放送  https://www.sohu.com/a/238414405_793365

  9. 不能错过的精彩,晶体管发展简史  http://news.eeworld.com.cn/mp/Icbank/a45186.jspx

  10. 半导体_百度百科  https://baike.baidu.com/item/%E5%8D%8A%E5%AF%BC%E4%BD%93

  11. 晶体管工作原理-电子发烧友网http://m.elecfans.com/article/821801.html

  12. 【图片】电子元器件基础知识科普_电子元器件吧_百度贴吧  https://tieba.baidu.com/p/6104326667?red_tag=3050156979

  13. Mervin J. Kelly - ETHW  https://ethw.org/Mervin_J._Kelly

  14. 【通俗易懂】谈谈三极管的工作原理和主要参数-电子产品世界论坛  http://forum.eepw.com.cn/thread/318420/1

  15. PNP晶体管有哪些特性和应用?-电子产品世界论坛  http://forum.eepw.com.cn/thread/297933/1

  16. 场效应晶体管的分类及作用-电子产品世界论坛  http://forum.eepw.com.cn/thread/305146/1

  17. 场效应管种类-场效应管N、P沟道与增强、耗尽型工作原理等知识详解  http://www.kiaic.com/article/detail/1308.html

  18. 一组漂亮的矿石检波器  http://blog.sina.com.cn/s/blog_4ce016230100alnw.html

  19. 工业革命—正传:59.冰海沉船_马可尼  https://www.sohu.com/a/270251988_652516

  20. 晶体管发明与诞生及发展过程详细-电子发烧友网  http://www.elecfans.com/d/618293.html

  21. 晶体管的诞生史  https://www.toutiao.com/a6809237145102844424/

  22. 科塔——一颗另辟蹊径的「数学手雷」https://www.jianshu.com/p/a38e76e793be

  23. 诞生于纳粹集中营里的黑科技:科塔计算器https://www.sohu.com/a/116606952_354961

  24. 【计算机科学速成课】 内存&存储介质  https://www.bilibili.com/video/BV1EW411u7th?p=19

  25. 磁芯存储器_百度百科  https://baike.baidu.com/item/%E7%A3%81%E8%8A%AF%E5%AD%98%E5%82%A8%E5%99%A8/10189808?fr=aladdin

  26. 王安(电脑公司创始人)_百度百科  https://baike.baidu.com/item/%E7%8E%8B%E5%AE%89/4457?fr=aladdin

  27. 王安:与IBM一争高下的华人电脑大王,80年代身家20亿美元_百科TA说  https://baike.baidu.com/tashuo/browse/content?id=7a442b40914f0ec8e0b3fbaa&lemmaId=4457&fromLemmaModule=pcRight

  28. 莫奇利_百度百科  https://baike.baidu.com/item/%E8%8E%AB%E5%A5%87%E5%88%A9

  29. 约翰·埃克特_百度百科  https://baike.baidu.com/item/%E7%BA%A6%E7%BF%B0%C2%B7%E5%9F%83%E5%85%8B%E7%89%B9/9200490?fr=aladdin

  30. 第一家电脑公司 科技百科  http://www.techcn.com.cn/index.php?edition-view-142234-1

  31. 雷明顿兰德公司_百度百科  https://baike.baidu.com/item/%E9%9B%B7%E6%98%8E%E9%A1%BF%E5%85%B0%E5%BE%B7%E5%85%AC%E5%8F%B8/8197234

  32. 第一批冯·诺依曼计算机 - 简书  https://www.jianshu.com/p/a40ab11d6dd3

  33. EDSAC_百度百科  https://baike.baidu.com/item/EDSAC/7639053?fr=aladdin

  34. 莫里斯·威尔克斯_百度百科  https://baike.baidu.com/item/%E8%8E%AB%E9%87%8C%E6%96%AF%C2%B7%E5%A8%81%E5%B0%94%E5%85%8B%E6%96%AF

  35. 芯片战争-8:蒂尔直拉法制备单晶体 - 知乎  https://zhuanlan.zhihu.com/p/101991156

  36. 1951: First Grown-Junction Transistors Fabricated | The Silicon Engine | Computer History Museum  https://www.computerhistory.org/siliconengine/first-grown-junction-transistors-fabricated/

  37. 直拉法单晶硅生长数值模拟方案  http://muchong.com/html/201503/8592366.html

  38. 美国国家科学基金会_百度百科  https://baike.baidu.com/item/%E7%BE%8E%E5%9B%BD%E5%9B%BD%E5%AE%B6%E7%A7%91%E5%AD%A6%E5%9F%BA%E9%87%91%E4%BC%9A/3454642?fr=aladdin

  39. 最快“芯” 引领史上最经典大型主机[图]  http://server.zol.com.cn/315/3158864_all.html#p3210288

  40. EDVAC_百度百科  https://baike.baidu.com/item/EDVAC

  41. UNIVAC  http://www.thocp.net/hardware/univac.htm

  42. UNIVAC I_百度百科  https://baike.baidu.com/item/UNIVAC%20I/1816072?fr=aladdin

  43. A-0 系统_百度百科  https://baike.baidu.com/item/A-0%20%E7%B3%BB%E7%BB%9F/15809682

  44. 格蕾丝·赫柏_百度百科  https://baike.baidu.com/item/%E6%A0%BC%E8%95%BE%E4%B8%9D%C2%B7%E8%B5%AB%E6%9F%8F/5361749?fromtitle=Grace%20Murray%20Hopper&fromid=5361802

  45. Grace Hopper - History of the First Compiler (A-0 System)  https://history-computer.com/ModernComputer/Software/FirstCompiler.html

  46. 苏联的第一台计算机  https://www.toutiao.com/a6674725689117114888/

  47. 令人拍案称奇的存储器演变简史(图文)-电子发烧友网  http://m.elecfans.com/article/300091.html

  48. 存储器之前世今生  https://www.sohu.com/a/137883373_468626

  49. 旋风计算机_百度百科  https://baike.baidu.com/item/%E6%97%8B%E9%A3%8E%E8%AE%A1%E7%AE%97%E6%9C%BA/10504016?fr=aladdin

  50. 系统动力学之父杰伊·福里斯特:斯人已逝,幽思长存  https://www.sohu.com/a/119437850_354973

  51. 从冷战到深度学习,一文看懂机器翻译发展史  https://www.sohu.com/a/226151655_115128

  52. 晶体管计算机_百度百科  https://baike.baidu.com/item/%E6%99%B6%E4%BD%93%E7%AE%A1%E8%AE%A1%E7%AE%97%E6%9C%BA/6908630?fr=aladdin

  53. “盗火者”威廉·肖克利,如何让硅谷之火一触即发  https://www.sohu.com/a/162222094_577605

  54. IBM 701 https://www.ibm.com/ibm/history/exhibits/701/701_intro.html

  55. The IBM 701 Defense Calculator http://www.columbia.edu/cu/computinghistory/701.html


拓展阅读:
迎接即将到来的“脱钩”,国产软件的战略准备:数据库篇 |  陶卓彬
一篇读罢头飞雪:计算机发展时间线(上)| 跟陶叔学编程
第一块晶体管背后的故事(《计算机发展时间线》番外)| 跟陶叔学编程

背景简介:本文作者陶卓彬,毕业于解放军理工大学,曾在军队技术部门从事软件开发十余年,并多次获得军队科技进步奖。现在北京某大学校企从事教育开发工作。长期关注互联网、软件领域课题。本文于2020年5月24日年发表于微信公众号 跟陶叔学编程 一篇读罢头飞雪:计算机发展时间线(中),风云之声获授权转载。

责任编辑陈昕悦

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存