前言
前面几周已经发了3篇文章,从古老的计算器介绍到模拟计算机。有朋友问我一共会有多少篇?我大致是按照当时的参观顺序,一边整理拍摄的照片,一边在网上做一些扩展研究,一并发出来分享。整个计算机历史博物馆的主要展区分为20个部分,那么基本上,这个博物馆参观记系列将不会少于20篇了。由于我是利用休息日闲暇时间顺便写的,更新得会比较慢,请大家耐心等待哈。
计算机历史博物馆展区分布图
(图片来源:计算机历史博物馆)
进入计算机历史博物馆的第四部分主题展区,指示牌上写的就是“计算机的诞生”。
第四部分:计算机的诞生
第二次世界大战的爆发导致了前所未有的对计算的需求,事实上也加速了计算机的进化,同时直接导致了现代电子计算机的诞生。早期的电子计算机都是为了特定用途而设计的专用计算机,通过开关和连线进行设置,既耗时又麻烦。后来采用软件的方式进行设置,将程序存储在存储器中,这算得上是革命性的创新了。
计算机历史博物馆第四部分展区
在计算机历史博物馆第四展区入口处摆放着一台ENIAC计算机的部分单元,特别吸引眼球。在相当长一段时间里,人们都误以为ENIAC是世界上第一台电子计算机(很多计算机类书籍中直到现在还这样写),而事实上,它甚至连第二台都排不上!从建造时间上来说,ENIAC应该是世界上第三台电子计算机。
世界上最早的三台电子计算机分别是:
ABC , John Atanasoff and Clifford Berry, 1939
Colossus, Maxwell Newman and Thomas Flowers, 1943
ENIAC, John Mauchly and John Eckert, 1945
世界上第一台真正意义上的电子数字计算机实际上是在1935~1939年间由美国爱荷华州立大学物理系副教授John Vincent Atanasoff和他的合作者Clifford Berry(当时还是物理系的研究生)研制成功的,用了300个真空电子管,取名为ABC(Atanasoff-Berry Computer)。不过这台机器还只是个样机,并没有完全实现Atanasoff的构想。1942年,太平洋战争爆发,Atanasoff应征入伍,ABC的研制工作也被迫中断。但是ABC计算机的逻辑结构和电子电路的新颖设计思想却为后来电子计算机的研制工作提供了极大的启发。所以,Atanasoff应该是公认的“电子数字计算机之父”。
ABC是用于解决大型线性代数方程组的专用计算机器(在29个未知数中多达29个方程,每个方程的30个系数(包括常数项)中的每一个具有大约十五个小数位),使用标准的高斯消元算法。Atanasoff的想法如下:他将通过从连续(重叠)对中消除指定变量来求解大型方程组,从而在一个较少的变量中生成一个新集合,然后重复新集合的过程,依此类推,直到最后出现了单个变量中的单个方程。他可以在所有其他变量中用同样的方式得到单个方程,由此计算每个变量的值。
ABC大约相当于一张桌子的重量,重约315公斤(见下图)。它包含280个真空电子管和31个闸流管。
ABC于1942年5月(图片来源:爱荷华州立大学)
ABC的结构和操作原理非常简单。该机器由三个基本部分组成:存储设备,算术单元和输入/输出单元。对于存储设备,Atanasoff考虑了许多可能性,进行了大量的测试和实验,最后他选择在存储器中使用基于电容器的旋转静电存储鼓。Atanasoff的算术单元基于真空管,由30个计算机构和几个控制机构组成,Atanasoff的设想是带有某种进位机制的电子计数器。对于输入设备,使用IBM公司现有的打卡读卡器(有两个读卡器:十进制和二进制)。然而,对于输出设备,Atanasoff设计了一种基于高压闸流管的打孔器。
旋转静电存储鼓(ABC中唯一幸存的部分 - 两个鼓中的一个)
(图片来源:爱荷华州立大学)
ABC结构图(图片来源:爱荷华州立大学)
1996年,爱荷华州立大学复制了一台ABC
(图片来源:爱荷华州立大学)
第二次世界大战阻碍了像Atanasoff这样的计算机发明者的进步,但却对英国第一个建造电子计算机的过程产生了相反的影响。在战争期间,英国外交部的通信部门开始建造电子计算机,这些机器协助英国解码用特殊机器编码的截获的德国无线电信息。
1994年Tony Sale在Bletchley庄园重建了一台Colosssus
(图片来源:计算机历史网站)
Colossus--巨人计算机(后来称为巨人Mark I设计始于1943年3月于1944年1月开始运行,并且在对真正加密的消息磁带进行首次测试时取得了成功。Colossus被拆除运到GC&CS(英国政府密码学校,在第二次世界大战期间,它位于英国Bletchley庄园,负责破译德国密码)并组装完毕。Colossus使用当时最先进的真空电子管,闸流管和光电倍增管以光学方式读取纸带,能够执行各种布尔逻辑的运算,但仍未具备图灵完全的标准。其实体器件、设计图样和操作方法,直到1970年代都还是一个谜。后来温斯顿·丘吉尔亲自下达一项销毁命令,将巨人计算机全都拆解成巴掌大小的废铁,巨人计算机才因此在许多计算机历史里都未留下一纸纪录。英国Bletchley庄园(Station X)目前展有巨人计算机的重建机种。
The Colossus of Bletchley Park in 1944
(图片来源:计算机历史网站)
为了应对更多的解密信息需求,1944年6月,Colossus Mark I的改进型Mark II问世,一共造了8台。原有的Mark I也被升级到Mark II。到战争结束时,Bletchley庄园一共有10台Colossus Mark II计算机参与破解了6300万字符的德国加密通讯消息。Mark II 有2500个电子管、800个继电器,每秒最多读取25000个字符(cps),这比Mark I快5倍,原因是Mark II采用了并行读取和缓存方式。
Colossus的结构框图
(图片来源:计算机历史网站)
ENIAC曾一直被人们误认为是世界上第一台真正意义上的电子计算机,国内的教科书也一直这样表述。ENIAC于1943年开始制造,完成于1946年2月,但是它的设计思想基本来源于ABC,只是采用了更多的真空电子管,运算能力更强大,主要用于计算弹道和研制氢弹。它的负责人是John W. Mauchly和J. Presper Eckert。他们俩制造完ENIAC后就立刻申请获得了美国专利。就是这个专利导致ABC和ENIAC之间长期的“世界第一台电子计算机”之争。1973年美国明尼苏达地区法院Larson法官给出正式宣判,推翻并吊销了Mauchly的专利,从法律上认定了Atanasoff才是真正的现代计算机的发明人。已经裁定Mauchly盗用了Atanasoff的想法,并且三十多年来一直把这些想法作为他自己天才的产物。虽然Mauchly失去了专利,但是他们的功劳还是不能抹煞的,毕竟是他们按照Atanasoff的思想完整地制造出了真正意义上的电子数字计算机。
ENIAC的专利(图片来源:etsy)
但是ABC只是模拟电子计算机到数字电子计算机的过渡品,算不上“全数字”电子计算机,而且性能很差,只用了300个真空电子管; Colossus则是一台专用电子计算机,含2500个真空电子管; ENIAC用了近20000个真空电子管,通用性和运算速度要高得多,而且实际解决了许多复杂的计算问题。所以ENIAC标志计算机时代的开始,它的历史地位是不容置疑的。
早期的专用电子计算机
(图片来源:计算机历史博物馆)
大规模列表机操作,1920年代
(图片来源:计算机历史博物馆)
在第二次世界大战期间,美国陆军(当然包括其他军队)在计算炮兵射击表时遇到了一个非常棘手的问题。由于工厂正在生产新的远程火炮,而射手经常无法在山上看到他的目标,他依靠一张射击小册子来瞄准。炮弹飞行的距离取决于许多变量:风速和风向,空气湿度和温度,海拔高度,地面等。甚至火药的温度也很重要。典型的炮需要具有五百种不同条件的射击查找表。每个新火炮和每个新炮弹都必须有新的射击表,并且计算是基于测试射击和数学公式完成的。美国陆军使用了176名员工(类似于上图那样,所谓的计算机)在费城附近的阿伯丁和摩尔学校进行计算,使用手摇计算机来完成每个算术运算。除此之外,他们还使用了两台差分分析仪。然而它们需要一个多月才能完成射击需要所有轨迹的表格,显然这是不可接受的。阿伯丁在射击表的计算任务方面远远落后于枪炮生产,并且枪炮被运送到欧洲和非洲基本上没用,因为他们无法瞄准。
1943年,美国军方签署合同要求宾夕法尼亚州大学Mauchly博士和他的学生Eckert设计以真空电子管取代继电器的“电子化”计算机——ENIAC(Electronic Numerical Integrator and Calculator, 电子数字积分器与计算器), 目的是用来计算炮弹弹道。1947年秋天,战争结束,ENIAC的建造初衷显然来得太迟了。
ENIAC的图片介绍
ENIAC的图片介绍
1946年2月14日,《纽约时报》对ENIAC的报道
(图片来源:计算机历史博物馆官网)
ENIAC计算机建造工作于1943年6月开始,1946年2月14日情人节那天首次向公众披露。它耗费了20万工时,耗资约48万7千美元。军队得到的是一个27吨(30美吨)重的怪物,它占据了一个10米乘15米的房间。它有30个不同的单元,包括20个蓄电池,排列成U形每侧十六个,中间八个,全部通过一条厚重的黑色电缆与消防水管连接。它可以每秒执行5000次加法,并且可以完成50000人的手工工作。在30秒内,ENIAC可以计算单个轨迹,使用台式计算器需要20个小时,或者在差分分析仪上需要15分钟。ENIAC需要174千瓦的电力才能运行(有传言说,每当这台计算机启动的时候,费城的灯都变暗了)。它包含17468个真空管,1500个继电器,500000个焊接接头,70000个电阻器和10000个电容器电路。时钟频率为100 kHz。通过IBM读卡器和卡片打孔器和制表器输入和输出。
ENIAC的布局图
(图片来源: J.G. Brainerd & T.K. Sharpless. "The ENIAC." Article occupying pp 163-172 of the February 1948 issue of Electrical Engineering.)
ENIAC的等比例缩小模型
ENIAC的基本参数:
运算速度:5000次加法 / 秒
存储深度:20 字
存储类型:真空电子管
存储位宽:10位十进制数
设备造价:$487,000 美元
ENIAC的单元可以松散地分为五类:算术(通用和专用单元),全局控制单元,存储器,I / O单元和总线(中继线)。下面的图片显示了ENIAC的功能框图。主要与算术运算有关的单位是20个累加器(用于加法和减法),乘法器,以及除法器和平方根的组合。通过称为恒定变送器的单元将数字引入机器,该单元与IBM读卡器一起操作。读取器扫描标准穿孔卡片(最多可容纳80位数字和16个符号),并将来自它们的数据存储在位于恒定发射器中的继电器中。恒定发射器使这些数字可用,因为它们是必需的。同样的结果可能是ENIAC打印机单元与IBM卡片打孔机一起在卡片上打孔。可以通过IBM制表机从卡片上自动打印表格。
ENIAC架构框图
ENIAC部分机柜实物
ENIAC开关控制面板
ENIAC的电子管阵列
ENIAC的电子管阵列
1995年,在ENIAC诞生50周年时,美国宾夕法尼亚大学电气工程系的一组学生在J. Van der Spiegel教授的指导下,与F. Ketterer博士合作设计了“ENIAC-on-a-Chip” 芯片。用现代集成电路技术采用0.5um CMOS制造工艺将完整的ENIAC计算机集成在了一颗7.44 x 5.29平方毫米大小的芯片上。芯片一共集成了174,569个晶体管。
ENIAC诞生50周年时,用集成电路实现的单颗芯片ENIAC
ENIAC-ON-A-CHIP芯片封装
(图片来源:宾夕法尼亚大学)
ENIAC诞生50周年时,用集成电路实现的单颗芯片ENIAC
ENIAC-ON-A-CHIP芯片版图
(图片来源:宾夕法尼亚大学)
2018年6月,世界上最快的10台超级计算机
(来源:www.top500.org)
从ENIAC问世至今已经过去了70多年,当年的超级计算机ENIAC的计算能力大约相当于500 FLOPS,而如今,世界上排名第一的IBM超级计算机Summit的运算能力为200PFLOPS,相当于4x10^14(4百万亿)个ENIAC!我们可以简单计算一下如果用ENIAC来实现现代的iphone6手机,需要什么样的规模?
首先比较一下两个计算机的能力:
ENIAC
时钟频率: 5000 Hz
运算速度: ~455 FLOPs(7位十进制)
内存: ~83 bytes (200位十进制数)
功耗: ~150 000 W
重量: ~27 000 kg
占地面积: 167 m2
体积: ~64.8 m3
iPhone 6
时钟频率: 2 800 000 000 Hz (双核,所以x2)
运算速度: ~7 680 000 000FLOPs (32 bit ~= 7位十进制)
内存: 1 000 000 000 bytes
功耗: 0.86 W (6.9 Wh电池工作8小时)
重量: 0.129 kg
面积: 0.0092 m3
体积: 7.1 * 10^-5 m3
如果要达到iphone6的能力,大约需要560 000倍ENIAC的时钟速度,1700万倍ENIAC的处理能力,1200万倍ENIAC的内存。平均来讲,大约需要1000万台ENIAC才能达到当今iPhone6的能力。我们来看看这是什么样的场景?
1千万台ENIAC
功耗: ~1 500 000 000 000 W (相当于2倍的中国发电功率)
重量: ~270 000 000 000 kg (超过全人类重量的一半)
面积: 1 670 000 000 m2 (大约占上海市区面积的一半)
体积: ~648 000 000 m3 (大约相当于2个万里长城)
不过,即使有1千万台ENIAC,也不能完成现代iphone6的任务,因为信息处理能力不能完全依靠并行操作完成。这里仅仅是一个简单的假设,让大家对近70年来计算机的发展速度有个比较形象的理解。
(未完待续)
堂主电子行业从业二十余载,如今对熟悉的领域心怀敬畏。所谓”大道至简、大巧若拙“。未来将以一切归零的心态重新审视这个领域,胡诌一些小文,希望不要扫了各位看官的雅兴。