Whirlwind
Channel: 宇宙のすべての知識 プリンシピア
Date: 27/04/2019

Whirlwind, by Wikipedia https://ja.wikipedia.org/wiki?curid=369374 / CC BY SA 3.0

#コンピュータ_(歴代)
#1940年代のコンピュータ
#1950年代のコンピュータ
#初期のコンピュータ
#真空管式コンピュータ
#個別のコンピュータ
Whirlwind

Whirlwind（ホワールウィンド、原義は「つむじ風」）とは、マサチューセッツ工科大学（MIT）で開発されたコンピュータである。リアルタイム処理を念頭に置いた世界初のコンピュータであり、出力機器として世界初のモニター端末を使い、従来の機械システムの電子的置換ではない初めてのシステムと言われている。その開発は、直接的にはアメリカ空軍のSAGEシステムに受け継がれ、間接的には1960年代の商用コンピュータに影響を及ぼした。

第二次世界大戦中、アメリカ海軍はMITに爆撃機の乗組員を訓練するためのフライトシミュレータを制御するコンピュータの開発が可能か打診した。彼らが想定していたのは、パイロットの操作に基づいて計器盤の表示を継続的にシミュレートするという単純なコンピュータであった。従来のリンクトレーナとは異なり、彼らの想定したシステムは空気力学的モデルに基づいた実物に限りなく近いものであり、様々な航空機の訓練に使えるものだったのである。

MITサーボ機構研究室はそのようなシステムは開発可能であるとの結論に至った。それを受けて海軍は「Project Whirlwind」の名前で資金提供を決定し、プロジェクトの責任者としてジェイ・フォレスターが選任された。彼らは即座に大型のアナログコンピュータを開発したが、それは正確さに欠け、柔軟性に乏しかった。その問題を解決するにはさらに大型のシステムが必要だったが、それは到底製造可能とは考えられなかった。

1945年、MITのチームの一員であったジェリー・クローフォードはENIACのデモンストレーションを見てデジタル式コンピュータが解決策となるかもしれないと示唆した。デジタル式であれば、部品を追加する代わりにプログラムを追加すればシミュレーションの正確性を向上させることができる為であった。当時の認識ではコンピュータは十分に高速であり、どんな複雑なシミュレーションでも理論的には可能と思われた。

当時のコンピュータは一度にひとつのタスクを実行するバッチ処理用に開発されていた。入力データが事前に用意され、コンピュータがそれを使って計算を行い、結果を出力する。しかしこれではWhirlwindシステムには不十分である。Whirlwindでは、時々刻々と変化する入力に対して連続的に計算を行う必要があった。速度が最も大きな問題となった。一般のシステムでは計算結果がプリントアウトされるのをじっと待っているのが普通だったが、Whirlwindでは速度が遅いとシミュレーションできる複雑さが極端に制限されてしまう。

1947年、フォレスターとエヴァレットは高速なプログラム内蔵式コンピュータの設計を完了した。当時の多くのコンピュータは「ビット直列」式で動作していた。これは1ビットの演算を繰り返し実行することでワード長ぶんの処理を行う方式で、ワード長は48ビットとか60ビットと長かった。しかしこの方式は彼らの用途には性能が悪すぎたので、Whirlwindは16ビットを並列に処理する演算回路を備え、ワード長も 16ビットとして、サイクル毎に「ビット並列」式で演算が行えた。メモリの速度を無視すれば Whirlwind は当時の他のコンピュータの 16倍の高速性を誇っていた。現在ではほとんどのコンピュータはこの方式を採用していて、さらに 32ビットや 64ビットのワードを一度に処理するようになっている。

ワード長はちょっとした考慮のうえで決定された。マシンは命令毎にひとつのメモリアドレスを指定されて動作する。二つのオペランドに対する演算をする場合（例えば加算をする場合）、もう一方のオペランドは直前の命令のオペランドを使用するものとされた。したがって、Whirlwindのプログラムは逆ポーランド記法の電卓に似ている。ただし、オペランドのスタックがあるわけではないが。設計者は最低でも2000ワード分のメモリが必要であると考え、アドレスのビット幅を11ビットとし、さらに16～32種類の命令を識別するための命令コード用の 5ビットを加えて、ワード長を 16ビットとしたのである。ジョン・フォン・ノイマンはこのワード長の小ささを聞いて、Whirlwindに興味を持たなかったという（彼の興味は科学技術計算にあり、精度を上げるためにワード長が長くなければならなかった）。

マシンの建造は翌年から開始...