システム構造ENIACとフォン・ノイマン
ENIAC にまつわる伝説
システム構造
ENIACは、このような方式ですから、俗に言う「プログラム」と言う物には広く対応出来ません。とはいえ、配線の組替えや、パンチカードによるパルス制御、さらにはプログラム内蔵によってかなり汎用性の高い計算機になっています。
ENIAC は、単一の回路ではなく、別々に設置されたいくつかのユニットが協調して動作する仕組みになっていました。これらの個々のユニットは並列動作が可能であり、ユニット間はパルスによって情報のやり取りが行われていました。
ENIACのプログラムを表す模式図
始動ユニットは、人間とのインターフェイス部分です。プログラムをそろえ、開始ボタンを押せばプログラムが実行されますし、結果はプリンタから出力されます。
マスタープログラマはプログラムの実行を制御します。プログラムと言うのは現在で言うプログラムとはニュアンスがことなり、「どの順序でアキュムレータを呼び出すか」だと思って良いでしょう。
実際には「どの」アキュムレータを呼び出すかは、マスタープログラマとアキュムレータを結ぶ配線によっても決定されますので、マスタープログラマの仕事は「いつ」呼び出すかのタイミング制御と、くり返し制御でした。
ENIAC は後に改造され、これから述べる定数転送ユニット内の数値を命令と解釈して、配線を論理的に切り替えるような機構を備えることになる。
「ENIAC はプログラム内蔵方式ではない」という言葉は、実際には誤っていることになる。
アキュムレータは、計算を行うユニットです。基本的には値を累積していくもので、計算に使う数字は他のアキュムレータからもらうことも出来ますし、マスタープログラマを通してパンチカードからもらうことも出来ます。
1つのアキュムレータは10進数10桁を符号付で記憶することが出来、アキュムレータを二つ使うことで20桁の数字を扱うことも可能になっていました。
ENIAC のシステムとしては全部で20台のアキュムレータが用意されていました。
定数転送ユニットは、計算に使う様々な定数を記憶してあるメモリ装置です。
ユニット内では抵抗マトリックス回路によって、任意の関数表3つを記憶しておくことが出来ました。
全体としては、定数記憶ユニットは10進数12桁300語の容量を持ちます。
アキュムレータ、および定数転送ユニットは、マスタープログラマからのパルス以外に、ディジットトランクと呼ばれる線でも結ばれていました。
この線は、現在で言うデータバスのようなものです。
アキュムレータや定数転送ユニットは、マスタープログラマからの指示に応じて、自分の持っている値をディジットトランクを通じて別のアキュムレータに送ることが出来ました。この際、ディジットトランクの配線次第で、データをシフト(10の累乗倍に当たる)することも可能でした。
アキュムレータ自体は独立した累積計算機であり、他のアキュムレータと独立して動作することが出来ますので、プログラムによっては並列計算を行うことも可能でした。
基本的には、これらの組み合わせによってENIAC は計算を行います。全体の同期信号であるパルスは1秒間に5千回送られていたそうです。…簡単には比べられませんが、クロック周波数5kHz ということになります。
このような仕組みで弾道計算を行った時、弾道1つについての計算を完了するのにかかる時間は、バーニバー・ブッシュのアナログ計算機の10〜20分に対し、ENIAC ではわずか20秒しか掛からなかったと言います。
ひとつの表を作るのにはおよそ3,000本の弾道計算が必要でした。そう考えると、ブッシュのアナログ計算機では1枚の表を作るのに1ヶ月を要していたものが、ENIACでは半日でできることになります。
ENIACとフォン・ノイマン
ENIAC の開発は、当初陸軍のプロジェクトとして陸軍弾道研究所で始まりました。しかし、ENIAC 作成の提案と実際の作成はペンシルバニア大学ムーア校で行われています。
| 作成したのは、ムーア校に着任したばかりのモークリー、大学院研究生のエッカート、弾道研究所軍将校のゴールドスタインを中心としたメンバーです。
左は開発スタッフの写真。左端がエッカート、2人おいてゴールドスタイン、つづいてモークリー。
プロジェクトは1943年6月に開始されましたが、完成したのは戦争終結後の1946年2月でした。 |
| 完成後公開された ENIAC。139平方メートルの部屋に、コの字型に設置されていた。 この部屋は空調が行き届き、真空管が安定して動作できるように管理されていた。もちろん、虫などが入り込むことは出来ない。 手前の男は配線を切り替えるパッチパネルを使い、プログラムを行っている。 |
完成して最初のテストは、弾道計算ではありませんでした。加減乗除、正弦余弦関数の表を作る簡単なプログラムと一緒にテストされたのは、水爆の爆縮時の衝撃波の計算でした。
当時の新聞によれば、人間の計算手にやらせれば100年はかかると見積もられるこの問題を、ENIACは2時間で解いたそうです。
この応用問題は、ENIAC 開発開始から1年程たったころ、開発中心者のひとりであったゴールドスタインが、水爆開発を行っていたロス・アラモス研究所の顧問と出会ったことから行われたものでした。
研究所顧問とは、当時衝撃波の専門家としてしられた数学者、フォン・ノイマンでした。
ノイマンはゴールドスタインから電子計算機の話を聞き、強い興味を持ってENIAC開発現場を何度か訪れていたのです。
ノイマンは、この後別のコンピューターの開発に携わり、コンピューターの父と呼ばれるようになります。
ENIAC にまつわる伝説
ENIAC にまつわる数多くの逸話の中に「ENIAC は故障率が非常に高く、連続して運用出来るのはせいぜい15分だった」というものがあります。真空管の寿命と、ENIAC に使われた真空管の本数から確率計算を行うとこうなるのだそうです。
しかし、実際にはペンシルバニア大学においてある間には90%以上の時間動作していたという記録が残っています。先に書いたように、万が一故障したときにすぐにユニットを交換し、稼動を続けられる工夫も万全でした。
さらに、実はENIACの真空管は、メーカーが規定する電圧よりもずっと低い…たった1割の電圧で駆動されていました。これは、製作前の事前実験で、性能には問題を出さずに、寿命をずっと伸ばす方法として考えられた方法でした。
ENIACは最初から「故障しにくいように」するための設計が随所に盛り込まれており、安定した性能を示していたのです。
一説によれば、陸軍ではENIACを「使うときだけ電源をいれていた」とも言われています。真空管は電源を入れてから安定するまでに時間がかかり、電源のON OFFを繰り返すと速く劣化しますから、あるいはこれが「故障しやすい」という説の元かもしれません。
「真空管は光を発するため、蛾が集まって来てショートする事がある。これがバグという言葉の由来」という逸話もありますが、これも嘘です。
ENIAC は空調の行き届いた密室に設置されており、蛾が入り混む余地はありませんでした。
蛾によって計算ミスを引きおこしたのは、リレー式コンピューターのハーバードMark-II です。
1955年10月2日、ENIAC の電源は落とされました。ENIAC の役目は終わったのです。
その後 ENIAC は解体されます。その一部はスミソニアン博物館、スミソニアン・アメリカ歴史博物館、そして ENIAC の生まれ故郷であるペンシルバニア大学などに収蔵されました。
しかし、これは計算機の終わりではありませんでした。この頃までには ENIAC に触発されて各国で計算機の研究が始まり、成果を見せ始めていたのです。
これが、計算機時代の幕明けでした。
参考文献 |
誰がどうやってコンピューターを作ったのか? | 星野力 | 1995 | 共立出版 |
トロンへの道程 | NHK取材班 | 1988 | 角川書店 |
ENIAC 世界最初のコンピューター開発秘話 | スコット・マッカートニー著/日暮雅通訳 | 2001 | パーソナルメディア |
追記 2006.02.15
ENIAC のニュース動画が公開されていました。
参考にリンクしておきます。