曼切斯特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