1.1.3 电子计算机的发展
现代计算机是指利用电子技术代替机械或机电技术的计算机。现代计算机经历了70多年的发展,其中最重要的代表人物有英国科学家图灵(Alan Mathison Turing,1912—1954)和美籍匈牙利科学家冯·诺依曼(John von Neumann,1903—1957),他们为现代计算机科学奠定了基础(见图1-5)。
图1-5 为现代计算机科学奠定基础的杰出科学家图灵和冯·诺依曼
1.图灵与人工智能
1936年,图灵在他具有划时代意义的论文《论可计算数及其在判定问题中的应用》中,论述了一种理想的通用计算机,被后人称为“图灵机”。1950年,图灵发表了另一篇著名论文《计算机器与智能》,论文指出,如果一台机器对于质问的响应与人类做出的响应完全无法区别,那么这台机器就具有智能。这一论断称为图灵测试,它奠定了人工智能的理论基础。
图灵并不只是一位纯粹的抽象数学家,他还是一位擅长电子技术的工程专家。他设计制造的破译机Bombe(炸弹)实质上是一台采用继电器的高速计算装置。图灵以独特的思想创造的破译机,一次次成功地破译了德国法西斯的密码电文。
冯·诺依曼生前曾多次谦虚地说:“如果不考虑查尔斯·巴贝奇等人早先提出的有关思想,现代计算机的概念当属于阿兰·图灵。”由此可见,图灵对计算机科学影响巨大,为了纪念图灵的杰出贡献,美国计算机协会(ACM)专门设立了图灵奖,它是计算机学术界的最高成就奖。
2.第一台现代电子数字计算机ABC
第一台现代电子数字计算机是ABC(Atanasoff-Berry Computer,阿塔纳索夫-贝瑞计算机)是美国爱荷华州立大学物理系副教授阿塔纳索夫(John Vincent Atanasoff)和他的研究生克利福特·贝瑞(Clifford Berry)在1939年10月研制成功的(见图1-6、图1-7)。1990年,阿塔纳索夫获得了全美最高科技奖“国家科技奖”。
图1-6 第一台现代电子数字计算机ABC复制品
图1-7 第一台现代电子数字计算机ABC设计草图(1939年)
ABC计算机采用二进制电路进行运算;存储系统采用不断充电的电容器,具有数据记忆功能;输入系统采用了IBM公司的穿孔卡片;输出系统采用高压电弧烧孔卡片。
阿塔纳索夫提出了现代计算机设计最重要的3个基本原则:
①以二进制的方式实现数字运算和逻辑运算,以保证运算精度;
②利用电子技术实现控制和运算,以保证运算速度;
③采用计算功能与存储功能的分离结构,以简化计算机设计。
3.ENIAC计算机
1943年,第二次世界大战时期,美国因新式火炮弹道计算需要运算速度更快的计算机。宾夕法尼亚大学莫尔学院36岁的物理学家莫克利(John Mauchly)教授和他24岁的学生埃克特(Presper Eckert)博士,向军方代表戈德斯坦提交了一份研制ENIAC计算机的设计方案,军方提供了48万美元的经费资助。1946年2月,莫克利成功地研制出了ENIAC计算机。ENIAC采用了18000多个电子管,10000多个电容器,7000个电阻器,1500多个继电器,功率为150kW,质量达30t,占地面积170m2。
莫克利在设计ENIAC之前曾经拜访过阿塔纳索夫,并一起讨论过ABC计算机的设计经验。因此,他在ENIAC的设计中采用了全电子管电路,但是没有采用二进制。ENIAC的程序为外插型,即用线路连接、拨动开关和交换插孔等形式实现。它没有存储器,只有20个10位十进制数的寄存器;输入/输出设备有卡片、指示灯、开关等。ENIAC进行一个2s的运算,需要用两天的时间进行准备工作,为此埃克特与同事们讨论过“存储程序”的设计思想,遗憾的是没有形成文字记录。
ENIAC的任务是分析炮弹轨迹,它能在1s内完成5000次加法运算,也可以在3/1000s的时间内完成2个10位数乘法,一条炮弹轨迹的计算只需要20s,比炮弹的飞行速度还快。
4.冯·诺依曼与EDVAC计算机
1944年,冯·诺依曼专程到莫尔学院参观了还未完成的ENIAC,并参加了为改进ENIAC而举行的一系列专家会议。冯·诺依曼对ENIAC计算机的不足之处进行了认真分析,并讨论了全新的存储程序的通用计算机方案。当军方要求设计一台比ENIAC性能更好的计算机时,他提出了EDVAC方案。
1945年,冯·诺依曼发表了计算机史上著名的First Draft of a Report onthe EDVAC(EDVAC计算机报告的第一份草案)论文,这篇手稿为101页的论文,称为“101报告”。在“101报告”中,冯·诺依曼提出了计算机的五大结构,以及存储程序的设计思想,从而奠定了现代计算机设计的基础。
1952年,EDVAC计算机投入运行,主要用于核武器的理论计算。EDVAC的改进主要有两点:一是为了充分发挥电子元件的高速性能采用了二进制;二是把指令和数据都存储起来,让机器能自动地执行程序。EDVAC使用了大约6000个电子管和12000个二极管,占地45.5m2,质量达7.85t,功率为56kW。EDVAC利用水银延时线作主存,可以存储1000个44位的字,用磁鼓作辅存,并且具有加减乘和软件除的功能,运算速度比ENIAC提高了240倍。EDVAC计算机系统结构草图如图1-8所示。
5.IBM System 360计算机
1964年由IBM公司设计的IBM System 360是现代计算机最典型的代表产品,如图1-9所示。IBM System 360采用晶体管和集成电路作为主要器件。IBM System 360的贡献在于通用化、标准化、系列化,而且从IBM System 360开始有了计算机兼容的重要概念。
图1-8 EDVAC计算机系统结构草图(设计者不详)
IBM System 360计算机的开发过程可说是历史上最大的一次豪赌。为了研发这台大型计算机,IBM征召了6万多名新员工,创建了5座新工厂,耗资50亿美元,历时5年时间进行研制,而当时出货的时间不断延迟。IBM System 360的系统结构设计师是阿姆达尔(Gene Amdahl,1922—2015,美国),项目经理是布鲁克斯(Frederick P.Brooks)。布鲁克斯事后根据这项计划的开发经验,编写了《人月神话:软件项目管理之道》一书,记述了人类工程史上一项里程碑式的大型复杂软件系统的开发经验。
图1-9 IBM System 360计算机和机房工作现场(1964年)
现代计算机诞生后,计算机的基本元器件经历了电子管、晶体管、中小规模集成电路、大规模和超大规模集成电路4个发展阶段(也有些教材认为它们是4代不同的计算机)。计算机的运算速度显著提高,存储容量大幅增加。同时,软件技术也有了较大的发展,出现了操作系统、编译系统、高级程序设计语言、数据库等系统软件,计算机的应用开始进入许多领域。