Small-Scale Experimental Machine (SSEM) のレプリカ(マンチェスター産業科学博物館)
Manchester Small-Scale Experimental Machine (マンチェスター・スモールスケール・イクスペリメンタル・マシーン、SSEM ) は、世界初のプログラム内蔵 式コンピュータ 。愛称は Baby 。マンチェスター大学 でフレデリック・C・ウィリアムス 、トム・キルバーン 、Geoff Tootill(英語版 ) らが製作し、1948年6月21日に最初のプログラムが動作した[ 1] 。
このマシンは実用的なコンピュータを目指したものではなく、初期のコンピュータ用メモリであるウィリアムス管 の評価用に設計されたものである。当時としては「小型で基本的」なものとして設計されたが、現代の電子式コンピュータにある基本要素は全て備えた実働する世界初のコンピュータであった[ 2] 。SSEMによりその設計の実現可能性が示されると、同大学では、すぐさまさらに実用的なコンピュータ Manchester Mark I を開発するプロジェクトを開始した。Mark I は、世界初の商用汎用コンピュータ Ferranti Mark 1 のプロトタイプとなった[ 3] 。
SSEMはワード 長が32ビット で、メモリ 容量は32ワードだった。最も単純化したプログラム内蔵式コンピュータとして設計されたため、ハードウェアで実装した算術演算は減算 と正負の反転 だけだった。他の算術演算はソフトウェアで実装した。最初にこのマシン向けに書かれた3つのプログラムのうちの1つは、218 (262,144) の最大の真の約数 を求めるものだった。これは 218 − 1 から小さくなる方向に整数をひとつずつ調べていく時間のかかるプログラム(除算を持たないので、減算を繰り返し行う)で、それによってマシンの信頼性の試験も兼ねていた。このプログラムは17個の命令で構成され、正しい答えである 131,072 に到達するまでに52分かかった。その間にSSEMは命令を350万回実行したことになる(すなわち、実質的なCPU速度は1.1kIPS )。
背景
プログラム制御式コンピュータの世界初の設計はチャールズ・バベッジ の解析機関 で、1830年代のイギリス でのことである。約1世紀後の1936年、同じくイギリスの数学者アラン・チューリング は後にチューリングマシン と呼ばれるようになる概念を発表した。これは、機械的な計算の限界を考えるための理論上の概念だった。チューリングは実際のマシンを想定したわけではなく、テープに記された命令に従ってテープ上のシンボルの読み書きなどの操作を行う人を "computer" と呼んだ[ 4] 。チューリングは、数学の問題を解くアルゴリズムを書ける場合、チューリングマシンでそれを実行できることを証明した[ 5] 。
コンラート・ツーゼ のZ3 は、世界初のプログラム可能 な完全自動式コンピュータで、二進デジタルロジックで構成されていた。ただし、チューリングマシンに存在する条件分岐の機能がなかった。1941年5月12日、ベルリン の Deutsche Versuchsanstalt für Luftfahrt (ドイツ航空研究所)の観衆の前でデモンストレーションを成功させた。Z3は外部のテープにプログラムを格納していたし、電子式というよりも電気機械式だった。1943年のColossus は世界初の電子式計算装置だが、暗号解読専用であり、汎用の機械とは言えない。
1946年のENIAC は、電子式で汎用という意味で、世界初である。条件分岐も可能でチューリング完全 であり、幅広い問題を解けるようプログラム可能である。しかし、そのプログラムはメモリ上に格納されるわけではなく、パッチコードやスイッチの状態で保持されていた。そのためプログラムを入れ替えるには数日を要した[ 2] 。チューリングやコンラート・ツーゼ といった研究者もメモリをデータとプログラムの両方を格納するのに使うという考え方を研究していたが[ 6] 、現代のコンピュータのほとんどで使われているコンピュータ・アーキテクチャを定義したとして広く知られているのは、数学者のジョン・フォン・ノイマン である[ 7] 。
ノイマン型 コンピュータの構築は、プログラムの格納に適したメモリデバイスを用意できるかどうかにかかっていた。第二次世界大戦 時、レーダー 信号の散乱を除去するという問題に対処しようとしていた研究者らが遅延線装置を開発し、その最初の応用がジョン・プレスパー・エッカート の開発した水銀遅延線 であった[ 8] 。レーダー発信機は一定周期で短いパルスの形で電波を放出し、その反射をCRT画面に表示する。ここで興味があるのは動く標的だけであるため、静止した物体からの反射は除去するのが望ましい。このフィルタリングは、1つ前のパルスの反射と現在の反射を比較し、変化していない部分を除去すればよく、それによって動く物体のイメージだけが信号に残る。前に受信したパルスを比較のために蓄えておくために、遅延線という方式が考案された[ 9] 。
1945年10月、チューリングはイギリス国立物理学研究所 (NPL) に勤務するようになった[ 10] 。当時の軍需省 内の科学者らはイギリス国内で機械による計算をすすめる国立数学研究所が必要だと結論付け[ 11] 、NPLに数学部門が設置された。1946年2月19日、アラン・チューリングは電子式プログラム内蔵型コンピュータの設計に関する論文を提出し、それが後に Automatic Computing Engine (ACE ) と呼ばれるようになった[ 11] 。これは、第二次世界大戦終結後の数年間に始まったいくつかのプログラム内蔵型コンピュータ開発プロジェクトの1つである。ほぼ同じ頃、ペンシルベニア大学 電気工学科ではEDVAC 、ケンブリッジ大学 数学研究所ではEDSAC を開発しようとしていた[ 11] [ 12] 。
NPLにはACEのようなマシンを構築した経験がないため、英国郵便本局研究所のトミー・フラワーズ にコンタクトをとった。フラワーズは世界初のプログラム可能電子計算機 Colossus の設計者で、多忙だったためACEプロジェクトに関わることができなかったが、彼のチームはACE用の水銀遅延線をいくつか製作した[ 11] 。他にも通信研究所 (TRE) やケンブリッジ大学 数学研究所のモーリス・ウィルクス にも支援要請があった[ 11] 。
NPLを所管する政府機関は、TREに製作を一任することを決定し、ACEに最高優先度をつけた[ 11] 。NPLの決定を受けて1946年11月22日、TREの物理学部門の監督者が訪問し、それにはTREのフレデリック・C・ウィリアムス と A. M. Uttley も同行した[ 11] 。ウィリアムスは遅延線への代案として、CRT記憶装置のレーダーでの応用を研究していたTREの開発グループを紹介した[ 13] 。ウィリアムスは既にマンチェスター大学 の教授就任が決まっており、回路技術者のほとんどは原子力部門へ移籍されるところだった[ 11] 。TREは、一部の技術者をウィリアムスと共に大学に移すこと、そして TRE で Uttley の配下に一部技術者を移すことに合意した[ 11] 。
ウィリアムス管
EDSAC などのように、水銀遅延線メモリを使って成功した初期のコンピュータは存在するが、この技術にはいくつか欠点が存在した。すなわち、水銀遅延線は重く高価であり、データにランダムにアクセスできない。さらに、データは水銀 の中で一連の音波として格納されており、媒質の温度が変化すると音波の速度が変化するため、その温度は非常に注意深く制御する必要があった。ウィリアムスはベル研究所 で、遅延線の代わりに陰極線管 (CRT) を使ってレーダーの不要なエコーを除去するという実験を見たことがあった。TRE在職時、1946年12月にマンチェスター大学に移る直前に、ウィリアムスはCRTに基づいた電子記憶装置ウィリアムス管 を開発した。ウィリアムス管はランダムアクセス可能 な世界初のデジタル記憶装置である[ 14] 。Manchester Small-Scale Experimental Machine (SSEM) はウィリアムス管の記憶装置としての実用性を検証すべく設計されたもので、格納したデータをコンピュータが使用するのに必要な速度で繰り返し更新できることを証明するためのものだった[ 15] 。
二進 デジタルコンピュータで使う場合、ウィリアムス管は各メモリ位置に2つの状態のどちらかを格納し、それぞれの状態が二進数字 (ビット)の 0 および 1 に対応する。2つの状態を表すため、ダッシュまたはドットを表示したときに画面上のその位置に生じる正または負の電荷 を利用する。この現象を二次放出 と呼ぶ。ダッシュでは正の電荷、ドットでは負の電荷を生じ、いずれも画面の前に設置された検出プレートで電荷を取り出す。負の電荷が 0、正の電荷が 1 を表す。電荷は約0.2秒で消えるが、検出プレートが取り出したデータに基づいて自動的にリフレッシュすることができる[ 16] 。
ウィリアムス管用CRTとしては当初 CV1131 という一般に入手可能な12インチのものを使っていたが、SSEMではより小さい6インチの CV1097 を採用した[ 17] 。
開発と設計
4つの陰極線管 (緑色の丸)が、アーキテクチャ上どのように配置されているかを示す概念図
マンチェスター大学の電気工学科に移籍すると、ウィリアムスはTREで同僚だったトム・キルバーン を呼び寄せた。2人はウィリアムス管の記憶容量を増やす作業をし、1947年秋には64×32ビットの格子状の配置で2,048ビットまで記憶できるようにし[ 18] 、記憶したデータを4時間保持し続けるデモンストレーションを行った[ 19] 。1947年9月には、TREからの出向の形で技術者 Geoff Tootill を呼び寄せた(1949年4月まで)[ 20] 。
マックス・ニューマン は1945年、マンチェスター大学の純粋数学の教授となっていた。第二次世界大戦中、彼はブレッチリー・パーク で暗号解読を行っていて、1943年には暗号解読用計算機Colossus の開発に関与した。SSEMやその後のコンピュータ開発に直接関わることはなかったが、プロジェクトの創始者かつ熱心な支援者であり[ 21] 、例えばブレッチリーから金属ラックなど戦時余剰品の資材を入手するなどの手配を行った[ 22] 。
1948年6月にはSSEMが完成し、動作していた[ 18] 。長さ5.2m、高さ2.2mで、重量や約1tだった。550本の真空管 (二極管が300本、五極管が250本)を使い、消費電力は3,500ワット である[ 23] 。算術演算装置は戦時中に広く使われていた五極管 EF50 を使って製作された[ 19] 。ウィリアムス管は4本使用していた。1つ目は32×32ビットワード のRAM として使用し、2つ目は計算結果を一時的に保持するためのアキュムレータ 、3つ目は現在実行中の命令 とそのメモリアドレス を保持する。4つ目は記憶装置としてではなく、出力装置として機能し、他の3つのウィリアムス管の保持するビットパターンを選択して表示できる[ 24] 。
RAM内の32ビットワードにはプログラムの命令またはデータを格納できる。命令は、0番から12番のビットがオペランド のメモリアドレスを表し、13番から15番のビットが実行すべき演算 を指定する。残りの16ビットは使われていない[ 24] 。SSEMは1オペランド型のアーキテクチャであり、演算のもう一方のオペランドはアキュムレータを暗黙のうちに使う。したがって、プログラムの命令にはもう一方のオペランドとしてメモリ内のデータのアドレスを1つだけ指定する。
メモリ内のワードの読み出し、書き込み、リフレッシュはいずれも360マイクロ秒で行う。1つの命令の実行にはその4倍の時間がかかり、命令実行レートは1秒当たり約700命令となる。主記憶装置は定期的にリフレッシュされており、32ワードあるので、それを順次読み込んでリフレッシュするのに20ミリ秒かかった[ 18] 。
SSEMでは負数を表現するのに2の補数 を使っており[ 25] 、現代のコンピュータと同じである。その場合、最上位ビット が符号を表し、ゼロなら正の数、1なら負の数となる。そのため、32ビットワードで表現できる整数の範囲は −231 から +231 − 1 まで(−2,147,483,648 から +2,147,483,647)である。
プログラミング
SSEMの命令セット は3ビットで識別されるので、最大8種類 (23 ) の命令が存在する。最近の表現とは異なり、記憶装置上は最下位ビット が左になるよう配置されている。したがって "1" であれば、ビットは "100" となる。[ 25]
SSEMの命令セット[ 26]
二進コード
ニーモニック表現
操作・演算
000
JMP S
指定されたメモリアドレスの命令にジャンプする(絶対無条件ジャンプ)
100
JRP S
指定されたメモリアドレスにアキュムレータの値を加算したアドレスの命令にジャンプする(相対無条件ジャンプ)
010
LDN S
指定されたメモリアドレスにある数を取り出し、符号を反転させ、アキュムレータに格納する。
110
STO S
アキュムレータにある数を指定されたメモリアドレスに格納する。
001 または 101[ t 1]
SUB S
指定されたメモリアドレスにある数をアキュムレータにある数から引き、減算結果をアキュムレータに格納する。
011
CMP
アキュムレータにある値が負であれば、次の命令をスキップする(実行しない)。
111
STP
停止する。
負とか減算といった命令が多いのは、算術演算を行う回路として減算 および符号の反転 しか用意できなかったためである。加算は減算を使って容易に実現可能であるため、加算器 は当初不要と見なされていた[ 24] 。x +y は −(−x −y ) と計算でき、2つの数の加算は4命令を要する[ 26] 。
LDN X // Xを符号反転させたものをアキュムレータにロード
SUB Y // アキュムレータの値からYを減算
STO S // 結果をSに格納
LDN S // Sを符号反転させたものをアキュムレータにロード
プログラムは二進数形式でワード単位にメモリに設定する。32個のスイッチが入力機器 として用意されていて、スイッチの状態によってワードの対応するビットを0または1に設定する。SSEMには紙テープ 装置などの入力機器はなかった[ 18] 。
最初のプログラム
出力用CRT
SSEMでは3つのプログラムが書かれた。1つ目はキルバーンが作成した17個の命令からなるもので、1948年6月21日に動作したことが確認されている[ 27] 。218 (262,144) の最大の真の約数 を探すプログラムであり、218 − 1 から順に小さくなる方向に整数を調べていく。除算は除数を繰り返し減算することで実装されていた。SSEMは答え (131,072) を得るまでに350万命令を実行し、52分かかった。17個の命令以外に8ワードをデータの一時記憶に使ったので、プログラムの大きさは25ワードということになる[ 28] 。
Geoff Tootill はこのプログラムの改良版を翌月に書き、1948年9月にマックス・ニューマンの招きでマンチェスター大学に移籍することになったアラン・チューリング が同年7月中ごろに3つめのプログラムを送ってきた(長除法 を使ったバージョン)。チューリングは同大学で設立されていた王立協会計算機研究所の副所長に就任してウィリアムスやキルバーンとともに働くこととなった[ 27] [ 29] [ 30] [ 21] 。
その後の開発
ウィリアムスとキルバーンはSSEMに関する報告をネイチャー 誌に送り、1948年9月にそれが掲載された[ 31] 。SSEMによるデモンストレーションが成功したため、より実用的なコンピュータ Manchester Mark I の製作が1948年8月から始まり、1949年4月には動作開始している[ 29] 。そして、それをベースとして世界初の商用汎用コンピュータ Ferranti Mark 1 が開発された[ 3] 。
1998年、世界初のプログラムが動作してから50周年を記念して、SSEMの実働するレプリカが製作された。現在はマンチェスター産業科学博物館に展示されており、実際に動作させるデモンストレーションを定期的に行っている[ 32] 。2008年、SSEMの全体を写した写真がマンチェスター大学で見つかった。1948年12月15日に学生だった Alec Robinson が撮影したもので、1949年6月の The Illustrated London News という新聞に掲載された写真である[ 33] [ 34] 。
脚注・出典
^ Enticknap, Nicholas (Summer 1998), “Computing's Golden Jubilee” , Resurrection (The Computer Conservation Society) (20), ISSN 0958-7403 , http://www.cs.man.ac.uk/CCS/res/res20.htm#d 2008年4月19日 閲覧。
^ a b Early Electronic Computers (1946–51) , University of Manchester, http://www.computer50.org/mark1/contemporary.html 2008年11月16日 閲覧。
^ a b Napper, R. B. E., Introduction to the Mark 1 , The University of Manchester, http://www.computer50.org/mark1/mark1intro.html 2008年11月4日 閲覧。
^ Turing 1936 , p. 253
^ Turing 1936
^ Zuse, Horst, Part 10: Konrad Zuse and the Stored Program Computer , “The Life and Work of Konrad Zuse”, EPE Online (Wimborne Publishing), https://web.archive.org/web/20071210232351/http://www.epemag.com/zuse/default.htm 2008年11月16日 閲覧。
^ Lavington 1998 , p. 7
^ Lavington 1998 , p. 1
^ Brown 1999 , p. 429
^ Lavington 1998 , p. 9
^ a b c d e f g h i Lavington (1980), Chapter 5: "ACE, the 'British National Computer'".
^ Lavington 1998 , pp. 8–9
^ Lavington 1998 , p. 5
^ “Early computers at Manchester University” , Resurrection (The Computer Conservation Society) 1 (4), (Summer 1992), ISSN 0958-7403 , http://www.cs.man.ac.uk/CCS/res/res04.htm#g 2008年4月19日 閲覧。
^ Lavington 1998 , pp. 13, 24
^ Lavington 1998 , p. 12
^ Lavington 1998 , pp. 12–13
^ a b c d Napper 2000 , p. 366
^ a b Lavington 1998 , p. 13
^ Lavington 1998 , p. 16
^ a b Copeland, Jack (2010). "9. Colossus and the Rise of the Modern Computer". In Copeland, B. Jack (ed.). Colossus The Secrets of Bletchley Park's Codebreaking Computers. Oxford University Press. pp. 91–100. ISBN 978-0-19-957814-6 .
^ Lavington 1998 , pp. 6–7
^ (PDF) The "Baby": The World's First Stored-Program Computer , Manchester Museum of Science & Industry, http://www.msim.org.uk/media/33871703/thebaby,theworldsfirststored-programcomputer.pdf 2008年11月15日 閲覧。
^ a b c Napper 2000 , p. 367
^ a b Lavington 1998 , p. 14
^ a b c Lavington 1998 , p. 15
^ a b Lavington 1998 , pp. 16–17
^ Tootill, Geoff (Summer 1998), “The Original Original Program” , Resurrection (The Computer Conservation Society) (20), ISSN 0958-7403 , http://www.cs.man.ac.uk/CCS/res/res20.htm#e 2008年4月19日 閲覧。
^ a b Lavington 1998 , p. 17
^ Swinton, Jonathan (2019). Alan Turing's Manchester. Manchester: Infang Publishing. ISBN 978-0-9931789-2-4 . Archived from the original on 17 February 2019. Retrieved 18 March 2019.
^ “Electronic Digital Computers” , Nature 162 : 487, (25 September 1948), http://www.computer50.org/kgill/mark1/natletter.html 2009年1月22日 閲覧。
^ Meet Baby , Manchester Museum of Science & Industry, http://www.msim.org.uk/whats-on/meet-baby 2008年11月17日 閲覧。
^ Highfield, Roger (17 June 2008), “Photo of great grandfather of modern computers found” , Daily Telegraph , http://www.telegraph.co.uk/earth/main.jhtml?view=DETAILS&grid=&xml=/earth/2008/06/17/scicomp117.xml 2008年6月20日 閲覧。
^ Panoramic image of SSEM and other audiovisual records (Digital 60, University of Manchester)
参考文献
Brown, Louis (1999), A Radar History of World War II: Technical and Military Imperatives , CRC Press, ISBN 978-0-7503-0659-1
Lavington, Simon (1980), Early British Computers: The Story of Vintage Computers and the People who built them (1st ed.), Manchester: Manchester University Press Society, ISBN 0-7190-0803-4
Lavington, Simon (1998), A History of Manchester Computers (2 ed.), Swindon: The British Computer Society , ISBN 1-902505-01-8
Napper, R. B. E. (2000), “The Manchester Mark 1 Computers” , in Rojas, Raúl; Hashagen, Ulf, The First Computers: History and Architectures , MIT Press, pp. 356–377, ISBN 0-262-68137-4 , https://books.google.co.uk/books?id=nDWPW9uwZPAC&hl=en
Turing, A. M. (1936), “On Computable Numbers, with an Application to the Entscheidungsproblem”, Proceedings of the London Mathematical Society , 2 42 : pp. 230–265, 1937, doi :10.1112/plms/s2-42.1.230 . 何度も再掲載されており、ウェブ上でも閲覧可能。例えば Scribd にある。
Anderson, David (4 June 2004), “Was the Manchester Baby conceived at Bletchley Park?” (PDF), Alan Mathison Turing 2004: A celebration of his life and achievements , British Computer Society, http://www.bcs.org/upload/pdf/ewic_tur04_paper3.pdf 2008年11月16日 閲覧。
外部リンク
関連項目