延遲存儲電子自動計算器

电子延迟存储自动计算器（英文：Electronic Delay Storage Auto-matic Calculator、EDSAC）是英国的早期计算机。1946年，英国剑桥大学数学实验室的莫里斯·威尔克斯教授和他的团队受冯·诺伊曼的First Draft of a Report on the EDVAC的启发，以EDVAC为蓝本，设计和建造EDSAC，1949年5月6日正式运行，是世界上第一台实际运行的存储程序式电子计算机。 项目的投资方是英国的J. Lyons & Co. Ltd.，该公司后来推出基于EDSAC设计的第一代商业应用电子计算机LEO I（英语：LEO I）。 EDSAC使用了约3000个真空管，排在12个柜架上，占地5×4米，功率消耗12Kw 。 使用水银延迟线作存储器，分布在32个槽中，每个槽5英尺长，里面包含32个内存位置，共1024个位置。 建造时只实现了一半，512个字，第二组于1952年添加. 1952年增加一个磁带存储，但实际使用中不能良好工作。 输入采用5路的穿孔纸带，使用电子纸带读入机，速度为每秒 6 2 3 {\displaystyle 6{\frac {2}{3}}} 个字符，1949年10月改进为每秒16字符，1950年使用光电阅读器，达到50字符每秒。 输出使用电传打字机，速度 6 2 3 {\displaystyle 6{\frac {2}{3}}} 字符每秒，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的处理器包含5个基本寄存器： 指令地址寄存器 顺序存储器 被乘数寄存器 乘数寄存器 累加器 EDSAC和同时代的计算机均没有变址寄存器（英语：Index_register）。 平均每条指令运行时间1.5ms，乘法4.5ms，软件除法大约需要200ms。 完整的指令集可以在这里的p41找到。 转移指令 转移指令只有E-和G-（分别表示累加器的符号位为0和1时转移），而没有无条件转移。因此无条件转移就需要使用两条指令；同样的原因，使得判断两个数相等需要八条指令。 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早期应用集中在解决气象学、遗传学和X光结晶学等方面的问题。 1951年，Miller和Wheeler利用EDSAC发现了一个当时最大的79位素数。 1951年，A.S. Douglas开发出OXO（井字游戏），输出到阴极射线管，是最早的电子计算机游戏。 1960年代，EDSAC用于收集椭圆曲线解的数值现象，这引出了贝赫和斯维讷通-戴尔猜想。 EDSAC的后继机型EDSAC2于1958年投入使用。EDSAC2引入了微程序（microprogramme）和位片（英语：bit-slice）的概念。 The Preparation of Programs for an Electronic Digital Computer 莫里斯·威尔克斯, 大卫·惠勒和斯坦利·吉尔, Addison-Wesley, 第一版, 1951年 John von Neumann. First Draft of a Report on the EDVAC (PDF). （原始内容 (PDF)存档于2004-04-23）.  莫里斯·威尔克斯 EDVAC 冯·诺伊曼结构 维基共享资源上的相关多媒体资源：延遲存儲電子自動計算器 EDSAC模拟器（英文） 英国华威大学计算机科学系马丁·坎贝尔-凯利开发 EDSAC50周年 （页面存档备份，存于互联网档案馆） （英文） Nicholas Enticknap and Maurice Wilkes, Cambridge's Golden Jubilee （页面存档备份，存于互联网档案馆） （英文） http://www.virtualtravelog.net/entries/2003-08-TheFirstDraft.pdf 互联网档案馆的存檔，存档日期2004-04-23. EDVAC是第一个设计为冯·诺伊曼结构的电子计算机，但直到1952年该计算机才首次正式运行。 Martin Campbell-Kelly: Programming the EDSAC, IEEE Annals of the History of Computing, Vol 2(1), 1980. Report of a Conference on High Speed Automatic Calculating-machines, University Mathematical Laboratory, Cambridge, June 1949; M.R. Williams与M. Campbell-Kelly的修改版于1989年由MIT/Tomash historical series重印（报告也包含了EDSAC与曼彻斯特与美国的同时期电子计算机的比较报告。） Peter Robinson and Karen Sparck Jones: EDSAC 99 commemorative booklet, University of Cambridge Computer Laboratory, April 1999. 在线版本 （页面存档备份，存于互联网档案馆）. Karen Sparck Jones: Brief informal history of the Computer Laboratory 在线版本 （页面存档备份，存于互联网档案馆） EDSAC模拟器的文档 （页面存档备份，存于互联网档案馆） 马丁·坎贝尔-凯利编写 M.V. Wilkes, Memoirs of a Computer Pioneer, MIT Press, 1985.