转载自朗哥编程 原创 郎宏林
从爱迪生效应到弗莱明的二极管,再到德福雷斯特的三极管。电子管从一个单向导电的电子元件升级成了能放大信号的电子元件。
电子管的出现促进了人类第一台通用电子计算机——ENIAC的诞生。1943年,美国陆军军械部底下有个弹道研究实验室,专门研究炮弹的弹道轨迹,即大炮打出去的炮弹,到底会落在哪个地方?
你别觉得这是小事。炮弹这东西,初速、仰角、风向、气温、空气密度、甚至地球自转,都会影响落点。每一种新炮、每一种新弹药,都得事先算出一张完整的“弹道表”——炮手拿着这张表,才能在战场上瞄得准、打得中。可这张表怎么算出来的呢?全靠一群被称为“人类计算机”的计算员,拿着计算尺和手摇计算器,一道公式一道公式地手算。
算一条完整的炮弹弹道轨迹,一个熟练的计算员不眠不休也要花上将近20个小时。而一张弹道表需要算几百条不同角度、不同初速的弹道。实验室里雇了上百名女计算员,三班倒连轴转,计算效率非常低下且容易出错。
在这样的背景下,物理学家莫奇利提出了一个大胆构想:能不能用电子管搭建一台机器,让电子代替人工完成计算?
图:一条炮弹弹道轨迹,人工计算需要约20小时,ENIAC只需约30秒
莫奇利任职于宾夕法尼亚大学莫尔电气工程学院。他此前研究气象时,就曾设想依靠机器来预测天气。他也见识过依靠继电器搭建的早期计算机,很清楚这种 “咔哒咔哒” 不停切换的机械开关,运算速度实在太慢。莫奇利敏锐地发现,电子管虽然本身很娇气、容易损坏,但它的开关速度比继电器快上千倍,正是高速计算所需要的核心元器件。
有了初步思路之后,他找到了二十多岁的研究生约翰・埃克特。埃克特是天生的工程天才,动手能力极强,对电路设计、电压控制、设备散热这类工程细节了然于心。莫奇利负责整体方案设计,埃克特负责把设计落地、做成硬件。这一对黄金搭档,就是 ENIAC 的核心缔造者。
图:ENIAC的两位发明人——左边是约翰·莫奇利,右边是约翰·埃克特
1943 年 6 月,美国陆军正式与莫尔学院签订合同,项目代号 PX,拨款 48 万美元。放在当年,这绝对是一笔巨款。军方目标很明确:造出一台电子计算机,专门计算弹道,速度越快越好。
这里简单说下莫尔学院:全称莫尔电气工程学院,属于宾夕法尼亚大学,在当年是美国电气工程领域的顶尖院校。二战时期承接了不少军方的电子、弹道相关科研任务,拥有不错的实验室条件和技术人才。莫奇利和埃克特,就是在这里拿到军方项目,动手打造 ENIAC。
经过两年半的设计和制造,1946 年 2 月,ENIAC 正式问世。这台机器一露面,所有人都惊呆了。它根本算不上一台普通设备,本身就是一整间房间大小的大家伙!
图:ENIAC全景——长约30米的机柜排满整个房间,人站在旁边显得格外渺小
ENIAC长30米、高2.4米、宽0.9米,总重量超过30吨,占地170平方米,差不多有两套三居室那么大。ENIAC包含大约18000个电子管、1500个继电器、70000个电阻器、10000个电容器,还有6000多个手动开关。整台机器耗电非常大,功率约150千瓦。
ENIAC每秒能做5000次加法,或者500次乘法。你别觉得5000次不多——在它之前最快的继电器计算机,每秒也只能做几次到几十次运算。ENIAC一下子把速度提升了一千多倍!刚才说的那条要算20小时的弹道轨迹,ENIAC只需要30秒。揭幕那天,它当场演示了一道弹道计算,结果瞬间就出来了,全场目瞪口呆。
ENIAC之所以能这么快,靠的就是这18000个电子管。前面说过,电子管本质上就是一个“电子闸门”——栅极上给一点点小电压,就能控制住阳极那股大电流的通断。通电就是1,断电就是0。一万八千个这样的闸门组合在一起,就能做加法、做乘法、做逻辑判断。布尔代数里的那些与、或、非,到了ENIAC这里,全变成了一根根发着橘黄色光的玻璃管。
图:ENIAC内部密密麻麻的电子管阵列,每一根都像一盏发光的小灯
但这颗“玻璃心脏”有个巨大的麻烦——它太容易坏了。电子管这东西,灯丝一直烧着,跟灯泡一样,烧着烧着就断了。ENIAC上有一万八千根管子,平均每隔7分钟,就有一根管子烧坏。机器一旦有管子挂了,整个计算就可能出错。所以旁边永远站着一群工程师,手里拿着图纸,一听到“咔”的一声或者看到某个灯灭了,就得满机器找:到底是哪根管子不行了?换一根新的,继续干活。
你可以想象一下这个画面:一间大房子里,一万八千个橘黄色的光点同时闪烁,每隔几分钟就有一个光点熄灭,然后一个工程师钻到机柜背后,换一根新的玻璃管。这哪里是计算机,这分明就是一头需要时时刻刻喂食、永远在发烧的电子巨兽。
说到ENIAC,很多人都知道莫奇利和埃克特。但很少有人知道,真正让这台机器运转起来的,是六个默默无闻的年轻姑娘。
ENIAC刚造出来的时候,工程师们光顾着把机器搭起来,根本没人想过怎么让它算一个具体问题。最后,他们从之前那群人类计算员里挑了六位数学最好的女性:凯·麦克纳尔蒂、贝蒂·詹宁斯、贝蒂·斯奈德、玛琳·韦斯科夫、弗兰·比拉斯、露丝·里奇曼。她们被领到ENIAC面前,领到一摞厚厚的接线图,然后被告知:这台机器以后就归你们了,自己琢磨怎么用吧。
图:ENIAC的六位女程序员正在机柜前插拔电缆、调试开关
怎么琢磨呢?ENIAC那时候没有键盘、没有屏幕、没有操作系统,更没有什么高级语言。你想让它算一道新题,唯一的办法就是——亲手把这台机器重新接一遍线。
图:ENIAC的插线板编程——粗电缆像蜘蛛网一样插在密密麻麻的插孔中
机器正面有一整面墙那么大的插线板,上面全是手指粗的黑色电缆,密密麻麻像蜘蛛网。旁边还有三台便携式函数表,每台上面有1200个十位置的旋转开关。要算一道弹道题,就得先在纸上把整个计算流程拆成几百个小步骤,然后拿着一根一根电缆,按顺序插进对应的插孔里,再把几千个开关一个个拨到指定位置。
这一套活下来,快则几天,慢则几周。机器算30秒,她们得接几个星期的线。可就是在这种体力编程里,这六个姑娘也是摸出了门道:她们发明了子程序、循环、嵌套调用这些概念——这些今天每个程序员都在用的基本套路,最早就是她们在插线板上一根线一根线试出来的。更厉害的是,机器一出bug,她们听一听声音、看一看灯,就能精准定位到是哪一根电子管坏了,比工程师还懂机器。
可惜的是,这六位姑娘的贡献在之后几十年里几乎被彻底遗忘。直到计算机行业发展了几十年,人们回头翻历史照片时才发现:原来世界上第一批程序员,竟然是六位被战争召唤到实验室里的年轻女性。
1946年2月15日,ENIAC正式对外公布。《纽约时报》当天的报道说:这台机器第一次把电子速度用到了过去根本无法完成的数学计算上。它确实配得上这样的评价——ENIAC是人类历史上第一台通用的、全电子的、可编程的数字计算机。从这一刻起,人类的计算速度,正式从齿轮时代跨入了电子时代。
但ENIAC有一个致命的问题:它不会记住自己的程序。什么意思呢?你想让它算一道新题,就得重新接一遍线、拨一遍开关——刚才说的,几天甚至几周的活。机器本身没有一个地方能把下一步做什么这条指令存下来。它算得飞快,但改一道题比登天还难。
这个问题,很快被一个来参观的人看在了眼里。他就是大名鼎鼎的冯·诺依曼。冯·诺依曼当时正在参与曼哈顿计划,他一眼就看穿了ENIAC的问题:为什么不能把程序也像数据一样,以数字的形式存在机器内部?这样换一道题,根本不用重新接线,只要改一下存储器里的数字就行了。
这个想法,就是后来改变整个计算机世界的存储程序概念,也就是我们常说的冯·诺依曼架构。ENIAC站在电子时代的大门口,却没能跨过那最后一道门槛。而替它跨过门槛的,正是下一位要登场的人物。






京公网安备11010802046839号