电子管计算机
# 30.电子管计算机
讲讲电子管的发明
# ABC:第一台电子计算机
19 世纪 30 年代,美国爱荷华州立大学数学和物理专业的一位助理教授约翰·阿塔纳索夫(John Vincent Atanasoff),与其学生福德·贝里(Clifford Berry),共同建造了第一台电子计算机,其包含数百个电子管,以及 1600 米左右的电线。
因为是阿塔纳索夫设计的,人们便理所当然地称之为阿塔纳索夫机,其实贝里的贡献也不容忽视。在 1963 年贝里去世之后,阿塔纳索夫为了纪念这位出色的学生、自己的得力助手,正式将机器命名为阿塔纳索夫-贝里计算机(Atanasoff–Berry computer),简称 ABC。巧合的是,这个在英文中代表“入门”和“基础”的单词,也正是第一台电子计算机的名字。
ABC复制品(原图来自维基百科)
这是一台专用的电子计算机,用于求解线性方程组,最多支持 29 个方程。ABC 有着许多现代计算机的特点,比如二进制数据、电子计算、并行处理和计算-存储分离结构,但它是专用的,不可编程的,更达不到图灵完备,因此还不属于现代计算机的范畴,这为后来 ABC 与 ENIAC 的第一之争埋下了伏笔。
# 巨人机:第一台可编程电子计算机
1941 年,德国不宣而战,单方面撕毁了《苏德互不侵犯条约》,开始全面对苏闪击,一度兵临莫斯科城下。在通讯方面,德国吸取了一战的教训,加密用了更复杂的算法,密钥也更长;已经远远超出了人力处能破解的范围,国家需要一种更高速的解密机器,电子管方案成为不二之选。
研制电子计算机的重任落在了位于英国伦敦西北角的邮局研究站身上,该研究站有着丰富的电子通信经验,在布莱切利的部分密码学家对电子管的可靠性还抱有疑虑的时候,邮局研究站的工程师早已对电子管的大规模应用驾轻就熟。
1943 年 2 月,在图灵的推荐下,来自研究站的托马斯·弗劳尔斯(Thomas Harold Flowers)扛起这面大旗,在布莱切利一部分人“等机器造好战争怕是早就结束了”的冷嘲热讽中,带领 50 人的团队仅用了 11 个月就完成了第一台原型。
1944 年 1 月,当这台包含了 1500~1600 个电子管的“庞然大物”来到布莱切利,密码学家们被深深震撼了,它比他们之前使用过的任何计算设备都庞大得多,因而被形象地称为巨人机(Colossus)。
1944 年 6 月 1 日,第一台 Mark 2 巨人机正式交付,如期赶上了重大的诺曼底登陆战役。德军万万没有想到,他们引以为傲的机电式“金枪鱼”,面对的是领先了一个时代的电子计算机。巨人机不负众望破解了德军密码,为战役的最终胜利做出了不可磨灭的贡献。
# ENIAC:第一台通用电子计算机
一颗看似做着简单的自由落体运动的炮弹,其实在出发前就被设定好了精确的飞行轨道。弹道的计算十分复杂,发射速度和角度的确定不仅要考虑炮弹本身的类型和炸药特性,还要考虑风向、风速、气压、气温、湿度和当地重力加速度等环境因素,作战时在瞬间完成这些因子的综合分析显然不是人力所能及的。因此,科学家会在使用前为炮手准备好一份弹道表,炮手对照表中参数操作火炮,炮弹便基本能落到指定的目标点。
于是二战期间,军方遇到了和当年人口调查一样的难题,每种型号的炮弹都需要计算 2000~4000 条弹道,每条弹道都涉及复杂的微积分运算,转换成四则运算平均涉及 750 次乘法和更多次加减,普通计算员使用机械计算器平均需要 20 个小时才能算完。多型新型火炮的投入使用给美国陆军的弹道研究实验室带来了很大的制表压力,他们雇佣了 100 多名女计算员,以满足阿伯丁试验场每天 6 张弹道表的需求。苦劳是做足了,一旦出错却没了功劳。
实验室很快意识到,磨刀不误砍柴工,他们急需一台强大的计算机器。这个创造历史的项目,交给了与弹道研究实验室相距仅 120 公里的位于费城的宾夕法尼亚大学莫尔电气工程学院。其实论起资历与声望,600 公里开外的麻省理工学院会是更好的选择,但莫尔学院“近水楼台先得月”,早与弹道研究实验室建立了友好的合作关系,那些计算弹道的计算员就是由莫尔学院负责培训的。
1943 年 4 月 9 日,莫尔学院和弹道研究实验室所属的陆军军械部签订了 6.17 万美元的研制合同,年轻的埃克特虽然还是一名在读研究生,但由于杰出的专业能力被任命为项目总工程师。
这台计算机就是大名鼎鼎的电子数字积分器与计算机(Electronic Numerical Integrator and Computer),简称 ENIAC。由于是为了处理弹道计算中的微积分而设计的,起初,它的名字是电子数字积分器(Electronic Numerical Integrator),但由于它的通用性,后来被用于各种其他计算,才有了追加的“and Computer”。
和埃克特搭档的,是年龄大他一轮的约翰·莫奇利(John Mauchly),时年 36 岁的莫奇利已是乌尔辛纳斯学院(同在宾夕法尼亚州)的物理系主任,拥有约翰·霍普金斯大学物理学博士学位。他被委任为 ENIAC 项目顾问,由于教学工作不能投入全部精力,但只要一有时间就会钻进项目里,最终出色地完成了 ENIAC 的总体设计,与主要负责工程实现的埃克特并称“ENIAC 之父”。他们共同领导莫尔学院 50 人的兼职团队,一个主理论、一个主工程的黄金搭档模式像极了实现 ABC 的阿塔纳索夫和贝里。
ENIAC 比巨人机更加庞大,总长约 30 米,高约 4 米,厚约 0.9 米,占地约 167 平米,需要布置在一个很大的房间。这台重达 27 吨的电子巨兽体内大约包含着 18000 个电子管、70000 个电阻、10000 个电容和 1500 个继电器,以及 500 万个焊接点,每小时吞掉 150kW 电量。功耗之大,一度传出夸张的谣言:ENIAC 一启动,整个费城的灯光都要暗下一截。
ENIAC 主要由 40 块模块化的功能面板组成,贴着机房的 3 面墙壁呈 U 型排布,面板之间通过下侧的接插线板相连。它们的相对位置不是固定的,可根据使用需要或习惯进行调换。此外,有 3 台可移动函数表通过接插线板与这些面板相连,读卡器和穿孔机直接连接至输入和输出模块的面板:
ENIAC在莫尔学院的模块分布示意图(俯视)
ENIAC 带着空前的计算能力来到了世上,拿下一条弹道仅需 30 秒,速度是人的 2400 倍。ENIAC 团队毫不夸张地类比道:我们得出弹道所需的时间,比导弹实际飞行的时间还要短。
不过此时,二战已经结束,ENIAC 并没有达成最初被寄予的厚望。好在莫奇利的设计是图灵完备的,人们很快为 ENIAC 找到了其他用武之地,比如气流分析和天气预测等,最重要的还是在氢弹研制中的应用。研制出广岛和长崎原子弹的洛斯·阿拉莫斯国家实验室将 ENIAC 用于氢弹相关的计算,消耗了 100 万张穿孔卡片。