1948年6月のEDSAC I | |
| 開発者 | ケンブリッジ大学数学研究所のモーリス・ウィルクスと彼のチーム |
|---|---|
| メーカー | ケンブリッジ大学 |
| 世代 | 1 |
| 発売日 | 1949年5月6日 |
| 寿命 | 1949–1958 |
| 製造中止 | はい |
| 出荷数 | 1 |
| オペレーティング·システム | なし |
| CPU | 定格出力の 低い熱電子バルブ |
| メモリ | 512 17 ビット ワード、1952 年に 1024 17 ビット ワードにアップグレード (温度安定化水銀遅延線) |
| 画面 | テレプリンター |
| 入力 | 5穴パンチテープ |
| 力 | 11kW |
| 下位 互換性 | なし |
| 後継 | EDSAC 2とLEO I |
| 関連している | エドバック |
電子遅延記憶自動計算機(EDSAC)は、初期のイギリスのコンピュータでした。[1]ジョン・フォン・ノイマンのEDVACに関する報告書の第一草稿に触発され、このマシンはイギリスのケンブリッジ大学数学研究所のモーリス・ウィルクスと彼のチームによって構築されました。EDSACは、マンチェスター・マーク1に続いて、定期的に使用されるようになった2番目の電子デジタルプログラム記憶コンピュータでした。 [2]
その後、このプロジェクトは、商業的に応用できるコンピュータの開発を目的としたJ. Lyons & Co. Ltd.の支援を受け、結果として Lyons はEDSAC の設計に基づいてLEO Iを開発しました。EDSAC の作業は 1947 年に開始され、 [3] 1949 年 5 月 6 日に最初のプログラムが実行され、平方数の表[4]と素数のリスト[ 5]が計算されました。[6 ] EDSAC は最終的に 1958 年 7 月 11 日にシャットダウンされ、EDSAC 2に置き換えられ、1965 年まで使用されました。[7]
技術概要
物理コンポーネント
.jpg/500px-EDSAC_(5).jpg)
.jpg/500px-EDSAC_(20).jpg)
EDSACは運用開始後すぐに大学の研究ニーズに応え始めました。メモリには水銀遅延線、ロジックには定格出力の低い 真空管を使用しました。消費電力は11kWでした 。 [ 8] [9]サイクルタイムは、通常の命令で1.5ms、乗算で6msでした。入力は5穴パンチテープ、出力はテレプリンターで行われました。
当初、レジスタは累算器レジスタと乗算器レジスタに限定されていました。1953 年、イリノイ大学滞在から戻ったDavid Wheeler は、オリジナルの EDSAC ハードウェアの拡張として インデックス レジスタを設計しました。
1952年に磁気テープドライブが追加されましたが、実際に使用できるほど十分に機能しませんでした。[9]
1952年まで、利用可能なメインメモリ(命令とデータ)は512 18ビットワードのみで、バックアップストアはありませんでした。[10]遅延線(または「タンク」)は2つのバッテリーに配置され、それぞれ512ワードを提供します。2番目のバッテリーは1952年に運用を開始しました。[9]
完全な1024ワードの遅延線記憶装置は1955年か1956年初頭まで利用できず、[11]それまではプログラムは約800ワードに制限されていました。
ジョン・リンドリー(1958年~1959年卒業)は、「50年代後半に入手可能だった粗雑で信頼性の低い自家製のパンチング、印刷、検証装置では、正確な紙テープ1枚を作成するのに信じられないほどの困難を要した」と述べています。[12]
メモリと指示
.jpg/500px-EDSAC_(9).jpg)
.jpg/500px-EDSAC_(12).jpg)
EDSAC のメイン メモリは 1024 個のロケーションで構成されていましたが、最初にインストールされたのは 512 個のロケーションだけでした。各ロケーションには 18 ビットが含まれていましたが、タイミングの問題により最上位ビットは常に使用できなかったため、17 ビットのみが使用されました。命令は、5 ビットの命令コード、1 つの予備ビット、10 ビットのオペランド (通常はメモリ アドレス)、および命令が 17 ビットまたは 35 ビットのオペランド (連続する 2 つのワード、リトルエンディアン) を使用するかどうかを制御する 1 つの長さビットで構成されていました。すべての命令コードは設計上、1 つのニーモニック文字で表され、たとえばAdd命令では文字 A に EDSAC 文字コードが使用されました。
EDSAC は内部的に2 の補数 バイナリ数値を使用していました。数値の長さは 17 ビット (1 ワード) または 35 ビット (2 ワード) でした。通常とは異なる点として、乗算器は数値を -1 ≤ x < 1の範囲の固定小数点小数として扱うように設計されていました。つまり、バイナリ ポイントは符号のすぐ右側にありました。アキュムレータは符号を含めて 71 ビットを保持できるため、2 つの長い (35 ビット) 数値を精度を失わずに乗算できます。
利用可能な手順は次のとおりです。
- 追加
- 減算
- 掛け算と足し算
- AND と加算(「照合」と呼ばれる)
- 左にシフト
- 算術右シフト
- 乗算レジスタをロード
- アキュムレータを保存(オプションでクリア)
- 条件付き goto
- 入力テープの読み取り
- 文字を印刷する
- ラウンドアキュムレータ
- ノーオペレーション
- 停止
除算命令はありませんでした (ただし、さまざまな除算サブルーチンが提供されていました)。また、数値をアキュムレータに直接ロードする方法もありませんでした (これには、「アキュムレータを格納してゼロにする」命令の後に「追加」命令が必要でした)。無条件ジャンプ命令も、プロシージャ呼び出し命令もありませんでした。これらはまだ発明されていませんでした。
モーリス・ウィルクスは1953年に発表した論文でEDSACの相対アドレッシングモードについて議論した。彼はサブルーチンの使用を容易にするための提案をしていた。[13]
システムソフトウェア
初期命令は、ユニセレクタスイッチのセットにハードワイヤードされ、起動時にメモリの下位ワードにロードされました。1949年5月までに、初期命令は、上記のニーモニック設計を活用した、31ワードの原始的な再配置アセンブラを提供しました。これは世界初のアセンブラであり、世界的なソフトウェア産業の始まりであったと言えます。EDSACのシミュレーションと、初期命令と最初のプログラムの完全な説明が利用可能です。[14]
EDSACによる最初の計算は、1949年5月6日に実行された平方数を計算するプログラムでした。[15]このプログラムは、この機械を研究するためにカナダからやって来たベアトリス・ワースリーによって書かれました。[16] [15]
このマシンは大学の他のメンバーによって実際の問題を解決するために使用され、現在ではオペレーティング システムに組み込まれている多くの初期の技術が開発されました。
ユーザーは、プログラムを (アセンブラで) 紙テープに打ち込んで準備しました。すぐに、紙テープを光にかざしてコードを読み取れるようになりました。プログラムが準備できたら、紙テープ リーダーの近くに張られた長いラインに吊るします。日中そこにいたマシン オペレーターは、ラインから次のテープを選択し、EDSAC にロードします。これはもちろん、今日ではジョブ キューとしてよく知られています。何かが印刷された場合は、テープとプリントアウトがユーザーに返され、そうでない場合は、どのメモリ位置で停止したかがユーザーに通知されます。デバッガーが登場するまでにはしばらくかかりましたが、ブラウン管画面を設定して、特定のメモリ部分の内容を表示できました。これは、たとえば、数値が収束しているかどうかを確認するために使用されました。スピーカーはアキュムレータの符号ビットに接続されていました。経験豊富なユーザーは、特にループで「ハング」したプログラムの正常な音と異常な音を知っていました。
勤務時間外には、特定の「許可されたユーザー」が自分でマシンを操作することが許可され、夜遅くまでバルブが破裂するまでマシンを操作し続けた。そのようなユーザーの1人によると、バルブが破裂するのはよくあることだったという。[17]これはフレッド・ホイルの小説『黒い雲』でほのめかされている。
プログラミング技術
.jpg/500px-EDSAC_(23).jpg)
初期のプログラマーは、今日では好ましくない手法、特に自己変更コードを使用する必要がありました。ずっと後までインデックス レジスタが存在しなかったため、配列にアクセスする唯一の方法は、特定の命令が参照しているメモリ位置を変更することでした。
このプロジェクトに携わり、世界初のコンピュータサイエンスの博士号を取得したデイビッド・ウィーラーは、サブルーチンの概念を発明したとされている。ユーザーは、アキュムレータに戻りアドレス(つまり、ジャンプ自体の位置プラス1)を入れてサブルーチンの先頭にジャンプすることでルーチンを呼び出すプログラム(ウィーラージャンプ)を作成した。慣例によりサブルーチンはこれを予想し、最初に最後のジャンプ命令をその戻りアドレスに変更する。ユーザーが各サブルーチンの長さを知っていれば、ジャンプ先の位置を計算できる限り、複数のネストされたサブルーチンを呼び出すことができた。再帰呼び出しは禁止されていた。次に、ユーザーは自分のプログラムの終了後に、サブルーチンのコードをマスターテープから自分のテープにコピーした。 (しかし、アラン・チューリングは1945年のNPL ACEの設計提案に関する論文でサブルーチンについて議論し、再帰を可能にするリターンアドレススタックの概念を発明するまでに至った。[19])
インデックス レジスタがないと、サブルーチンの作成者にとっても問題が生じます。サブルーチンがメモリのどこにロードされるかを事前に知ることができないため、データの保存に使用されるコード領域 (いわゆる「疑似命令」) のアドレス指定方法がわかりません。これは、パンチ テープからサブルーチンをメモリにロードする役割を担う初期入力ルーチンを使用することで解決されました。サブルーチンをロードすると、開始位置が記録され、必要に応じて内部メモリ参照が増分されます。したがって、ウィルクスが書いたように、「マシンの外部で命令を表すために使用されるコードは、内部で使用されるコードとは異なります。その違いは、一方ではプログラマーの要件、他方ではマシンの制御回路の要件によって決まります」。[20]
EDSAC のプログラマーは、限られた利用可能なメモリを最大限に活用するために特別なテクニックを使用しました。たとえば、パンチ テープからサブルーチンをメモリにロードする時点で、特定の定数を計算しなければならない場合があります。この定数は、後で再計算する必要はありません。この状況では、定数は「インタールード」で計算されます。定数を計算するために必要なコードは、完全なサブルーチンと一緒に提供されます。最初の入力ルーチンが計算コードをロードした後、制御はこのコードに移されます。定数が計算されてメモリに書き込まれると、制御は最初の入力ルーチンに戻り、サブルーチンの残りの部分をメモリに書き込み続けますが、最初に開始点を調整して、定数を計算したコードを上書きします。これにより、汎用サブルーチンに非常に複雑な調整を行うことができ、特定の状況に合わせて調整した場合よりもメモリ内の最終的なフットプリントが大きくならないようにすることができます。[21]
アプリケーションソフトウェア
サブルーチンの概念により、膨大なサブルーチン ライブラリが利用可能になりました。1951 年までに、浮動小数点演算、複素数の算術演算、チェック、除算、累乗、関数に関連するルーチン、微分方程式、特殊関数、べき級数、対数、その他、印刷とレイアウト、求積、読み取り (入力)、n乗根、三角関数、カウント演算 ( repeat until ループ、while ループ、for ループのシミュレーション)、ベクトル、行列のカテゴリの 87 個のサブルーチンが一般使用できるようになりました。
最初のアセンブリ言語はEDSAC 用に登場し、他のいくつかのアセンブリ言語に影響を与えました。
EDSACの応用
EDSACは、数学研究所の計算支援サービスの一部として特別に設計されました。[22]計算にコンピュータを使用した最初の科学論文は、ロナルド・フィッシャーによるものでした。[要出典]ウィルクスとウィーラーは、彼のために遺伝子頻度に関する微分方程式を解くためにEDSACを使用していました。[23] 1951年、ミラーとウィーラーは、当時 最大の79桁の素数を発見するためにこのマシンを使用しました。 [24]
3 人のノーベル賞受賞者、 ジョン・ケンドリューとマックス・ペルーツ(化学、1962 年)、アンドリュー・ハクスリー(医学、1963 年)、マーティン・ライル(物理学、1974 年) は、EDSAC の革新的な計算能力の恩恵を受けました。受賞スピーチでは、受賞者全員が EDSAC が研究で果たした役割を認めました。
1960年代初頭、ピーター・スウィナートン・ダイアーはEDSACコンピュータを使用して、階数がわかっている楕円曲線上の多数の素数pについて、 pを法とする点の数( N pと表記)を計算しました。これらの数値結果に基づいて、バーチとスウィナートン・ダイアー(1965)は、階数rの曲線EのN p が漸近法則に従うと予想しました。これはバーチとスウィナートン・ダイアー予想と呼ばれ、 2024年現在、 数学における最大の未解決問題の1つと考えられています。
「脳」(コンピュータ)はいつか私たち(一般人)のレベルまで降りてきて、所得税や簿記の計算を手伝ってくれるかもしれません。しかし、これは推測であり、今のところその兆候はありません。
— イギリスの新聞「ザ・スター」は、パーソナルコンピュータの時代よりずっと前の1949年6月にEDSACコンピュータに関するニュース記事を書いた。[25]
ゲーム
1952年、サンディ・ダグラスはEDSAC向けに、VCR97 6インチブラウン管にグラフィック出力する三目並べのバージョンであるOXOを開発しました。これはおそらく世界初のビデオゲームだったでしょう。[26] [27]
スタンレー・ギルが作成した別のビデオゲームでは、点(羊と呼ばれる)が線に近づくと、2つのゲートのうちの1つが開きます。[28]スタンレー・ギルのゲームは、EDSACの紙テープリーダーの光線を介して制御されました。[28]それを中断すると(プレーヤーが手を置くなど)、上のゲートが開きます。[28]光線を中断しないと、下のゲートが開きます。[28]
さらなる発展
EDSAC の後継機であるEDSAC 2 は1958 年に就役しました。
1961 年、科学者やエンジニア向けのALGOL風の高級プログラミング言語である Autocode の EDSAC 2 バージョンが David Hartley によって開発されました。
1960年代半ばには、EDSAC 2の後継機が計画されましたが、代わりにマンチェスター大学、フェランティ、プレッシーのアトラスコンピュータから開発されたアトラス2のプロトタイプであるタイタンに移行しました。
EDSACレプリカプロジェクト
2011年1月13日、コンピュータ保存協会は、モーリス・ウィルクスに師事したアンドリュー・ハーバートが監督する、ブレッチリー・パークの国立コンピューティング博物館(TNMoC)にEDSACの実用的なレプリカを構築する計画を発表しました。 [29]レプリカの最初の部分は2014年11月に電源が投入されました。 [30] [31] EDSACの論理回路は、シミュレータの開発と再発見されたオリジナルの回路図の再検討を通じて、細心の注意を払って再構築されました。この文書はクリエイティブ・コモンズ・ライセンスの下で公開されています。[32]進行中のプロジェクトは博物館の訪問者に公開されています。 2016年には、2人のオリジナルのEDSACオペレーター、マーガレット・マーズとジョイス・ウィーラーがプロジェクトを支援するために博物館を訪れました。[33] 2016年11月時点では、レプリカが完全に完成し運用可能な状態になるのは2017年秋と見積もられていました。 [34]しかし、予期せぬプロジェクトの遅延により、完成し完全に運用可能な機械の日付は不明となっています。
参照
- EDSACの設計の多くはEDVACに基づいている
- コンピュータハードウェアの歴史
- 真空管コンピュータの一覧
参考文献
- ^ Wilkes, WV ; Renwick, W. (1950). 「EDSAC (電子遅延記憶自動計算機)」. Math. Comp . 4 (30): 61–65. doi : 10.1090/s0025-5718-1950-0037589-7 .
- ^ 1948年のマンチェスター・ベイビー・コンピュータは、プログラム内蔵型コンピュータとしてEDSACより先行していたが、ウィリアムズ管のテストベッドとして主に作られ、一般向けのマシンではなかった。「コンピュータ研究所の簡単な非公式な歴史」を参照。しかし、ベイビーは実用的な後継機として開発され、 1949年のマンチェスター・マーク1となり、開発中であったにもかかわらず、1949年4月に大学の他の学部やフェランティで一般使用が可能になった。EDSACは開発中であったものの、1949年5月に初めて稼働した。「マンチェスター・ベイビー・コンピュータ50周年」。2014年2月9日時点のオリジナルよりアーカイブ。 2014年1月5日閲覧。
- ^ Wilkes, MV (1997). 「EDSAC の算術」. Annals of the History of Comp . 19 (1): 13–15. doi :10.1109/85.560726.
- ^ 「パイオニアコンピュータ が再構築される」Cam.62 :5.2011年。正確に言うと、EDSAC の最初のプログラムは、 0 から 99 までの整数の平方のリストを出力しました。
- ^ ジョーンズ、クリフ B.、ロイド、ジョン L. (2012 年 1 月 24 日)。信頼性と歴史的コンピューティング: ブライアン・ランデルの 75 歳の誕生日に捧げるエッセイ。シュプリンガー。p. 29。ISBN 9783642245411。
- ^ 「9. EDSAC、ケンブリッジ大学、イギリス」。デジタルコンピュータニュースレター。2 (1)。EDSACで実行されるその他の初期の計算問題、コンピュータの仕様の一部: 3。 1950年1月1日。2021年3月11日時点のオリジナルよりアーカイブ。
{{cite journal}}: CS1 maint: others (link) - ^ EDSAC 99: 1999年4月15~16日(PDF)、ケンブリッジ大学コンピュータ研究所、1999年5月6日、68、69ページ、 2013年6月29日閲覧。
- ^ 「EDSAC シミュレーター」。YouTube。Computerphile 。 2018年2月21日。
- ^ abc 「EDSAC統計の一部」。英国:ケンブリッジ大学コンピュータ研究所。
- ^ 「EDSAC 1 アプリケーション」。EDSAC 1 以降 - 個人的な思い出の集大成。英国:ケンブリッジ大学コンピュータ研究所。
- ^ 「EDSAC 1 メンテナンス」。EDSAC 1 以降 - 個人的な回想録。英国:ケンブリッジ大学コンピュータ研究所。
- ^ 「EDSAC 1 オペレーティング」。EDSAC 1 以降 - 個人的な回想録。英国:ケンブリッジ大学コンピュータ研究所。
- ^ ケンブリッジ哲学協会紀要、第49巻、第1部、84-89頁。
- ^ 「Edsac Simulator」. dcs.warwick.ac.uk . 英国:ウォーリック大学. 2023年5月24日閲覧。
- ^ ab 「EDSACが最初の計算を実行」。コンピューティングの歴史。2021年2月26日時点のオリジナルよりアーカイブ。2018年11月23日閲覧。
- ^ Raymond, Katrine (2017年10月25日). 「Beatrice Worsley」.カナダ百科事典. 2018年1月13日時点のオリジナルよりアーカイブ。 2018年11月23日閲覧。
- ^ サウサンプトン大学名誉教授のデイビッド・バロン教授が、2009年5月6日にケンブリッジコンピュータラボで60周年を記念するセミナーに出席。
- ^ 3 つのディスプレイ (カウンター、メモリ、シーケンス制御) の説明: 「2 つの新しい EDSAC ビデオ: EDSAC の VDU 画面」。国立コンピューティング博物館。2015 年 12 月 11 日。
- ^ Turing 1945、Copeland (2005) に再録、383ページ。
- ^ Wilkes, MV (1956).自動デジタルコンピュータ. ロンドン: メシューエン. pp. 93–95.
- ^ Wilkes, MV (1956).自動デジタルコンピュータ. ロンドン: メシューエン. pp. 108–109.
- ^ ゴダード、ジョナサン(2019年5月3日)、実用的な日常使用のために設計された最初のコンピュータから70年、ケンブリッジ大学コンピュータサイエンステクノロジー学部
- ^ 選択と拡散によって決定される傾斜における遺伝子頻度、RAフィッシャー、バイオメトリクス、第6巻、第4号(1950年12月)、pp.353-361。
- ^ コールドウェル – 年別最大素数。参考文献の 1 つに、Miller, JCP "Larger Prime Numbers" (1951) Nature 168(4280):838 が挙げられていますが、概要には記載されていません。
- ^ 「アーカイブコピー」(PDF)。dcs.warwick.ac.uk。英国:ウォーリック大学。 2015年12月22日時点のオリジナル(PDF)からアーカイブ。 2016年11月18日閲覧。
{{cite web}}: CS1 maint: archived copy as title (link) - ^ Cohen, DS (2014年9月20日). 「OXO aka Noughts and Crosses – The First Video Game」. About.com . IAC . 2015年12月22日時点のオリジナルよりアーカイブ。2015年12月18日閲覧。
- ^ Wolf, Mark JP (2012年8月16日)。ビデオゲーム百科事典:ゲームの文化、技術、芸術。Greenwood Publishing Group。pp . 3–7。ISBN 978-0-313-37936-9。
- ^ abcd Smith, Alvy Ray (2015年6月9日). 「デジタルライトの夜明け」. IEEE Annals of the History of Computing . 38 (4): 74–91. doi :10.1109/MAHC.2015.51. S2CID 10257358.
- ^ Ward, Mark (2011年1月13日). 「先駆的なEdsacコンピューターがブレッチリー・パークに建設へ」BBCニュース. 2011年1月13日閲覧。
- ^ 博物館が歴史的なコンピューターを起動。
- ^ Hartley, David; Herbert, Andrew (2013). 「EDSAC レプリカ プロジェクト」。コンピューティングの歴史を関連性のあるものにする。IFIP 情報通信技術の進歩。第 416 巻。9 現在の状況、 pp . 307–308。doi :10.1007/ 978-3-642-41650-7_27。ISBN 978-3-642-41649-1。
- ^ 「EDSAC Logic Rebuild Sub-project」www.billp.org . 2023年8月24日閲覧。
- ^ 「世界初の汎用コンピュータの一つ、EDSACを再構築するプロジェクトの内部」ZDNet 。 2020年5月24日閲覧。
- ^ Palmer, Danny (2016年11月24日). 「世界初の汎用コンピュータの1つであるEDSACを再構築するプロジェクトの内側」ZDNet . 2016年12月1日閲覧。
さらに読む
- 電子デジタルコンピュータ用プログラムの作成、著者:サー・モーリス・ウィルクス、デイビッド・ウィーラー、スタンレー・ギル、アディソン・ウェスレー、第 1 版、1951 年 archive.org。
- EDSAC 50 周年 –ケンブリッジ大学コンピュータ研究所の専用 Web サイト。
- バーチ、ブライアン;スウィナートン・ダイアー、ピーター(1965)。「楕円曲線に関するノート (II)」。J. レイン・アンジュー。数学 。165 (218): 79–108。doi :10.1515 / crll.1965.218.79。S2CID 122531425 。
- Wilkes, MV; Renwick, W. (1950). 「EDSAC (電子遅延記憶自動計算機)」.計算数学. 4 (30): 61–65. doi : 10.1090/S0025-5718-1950-0037589-7 . ISSN 0025-5718.
- Copeland, BJ編 (2005)、Alan Turing's Automatic Computing Engine、オックスフォード:オックスフォード大学出版局、ISBN 0-19-856593-3
- チューリング、アラン M. (1945)、A. M. チューリング博士による自動計算エンジン (ACE) の開発提案に関する報告書: 1946 年 2 月に NPL の執行委員会に提出Copeland 2005、369-454ページに再録
- EDSAC 再構築プロジェクト – ドキュメントと再構築された EDSAC 回路図
外部リンク
- EDSAC シミュレーター –イギリス、ウォーリック大学、コンピューターサイエンス学部のMartin Campbell-Kelly氏によって開発されました。
- デイビッド・ウィーラーへのオーラル・ヒストリー・インタビュー、1987年5月14日。ミネソタ大学チャールズ・バベッジ研究所。ウィーラーは1948年から1951年までケンブリッジ大学数学研究所の研究生であり、EDSACプロジェクトの先駆的プログラマーでした。ウィーラーは、EDSACで実行されたプロジェクト、ユーザー指向プログラミング手法、およびILLIAC、ORDVAC、IBM 701に対するEDSACの影響について説明しています。ウィーラーはまた、ダグラス・ハートリー、ネルソン・ブラックマン(ONR)、ピーター・ナウア、アード・ファン・ウィンガルデン、アーサー・ファン・デル・ポール、フリードリヒ・バウアー、ルイ・クフィニャルの訪問についても言及しています。
- ニコラス・エンティクナップとモーリス・ウィルクス、ケンブリッジ大学のゴールデンジュビリー - 『RESURRECTION』、コンピュータ保存協会紀要。ISSN 0958-7403 。第 22 号、1999 年夏。
- ICL コンピュータ博物館の EDSAC 書類コレクション。
- EDSAC 2 向けプログラミング入門、1957 年。
