通用计算机发展历史

一、ABC(Atanasoff–Berry Computer,ABC计算机)计算机

制造背景

上个世纪30年代,保加利亚裔的阿塔纳索夫爱荷华州立大学物理系任副教授,为学生讲授如何求解线性偏微分方程组时,不得不面对繁杂的计算,那是要消耗大量时间的枯燥工作…… 阿塔纳索夫于是开拓新的思路,从1935年开始探索运用数字电子技术进行计算工作的可能性。

经过两年反复研究试验,思路越来越清晰,设计也大体上想清楚了。但他还需要一位聪明并且懂得机械、又有动手能力的人共同完成这项发明,于是他找到当时正在物理系读硕士学位的研究生克利福德·贝里。

两个人终于在1939年造出来了一台完整的样机,证明了他们的概念是正确的并且是可以实现的。人们把这台样机称为ABC,代表的是包含他们两人名字的计算机 (Atanasoff-Berry Computer)。

这台计算机是电子与电器的结合,电路系统中装有300个电子真空管执行数字计算与逻辑运算,机器使用电容器来进行数值存储,数据输入采用打孔读卡方法,还采用了二进位制。因此,ABC的设计中已经包含了现代计算机中四个最重要的基本概念,从这个角度来说它是一台真正现代意义上的电子计算机。

性能特点

第一,采用电能与电子元件,在当时就是电子真空管

第二,采用二进位制,而非通常的十进位制;

第三,采用电容器作为存储器,可再生而且避免错误;

第四,进行直接的逻辑运算,而非通常的数字算术。

 

二、ENIAC(Electronic Numerical Integrator And Computer,电子数字积分计算机)电子计算机

研发的原因

研制电子计算机的想法产生于第二次世界大战进行期间。当时激战正酣,各国的武器装备还很差,占主要地位的战略武器就是飞机和大炮,因此研制和开发新型大炮和导弹就显得十分必要和迫切。为此美国陆军军械部在马里兰州的阿伯丁设立了“弹道研究实验室”。 

美国军方要求该实验室每天为陆军炮弹部队提供6张射表以便对导弹的研制进行技术鉴定。事实上每张射表都要计算几百条弹道,而每条弹道的数学模型是一组非常复杂的非线性方程组。这些方程组是没有办法求出准确解的,因此只能用数值方法近似地进行计算。

不过即使用数值方法近似求解也不是一件容易的事!按当时的计算工具,实验室即使雇用200多名计算员加班加点工作也大约需要二个多月的时间才能算完一张射表。在“时间就是胜利”的战争年代,这么慢的速度怎么能行呢?恐怕还没等先进的武器研制出来,败局已定。

为了改变这种不利的状况,当时任职宾夕法尼亚大学莫尔电机工程学院的莫希利(John Mauchly)于 1942年提出了试制第一台电子计算机的初始设想——“高速电子管计算装置的使用”,期望用电子管代替继电器以提高机器的计算速度。

美国军方得知这一设想,马上拨款大力支持,成立了一个以莫希利、埃克特(John Eckert)为首的研制小组开始研制工作、预算经费为15万美元,这在当时是一笔巨款。

让研制工作十分幸运的是,当时任弹道研究所顾问、正在参加美国第一颗原子弹研制工作的数学家冯·诺依曼(von Neumann,1903-1957,美籍匈牙利人)带着原子弹研制(1944年)过程中遇到的大量计算问题,在研制过程中期加入了研制小组。原本的ENIAC存在两个问题,没有存储器且它用布线接板进行控制,甚至要搭接几天,计算速度也就被这一工作抵消了。

1945年,冯·诺依曼和他的研制小组在共同讨论的基础上,发表了一个全新的“存储程序通用电子计算机方案”——EDVAC(Electronic Discrete Variable Automatic Computer)在此过程中他对计算机的许多关键性问题的解决作出了重要贡献,从而保证了计算机的顺利问世。

虽然ENIAC体积庞大,耗电惊人,运算速度不过几千次,但它比当时已有的计算机要快1000倍,而且还有按事先编好的程序自动执行算术运算逻辑运算存储数据的功能。ENIAC宣告了一个新时代的开始。从此科学计算的大门也被打开了。

ENIAC,全称为Electronic Numerical Integrator And Computer,即电子数字积分计算机。ENIAC是继ABC阿塔纳索夫-贝瑞计算机)之后的第二台电子计算机和第一台通用计算机

性能特点

ENIAC长30.48米,宽6米,高2.4米,占地面积约170平方米,30个操作台,重达30英吨,耗电量150千瓦,造价48万美元。它包含了17,468根真空管(电子管)7,200根水晶二极管,1,500 个中转,70,000个电阻器,10,000个电容器,1500个继电器,6000多个开关,计算速度是每秒5000次加法或400次乘法,是使用继电器运转的机电式计算机的1000倍、手工计算的20万倍。 

三、EDVAC(Electronic Discrete Variable Automatic Computer,离散变量自动电子计算机)计算机

研发过程

ENIAC和EDVAC的建造者均为宾夕法尼亚大学的电气工程师约翰·莫奇利和普雷斯波·艾克特。1944年8月,EDVAC的建造计划就被提出;在ENIAC充分运行之前,其设计工作就已经开始。和ENIAC一样,EDVAC也是为美国陆军阿伯丁试验场的弹道研究实验室研制。

冯·诺伊曼以技术顾问形式加入,总结和详细说明了EDVAC的逻辑设计,1945年6月发表了一份长达101页的报告,这就是著名的“关于EDVAC的报告草案”(en:First Draft of a Report on the EDVAC),报告提出的体系结构一直延续至今,即冯·诺伊曼结构

EDVAC的初步预算为100 000美元,但最终的成本大约超过估计的4倍,约500 000美元。

性能特点

EDVAC使用了大约6000个真空管和12000个二极管,占地45.5平方米,重达7850千克,消耗电力56千瓦

EDVAC是二进制串行计算机,具有和软件除的功能。一条加法指令约864微秒,乘法指令2900微秒(或2.9毫秒)。 使用延迟线存储器,具有1000个44位(bit)的字。

EDVAC是第一台现代意义的通用计算机。和之前的世界上第一台电子计算机ENIAC不同,EDVAC首次使用二进制而不是十进制。整台计算机共使用大约6000个电子管和大约12000个二极管,功率为56KW,占地面积45.5平方米,重7850KG,使用时需要三十个技术人员同时操作。

它由五个基本部分组成:1)运算器CA(2)控制器CC(3)存储器M(4)输入装置I(5)输出装置O;

这种体系结构一直延续至今,现在使用的计算机,其基本工作原理仍然是存储程序和程序控制,所以现在一般计算机被称为冯诺依曼结构计算机。鉴于冯诺依曼在发明电子计算机中所起到关键性作用,他被西方人誉为"计算机之父"。

四、EDSAC(Electronic Delay Storage Auto-matic Calculator,电子延迟存储自动计算器)

研发背景

战后,威尔克斯回到剑桥大学,担任数学实验室(后改名计算机实验室)主任。1946年5月,他获得了冯·诺伊曼起草的EDVAC计算机的设计方案的一份复印件。EDVAC是ElectronicDiscrete Variable Automatic Computer的缩写,是宾夕法尼亚大学莫尔学院于1945年开始研制的一台计算机,是按存储程序式思想设计的,并能对指令进行运算和修改,因而可自动修改其自身的程序。但由于工程上遇到困难,EDVAC迟至1952年才完成,造成“研制开始在前,完工在后”的局面,而让威尔克斯占去先机。威尔克斯仔细研究了EDVAC的设计方案,8月又亲赴美国参加了莫尔学院举办的计算机培训班,广泛地与EDVAC的设计研制人员进行接触、讨论,进一步弄清了它的设计思想与技术细节。

回国以后,威尔克斯立即以EDVAC为蓝本设计自己的计算机并组织实施,起名为EDSAC(Electronic Delay Storage Auto-matic Calculator,但有的文献写成Electronic DiscreteSequential AutomaticComputer)。EDSAC采用水银延迟线作存储器,可存储34恤字长的字512个,加法时间1.5 ms,乘法时间4 ms。威尔克斯还首次成功地为EDSAC设计了一个程序库,保存在纸带上,需要时送入计算机。但是EDSAC在工程实施中同样遇到了困难:不是技术,而是资金缺乏。在关键时刻,威尔克斯成功地说服了伦敦一家面包公司J.Lyons&Co。.的老板投资该项目,终于使计划绝处逢生。1949年5月6日,EDSAC首次试运行成功,它从带上读人一个生成平方表的程序并执行,正确地打印出结果。作为对投资的回报,LyOHS公司取得了批量生产EDSAC的权利,这就是于1951年正式投入市场的LEO计算机(Lyons Electronic Office),这通常被认为是世界上第一个商品化的计算机型号,因此这也成了计算机发展史上的一件趣事:第一家生产出商品化计算机的厂商原先竟是面包房。Lyons公司后来成为英国著名的“国际计算机有限公司”即ICL的一部分。

EDSAC的成功当然不在于它能生成平方表。还在试运行期间,它就完成了一系列重大任务,向世人展示了计算机的巨大潜力。著名的数学家和统计学家菲歇尔(R.A.Fisher,因在20世纪20年代创建方差分析法——varianceanalysis而闻名于世)拿来一个二阶非线性微分方程,当程序员编出程序,输入EDSAC很快就给出了解以后,菲歇尔惊奇得简直无法相信。

EDSAC还为剑桥大学著名的生物学家肯德烈(J.Kendrew)分析了成百上千张有关分子结构的X射线衍射图案的照片,肯德烈因为这方面的成就而荣获1962年诺贝尔奖,他多次提到EDSAC在他的研究工作中所发挥的无可比拟的作用。

射电天文学的主要创始人、因发明综合孔径射电望远镜而荣获1974年诺贝尔物理奖的马丁·里尔(MartinRyle)也是在EDSAC上对获得的天文照片进行分析和综合,帮助他取得成果的。

在设计与建造EDSAC的过程中,威尔克斯决不是简单地模仿和照搬EDVAC的设计,而是创造和发明了许多新的技术和概念。诸如“变址”(威尔克斯当时称之为“浮动地址"----floating address);“宏指令“(威尔克斯当时称为“综合指令"--synthetic order);微程序设计(将每一条机器指令的执行分解为一系列更基本的微命令。将可同时执行的微命令组合在一起形成微指令。

所谓微程序就是用微指令编写出来的一段微指令序列);子例程及子例程库,所谓子例程即subroutine,就是可用于一个或多个计算机程序中,也可用在一个计算机程序的一处或多处的子程序,其目的在于将复杂的任务分解成若干较小的单位,以便于分别处理;高速缓冲存储器即Cache(位于中央处理器与主存储器之间,对程序员透明的一种高速小容量存储器,以提高处理速度),等等。所有这些都对现代计算机的体系结构和程序设计技术产生了深远的影响。

EDSAC和LEO计算机的成功奠定了威尔克斯作为计算机大师和先驱在学术界的地位,而EDSAC(LEO)以及其后在英国国家物理实验室NPL由图灵进行设计、而由威尔金森(J.H.Wilkinson,1970年图灵奖获得者)主持实现的Pilot ACE及其商品化产品DEUCE一起,则使英国的计算机技术在20世纪50年代处于世界领先地位,可以与美国平起平坐。

技术特点

EDSAC使用了约3000个真空管,排在12个柜架上,占地5×4米,功率消耗12Kw。

EDSAC的内存槽5英尺长,内含32个内存位置。使用水银延迟线作存储器,分布在32个槽中,每个槽5英尺长,里面包含32个内存位置,共1024个位置。建造时只实现了一半,512个字,第二组于1952年添加。1952年增加一个磁带存储,但实际使用中不能良好工作。

阴极射线管输入采用5路的穿孔纸带,使用电子纸带读入机,速度为每秒个字符,1949年10月改进为每秒16字符,1950年使用光电阅读器,达到50字符每秒。

输出使用电传打字机,速度字符每秒,1951年添加一个16字符每秒的纸带打孔机

另外,EDSAC可以外接阴极射线管(CRT),可以用来观察寄存器的值。

EDSAC的原始设计基于EDVAC,概念上是一台十分简单的机器,这是它的一个良好特征,与1960-1970年代的RISC体系很相似。

包含5部分:运算器(ALU)、控制器、存储器、输入和输出。运算器和控制器一般合称CPU

工作在500kHz,平均每秒运行650指令

共1024字(word),每字18位(bit)。但一般只能使用17bit,第一个bit由于电路的建立时间(set-up time)而不能使用。

5bit的指令代码,11bit内存地址(由于EDSAC内存只有1024,所以实际有1bit保留),余下1bit在某些指令中,用于指示操作子是单字还是双字(word)。

存放数据是,EDSAC采用二进制补码,可表示正负整数和正负真分数。 单字17bit,其中第一个bit用于符号位;双字35bit,此时,第二个字可用满18bit。EDSAC的内部结构EDSAC的处理器包含5个基本寄存器:指令地址寄存器、顺序存储器、被乘数寄存器、乘数寄存器、累加器。

EDSAC和同时代的计算机均没有变址寄存器(en:Index_register)。

指令集

平均每条指令运行时间1.5ms,乘法4.5ms,软件除法大约需要200ms。

完整的指令集可以在这里的p41找到。

转移指令

转移指令只有E-和G-(分别表示累加器的符号位为0和1时转移),而没有无条件转移。因此无条件转移就需要使用两条指令;同样的原因,使得判断两个数相等需要八条指令。[7]1952年,指令集添加了无条件转移,但许多程序和子程序库需要重写。

算术指令

加法指令将存放的数据按整数处理。而乘法指令将数据解释为真分数,两个17bit的分数相乘得到一个35bit的分数存入累加器。

EDSAC缺少逻辑运算指令,只有AND,也缺少字符处理指令。

操作系统,或者称之为初始化指令,使用了31条指令,存放在机械结构的只读存储器中。这些指令将纸带上的程序读入内存,然后运行。

第二个版本在1949年8月安装,占用了41条指令,使得子程序的重定位和协作变得简单易用(D.J. Wheeler的重要发明)。

1949年5月6日,第一个在EDSAC程序是打印0-99的平方表。

EDSAC的非凡的特征是提供了大量的子程序。到1951年,EDSAC含有87个子程序,涵盖:

浮点运算、复数运算、检测、除法、幂、微分方程、特殊函数、幂级数、对数、正交、输入输出、n次方根、三角函数、向量和矩阵、循环(模拟repeat,while和for)。

EDSAC的应用EDSAC早期应用集中在解决气象学、遗传学和X光结晶学等方面的问题。

1951年,Miller和Wheeler利用EDSAC发现了一个当时最大的79位素数。

1951年,A.S. Douglas开发出OXO(井字游戏),输出到阴极射线管,是最早的电子计算机视频游戏。

1960年代,EDSAC用于收集椭圆曲线解的数值现象,这引出了贝赫和斯维讷通-戴尔猜想。

EDSAC的后继机型EDSAC2于1958年投入使用。EDSAC2引入了微程序(microprogramme)和位片(en:bit-slice)的概念。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值