最初の現代的コンピューター
ENIAC、EDSAC によって「電子計算機」の可能性が開かれると、商用の大量生産コンピューターが登場しました。
最初は UNIVAC I 、つづいて IBM-701…。
これらのマシンは、現代のコンピューターを知っている目で見ると、多少奇異に見えます。10進法を採用していたり、内部で 1bit づつ処理を行っていたりするのです。
同時期に開発されたコンピューターに、Whirlwind (つむじ風、の意味)があります。商用のマシンではなかったので、IBM や UNIVAC ほど知られておらず、歴史の闇に埋もれています。
しかし、当時の他のコンピューターとは全く違う設計思想で作られ、この設計がやがてはコンピューターの標準となりました。
つまり、これこそが今あなたが使っているパソコンの「直接のご先祖様」なのです。
目次
ENIAC 後のコンピューター
Whirlwind の誕生する、少し前から話を始めましょう。
ENIAC の開発終了間際、開発者であるエッカートとモークリーは EDVAC の開発に着手します。
ENIAC は、歯車式計算機を電子に置き換えただけの十進計算機でしたが、EDVAC は二進計算機でした。
しかし、プロジェクトメンバーとの軋轢もあり、EDVAC の完成は遅れ、エッカートとモークリーは開発メンバーから離脱します。ここら辺の詳細は以前に書いたものを参照のこと。
二人はその後、コンピューター会社を設立しますが、レミントンランド社に買収され、そこでコンピューターを作成します。
そうしてできたのが、UNIVAC I でした。
これが世界初の「大量生産」コンピューターでした。
…すみません。あまり面白い話ではないので、UNIVAC I の話は割愛します。
いつか書くかもしれませんが、実用性重視のマシンなので、書いても退屈でしょう。
今ここで書きたいのは、「当初の」コンピューターの性能競争がどのようなものだったか、ということ。
UNIVAC I はビジネス用途を想定したもので、十進計算機でした。
二進数で計算ができることがわかっていても、ビジネスの現場では「歯車式計算機を高速化したもの」であるほうが、理解されやすかったのでしょう。
ただし、ENIAC のようなリングカウンタ機構などではなく、内部は二進化十進(Binary Coded Decimal : BCD)になっています。
さて、ENIAC は 符号付十進10桁の計算が可能でした。
基本的にはプログラム内蔵型ではなく、現代的な意味での「コンピューター」とは言い難いものです。
EDVAC は 17bit コンピューターで、2word (35bit)の演算も可能でした。十進になおすと 10桁の数字を扱えることになります。
プログラム内蔵型で、命令は 1word で表現されます。
UNIVAC I は 72bit コンピューターでした。
計算だけでなく、文章処理も前提にした汎用機だったため、この 72bit は内部的に、6bit 区切りになっています。
文章を扱うときは、12文字づつ処理することになります。
計算を行うときは、特殊な形式の BCD (XS-3) で符号付11桁計算を行えます。
命令は 36bitで表現されます。1word に2命令入る形式でした。
そうすると、 3h が 0d となり、0Fh は 12d となります。
BCD に必要な 0~9 に対し、上下に 3 つづつの幅を持たせているため、演算時には繰上り・繰り下がりの心配がいらなくなります。
そのため、演算処理と、繰上り・繰り下がり処理を分割して行うことができるようになり、処理が簡略化できます。
UNIVAC I の直後に登場した、ライバルである IBM 701 コンピューターは 18bit コンピューターで、36bit 演算も可能でした。
IBM は、パンチカードによる集計など、事務機械などを作るメーカーでした。まだ「コンピューター大手」ではありません。
このころのコンピューターは、もちろん速度も重要でしたが、それ以上に「演算できる word が長いこと」が重視されました。word の長さが、扱える数値の上限だと考えられていたためです。
UNIVAC I は 72bit 、IBM 701 は 36bit 。これが、そのままコンピューター会社としての力の差でした。
文字ばかりでは読んでいて飽きるから…(MITREより引用。)
壁を埋めつくす大きなコンピューター…に見えるが、これはユーザーコンソール(操作盤)のみ。
立っている男性が2人が、責任者のフォレスター(左)、事実上チーフのエバレット(右)。
Whirlwind
第2次世界大戦中の 1944 年、MIT サーボ機構研究室は海軍から依頼を受けます。訓練用に、飛行機のフライトシミュレータを開発したい、という内容でした。
必要とされていたのは、航空力学に従い、空気の抵抗まで考慮し、飛行機の形状に合わせたシミュレーションができる機械でした。
早速、開発プロジェクトが組まれます。リーダーはジェイ・ライト・フォレスター(Jay Wright Forrester)。
フォレスターは、フィードバック処理を行うことで、レーダーアンテナや、戦車の砲塔で目標物をとらえ続ける、「サーボ機構」の開発者として知られていました。
また、このプロジェクトは完全に「依頼」されただけのものではなく、海軍研究局(ONR:Office of Naval Research)も参加する、共同プロジェクトでした。
まだ当時は ENIAC 完成前です。当然、アナログコンピューターとして作成が開始されます。
開発依頼からおよそ1年、1945年の夏には機械は完成します。…が、要件を満たさないものでした。精度が不足し、飛行機の形状変更などに対応できなかったのです。
ところで、プロジェクトの参加者の一人に、MIT の大学院生、ペリー・クロフォード(Perry O. Crawford, Jr.)がいました。
彼が 1942年に書いた修士論文のテーマは、高射砲の自動制御のための計算手法でした。この中で彼は、電気回路を使ったデジタル計算機の可能性について考察しています。
その知識があった彼は、真空管をスイッチとした電気回路であれば十分に高速な計算が必要なはずだ、とフォレスターに提案します。
1945年10月、大学院を出たクロフォードは、ONRの技術顧問の職を得ます。そして、同じタイミングで MIT は新型の微分解析機(物理的なアナログコンピューター)の開発発表を行います。
この記念に、10月末に MIT で計算機技術の会議が行われました。少数の招待者だけが参加できる秘密会議でしたが、クロフォードとフォレスターはともに会議に出席し、ENIAC の開発者(エッカート・モークリーを含む)から直接 ENIAC の説明を聞くことになります。
その後のフォレスターの動きは素早いものでした。ENIAC を知ってからわずか1週間後、11月7日には、MIT のメンバー数名とともにムーア校を訪れ、ENIAC を見学しています。さらに、2週間後には、まだ軍事機密だった EDVAC のシステムについての報告書を、ちゃんと許可手続きを通したうえで入手しています。
そして、その後半年足らずの翌年3月には、デジタルコンピューターを開発する、という名目で予算を獲得してしまいました。
さらに、ENIAC 完成後の 1946年7月8日~8月31日、ムーア校で、電子計算機についての特別講義が行われました。講師は主に ENIAC の開発メンバーでしたが、ONR が予算を出した関係で、クロフォードも講義陣に入っていました。
軍事機密である ENIAC の内容を詳細に明かすこの講義は、きわめて少人数向けに行われています。軍に関連した研究機関ごとに2名程度しか招待されておらず、全部で28人が相手でした。
…にもかかわらず、MITからは、6名ものメンバーが送り込まれています。そのうち一人が、後にフォレスターの片腕となるロバート・エバレット(Robert E. Everett)です。
代わって事実上の責任者を務めたのがエバレットで、このページ作成に際し参考にした資料も、エバレットの名前で書かれているものが多い。
1947 年、ついにリアルタイムシミュレーションが可能なほど高速なデジタルコンピューターを開発するプロジェクトがスタートします。
とはいえ、まだデジタルコンピューターの黎明期です。いきなりフライトシミュレーターが作れるほどの高性能コンピューターが開発できるわけもありません。
Whirlwind と名付けられたプロジェクトは、完成目標を2段階に設定しました。
真空管と、背景に描かれたパルス(デジタルであることを意味するのだろう)と、四則演算の記号がWhirlwind(つむじ風)の中に描かれている。
すべてを巻き込むほど高速であることと同時に、空気の流れをも計算できるコンピューターであることを、Whirlwindの名前に込めているのではないかと思う。
Whirlwind 1(WWI) は、実験的プロトタイプでした。
ENIAC と異なり、2進数で計算をするマシンで、1word を 16bit とします。
高速性を確保するため、当時主流のシーケンシャルメモリ(水銀遅延管)は使用せず、ランダムアクセスメモリを使用します。
しかも、メモリを 2048 word を確保します。当時シーケンシャルメモリであれば大容量のものもありましたが、ランダムメモリとしては驚くほどの大容量です。
5bit で表現できる命令は、32種類だが、開発当初の予定は 15命令、完成時は 27命令、最終的には、なんと限界越えの 33命令が搭載された。
ここら辺、詳細は別ページに。
高速性の追求は、出力機器についても行われていました。
当時、出力はプリンタか、パンチカードが一般的でした。しかし、これは非常に遅いのです。少なくとも、リアルタイムのフライトシミュレーションには向きません。
そこで、オシロスコープを応用した CRT 出力が想定されていました。
すべてが、当時のコンピューターの水準をはるかに超えていました。
ここまでやってもリアルタイムフライトシミュレーションはまだ無理で、数学の簡単な問題を解く程度、という機能目標でした。
WW I で実証を行い、問題などを整理して、最終目標である Whirlwind 2(WW II) を設計します。
WW II は、光学的な入出力を備え、64K のメモリを備え、WW I よりも大幅に高速化されたマシンを目指します。
もちろん、最終目標はフライトシミュレータの作成でした。
非常に巨大に見えるが、まだ研究段階の「ちいさめの」サイズ。
最終的にはもっと大きくなります。詳細はページの最後に。