2.6 计算机发展简史
现代计算机科学自诞生之日到现在,时间不算很长,但人类探索高效计算工具的历史却可以追溯到遥远的古代。我国古人发明的算盘堪称这种探索的一个成功典范,算盘携带方便,便于演算。在我国,时至今日,很多人仍在使用着算盘。当然,客观地说,算盘的计算能力远远不能同现代计算机相比。我国人没有在发明算盘的基础上继续发明出功能更为强大的计算工具,也不能不说是一件颇为遗憾的事情。
在西方,自中世纪起,科学家研制高效计算工具的努力也不曾停止过。1642年,法国数学家帕斯卡(Pascal)发明了一台可以完成6位数加减法运算的齿轮式计算装置,被认为是世界上第一台机械式计算机。这位英年早逝的天才39岁就离开了人世,他也曾留给后人一句广为传颂的名言:“人活着好比脆弱的芦苇,但是他又是有思想的芦苇。”为了纪念这位先驱,人们把1971年发明的一种高级程序设计语言命名为Pascal语言。
在此后的300年间,不断有新的思想和更为先进的机械计算装置出现。德国科学家莱布尼茨(Leibniz)于1671年研制出一台可以进行乘法运算的机械计算机。英国科学家巴贝奇先后提出了“差分机”和“分析机”的设计思想,并于1832年制成了一台差分机。巴贝奇将他的一生都用于机械计算机的研制工作;但由于思想超前,他所提出的分析机最终没有成功,这位巨星最终在耗尽家产后孤独地离开了人世。巴贝奇的“分析机”思想是极其先进的,它支持程序设计的思想。英国诗人拜伦的女儿、数学才女、伯爵夫人艾达(Ada)曾是巴贝奇事业的坚定支持者,开天辟地式地为分析机编制出一批程序,其中包括三角函数计算、级数相乘、伯努利函数程序等。艾达编制的这些程序即使到了今天,也是很先进的,人们公认她是世界上第一位软件工程师。
在IBM公司的支持下,美国科学家艾肯(Aiken)于1943年成功研制了早期计算机的最后代表“马克(Mark)一号”。“马克一号”是在巴贝奇思想的基础上研制成功的,但艾肯设计的“马克一号”是一种电动的机器,它借助电流进行运算,最关键的部件是继电器。“马克一号”上大约安装了3000个继电器,每个都有由弹簧支撑的小铁棒,通过电磁铁的吸引上下运动。吸合则接通电路,代表“1”;释放则断开电路,代表“0”。继电器“开关”能在大约0.01 s的时间内接通或断开电流,这当然比巴贝奇的最初设计所使用的齿轮要先进得多。“马克一号”代表着自帕斯卡以来人类所制造的机械计算机或电动计算机的顶尖水平,当时就被用来计算原子核裂变过程。之后它运行了15年,编制出的数学用表我们至今还在使用;它甚至还可以被用来求解微分方程。
现代意义上的计算机诞生于1946年,标志性事件是ENIAC研制成功。这是世界上第一台电子数字式计算机,是由美国科学家毛奇莱(Mauchly)和艾克特(Eckert)负责设计完成的。冯·诺伊曼虽不是课题组的正式成员,但作为研究小组的常客也参加了研究工作。ENIAC这台巨大的计算机每秒可以进行5000次运算,比使用齿轮的机械计算机以及使用继电器的机电式计算机快上10000倍之多。ENIAC是在美国军方支持下完成的,被用于弹道的计算和氢弹的研制工作。虽然从现在的观点看,ENIAC的计算速度还比不上一台普通微机,但它的诞生具有划时代的意义,标志着电子计算机时代的到来。
在计算机的历史上值得一提的另外一件事是经由冯·诺伊曼领导研制的计算机EDVAC的问世。EDVAC诞生于1952年,在EDVAC中使用了冯·诺伊曼提议的二进制计数制并采纳了存储程序的原理,正式确定了现代计算机的结构,时至今日,我们使用的计算机仍然采用同样的原理和结构,都属于所谓的冯·诺伊曼机。
自ENIAC问世,目前已经过近六十年的发展历程,这期间计算机硬件技术的发展可谓日新月异。从1946年起,可以认为计算机硬件的发展经历了下面五个阶段:
(1)电子管阶段(1946~1958年)。
在这个阶段,计算机的逻辑元件主要采用电子管,存储器采用汞延迟线,用纸带以及穿孔卡片作为输入输出手段,每秒钟仅能执行几千条指令。程序员用机器语言和汇编语言编写程序。由于电子管平均寿命有限,所以电子管计算机可靠性较差,且体积大,能耗高,速度慢,容量小,价格昂贵。
(2)晶体管阶段(1958~1964年)。
晶体管的问世及应用大大缩小了计算机的体积,计算机的可靠性进一步提高,价格进一步降低。在这个阶段,计算机的逻辑元件主要采用晶体管,存储器采用磁芯存储器,用磁带作为辅助存储设备,每秒钟可以执行上百条指令。出现了FORTRAN等高级程序设计语言。但是,晶体管计算机无论性能,还是体积、价格,仍不能满足各行各业对计算机日益增长的需求。
(3)集成电路阶段(1964~1971年)。
1958年,诺伊斯(Noyce)领导发明了集成电路技术。1964年,IBM公司推出的IBM360机标志着计算机进入了集成电路时代。在这个阶段,主要采用中、小规模集成电路作为基本器件,存储器采用半导体存储器,用磁带和磁盘作为辅助存储器,每秒钟可以执行的指令数超过一千万。软件方面出现了操作系统以及模块化的软件设计思想。计算机的体积更小,寿命更长,功耗、价格进一步下降,而速度和可靠性相应地有所提高,应用范围进一步扩大。由于集成电路成本迅速下降,形成了成本低而功能比较强的小型计算机供应市场,占领了许多数据处理的应用领域。
(4)大规模集成电路阶段(1971~1980年)。
随着集成电路工艺技术的飞速发展,出现了大规模以及超大规模集成电路技术。这使得单个芯片上可以集成成千上万个晶体管。这个阶段的计算机大量采用大规模集成电路技术和超大规模集成电路技术。中央处理器、存储器等计算机部件高度集成化,磁盘等辅助存储器容量进一步扩大,运算速度大幅提高,每秒可执行上亿条指令。软件方面出现了数据库管理系统、分布式操作系统等,软件设计方法持续进步,逐渐形成了专门的软件产业部门。
(5)微型计算机阶段(1980年至今)。
随着微处理器芯片的出现,计算机体积的进一步缩小、成本的持续下降,大型计算机、小型计算机逐渐淡出市场,面向个人使用的微机迅速发展,进入寻常百姓家庭。1981年,IBM公司推出的IBM PC宣告了这个时代的来临,配置包括64 KB内存、单色显示器、可选的盒式磁带驱动器、两个160 KB单面软盘驱动器,当时售价仅2880美元。微软公司发布了为IBM PC使用的磁盘操作系统(disk operating system, DOS)。今天我们使用的微机已经远远超出了上述配置,微机操作系统也已不仅仅是支持单个任务的操作系统。计算机进入完全普及的时代。
计算机科学始终保持着高速发展,各种新技术、新设备层出不穷。美国科学家摩尔(Moore)在1965年曾提出了一个有关集成电路发展的预言:“半导体芯片上集成的晶体管和电阻数量将每年翻一番。”1975年,该预言又被进一步修正为“芯片上集成的晶体管数量将每两年翻一番”。该预言一般也称为摩尔定律,尽管这一技术进步的周期已经从最初预测的12个月延长到如今的近18个月,但摩尔定律这一经验性规律一直是成立的。时至今日,比较先进的集成电路已含有约1.7×1010个晶体管。该规律未来是否还成立,还有待时间检验;但从目前的情形看,计算机及其相关技术持续高速发展的势头暂时不会发生改变。