0.2 计算机的历史
虽然计算机的历史相对于人类的文明史只是短短的一瞬间,但其影响却是举足轻重的。
0.2.1 计算机前传
在1946年美国成功研制第一台现代意义上的电子数字计算机ENIAC之前,计算机器的发展经历了一个漫长的过程。根据计算机器的特点可以将其划分为3个时代:算盘时代、机械时代和机电时代。
- 算盘时代
这是计算机器发展史上时间最长的一个阶段。这一阶段出现了表示语言和数字的文字及其书写工具、作为知识和信息载体的纸张和书籍,以及专门存储知识和信息的图书馆。这一时期最主要的计算工具是算盘,其特点是通过手动完成从低位到高位的数字传送(十进位传送),数字由算珠的数量表示,数位则由算珠的位置确定,执行运算就是按照一定的规则移动算珠的位置。 - 机械时代
随着齿轮传动技术的产生和发展,计算机器进入了机械时代。这一时期计算装置的特点是借助于各种机械装置(齿轮、杠杆等)自动传送(十进位),而机械装置的动力则来自计算人员的手。如1641年法国人帕斯卡利用齿轮传动技术制成了第一台加法机,1671年德国人莱布尼茨在此基础上又制造出能进行加、减、乘、除的演算机。
1822年英国人巴贝奇制成了第一台差分机(Difference Engine),这台机器可以计算平方表及函数数值表。1834年巴贝奇又提出了分析机(Analytical Engine)的设想,他是提出用程序控制计算思想的第一人。值得指出的是分析机中有两个部件:用来存储输入数字和操作结果的“strore”和在其中对数字进行操作的“mill”,与现代计算机相应部件存储器和中央处理器的功能十分相似。遗憾的是,该机器的开发因经费短缺而失败。
- 机电时代
计算机器的发展在电动机械时代的特点是使用电力做动力,但计算机构本身还是机械式的。1886年赫尔曼?霍勒瑞斯(Herman Hollerith)制成了第一台机电式穿孔卡系统——造表机,成为第一个成功地把电和机械计算结合起来制造电动计算机器的人。这台造表机最初用于人口普查卡片的自动分类和计算卡片的数目。该机器获得了极大的成功,于是1896年霍勒瑞斯创立了造表公司TMC(Tabulating Machines Company),这就是IBM公司的前身。电动计算机器的另一代表是由美国哈佛大学教授霍华德?艾肯(Howard Aiken)提出,IBM公司生产的自动序列控制演算器ASCC,即MarkⅠ。它结合了霍勒瑞斯的穿孔卡技术和巴贝奇的通用可编程机器的思想。1944年MarkⅠ正式在哈佛大学投入运行,IBM公司从此走上开发与生产计算机之路。从20世纪30年代起,科学家认识到电动机械部件可以由简单的真空管来代替。在这种思想的引导下,世界上第一台电子数字计算机在爱荷华(Iowa, 也译作衣阿华或艾奥瓦)州立大学产生了。1941年德国人朱斯(Konrad Zuse)制造了第一台使用二进制数的全自动可编程计算机,此外,朱斯还开发了世界上第一个程序设计语言Plankalkul。该语言被视为现代算法程序设计语言和逻辑程序设计的鼻祖。此后,在包括图灵、冯?诺依曼在内的数学家研究成果的影响下,在美国军方的资助下以及包括约翰?莫奇利(John William Mauchly)和约翰?埃克特(John Presper Echert)在内的物理学家和电气工程师的直接组织参与下,1946年世界上第一台高速通用计算机ENIAC在宾夕法尼亚大学研制成功,从此电子计算机进入了一个快速发展的新时代。
0.2.2 电子计算机
现代电子计算机的历史可以追溯到1943年英国研制的巨人计算机和同年美国哈佛大学设计的MarkⅠ。今天计算机已经历了四代并得到了迅猛的发展。
- 第一代计算机(1946年 ~ 1957年)
第一代计算机利用电子真空管制造电子元件,利用穿孔卡作为主要的存储介质。体积庞大,重量惊人,耗电量也很大。UNIVACI是第一代计算机的代表,它是继ENIAC之后,由莫奇利和埃克特再度合作设计的。
在电子真空管计算机时期,计算机主要用于科学计算。主存储器是决定计算机技术面貌的主要因素。当时,主存储器包括水银延迟线存储器、阴极射线示波管静电存储器、磁鼓和磁芯存储器等类型,通常按此对计算机进行分类。在电子管计算机时期,一些计算机配置了汇编语言和子程序库,科学计算用的高级语言FORTRAN崭露头角。
(1)第一台电子计算机ENIAC
世界上第一台电子计算机ENIAC(Electronic Numerical Integrator And Computer,读作“埃尼阿克”)是美国宾夕法尼亚大学研制的。1942年在美国军方的资助下,该大学成立以莫奇利和埃克特为首的研制小组,于1946年2月15日将ENIAC投入运行,目的是用于解算非常复杂的弹道非线性方程组。众所周知,这些方程组是没有办法求出准确解的,只能用近似方法进行计算,因此研究一种快捷准确的计算办法很有必要。
从技术上看ENIAC采用十进制进行计算,在结构上没有明确的CPU(中央处理器)概念,主要采用电子管作为基本元件。它用了约1万8千只电子管,每只电子管的体积大约与一只家用的25瓦灯泡相当,还有数千只二极管和数以万计的电阻、电容等基本元器件。整个计算机外形尺寸达到2.4米高、1米宽、30.5米长,占地约170平方米,重达30吨,耗电功率高达每小时150千瓦,如图0-4所示。它每秒钟能进行5 000次加法运算或400次乘法(人脑的运算速度约为每秒5次加法运算),还能进行平方和立方运算、计算正弦和余弦等三角函数的值及其他一些更复杂的运算。这样的速度在当时已经是人类智慧的最高水平。ENIAC与现代PC的比较见表0-1。
(2)冯?诺依曼与EDVAC
约翰?冯?诺依曼 (John Von Neumann),美籍匈牙利人,1903年12月28日出生于匈牙利犹太人家庭,1957年2月8日在美国因患癌症去世。冯?诺依曼在数学诸多领域都进行了开创性工作,并做出了重大贡献,曾任美国数学学会主席,是20世纪最杰出的数学家之一。冯?诺依曼对人类的最大贡献是计算机科学、计算机技术、数值分析和经济学中的博弈论领域的开拓性工作。鉴于在发明电子计算机中所起到的关键性作用,他被西方人誉为“计算机之父”。1944年他和摩根斯坦恩(Morgenstern)合作出版的经济学著作《博弈论和经济行为》(The Theory of Games and Economic Behaviour)一书标志着系统的博弈理论的形成,他被经济学家誉为“博弈论之父”。他在物理和化学领域也有相当的造诣,做出了极其重要的贡献。总而言之,冯?诺依曼是20世纪最伟大的全才之一(如图0-5所示)。
1944年 ~ 1945年间,冯?诺依曼主持设计了EDVAC(Electronic Discrete Variable Automatic Computer)方案,它明确了计算机由5个部分组成,包括运算器、逻辑控制装置、存储器、输入和输出设备,并描述了这5部分的职能和相互关系。1946年,冯?诺依曼和戈尔德斯廷、勃克斯等人在EDVAC方案的基础上,提出了一个更加完善的设计报告——《电子计算机逻辑设计初探》。这些设计的核心思想便是著名的“冯?诺依曼计算机结构”,这个概念被誉为“计算机发展史上的一个里程碑”,它标志着电子计算机时代的真正开始,并指导着以后的计算机设计。
其设计思想之一是二进制。他根据电子元件双稳工作的特点,建议在电子计算机中采用二进制,并预言二进制的采用将大大简化机器的逻辑线路。实践已经证明了其正确性。如今,逻辑代数的应用已成为设计电子计算机的重要手段,在EDVAC中采用的主要逻辑线路也一直沿用着,只是对实现逻辑线路的工程方法和逻辑电路的分析方做了改进。
程序内存是冯?诺依曼的另一杰作。通过对ENIAC的考察,冯?诺依曼敏锐地抓住了它的最大弱点——没有真正的存储器。ENIAC只有20个暂存器,它的程序是外插型的,指令存储在计算机的其他电路中。这样,解题之前必须先想好所需的全部指令,通过手工把相应的电路连通。这种准备工作要花几小时甚至几天时间,而计算本身只需几分钟。计算的高速与程序的手工存在着很大的矛盾。针对这个问题,冯?诺依曼提出了程序内存的思想:把运算程序存在机器的存储器中,程序员只需要在存储器中寻找运算指令,机器就会自行计算,这样就不必每个问题都重新编程,从而大大加快了运算进程。这一思想标志着自动运算的实现和电子计算机的成熟,已成为电子计算机设计的基本原则。
直到1952年1月, EDVAC才真正研制完成。制造它共使用了大约6 000个电子管和12 000个二极管,功率约56千瓦,占地面积45.5平方米,重7 850千克。与ENIAC相比,体积、重量、功率都减小许多,而运算速度提高了10倍。冯?诺依曼的设想在这台计算机上得到了圆满的体现,可以说EDVAC是第一台现代意义的通用计算机。
随着科学技术的进步,今天人们又认识到“冯?诺依曼结构”的不足,它制约了计算能力的进一步提高,进而提出了“非冯?诺依曼结构”的设想。关于“冯?诺依曼结构”的具体理论我们将在后面的章节中详细讨论。
- 第二代计算机(1958年 ~ 1964年)
使用晶体管的计算机被称作第二代计算机。与真空管计算机相比,晶体管计算机在大幅提升计算能力和可靠性的同时,工作耗电量和自身的发热量都大大降低。第二代计算机利用磁芯制造内存,利用磁鼓和磁盘取代穿孔卡作为主要的外部存储设备。此时还出现了高级程序设计语言,如FORTRAN和COBOL。
在晶体管计算机时期,主存储器均采用磁芯存储器,磁鼓和磁盘开始用作主要的辅助存储器。不仅科学计算用计算机继续发展,而且中、小型计算机,特别是廉价的小型数据处理用计算机开始大量生产。
在晶体管计算机阶段,事务处理的COBOL语言、科学计算用的ALGOL语言和符号处理用的LISP等高级语言开始进入实用阶段。操作系统初步成型,计算机的使用方式由手工操作改变为自动作业管理。
1953年4月7日,IBM公司(International Business Machines Corporation,国际商业机器公司)正式对外发布自己的第一台电子计算机 IBM 701,并邀请了冯?诺依曼、肖克利和奥本海默等150名各界名人出席揭幕仪式,为自己的第一台计算机宣传。该年8月,IBM公司发布了应用与会计行业的IBM 702计算机。
次年IBM公司推出了中型计算机IBM 650,以低廉的价格和优异的性能在市场中获得了极大的成功,至此IBM公司在市场中确立了领导者的地位。
- 第三代计算机(1964年 ~ 1970年)
1964年 4月7日,在IBM公司成立50周年之际,由年仅40岁的吉恩?阿姆达尔(G. Amdahl)担任主设计师,历时4年研发的IBM 360计算机问世,标志着第三代计算机的全面登场,这也是IBM公司历史上最为成功的机型之一。
这一代计算机的特征是使用集成电路代替晶体管,使用硅半导体制造存储器,广泛使用微程序技术,简化处理器设计,操作系统开始出现。系列化、通用化和标准化是这一时期计算机设计的基本思想。
1964年,在集成电路计算机发展的同时,计算机也进入了产品系列化的发展时期。半导体存储器逐步取代了磁芯存储器的主存储器地位,磁盘成了不可缺少的辅助存储器,并且开始普遍采用虚拟存储技术。随着各种半导体只读存储器和可改写的只读存储器的迅速发展,以及微程序技术的发展和应用,计算机系统中开始出现固件子系统。
计算机发展进入集成电路时期以后,在计算机中形成了相当规模的软件子系统,高级语言种类进一步增加,操作系统日趋完善,具备批量处理、分时处理、实时处理等多种功能。数据库管理系统、通信处理程序、网络软件等也不断添加到软件子系统中。软件子系统的功能不断增强,明显地改变了计算机的使用属性,使用效率显著提高。
- 第四代计算机(1971年至今)
20世纪70年代以后,计算机使用集成电路的集成度迅速从中小规模发展到大规模、超大规模的水平,微处理器和微型计算机应运而生,各类计算机的性能迅速提高。随着字长4位、8位、16位、32位和64位的微型计算机相继问世和广泛应用,对小型计算机、通用计算机和专用计算机的需求量也得到相应增长。
微型计算机在社会上大量应用后,一座办公楼、一所学校、一个仓库常常拥有数十台乃至数百台计算机。实现它们互连的局域网随即兴起,进一步推动了计算机应用系统从集中式系统向分布式系统的发展。
1981年8月12日,经过了一年的艰苦开发,由后来被IBM公司内部尊称为“PC之父”的唐?埃斯特奇(D. Estridge)领导的开发团队完成了IBM个人计算机的研发,IBM公司宣布了IBM PC的诞生,由此掀开了改变世界历史的一页,如图0-6所示。
1983年,苹果公司推出了划时代的Macintosh(国内称之为“麦金塔”)计算机,不仅首次采用了图形界面的操作系统,并且第一次使个人计算机具有了多媒体处理能力。
(1)个人计算机普及
这个无终止的时代开始于1985年。这个时代个人微型计算机市场迅速扩大,见证了掌上电脑和台式计算机的诞生、第二代存储媒体(CD-ROM、DVD等)的改进、多媒体的应用、虚拟现实现象的产生。如图0-7所示。
在此期间微处理器产生并高速发展,主要特征是采用了大规模和超大规模集成电路,使用集成度更高的半导体元件做主存储器。这一代计算机是把信息采集、存储处理、通信和人工智能结合在一起的智能计算机系统。它不仅能进行一般信息处理,而且能面向知识处理,具有形式化推理、联想、学习和解释的能力,能帮助人类开拓未知领域和获得新知识。
(2)平板电脑
平板电脑是计算机产品的最新形式。平板电脑(Tablet Personal Computer,简称Tablet PC、Flat PC、Tablet、 Slates)是一种小型、方便携带的个人计算机,以触摸屏作为基本输入设备。用户通过触控笔或数字笔甚至手指来进行操作,而无须使用传统的键盘或鼠标。平板电脑最早由微软的比尔?盖茨提出,从微软提出的平板电脑概念产品上看,平板电脑就是一款无须翻盖、没有键盘、小到可以放入女士手袋却功能完整的PC。如图0-8所示。
2010年1月27日,在美国旧金山芳草地艺术中心举行的苹果公司发布会上,富有传奇色彩的首席执行官史蒂夫?乔布斯亲自发布了平板电脑产品——iPad。iPad定位介于苹果的智能手机iPhone和笔记本电脑产品之间,通体只有四个按键,与iPhone布局一样,提供浏览互联网、收发电子邮件、观看电子书、播放音频或视频等功能,成为当今市场上最成功的平板产品。2011年3月3日正式发布了第二代产品iPad 2;2012年3月7日,发布第三代iPad,第三代iPad名为“The New iPad”。据苹果中国官网信息,苹果第三代iPad定名为“全新 iPad”。
0.2.3 计算机的未来
在可预见的未来,计算机将向更高性能、更加易用、联网更广泛和更专业的应用发展。就计算机本身而言,随着硬件技术和算法设计的进步,计算机的处理能力将进一步提高,不久将达到每秒1 000万亿次浮点运算的计算能力。随着处理器对存储器管理能力的提高和内存硬件成本的不断降低,计算机的内存将不断扩大,这将支持计算机处理更加复杂和规模更大的问题。
同时计算机将具备更多的智能成分,它将具有多种感知能力、一定的思考与判断能力及一定的自然语言能力,能够提供自然的输入手段(如语音输入、手写输入),让人能产生身临其境感觉的各种交互设备已经出现,以便于人们用人类所熟悉的方式与计算机进行交互。
新型计算机系统不断涌现。硅芯片技术的高速发展也意味着硅技术越来越接近其物理极限,为此世界各国的研究人员正在加紧研究开发新型计算机,计算机从体系结构的变革到器件与技术革命都要产生一次量的乃至质的飞跃。新型的量子计算机、光子计算机、生物计算机、纳米计算机等将会逐步走进我们的生活,遍布各个领域。
网络继续蔓延且基于网络的应用不断提升。已经有人提出“网络就是计算机”的概念。网络不仅改变了计算机的应用模式,也为性能计算解决方案提供了新的途径。
随着第四代计算机向智能化方向发展,最终将导致新一代计算机的出现。新一代计算机的研制是各国计算机界研究的热点,如知识信息处理系统(KIPS)、神经网络计算机、生物计算机等。知识信息处理系统是从外部功能方面模拟人脑的思维方式,使计算机具有人的某些智能,如学习和推理的能力。神经网络计算机则从内部结构上模拟人脑神经系统,其特点是具有大规模的分布并行处理、自适应和高度容错的能力。生物计算机是使用以人工合成的蛋白质分子为主要材料制成的生物芯片的计算机,它具有生物体的某些机能,如自我调节和再生能力等。