EDSAC

EDSAC (Electronic Delay Storage Automatic Calculator)



EDSACは、1940年代後半にケンブリッジ大学のモーリス・ウィルクスとそのチームによって開発された、初期のイギリスコンピュータです。ジョン・フォン・ノイマンのEDVACに関する報告書に大きな影響を受け、世界初のプログラム内蔵式電子計算機の一つとして知られています。しかし、プログラム内蔵方式で最初に稼働したマシンではありません。

開発の背景と初期の応用



プロジェクトはJ. Lyons & Co. Ltd.によって資金提供され、EDSACのデザインは初の商用コンピュータLEO Iの開発へと繋がりました。1949年5月6日、EDSACで最初に実行されたプログラムは、0から99までの整数の二乗表と素数リストを作成するものでした。

EDSACは、その開発直後から大学の研究に活用され、3000本の真空管を使用し、12kWの電力を消費しました。主記憶装置には水銀遅延管が用いられ、入力には5孔の紙テープ、出力にはテレタイプ端末が使われました。

ハードウェア構成



初期のEDSACには、アキュムレータと乗算器用レジスタのみが搭載されていましたが、1953年にデビッド・ホイーラーがインデックスレジスタを設計し、ハードウェアが拡張されました。

記憶装置と命令セット



主記憶容量は1024ワード(1ワードは17ビット)でしたが、実際には512ワードまで実装されました。35ビットのロングワードは、2つのショートワードを「サンドイッチビット」と呼ばれるビットで区切って使用されました。数値は2の補数表現の二進数で表されました。

EDSACは18個の命令を備えており、17ビットのショートワードの先頭5ビットが命令コードとして機能しました。紙テープの文字コードをそのまま命令コードとして使用しており、例えば「Add」命令は「A」の文字コードで表現されました。命令コードの後には1ビットの未使用ビットがあり、10ビットのメモリアドレスと、オペランドがショートワードかロングワードかを指定する1ビットが続きました。

乗算器は数値を固定小数点数として扱い、-1 ≤ x < 1 の範囲で動作するように設計されていました。アキュムレータは71ビット幅で、35ビットのロングワード同士の乗算でも情報が失われないように設計されました。

命令セットには、加算、減算、乗算、照合、シフト、ロード、ストア、条件付きスキップ、入出力、丸め、停止などが含まれていました。除算命令はサブルーチンで実装され、アキュムレータに直接メモリからロードする命令はありませんでした。

システムソフトウェア



EDSACの起動時には、スイッチ群で実装されたイニシャルオーダがメモリの先頭にロードされました。1949年5月には、アセンブラの機能が31ワードのイニシャルオーダに搭載され、世界初のアセンブラとなりました。

EDSACはケンブリッジ大学の様々な問題解決に使用され、今日のオペレーティングシステムに見られるような多くの技術が考案されました。ユーザーはアセンブリ言語でプログラムを記述し、紙テープに入力しました。オペレーターは紙テープを読み取り装置にかけ、ジョブキューのように処理しました。プログラム実行後、結果と紙テープがユーザーに返却されました。エラーが発生した場合は、停止したメモリ位置がユーザーに伝えられました。デバッガは存在しませんでしたが、ブラウン管でメモリの内容を表示し、プログラムの進行状況を確認することができました。通常業務時間外には、許可されたユーザーが深夜までEDSACを使用することができましたが、真空管の故障が頻繁に発生したと言われています。

プログラミング技法



初期のプログラマーは、コード書き換えなどの現代では推奨されない手法を使用していました。インデックスレジスタがなかったため、配列にアクセスするには命令のアドレス部分を実行時に変更する必要がありました。デビッド・ホイーラーはサブルーチンの概念を発明し、そのアドレスを格納してサブルーチンにジャンプする手法(Wheeler jump)を考案しました。サブルーチンは最後にジャンプ命令のアドレス部を書き換えることで、入れ子構造も実現できました。ただし、当時はリロケータブルバイナリなどはなく、プログラマーがジャンプ先を計算する必要がありました。

EDSACの使用経験に基づいて、プログラムと手法をまとめた書籍『The Preparation of Programs for an Electronic Digital Computer』が出版され、世界的に「プログラミング」の実例が広まり、その後のコンピュータ設計の指針となりました。

アプリケーションソフトウェア



サブルーチンの概念からライブラリが形成され、1951年には浮動小数点演算、複素数演算、除算、べき乗、各種関数、微分方程式冪級数、対数、印字レイアウト、数値積分、入出力、反復処理、ベクトル、行列などの87のサブルーチンが広く使用されました。

EDSACの利用例



1950年、ウィルクスとホイーラーは遺伝子頻度に関する微分方程式をEDSACで解き、生物学分野での最初のコンピュータ利用となりました。1951年には79桁の素数が発見され、1952年には三目並べのグラフィック版である『OXO』が開発され、世界初のコンピュータゲームとなりました。また、EDSACの後継機であるEDSAC 2は、1960年代に楕円曲線に関する計算に使用されました。

その後の開発



EDSACの後継機であるEDSAC 2は1958年に稼働を開始し、1961年には高水準言語Autocodeが開発されました。1960年代半ばにはEDSAC 2の後継機が計画されましたが、結局Atlas 2のプロトタイプであるTitanが導入されました。

復元プロジェクト



2011年、Computer Conservation SocietyがEDSACの稼働レプリカを製作し、2015年からは定期的な動作デモンストレーションを行う予定です。このプロジェクトは、モーリス・ウィルクスの下で学んだAndrew Herbertが指揮しています。

参考資料



50th Anniversary of EDSAC Site
An EDSAC simulator
Oral history interview with David Wheeler
Cambridge's Golden Jubilee

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。