曼切斯特1型

**曼切斯特 1 型**（Manchester Mark 1）是最早的儲存程序電腦之一，在英國曼徹斯特維多利亞大學研發的別稱為「寶貝」的小規模實驗機（簡稱『SSEM』，1948 年 6 月開始執行）基礎上開發完成。它也被稱為曼徹斯特自動數字機（Manchester Automatic Digital Machine），或簡稱為 MADM。研發工作始於 1948 年 8 月，第一個版本於 1949 年 4 月開始運作：一個為了尋找梅森素數而編寫的程式在 1949 年 6 月 16 日至 17 日的晚上無誤差的執行了 9 個小時。

該機器成功運作的的訊息在英國媒體上被廣泛報導，媒體使用「電子大腦（electronic brain）」這一短語讀者描述。這種描述引起了曼徹斯特大學神經外科系主任的強烈反響，並最終演變成一場關於電腦是否真正具有創造性的長期爭論。

曼切斯特 1 型（下文簡稱 Mark 1）原本只是計劃為大學提供計算資源，讓研究人員獲得電腦實際應用的經驗，但很快也成為了費朗蒂公司商業版電腦設計的基礎。Mark 1 的開發於 1949 年底中止，機器本體則在 1950 年底被廢棄，並最終於 1951 年 2 月被世界上第一台商用通用電腦費倫蒂馬克一號所取代。

Mark 1 具有特別的歷史意義，因為它在設計上開創性地包含了索引暫存器，這一創新使程式更容易按順序讀取記憶體中的字組。該機器的開發產生了 34 項專利，其設計背後的許多理念被納入隨後的商業產品，如 IBM 701 和 702 以及費倫蒂馬克一號等。首席設計師弗雷德里克・威廉士和湯姆・吉爾本從他們對 Mark 1 的經驗得出結論，電腦在科學角色中的使用比在純數學中更多。1951 年以後他們開始研製 Mark 1 的繼任者，也就是包含有一個浮點單元的 Meg。

## 背景

1936 年，數學家阿蘭・圖靈發表了理論上「通用電腦器」的定義。圖靈證明，通過編寫演算法，這樣的機器可以解決任何可以想到的數學問題。在 20 世紀 40 年代，圖靈和其他人如康拉德・楚澤發展了使用電腦自己的記憶體而不是磁帶來儲存程式和資料的想法，但 Mark 1 基於的卻是數學家約翰・馮・紐曼定義的廣受認可的「儲存程序電腦」架構。
馮・諾依曼電腦的實際構造取決於合適的記憶體裝置的可用性。曼徹斯特大學 SSEM，世界上第一台電子儲存程序電腦於 1948 年 6 月 21 日開始運作第一個專案，成功地證明了儲存程序方法和威廉士管的實用性，威廉士管是基於標準陰極射線管（CRT）的早期電腦記憶體形式。早期的電腦通常通過重新布線或通過插頭和配線板進行編程；沒有單獨的程式儲存在記憶體中，就像在現代電腦中一樣。例如，ENIAC 的重新編程可能需要幾天時間。其他研究人員也在開發儲存程序電腦，特別是英國國家物理實驗室的 Pilot ACE，劍橋大學的 EDSAC 和美國陸軍的 EDVAC。SSEM 和 Mark 1 的主要區別在於使用威廉士管作為記憶裝置，而不是水銀延遲線。

從 1948 年 8 月左右開始，SSEM 被深入開發為 Mark 1 的原型，而這最初的目的是為大學提供更現實的計算設施。1948 年 10 月，英國政府首席科學家班・洛克史派瑟在存取曼徹斯特大學時展示了原型 Mark 1。洛克史派瑟對他所看到的立即與當地費朗蒂公司簽訂政府合同以製造該機器的商業版本費倫蒂馬克一號的情形印象深刻。在 1948 年 10 月 26 日致公司的信中，洛克史派瑟准許該公司「按照我們討論的方針進行，即按照弗雷德里克・威廉士教授的指示建造一台電腦」。從那時起，Mark 1 的開發開始有了額外的目標，就是為費朗蒂公司提供以商業機器為基礎的設計。英國政府與費朗蒂公司的合同從 1948 年 11 月開始為期共五年，每年約 3.5 萬英鎊（相當於 2021 年每年 135 萬英鎊）。

## 開發和設計

SSEM 由弗雷德里克・威廉士、湯姆・吉爾本和傑夫・圖特爾團隊設計。研發工作始於 1948 年 8 月。該專案很快就有了雙重目的，即為費朗蒂公司提供一種工作設計，他們可以在這種設計上建立商用機器費倫蒂馬克一號；以及構建一台電腦，使研究人員能夠獲得如何在實踐中使用這種機器的經驗。Mark 1 的兩個版本中的第一個 —— 被稱為中介版本 —— 於 1949 年 4 月開始運作。但是，第一個版本缺少諸如在主記憶體儲器及其新開發的磁性後備記憶體之間以編程方式傳輸資料所需的指令，這必須通過暫停機器並手動啟動傳輸來完成。這些缺失的功能已納入最終規範版本，該版本於 1949 年 10 月得以完全正常工作。這台機器包含 4,050 個真空管，功耗為 25 千瓦。為了提高可靠性，這台機器使用了 GEC 專門製造的 CRT 以代替 SSEM 使用的標準裝置。

原本 SSEM 上使用的 32 位元位元組長度被追加到了 40 位位元組。每個字可以包含一個 40 位數或兩個 20 位程式指令。主記憶體儲器最初由兩個雙密度威廉士管組成，每個管都有兩個 32x40 位字 —— 稱為頁面 —— 由磁鼓支援的陣列，能夠儲存另外 32 頁。最終規格版本的主記憶體儲器有 4 個威廉士管以提供 8 頁主記憶體儲，128 個磁鼓頁作為後備儲存。直徑 12 - 英寸（300 - 公釐）的磁鼓最初被稱為磁輪，在其表面周圍包含一系列平行的磁軌，每個磁軌都有自己的讀 / 寫頭。每個磁軌可以儲存 2,560 位元，對應兩頁（2×32×40 位）。磁鼓的一次旋轉花費 30 毫秒，在此期間可以將兩頁都傳送到 CRT 的主記憶體儲器，儘管實際的資料傳輸時間取決於延遲，即頁面到達讀 / 寫頭下所花費的時間。將頁面寫入磁鼓中的時間大約是讀取時間的兩倍。磁鼓的轉速與主 CPU 時鐘同步，而且支援添加額外的磁鼓。使用目前仍稱為曼徹斯特編碼的相位調製技術將資料記錄到鼓上。

開發過程中，Mark 1 的指令集從 SSEM 最初的 7 個增加到了 26 個，包括了硬體層支援的乘法指令。在最終規格版本中，指令集增加到 30 個。每個字被允許分配 10 位以儲存指令代碼。標準指令時間為 1.8 毫秒，但乘法速度要慢很多，具體取決於運算數的大小。

Mark 1 最重要的創新通常被認為是其引入了在現代電腦上常見的索引暫存器。SSEM 已經包含了兩個以威廉士管實現功能的暫存器：累加器（A 管）和程式計數器（C 管）。由於已經分配了 A 和 C，所以用於儲存兩個暫存器的電子管（最初被稱為 B-line）被命名為 B 管。暫存器中的內容可用於修改程式指令，允許方便地通過儲存在記憶體中的數字陣列進行迭代。然而 Mark 1 還有第四個管（M），用於保持被乘數和乘數以進行乘法運算。

## 編程

在為每個程式指令分配的 20 位中，10 位用於儲存指令代碼，這種設計支援 1024（210）個不同的指令。設計之初僅有 26 位，但當增加了以編程方式控制磁鼓和 CRT 主記憶體儲器之間資料傳輸的功能代碼之後，指令代碼被增加到了 30 位。在中間版本上，操作員通過按鍵開關進行程式輸入，機器在稱為輸出裝置的陰極射線管上輸出為一系列點和短劃線，就像在已經開發出 Mark 1 的 Baby 上一樣。然而，1949 年 10 月完成的最終規格機器得益於新增的帶有五孔紙帶讀取器和打孔器的電傳打字機而變得更易於輸入輸出。

於 1948 年 9 月被任命為曼徹斯特大學電腦實驗室名譽副主任的數學家艾倫・圖靈，設計了基於標準 ITA2 的 5 位電傳印表機代碼的底數 32 編碼方案，允許將程式和資料從紙帶上讀取和寫入。ITA2 系統將可以用 5 位（25）表示的 32 個二進位值中的每個二進位值對映到單個字元。因此「10010」代表「D」、「10001」代表「Z」…… 依此類推。圖靈僅更改了一些標準編碼。例如 00000 和 01000，在電傳印表機代碼中原本分別表示的「空字元」和「換行」，在此則分別表示字元「/」和「@」。用斜線表示的二進位零是程式和資料中最常見的字元，導致序列會被寫為「//////////////」。一位早期使用者提到圖靈之所以選擇使用斜線，其實是由於他的潛意識，代表從骯髒的窗戶看到的雨水的樣子，反映了曼徹斯特的「慘澹」天氣。

由於 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 個小時。該程式的演算法部分由曼徹斯特大學數學系主任馬克斯・紐曼制定，主程式則由吉爾本和圖特爾編寫。艾倫・圖靈後來寫了一個最佳化版本的程式，被稱為「Mersenne Express」。

直到 1950 年，曼徹斯特馬克 1 繼續進行有用的數學工作，包括對黎曼猜想和光學領域中相關計算的研究。

## 後期發展

1949 年 8 月，圖特爾暫時從曼徹斯特大學轉到費朗蒂公司，與該公司合作了四個月並繼續進行費倫蒂馬克一號的設計。1950 年 8 月，曼徹斯特 1 型被拆除並報廢，幾個月之後被第一台費倫蒂馬克一號取代，後者是世界上第一台商用通用電腦。

從 1946 年到 1949 年，在 Mark 1 及其前身 SSEM 上工作的設計團隊平均規模大約為 4 人。在此期間，團隊一共獲得了 34 項專利。1949 年 7 月，IBM 提供全款邀請威廉士前往美國進行一次旅行，以便討論有關 Mark 1 的設計。該公司之後將獲得的 Mark 1 相關部分專利授權使用在了自家設計的機器上，包括 IBM 701 和 702 等。Mark 1 最重要的設計影響，可能就算其首次引入牽引暫存器。這項專利最終掛在威廉士、吉爾本、圖特爾和紐曼等人名下。

吉爾本和威廉士得出的結論是，電腦在科學領域中的使用將比純數學領域更廣泛，並決定開發一種包含浮點單元的新機器。新專案始於 1951 年，由此建成的機器於 1954 年 5 月開始執行其第一個程式，被稱為 Meg 或 megacycle 機器。它比 Mark 1 更小更簡單，解決數學問題的速度也更快。費朗蒂公司生產了一款 Meg，其中的威廉士管被替換為更可靠的核心記憶體，以 Ferranti Mercury 的名義銷售。

## 文化影響

Mark 1 及其前身 SSEM 的成功運作在英國媒體上得到了廣泛的報導，英國媒體使用「電子大腦」這一短語來描述這些機器。路易斯・蒙巴頓勳爵早在 1946 年 10 月 31 日發表於英國無線電工程師學會的演講中就引入了這一術語，他在該演講中推測當時可用的原始電腦是如何發展的。令人興奮的是 1949 年報導的第一台可辨識的現代電腦引起了開發人員意想不到的反應；曼徹斯特大學神經外科教授傑弗里・傑弗遜爵士於 1949 年 6 月 9 日被要求發表「李斯特演說」時選擇了「機械人的思想」作為他的主題。在他的講話中他說：

> 直到一台機器因為感覺到的思想和情感而寫十四行詩或一首協奏曲，並且不是由於符號的偶然掉落，我們才能同意機器等於大腦 - 也就是說，不僅要寫它而且要知道它已經寫了它。當機器無法獲得想要的東西時，沒有機器會為它的成功感到高興，因其閥門熔斷而悲痛，因奉承受寵若驚，因其錯誤而悲慘，因性而著迷，為之生氣或痛苦。 
> 
> 

《泰晤士報》第二天報導了傑斐遜的講話，並補充說傑斐遜預測「皇家學會的優雅房間被改建成車庫以容納這些新人的這一天永遠不會到來」。作為回應，紐曼為《泰晤士報》撰寫了一篇後續文章，並在文章中聲稱 Mark 1 的結構與人類大腦之間存在著相似的類比。他的文章包括對圖靈的採訪，他補充說：

> 這只是即將發生的事情的預兆，只是即將發生的事情的陰影。在真正了解機器功能之前，我們必須具有一些機器方面的經驗。我們可能需要很多年才能適應新的可能性，但是我不明白為什麼它不應該進入人類智力通常涵蓋的任何領域，並最終平等競爭。
> 
> 

## 另見

* 電腦硬體歷史
* 真空管電腦列表
* 曼徹斯特電腦

## 註腳

### 注釋

### 原文參照和譯注

### 參考來源

### 參考書籍

* Rao, Arun; Piero, Scaruffi; 閆景⽴；侯愛華。硅⾕百年史： 伟⼤的科技创新与创业历程： 1900～ 2013 第 1 版。北京：⼈民郵電出版社. 2014-04. ISBN 9787115345318. OCLC 891457891 （中文）.

## 拓展閱讀

* Lavington, Simon H., Manchester Computer Architectures, 1948–1975, IEEE Annals of the History of Computing (IEEE), July–September 1993, **15** (3): 44–54, doi:10.1109/85.222841

## 外部連結

* The Manchester Mark 1
* Early computers at Manchester University in _Resurrection_ (The Bulletin of the Computer Conservation Society) **1** (4), Summer 1992, ISSN 0958-7403