Ferranti Mark 1
Ferranti Mark 1 は、世界初の商用汎用電子式コンピュータである[1]。 販促パンフレットには Manchester Electronic Computer との呼称もあり[2]、Manchester Ferranti とも呼ばれた。Manchester Mark I を整えて製品化したバージョンといえる[3]。
歴史と仕様
[編集]1号機は1951年2月にマンチェスター大学に納入されており、UNIVAC I がアメリカ合衆国国勢調査局に納入されたのはその約1カ月後のことである。
イギリスのフェランティが製造した。マンチェスター・ビクトリア大学のフレデリック・C・ウィリアムスとトム・キルバーンが設計した Manchester Mark I をベースにしている。Manchester Mark I は事実上 Ferranti Mark 1 のプロトタイプとして役立った。主な改良点は記憶装置の容量増、乗算器の高速化、命令の追加である。
Mark 1 のワード長は20ビットで、ウィリアムス管ディスプレイの一列のドットの数と対応しており、各ウィリアムス管は64列のドット列を格納できる。命令は1ワード、数値は2ワードで格納される。主記憶装置はウィリアムス管8本で構成され、1本の格納する64ワードを1ページと呼ぶ。他に、80ビットのアキュムレータ (A)、40ビットの「非乗数/商レジスタ」(MQ)、8本のBラインすなわちインデックスレジスタがあり、特にインデックスレジスタは Mark 1 のユニークな機能となっていた。アキュムレータは40ビットワード2つとして使用することもできる。ウィリアムス管ごとに追加の20ビットワードがあり、二次記憶装置へのオフセット値を格納している。二次記憶装置は512ページの磁気ドラムメモリであり、1トラックに2ページを格納し、約30ミリ秒で1回転する。Manchester Mark I の当初の設計に比べると、磁気ドラムは8倍の容量になっている。
命令は1オペランド形式で、演算結果はアキュムレータに残す。全部で約50種類の命令がある。基本サイクル時間は1.2ミリ秒で、乗算は新たな並列ユニットを使って2.16ミリ秒で完了する(オリジナルの5倍の性能)。マシンを構成する4,050本の真空管のうち4分の1が乗算器に使われている[2]。ウィリアムス管上のメモリワードの内容をさん孔テープ装置に出力する命令や、逆にさん孔テープリーダーからメモリにデータを転送する命令などもある。他にも乱数を発生させる命令、Bラインを使った命令などが追加されている。
Manchester Mark I では、テレタイプ用5ビット符号(Baudot Code に似た符号)に対応した文字列をテレタイプ端末から入力することでさん孔テープにプログラムを入力していた。テープ上の穴の配置が二進数と直接対応するようにしているため、キーボードのキーと符号との対応はランダムとなっている。従って、5ビットで表される0から31までの数に対応するキーボード上の文字を順に並べると /E@A:SIU½DRJNFCKTZLWHYPQOBG"MXV£ となる。各命令は基本的に1文字で表される。
1号機はマンチェスター大学に納入された。フェランティはさらに売ろうとし、ハーウェル原子力研究所から注文を受けて励まされた。同研究所には1952年秋に納入予定となっていた。ところが1951年秋に政権交代があって契約はキャンセルとなり、ほぼ完成していた Mark 1 だけが残された。FERUTと名付けられたこのマシンは、トロント大学が安く購入することになり、納入後は大いに活用された。
Mark 1 Star
[編集]最初の2台を製造後、新たな改良版の設計が完了し、Ferranti Mark 1* または Ferranti Mark 1 Star と呼ばれた。命令セットがより使いやすく整理されている。二進数と文字のランダムな対応は改善され、0から31までの数に対応した文字は ø£½0@:$ABCDEFGHIJKLMNOPQRSTUVWXYZ となった。またインデックスレジスタを使った命令には副作用があるため、プログラミングに奇妙な対処を必要としていたが、その副作用も除去された。同様に JUMP 命令は指定したアドレスの1つ前のアドレスに分岐するという、これもインデックスレジスタの奇妙な振る舞いと同様の理由でそうなっていた。しかしそのようなこだわりは、理論的には意味があっても実用には迷惑なだけだったため、修正された。入出力も修正され、5ビットの最下位ビットを「右」に置くようにした。このような様々な修正により、大幅にプログラミングが容易になった。少なくとも7台の Mark 1* が1951年から1957年にかけて顧客に納入されており、例えばアムステルダムのシェルの研究所にも納入されている。
ティム・バーナーズ=リーの両親は Ferranti Mark 1 および Mark 1* の開発に携わっていた[4]。
最古のコンピュータ音楽の録音
[編集]Ferranti Mark 1 には音を出す命令があり、オペレータに音でフィードバックできるようになっている。この音は音高を変更できるため、当然この機能を利用してコンピュータ音楽を奏でる人が出現し、いくつか録音が残っている。奏でられたメロディとしては、「女王陛下万歳」、「メエメエ黒羊さん」、「イン・ザ・ムード」がある[5]。この録音はBBCが1951年末ごろ行ったもので、アラン・チューリングの友人でハーロー校の数学教師だったクリストファー・ストレイチーがプログラミングした。ただしこれは世界初のコンピュータ音楽ではない。オーストラリア初のデジタルコンピュータCSIRACが「ボギー大佐」を奏でたのが世界初である[6]。
最古のコンピュータゲームの1つ
[編集]1951年11月、ディートリッヒ・プリンツが世界最古のコンピュータゲームの1つを書いた。Ferranti Mark 1 上で動作するチェスプログラムである。記憶容量などに限界があるため、チェスを最初から最後までプレイできるようプログラムを組むことは不可能だった。そこでプリンツはチェス・プロブレムの2手問題(2手でチェックメイトになる詰めチェス)だけをプログラミングした[7]。このプログラムは白および黒の考えられる指し手を全て調べ、解を導き出す。1問を解くのに平均で15分から20分かかった。また、キャスリングはできず、アンパッサンもできず、ポーンのプロモーションもできない。詰みとステイルメイトも区別していない[要出典]。
脚注
[編集]- ^ 先行例として BINAC と Zuse Z4 があるが、BINACは汎用を意図しておらず、実際には当初の用途にも使われなかった(“Description of the BINAC”, citing Annals of the History of Computing, Vol. 10 #1 1988 2008年7月26日閲覧。)。またZ4は電気機械式であって電子式ではない( Dead medium: the Zuse Ziffernrechner; the V1, Z1, Z2, Z3 and Z4 program-controlled electromechanical digital computers; the death of Konrad Zuse 2008年7月26日閲覧。)。
- ^ a b Lavington 1998, p. 25
- ^ Tootill, Geoff (2010), National Life Stories an Oral History of British Science: Geoff Tootill Interviewed by Thomas Lean, British Library, p. 169 C1379/02 Track 6 2011年1月30日閲覧。
- ^ Frequently asked questions "Why did you study physics?" という質問への答
- ^ Manchester Mark 1 playing the first recorded computer music, Manchester University 2009年1月22日閲覧。
- ^ Fildes, Jonathan (2008-06-17), “'Oldest' computer music unveiled”, BBC News Online 2008年6月18日閲覧。
- ^ “Dietrich Prinz”. Chess Programming WIKI. 2012年6月17日閲覧。
参考文献
[編集]- Lavington, Simon (1998), A History of Manchester Computers (2 ed.), Swindon: The British Computer Society
- Lavington, Simon (1980), Early British Computers, Manchester University Press, ISBN 0-7190-0803-4. Chap. 7
- Williams, Michael (1997), A History of Computing Technology, IEEE Computer Society Press, ISBN 0-8186-7739-2. Chap. 8.3.2