曼切斯特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和IBM 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萬英鎊（相當於UK年每年UK英鎊UK）UK。

## 開發和設計

<image>

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個磁鼓頁作為後備存儲。直徑12in的磁鼓最初被稱為磁輪，在其表面周圍包含一系列平行的磁軌，每個磁軌都有自己的讀/寫頭。每個磁軌可以存儲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），用於保持被乘數和乘數以進行乘法運算。

## 編程

<image>

在為每個程序指令分配的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的結構與人類大腦之間存在著相似的類比。他的文章包括對圖靈的採訪，他補充說：

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

## 外部連結

- The Manchester Mark 1
- Early computers at Manchester University in Resurrection (The Bulletin of the Computer Conservation Society) 1 (4), Summer 1992,

## 基本資料

- 日語原文：Manchester Mark 1
- 產品系列：曼徹斯特電腦
- 前任：曼徹斯特SSEM
- 繼任：費倫蒂馬克一號