电子延迟存储自动计算器(
英文:Electronic Delay Storage Auto-matic Calculator、EDSAC)是
英国的早期
计算机。1946年,英国
剑桥大学数学实验室的
莫里斯·威尔克斯教授和他的团队受冯·诺伊曼的First Draft of a Report on the EDVAC的启发,以
EDVAC为蓝本,设计和建造EDSAC,1949年5月6日正式运行,是世界上第一台实际运行的存储程序式
电子计算机。
简述
EDSAC(电子延迟存储自动
计算机Electronic Delay Storage Automatic Calculator)
EDSAC由英国剑桥大学莫里斯.文森特.
威尔克斯(Maurice Vincent Wilkes)领导、设计和制造的,并于1949年投入运行。它使用了水银延迟线作
存储器,利用
穿孔纸带输入和电传打字机输出。
EDSAC建成于1949年5月6日,是世界上第一台“商用的程序内藏式电子计算机(the world’s first stored-program computer tooperate a regularcomputing service)”,所有现代电脑的鼻祖之一。
EDSACPC是它的模拟程序。可以拿来玩玩。同捆还有一些为这个计算机编写的程序,及程序编写方法等。运行方式可以选择“原始速度”,可以体验一把上世纪50年代美国人的电脑
节奏。
项目的投资方是英国的J. Lyons & Co. Ltd.,该公司后来推出基于EDSAC设计的第一代商业应用电子计算机LEO I。
战后,威尔克斯回到
剑桥大学,担任数学
实验室(后改名计算机实验室)主任。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上对获得的天文照片进行分析和综合,帮助他取得成果的。
所谓微程序就是用微指令编写出来的一段微指令序列);子例程及子例程库,所谓子例程即subroutine,就是可用于一个或多个计算机程序中,也可用在一个计算机程序的一处或多处的子程序,其目的在于将复杂的任务分解成若干较小的单位,以便于分别处理;高速缓冲存储器即Cache(位于中央处理器与主存储器之间,对程序员透明的一种高速小容量
存储器,以提高处理速度),等等。所有这些都对现代计算机的体系结构和程序设计技术产生了深远的影响。
EDSAC和LEO计算机的成功奠定了威尔克斯作为计算机大师和先驱在学术界的地位,而EDSAC(LEO)以及其后在英国国家物理实验室NPL由图灵进行设计、而由威尔金森(J.H.Wilkinson,1970年图灵奖获得者)主持实现的Pilot ACE及其商品化产品DEUCE一起,则使英国的计算机技术在20世纪50年代处于世界领先地位,可以与美国平起平坐。
英国制造
电子延迟存储自动计算器(英文:Electronic Delay Storage Auto-matic Calculator、EDSAC)是英国的早期计算机。1946年,英国剑桥大学数学实验室的莫里斯·威尔克斯教授和他的团队受冯·诺伊曼的FirstDraft of a Report on the EDVAC的启发,以EDVAC为蓝本,设计和建造EDSAC,1949年5月6日正式运行,是世界上第一台实际运行的存储程序式电子计算机。
物理组件
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[8],平均每秒运行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)的概念。