曼切斯特1型

曼切斯特1型（Manchester Mark 1）是最早的stored-program computer之一，在英国曼彻斯特维多利亚大学研发的别称为“宝贝”的Manchester Baby（简称‘SSEM’，1948年6月开始运行）基础上开发完成。它也被称为曼彻斯特自动数字机（Manchester Automatic Digital Machine），或简称为MADMp=20。研发工作始于1948年8月，第一个版本于1949年4月开始运作：一个为了寻找梅森素数而编写的程序在1949年6月16日至17日的晚上无误差的运行了9个小时。
该机器成功运作的的消息在英国媒体上被广泛报道，媒体使用“电子大脑（electronic brain）”这一短语读者描述。这种描述引起了曼彻斯特大学神经外科系主任的强烈反响，并最终演变成一场关于电子计算机是否真正具有创造性的长期争论。
曼切斯特1型（下文简称Mark 1）原本只是计划为大学提供计算资源，让研究人员获得计算机实际应用的经验，但很快也成为了Ferranti公司商业版计算机设计的基础。Mark 1的开发于1949年底中止，机器本体则在1950年底被废弃，并最终于1951年2月被世界上第一台商用通用电子计算机Ferranti Mark 1所取代。
Mark 1具有特别的历史意义，因为它在设计上开创性地包含了index register，这一创新使程序更容易按顺序读取内存中的字组。该机器的开发产生了34项专利，其设计背后的许多理念被纳入随后的商业产品，如IBM 701和702以及费伦蒂马克一号等。首席设计师Frederic C. Williams和Tom Kilburn从他们对Mark 1的经验得出结论，计算机在科学角色中的使用比在纯数学中更多。1951年以后他们开始研制Mark 1的继任者，也就是包含有一个浮点单元的Meg。

**背景**
1936年，数学家阿兰·图灵发表了理论上“通用计算机器”的定义。图灵证明，通过编写算法，这样的机器可以解决任何可以想到的数学问题。在20世纪40年代，图灵和其他人如康拉德·楚泽发展了使用计算机自己的记忆体而不是磁带来保存程序和数据的想法p=67，但Mark 1基于的却是数学家约翰·冯·诺伊曼定义的广受认可的“存储程序计算机”架构p=7。
冯·诺依曼计算机的实际构造取决于合适的存储器设备的可用性。曼彻斯特大学SSEM，世界上第一台电子存储程序计算机于1948年6月21日开始运作第一个项目，成功地证明了存储程序方法和威廉姆斯管的实用性，威廉姆斯管是基于标准阴极射线管（CRT）的早期计算机存储器形式。早期的电子计算机通常通过重新布线或通过插头和配线板进行编程；没有单独的程序存储在内存中，就像在现代计算机中一样。例如，ENIAC的重新编程可能需要几天时间。其他研究人员也在开发存储程序计算机，特别是英国国家物理实验室的Pilot ACE，剑桥大学的EDSAC和美国陆军的EDVACp=9。SSEM和Mark 1的主要区别在于使用威廉姆斯管作为记忆装置，而不是水银延迟线p=8。
从1948年8月左右开始，SSEM被深入开发为Mark 1的原型，而这最初的目的是为大学提供更现实的计算设施p=17。1948年10月，英国政府首席科学家Ben Lockspeiser在访问曼彻斯特大学时展示了原型Mark 1。洛克史派瑟对他所看到的立即与当地费朗蒂公司签订政府合同以制造该机器的商业版本费伦蒂马克一号的情形印象深刻p=21。在1948年10月26日致公司的信中，洛克史派瑟准许该公司“按照我们讨论的方针进行，即按照弗雷德里克·威廉姆斯教授的指示建造一台电子计算机”。从那时起，Mark 1的开发开始有了额外的目标，就是为费朗蒂公司提供以商业机器为基础的设计。英国政府与费朗蒂公司的合同从1948年11月开始为期共五年，每年约3.5万英镑（相当于UK年每年英镑UK）p=39。

**开发和设计**
功能示意图显示了威廉姆斯管（绿色）。C管保存当前指令及其地址；A管是累加器；M管用于保持被乘数和乘数以进行乘法运算；B管包含索引寄存器，用于修改指令。
SSEM由弗雷德里克·威廉姆斯、汤姆·吉尔本和Geoff Tootill团队设计。研发工作始于1948年8月。该项目很快就有了双重目的，即为费朗蒂公司提供一种工作设计，他们可以在这种设计上建立商用机器费伦蒂马克一号；以及构建一台计算机，使研究人员能够获得如何在实践中使用这种机器的经验。Mark 1的两个版本中的第一个——被称为中介版本——于1949年4月开始运作p=17。但是，第一个版本缺少诸如在主存储器及其新开发的磁性后备存储器之间以编程方式传输数据所需的指令，这必须通过暂停机器并手动启动传输来完成。这些缺失的功能已纳入最终规范版本，该版本于1949年10月得以完全正常工作。这台机器包含4,050个真空管，功耗为25千瓦。为了提高可靠性，这台机器使用了GEC专门制造的CRT以代替SSEM使用的标准设备。
原本SSEM上使用的32位字节长度被追加到了40位字节。每个字可以包含一个40位数或两个20位程序指令。主存储器最初由两个双密度威廉姆斯管组成，每个管都有两个32x40位字——称为页面——由磁鼓支持的阵列，能够存储另外32页。最终规格版本的主存储器有4个威廉姆斯管以提供8页主存储，128个磁鼓页作为后备存储。直径adj=on的磁鼓最初被称为磁轮，在其表面周围包含一系列平行的磁轨，每个磁道都有自己的读/写头。每个磁轨可以存储2,560位，对应两页（2×32×40位）。磁鼓的一次旋转花费30毫秒，在此期间可以将两页都传送到CRT的主存储器，尽管实际的数据传输时间取决于延迟，即页面到达读/写头下所花费的时间。将页面写入磁鼓中的时间大约是读取时间的两倍。磁鼓的转速与主CPU时钟同步，而且支持添加额外的磁鼓。使用目前仍称为曼彻斯特编码的相位调制技术将数据记录到鼓上p=18。
开发过程中，Mark 1的指令集从SSEM最初的7个增加到了26个，包括了硬件层支持的乘法指令。在最终规格版本中，指令集增加到30个。每个字被允许分配10位以保存指令代码。标准指令时间为1.8毫秒，但乘法速度要慢很多，具体取决于运算数的大小。pp=17–18
Mark 1最重要的创新通常被认为是其引入了在现代计算机上常见的索引寄存器。SSEM已经包含了两个以威廉姆斯管实现功能的寄存器：累加器（A管）和程序计数器（C管）。由于已经分配了A和C，所以用于保存两个寄存器的电子管（最初被称为B-line）被命名为B管。寄存器中的内容可用于修改程序指令，允许方便地通过存储在存储器中的数字数组进行迭代。然而Mark 1还有第四个管（M），用于保持被乘数和乘数以进行乘法运算。p=18

**编程**
穿孔带的一部分显示一个40位字如何被编码为8个5位字符。
在为每个程序指令分配的20位中，10位用于保存指令代码，这种设计支持1024（210）个不同的指令。设计之初仅有26位p=17，但当增加了以编程方式控制磁鼓和CRT主存储器之间数据传输的功能代码之后，指令代码被增加到了30位。在中间版本上，操作员通过按键开关进行程序输入，机器在称为输出设备的阴极射线管上输出为一系列点和短划线，就像在已经开发出Mark 1的Baby上一样。然而，1949年10月完成的最终规格机器得益于新增的带有五孔纸带读取器和打孔器的电传打字机而变得更易于输入输出。
于1948年9月被任命为曼彻斯特大学计算机实验室名誉副主任的数学家艾伦·图灵p=17，设计了基于标准ITA2的5位电传打印机代码的base 32编码方案，允许将程序和数据从纸带上读取和写入p=232。ITA2系统将可以用5位（25）表示的32个二进制值中的每个二进制值映射到单个字符。因此“10010”代表“D”、“10001”代表“Z”……依此类推。图灵仅更改了一些标准编码。例如00000和01000，在电传打印机代码中原本分别表示的“空字符”和“换行”，在此则分别表示字符“/”和“@”。用斜线表示的二进制零是程序和数据中最常见的字符，导致序列会被写为“//////////////”。一位早期用户提到图灵之所以选择使用斜线，其实是由于他的潜意识，代表从肮脏的窗户看到的雨水的样子，反映了曼彻斯特的“惨淡”天气。p=233
由于Mark 1的字长为40位，因此需要8个5位电传打印机字符来编码每个字。因此，例如二进制字：
10001 10010 10100 01001 10001 11001 01010 10110
将在纸带上表示为ZDSLZWRF。存储中任何单词的内容也可以通过电传打字机的键盘进行设置，然后输出到其打印机上。该机器在内部以二进制工作，但是它能够分别对其输入和输出执行必要的十进制到二进制或者二进制到十进制的转换。
Mark 1没有定义汇编语言。程序必须以二进制形式编写和提交，每个40位字由8个5位字符编码；鼓励程序员记住修改后的ITA2编码方案，以使其工作更轻松。在程序控制下，从纸带打孔器读取和写入数据。 Mark 1也没有硬件中断系统。在启动读取或写入操作之后，程序继续运行，直到遇到另一条输入/输出指令为止，此时机器会等待第一条指令完成。
Mark 1没有操作系统，它唯一的系统软件是一些用于输入和输出的基本例程。就像在之前开发的SSEM一样，与既定的数学惯例相反，Mark 1设定的存储位置被安排在左侧的最低位。因此，一个“1”用五位表示为“10000”，而不是更传统的“00001”。负数则用二补数表示，就像今天大多数计算机一样。

**第一个程序**
第一个在Mark 1上运行的实际程序是在1949年4月初启动的搜索梅森素数。这个任务在1949年6月16日至17日晚上无错误地运行了9个小时p=370。该程序的算法部分由曼彻斯特大学数学系主任Max Newman制定，主程序则由吉尔本和图特尔编写。艾伦·图灵后来写了一个优化版本的程序，被称为“Mersenne Express”。p=18
直到1950年，曼彻斯特马克1继续进行有用的数学工作，包括对黎曼猜想和光学领域中相关计算的研究p=19。

**后期发展**
1949年8月，图特尔暂时从曼彻斯特大学转到费朗蒂公司，与该公司合作了四个月并继续进行费伦蒂马克一号的设计pp=24–25。1950年8月，曼彻斯特1型被拆除并报废p=38，几个月之后被第一台费伦蒂马克一号取代，后者是世界上第一台商用通用计算机。
从1946年到1949年，在Mark 1及其前身SSEM上工作的设计团队平均规模大约为4人。在此期间，团队一共获得了34项专利p=20。1949年7月，IBM提供全款邀请威廉姆斯前往美国进行一次旅行，以便讨论有关Mark 1的设计。该公司之后将获得的Mark 1相关部分专利授权使用在了自家设计的机器上，包括IBM 701和702等p=23。Mark 1最重要的设计影响，可能就算其首次引入牵引寄存器。这项专利最终挂在威廉姆斯、吉尔本、图特尔和纽曼等人名下p=20。
吉尔本和威廉姆斯得出的结论是，计算机在科学领域中的使用将比纯数学领域更广泛，并决定开发一种包含浮点单元的新机器。新项目始于1951年，由此建成的机器于1954年5月开始运行其第一个程序，被称为Meg或megacycle机器。它比Mark 1更小更简单，解决数学问题的速度也更快。费朗蒂公司生产了一款Meg，其中的威廉姆斯管被替换为更可靠的核心内存，以Ferranti Mercury的名义销售。p=31

**文化影响**
Mark 1及其前身SSEM的成功运作在英国媒体上得到了广泛的报道，英国媒体使用“电子大脑”这一短语来描述这些机器。路易斯·蒙巴顿勋爵早在1946年10月31日发表于英国无线电工程师学会的演讲中就引入了这一术语，他在该演讲中推测当时可用的原始计算机是如何发展的。令人兴奋的是1949年报道的第一台可识别的现代计算机引起了开发人员意想不到的反应; 曼彻斯特大学神经外科教授Geoffrey Jefferson于1949年6月9日被要求发表“李斯特演说”时选择了“机械人的思想”作为他的主题p=236。在他的讲话中他说：
《泰晤士报》第二天报道了杰斐逊的讲话，并补充说杰斐逊预测“皇家学会的优雅房间被改建成车库以容纳这些新人的这一天永远不会到来”。作为回应，纽曼为《泰晤士报》撰写了一篇后续文章，并在文章中声称Mark 1的结构与人类大脑之间存在着相似的类比p=237。他的文章包括对图灵的采访，他补充说：

**另见**
计算机硬件历史
*List of vacuum tube computers
*Manchester computers

**脚注**

**注释**

**原文引用和译注**

**参考来源**

**参考书籍**
isbn=978-0-7190-0810-8
*isbn=978-1-902505-01-5
*isbn=978-0-7538-2200-5
*isbn=978-1-4020-7185-0
*isbn=978-0-262-68137-7

**拓展阅读**
ref=none

**外部链接**
 The Manchester Mark 1- Early computers at Manchester University in Resurrection (The Bulletin of the Computer Conservation Society) 1 (4), Summer 1992, 0958-7403