1.1.1 计算机发展史
18世纪,工业革命开始,法国纺织工人鲁修为便于转换纺织图样,在织布机上套上穿孔纸带,以此达到仅需手工进料的半自动化生产。1801年,法国人雅卡尔发明提花织布机,利用打孔卡控制织花图样,与前者不同的是,这部织布机变更连串的卡片,无须更动机械设计,堪称可编程化机器的里程碑。
1936年11月12日,阿兰·麦席森·图灵(Alan Mathison Turing;简称“阿兰·图灵”)发表了计算机理论的奠基性论文《论可计算数及其在判定问题中的应用》(On Computable Numbers,with Application to the Entscheidungs Problem)。在论文中,阿兰·图灵阐明了现代计算机理论,从理论上定义了现代通用计算机、可计算性等重要概念,故被认为是“计算机科学之父”(图1- 1、图1-2)。
1945年6月,冯·诺依曼提出了在数字计算机内部的存储器中存放程序的概念(stored program concept),这是所有现代电子计算机的模板,被称为“冯·诺依曼结构”(图1-3),按这一结构设计的电脑称为存储程序计算机(stored program computer),又称为通用计算机。
在电子计算机的发展过程中,电子元器件的变更起到了决定性作用,它是计算机换代的主要标志,其发展过程划分为电子管、晶体管、集成电路以及大规模集成电路4个阶段,这4个阶段对应的计算机分别被称为第一代至第四代计算机。
图1- 1 图灵机
图1-2 阿兰·图灵
图1-3 冯·诺依曼结构
1)第一代电子管计算机(1946—1958年)
1946年2月,美国宾夕法尼亚大学成功研制了世界上第一台电子管计算机——电子数字积分计算机(electronic numerical integrator and calculator,ENIAC;中文名“埃尼阿克”),这是美国奥伯丁武器试验场为了满足计算火炮弹道、编制设计表的需要于1943年6月与联邦政府签订10万美元的合同后而研制的。ENIAC完成后未能赶上第二次世界大战,但被洛斯阿拉莫斯(Los Alamos)国家实验室用于计算原子弹爆炸的突变问题,后来又曾被用于阿伯丁的空军试验场,一直运行到1955年10月才停止工作。ENIAC的诞生揭开了人类科技的新纪元,也是人们所称的第三次科技革命(信息革命)的开端。ENIAC和其研制者之一莫奇利如图1-4所示。
中国的计算机制造工业起步于20世纪50年代中期。1957年下半年,由中国科学院计算技术研究所和北京有线电厂(原738厂)在消化吸收的基础上正式开始了计算机的研制工作。1958年6月,该电子计算机安装调试,8月1日该机可以表演短程序运行,标志着中国第一台电子计算机诞生。为纪念这个日子,该机定名为八一型数字电子计算机,后改名为103型计算机(即DJS-1型)(图1- 5)。
图1-4 世界上第一台电子管计算机ENIAC和其研制者之一莫奇利
图1- 5 DJS-1型通用数字电子计算机
第一代电子计算机的一个特点是操作指令为特定任务而编制,每种机器有各自不同的机器语言,功能受到限制,速度也慢;另一个明显特征是使用真空电子管和磁鼓存储数据。机器的总体结构以运算器为中心。运算速度为每秒几千次到几万次,内存容量仅为1 000~4 000 byte(字节),主要用于军事和科学研究。
2)第二代晶体管计算机(1958—1964年)
1948年7月1日,美国《纽约时报》用8个句子的篇幅,公布了贝尔实验室肖克莱、巴丁、布拉顿发明晶体管的消息。它就像8颗重磅炸弹,在电脑领域引发一场“晶体管革命”,电子计算机从此大步跨进第二代的门槛。1960年,出现了一些成功应用于商业领域、大学和政府部门的第二代计算机。代表机型为IBM公司的IBM 7090晶体管计算机(图1-6)和CDC公司的CDC 1604计算机。在这一时期出现了更高级的COBOL(common business oriented language)和FORTRAN(formula translator)等语言,它们以单词、语句和数学公式代替了二进制机器码,使计算机编程更容易。
图1-6 IBM 7090晶体管计算机
中国在研制第一代电子管计算机的同时,已开始研制晶体管计算机。我国第一台大型晶体管计算机(称为“109乙机”)从1958年起在中国科学院计算技术研究所开始酝酿启动。经过两年的努力,109厂就提供了机器所需的全部晶体管(109乙机共使用2万多只晶体管、3万多只二极管)。对109乙机加以改进后,两年后又推出“109丙机”。109丙机为用户运行了15年,有效算题时间10万h以上,在中国两弹试验中发挥了重要作用,被用户誉为“功勋机”。
第二代晶体管计算机的发明大大促进了计算机的发展,晶体管代替电子管,电子设备体积减小,但速度更快、功耗更低、性能更稳定。首先使用晶体管技术的是早期的超级计算机,主要用于原子科学的大量数据处理和企业商务。
3)第三代集成电路计算机(1964—1971年)
第二代晶体管计算机中的晶体管比起电子管是一个明显的进步,但晶体管会产生大量热量,这会损害计算机内部的敏感部分。1958年发明的集成电路(integrated circuit,IC),将三种电子元件结合到一片小小的硅片上,使计算机体积更小、功耗更低、速度更快。十几个乃至数百个电子组件组成的逻辑电路已经可以创建在几平方毫米大的单晶硅片上,它们组成的小规模集成电路(small-scale integration,SSI)代替了分立组件。多道系统和分时系统于此时出现,它们成为操作系统诞生的标志。图1-7所示为IBM 360集成电路计算机。
图1-7 IBM 360集成电路计算机
1965年,中国开始了第三代计算机的研制工作。1969年,为了支持石油勘探事业,北京大学承接了研制百万次集成电路数字电子计算机的任务。1973年年初,由北京大学、北京有线电厂和燃化部等有关单位共同研制成功中国第一台百万次集成电路电子计算机(称为“150机”),该机字长数48位,每秒运算100万次,主内存130KB(图1-8)。150机主要用于石油、地质、气象和军事部门。
图1-8 中国第一台百万次集成电路电子计算机
第三代计算机的速度提升至每秒百万次量级,体积变小、速度变快、能耗减少、价格降低、可靠性变强,软件逐渐完善。主要元件采用小规模集成电路和中规模集成电路,开始采用性能优良的半导体存储器。运算速度提高到每秒几十万次到几百万次。计算机的发展速度变得极为迅猛,计算机也开始进入日常的办公与学习之中。
4)第四代大规模集成电路计算机(1971年至今)
在第三代计算机应用集成电路后,计算机处理器唯一的发展方向是扩大规模。到了20世纪80年代,超大规模集成电路(very large-scale integration,VLSI)在芯片上容纳了几十万个元件,后来的甚大规模集成电路(ultra large-scale integration,ULSI)将数字扩充到百万级,成为第四代计算机发展的基石。20世纪70年代中期,国外计算机制造商开始将计算机带给普通消费者。1981年,IBM公司推出个人计算机(personal computer,PC),用于家庭、办公室和学校。20世纪80年代个人计算机的竞争使得价格不断下跌,与IBM PC竞争的Apple Macintosh系列于1984年推出,Macintosh提供了友好的图形界面,用户可以用鼠标方便地进行操作。IBM PC、Apple Macintosh分别如图1- 9、图1- 10所示。
图1-9 IBM PC
图1-10 Apple Macintosh
和国外一样,中国第四代计算机研制是从微机开始的。1980年年初中国不少单位开始采用Z80、X86和M6800芯片研制微机。1997年国防科技大学研制成功银河-Ⅲ百亿次并行巨型计算机系统,其采用可扩展分布共享存储并行处理体系结构,由130多个处理结点组成,峰值性能为每秒130亿次浮点运算,系统综合技术达到20世纪90年代中期国际先进水平。2004年上半年推出每秒浮点运算速度1万亿次的曙光4000L超级服务器(图1-11)。
计算机发明自20世纪40年代,经过几十年的发展,它已经成为一门复杂的工程技术学科。从ENIAC揭开计算机时代的序幕,到IBM PC成为迎来计算机时代的宠儿,不难看出这里发生了两个根本性的变化:一是计算机已从实验室大步走向社会,正式成为商品交付客户使用;二是计算机已从单纯的军事用途进入公众的数据处理领域。计算机的应用从国防、科学计算到家庭办公、教育娱乐,无所不在。
图1-11 曙光4000L超级服务器