The Wayback Machine - https://web.archive.org/web/20221028224217/https://baike.sogou.com/kexue/d10011.htm

曼彻斯特马克1

编辑
曼彻斯特马克1是世界上最早的存储程序计算机之一。

曼彻斯特马克1是最早的存储程序计算机之一,由曼彻斯特维多利亚大学基于曼彻斯特小规模试验机(也称小宝贝,运行于1948年6月)开发。它也被称为曼彻斯特自动数字机或MADM。[1]曼彻斯特马克一号的开发工作始于1948年8月,第一版于1949年4月投入使用;1949年6月16-17日晚,一个用来搜寻梅森素数的程序在该机器上不出错地连续运行了九个小时。英国媒体广泛报道了这台机器的成功运行,并使用“电子大脑”这个词向读者介绍它。这一描述引起了曼彻斯特大学神经外科系主任的回应,引发了一场关于电子计算机是否真的有创造力的长期争论。

创造马克1号的目的是为了在大学内提供计算资源,让研究人员获得实际使用计算机的经验,但它也很快成为费兰蒂的商业版计算机设计的原型。马克1号于1949年底停止开发,在1950年底报废,最终在1951年2月被世界上第一台商用通用电子计算机费兰迪马克1号取代。[2]

这一计算机在历史上具有特别重要的意义,因为它开创性地包含了索引缓存器,这一创新发明使得程序更容易通过存储器中的一系列单词顺序读取。有34项专利源于该机器的开发,其设计背后的许多理念被纳入随后的商业产品,如IBM 701和702以及费兰迪马克1号。首席设计师弗雷德里克·c·威廉姆斯和汤姆·基尔伯恩从他们使用马克1号的经验中得出如下的结论:计算机应该更多地用其他于科学领域,而不是仅仅在纯粹的数学领域。1951年,他们开始开发梅格,马克1号的继任者,它包含了一个浮点运算器。

1 背景编辑

1936年,数学家艾伦·图灵发表了一个理论上“通用计算机器”的定义:一台将程序和正在处理的数据保存在磁带上的计算机。图灵证明了这样的机器能够解决任何可以想到的,并且可以为其编写算法的数学问题。[3]在20世纪40年代,图灵和其他人,如康拉德·楚泽,提出了计算机用自己的内存来储存程序和数据,而不是用外部磁带的思想,[4]但是,实际上数学家约翰·冯·诺依曼才是曼彻斯特马克1号之父,他被广泛的认为定义了存储程序计算机架构,而该架构成为了曼彻斯特马克1号的理论基础。[5]

冯·诺伊曼计算机的实际结构取决于是否能使用合适的存储设备。曼彻斯特大学的“小宝贝”,世界上第一台电子存储程序计算机,通过在1948年6月21日运行其第一个程序,[6]成功地证明了存储程序方法和威廉姆斯管的实用性,威廉姆斯管是一种基于标准阴极射线管(CRT)的早期形式的计算机存储器。早期的电子计算机通常通过重新布线或通过插头和接线板进行编程;不像现代计算机那样有单独的程序存储在内存中。例如,对ENIAC重新编程可能需要几天时间。[7]其他研究人员也在开发存储程序计算机,特别是英国国家物理实验室的Pilot ACE、剑桥大学的EDSAC和美国陆军的EDVAC。[8]“小宝贝”和马克1号与它们的主要区别在于使用了威廉姆斯管作为存储器,而不是水银滞延线。[9]

大约从1948年8月开始,“小宝贝”被密集地开发为曼彻斯特马克1的原型,最初的目的是为大学提供更实用的计算设施。[10]1948年10月,英国政府首席科学家本·洛克斯佩瑟在访问曼彻斯特大学时亲眼目睹了马克1号的原型机演示。洛克斯佩瑟对他所看到的印象如此深刻,以至于他立即与当地的费兰蒂公司签订了一份政府合同,以制造该机器的商业版费兰迪马克1号。[11]洛克斯佩瑟在1948年10月26日给公司的信中授权公司“按照我们讨论的路线进行,即按照F. C. Williams教授的指示建造一台电子计算机”。[12]从那时起,马克1号的开发还有一个额外的目的,那就是为费拉蒂公司提供他们商用机器的设计基础。[13]政府与费拉蒂公司的合同从1948年11月开始为期五年,估计每年涉及35000英镑(相当于2016年每年106万英镑)。[14][15]

2 开发和设计编辑

威廉姆斯管(以绿色显示)的功能示意图。试管C保存当前指令及其地址;a是累加器;m用于保存乘法运算的被乘数和乘数;而B包含用于修改指令的索引寄存器。

“小宝贝”是由弗雷德里克·威廉姆斯、汤姆·基尔伯恩和杰夫·图特尔团队设计的。为了开发马克1号,两位研究学生,D. B. G .爱德华兹和G. E .托马斯加入了他们;并于1948年8月开始认真工作。该项目很快就有了双重目的,一是为费拉蒂公司提供一个可以作为商用机费兰迪马克1号基础设计参考,二是建造一台计算机,让研究人员获得如何在实践中使用这种机器的经验。曼彻斯特马克1号的两个版本中的第一个,也被称为中间版本,于1949年4月开始运行。[10]然而,第一个版本缺少了一些功能,例如在主存储器和新开发的磁性后备存储器之间以编程方式传输数据所需的指令,传输数据必须通过停止机器并手动启动传输来完成。这些缺失的特性被包含在最终规范版本中,该版本在1949年10月之前已经完全运行。[13]这台机器包含4050个阀门,耗电量为25千瓦。[16]为了提高可靠性,机器中使用了英国通用电气公司(GEC)特制的阴极射线管(CRT),而不是“小宝贝”中使用的标准设备。[2]

“小宝贝”的32位字长增加到40位。每个字节可以包含一个40位数字或两个20位程序指令。主存储器最初由两个双密度威廉姆斯管组成,每个管容纳两个32 x 40位字节的阵列,也称为页,通过由磁鼓备份,它能够存储额外32页。在最终规格版本中,容量增加到4个威廉姆斯管上的8页主存储器和128页备用磁鼓存储器。[17]直径为12英寸(300毫米)的磁鼓,[18]最初也被称为磁轮,在其表面包含一系列平行的磁道,每个磁道都有自己的读/写磁头。每条轨道包含2560位,相当于两页(2*32*40位)。磁鼓旋转一周需要30毫秒,在此期间,两页都可以传输到阴极射线管主存储器,尽管实际的数据传输时间取决于延迟,即一页到达读/写磁头下所花费的时间。在磁鼓上写大约要花读的时间的两倍。[13]鼓的旋转速度与主中央处理器时钟同步,这一设计允许添加额外的鼓。数据通过相位调制技术记录在鼓上,这种技术今天仍被称为曼彻斯特编码。[19]

机器的指令集从“小宝贝”中最初的7条增加到26条,包括硬件上的乘法器。在最终规范版本中,指令集增加到30条。每个字的十位被分配来保存指令代码。标准指令时间是1.8毫秒,但是乘法要慢得多,这取决于操作数的大小。[20]

这种机器最重要的创新通常被认为是它结合了索引寄存器,这在现代计算机上很常见。“小宝贝”有用威廉姆斯管实现的两个寄存器:累加器(A)和程序计数器(C)。由于A和C已经被分配,保存两个索引寄存器(最初称为B线)的威廉姆斯管被命名为B。寄存器的内容可以用于修改程序指令,允许通过存储在存储器中的数字阵列方便地迭代。马克1号还有第四个威廉姆斯管(M),用来保存乘法运算的被乘数和乘数。[19]

3 程序编辑

穿孔带的一部分,显示一个40位字如何被编码为八个5位字符。

在分配给每个程序指令的20位中,有10位用于保存指令代码,这就允许1024 (210)条不同的指令。该机器最初有26个,[10]通过增加功能代码以编程控制磁鼓和阴极射线管(CRT)主存储器之间的数据传输后,被增加到30个。在中间版本中,程序由按键开关输入,输出显示为阴极射线管上的一系列点和线,阴极射线管也称为输出设备,就像马克1号的开发原型“小宝贝”上的一样。然而,完成于1949年10月的最终规格机器,增加了一个带五孔纸带阅读器和打孔机的电传打字机。[13]

数学家艾伦·图灵于1948年9月被任命为曼彻斯特大学计算机实验室的名义副主任,[10]他设计了一个基于标准ITA2 5位电传打字机代码的32进制编码方案,该方案允许将程序和数据写入纸带或从纸带读取。[21]ITA2系统将可以用5位(25)表示的32个二进制值中的每一个映射到一个字符。因此,“10010”代表“D”,“10001”代表“Z”,依此类推。图灵只改变了几个标准编码;例如,在电传打字机代码中,00000和01000表示“无效”和“换行”,分别用字符“/”和“@”表示。由正向斜线表示的二进制零(00000)是程序和数据中最常见的字符,这一设计导致序列被写成“//////////////////”。一位早期用户认为图灵选择正向斜线是他的潜意识做出的选择,这代表透过肮脏的窗户看到的雨,反映出曼彻斯特“著名的阴沉”天气。[22]

因为马克1号的字长为40位,所以每个字需要8个5位电传打字机字符来编码。例如,二进制字:

10001 10010 10100 01001 10001 11001 01010 10110

将在纸带上表示为ZDSLZWRF。存储器中的任何单词也可以通过电传打字机的键盘输入,并输出到打印机上。这台机器内部以二进制工作,但是它能够对其输入和输出分别进行必要的十进制到二进制和二进制到十进制的转换。[23]

马克1号并没有被定义汇编语言。程序必须以二进制形式编写和提交,每个40位字编码为8个5位字符;编程人员被鼓励去记住修改后的ITA2编码方案,以使他们的工作更容易。数据在程序控制下从纸带穿孔机读取和写入。马克1号没有硬件中断系统;程序在一个读或写操作开始后继续运行,直到遇到另一个输入/输出指令,此时机器会等待第一个指令完成(再去运行下一个指令)。

马克1号没有操作系统;它仅有的系统软件是一些基本的输入和输出程序。[2]与数学惯例相反,就像它的前身“小宝贝”一样,机器的存储器的最低位在最左边;因此,1用5位表示为“10000”,而不是更传统的“00001”。像今天大多数计算机一样,负数用二进制补码表示。在该表示中,最高有效位的值表示数字的符号;正数在那个位置上是零,负数是一。[23]因此,每个40位字可以容纳的数字范围是-239到+239-1(十进制:-549755813888至+549755813887)。

4 第一个程序编辑

1949年4月初,[24]在马克1号上运行的第一个现实的程序是对梅森素数的搜索,它在1949年6月16/17日晚运行了9个小时没有发生错误。

该算法由曼彻斯特大学数学系系主任马克斯·纽曼设计,程序由基尔本和图特尔编写。艾伦·图灵后来写了一个优化版本的程序,被称为“梅森快车”。[19]

曼彻斯特马克1号在1950年之前一直从事有用的数学工作,包括黎曼假设的研究和光学计算。[25][26]

5 后来的发展编辑

图特尔于1949年8月暂时从曼彻斯特大学调到费兰蒂公司,继续费兰蒂马克1号的设计工作,并在该公司工作了四个月。[27]曼彻斯特马克1号于1950年8月被拆除并报废,[28]几个月后被世界上第一台商用通用计算机费拉蒂马克1号取代。[2]

在1946年至1949年间,马克1号和它的前身“小宝贝”的设计团队的平均规模约为4人。在此期间,英国供应部或其继任者国家研究开发公司基于该团队的工作取得了34项专利。[1]1949年7月,IBM邀请威廉姆斯到美国进行一次免费旅行,讨论马克1号的设计。该公司随后在自己的701和702计算机的设计中获得了用于计算机开发的几项专利,其中包括威廉姆斯管。[29]曼彻斯特马克1号最重要的设计遗产也许是其使用了索引寄存器,其专利以威廉姆斯、基尔伯恩、图特尔和纽曼的名字注册。[1]

基尔伯恩和威廉姆斯得出结论,计算机将被更多地用于科学角色,而不是纯数学,并决定开发一种有着浮点运算单元的新机器。这项工作始于1951年,由此产生的计算机被称为梅格(Meg),或称为megacycle,这台机器于1954年5月运行了第一个程序。它比马克1号更小更简单,解决数学问题的速度也更快。费拉蒂生产了梅格的一个版本,其中的威廉姆斯管被更可靠的核心存储器取代,该储存器在销售时也被成为费兰蒂水银(the Ferranti Mercury)。[30]

6 文化影响编辑

曼彻斯特马克1号及其前身“小宝贝”的成功运行被英国媒体广泛的报道,他们使用“电子大脑”一词来描述这些机器。[31]路易斯·蒙巴顿勋爵早些时候在1946年10月31日对英国无线电工程师学会的一次演讲中引入了这个词,他在演讲中推测了当时可用的原始计算机是如何进化的。围绕着1949年第一台公认的现代计算机的报道的兴奋引起了开发者意想不到的反应;曼彻斯特大学神经外科教授杰弗里·杰斐逊爵士在1949年6月9日应邀发表李斯特获奖致辞时,选择了“机械人的心灵”作为他的主题。他的目的是“揭穿”曼彻斯特项目。他在致辞中说道:

直到机器能够出于它的思想和情感,而不是偶然的符号组成而写作十四行诗或创作协奏曲,我们才能同意机器等同于大脑,也就是说,机器不仅完成了创作,而且是有意识的完成了创作。没有一台机器会因为它的成功感到快乐,会因为它的阀门停止工作时感到悲伤,被奉承所温暖,被错误所折磨,被性所吸引,当它不能得到它想要的东西时感到愤怒或痛苦。[32]

《泰晤士报》第二天报道了杰斐逊的演讲,并补充说杰斐逊预测“皇家学会雅致的房间将被改造成车库来容纳这些新成员的那一天永远不会到来”。这对从社会上获得了继续曼彻斯特团队工作资助的纽曼来说是一种有意的鄙视。作为回应,纽曼为《泰晤士报》写了一篇后续文章,他在文章中声称马克1号的结构和人脑有着密切的相似之处。[33]他的文章中有一段于图灵的采访,图灵补充道:

这只是对未来的预言,也只是未来的雏形。在我们真正了解计算机的能力之前,我们必须有一些使用他们经验。我们可能需要数年时间才能适应新的可能性,但我不明白为什么它不应该进入人类智力通常涵盖的任何领域,并最终在平等的条件下与人脑竞争。[34]

参考文献

  • [1]

    ^Lavington (1998), p. 20none.

  • [2]

    ^"The Manchester Mark 1", University of Manchester, archived from the original on 21 November 2008, retrieved 24 January 2009.

  • [3]

    ^Turing, A. M. (1936), "On Computable Numbers, with an Application to the Entscheidungsproblem" (PDF), Proceedings of the London Mathematical Society, 2 (published 1936–37), 42, pp. 230–265, doi:10.1112/plms/s2-42.1.230..

  • [4]

    ^Lee (2002), p. 67none.

  • [5]

    ^Lavington (1998), p. 7none.

  • [6]

    ^Enticknap, Nicholas (Summer 1998), "Computing's Golden Jubilee", Resurrection, The Bulletin of the Computer Conservation Society (20), ISSN 0958-7403, archived from the original on 2012-01-09, retrieved 19 April 2008.

  • [7]

    ^"Early Electronic Computers (1946–51)", University of Manchester, archived from the original on 5 January 2009, retrieved 16 November 2008.

  • [8]

    ^Lavington (1998), p. 9none.

  • [9]

    ^Lavington (1998), p. 8none.

  • [10]

    ^Lavington (1998), p. 17none.

  • [11]

    ^Lavington (1998), p. 21none.

  • [12]

    ^"Newman's Contribution to the Mark 1 Machines", University of Manchester, archived from the original on 11 May 2008, retrieved 23 January 2009.

  • [13]

    ^Napper, R. B. E., "The Manchester Mark 1", University of Manchester, archived from the original on 29 December 2008, retrieved 22 January 2009.

  • [14]

    ^Inflated values automatically calculated. 错误:使用{{Inflation-fn}}时undefined index "UK-GDP".

  • [15]

    ^Lavington (1980), p. 39none.

  • [16]

    ^Lavington, S. H. (July 1977), The Manchester Mark 1 and Atlas: a Historical Perspective (PDF), University of Central Florida, retrieved 8 February 2009. (Reprint of the paper published in Communications of the ACM (January 1978) 21 (1).

  • [17]

    ^"The Manchester Mark I", University of Manchester, archived from the original on 9 February 2014, retrieved 5 January 2014.

  • [18]

    ^Kilburn, Tom, The University of Manchester Universal High-Speed Digital Computing Machine, University of Manchester, archived from the original on 7 January 2009, retrieved 2 February 2009. (Reprint of Kilburn, Tom (1949). "The University of Manchester Universal High-Speed Digital Computing Machine". Nature 164)..

  • [19]

    ^Lavington (1998), p. 18none.

  • [20]

    ^Lavington (1998), pp. 17–18none.

  • [21]

    ^Leavitt (2007), p. 232none.

  • [22]

    ^Leavitt (2007), p. 233none.

  • [23]

    ^"Programmers' Handbook (2nd Edition) for the Manchester Electronic Computer Mark II", University of Manchester, archived from the original on 26 May 2009, retrieved 23 January 2009.

  • [24]

    ^Napper (2000), p. 370none.

  • [25]

    ^Lavington (1998), p. 19none.

  • [26]

    ^"The University Of Manchester Computing Machine". curation.cs.manchester.ac.uk. The University Of Manchester Computing Machine(Digital 60) (in 英语). Riemann hypothesis, ray tracing. A Large-scale Machine. Retrieved 2018-05-21..

  • [27]

    ^Lavington (1998), pp. 24–25none.

  • [28]

    ^Lavington (1980), p. 38none.

  • [29]

    ^Lavington (1998), p. 23none.

  • [30]

    ^Lavington (1998), p. 31none.

  • [31]

    ^Fildes, Jonathan (20 June 2008), "One tonne 'Baby' marks its birth", BBC News, retrieved 10 February 2009.

  • [32]

    ^Leavitt (2007), p. 236none.

  • [33]

    ^Leavitt (2007), p. 237none.

  • [34]

    ^Leavitt (2007), pp. 237–238none.

阅读 263
版本记录
  • 暂无