IBM 704:科学技術計算を革新した初期の大型コンピュータ
IBM 704は、
1954年4月に
IBMが発表した、
浮動小数点数演算ハードウェアを搭載した初の量産型
コンピュータです。その高い処理能力は、当時「かなり複雑な数学を扱える唯一の
コンピュータ」と評され、科学技術計算分野に大きな変革をもたらしました。
アーキテクチャと革新
IBM 704は、先行する
IBM 701を大幅に改良したモデルです。701と同様に
真空管論理回路と36ビットのバイナリワードを使用していますが、いくつかの重要な点で大きく進化しています。
磁気コアメモリの採用: 701で使用されていたウィリアムス管に代わり、高速で信頼性の高い磁気コアメモリが採用されました。
浮動小数点演算命令: ハードウェアによる浮動小数点演算命令が追加され、複雑な数値計算が効率的に行えるようになりました。
15ビットアドレス指定: より大きなメモリ空間へのアクセスを可能にするため、アドレス指定が拡張されました。
インデックスレジスタの導入: 3つのインデックスレジスタが追加され、配列処理などの効率が向上しました。
36ビット命令ワード: これらの新機能をサポートするため、命令は完全な36ビットワードに拡張されました。これにより、701との互換性は失われましたが、後のIBM 700/7000シリーズの科学技術計算系コンピュータの基礎となりました。
IBMは、704が1秒間に40,000個の命令を実行でき、最大12,000個の浮動小数点加算を実行できると発表しました。1955年から1960年の間に、123台の704システムが販売されました。
歴史的出来事と応用
IBM 704は、その高い性能から様々な分野で活用され、数々の歴史的な出来事に関わってきました。
プログラミング言語の開発: プログラミング言語FORTRANとLISPは、704のために最初に開発されました。また、SHAREによって配布されたSAPアセンブラも704上で動作しました。
コンピュータ音楽の創成: マックス・マシューズによって開発された最初のコンピュータ音楽プログラムMUSIC-Iは、704上で動作しました。
音声合成の実現: 1961年、物理学者のジョン・ラリー・ケリー・ジュニアとキャロル・C・ロクバウムは、704を使用して
音声合成を行い、歌を歌わせることに成功しました。このデモンストレーションは、映画「
2001年宇宙の旅」のHAL 9000のシーンに影響を与えたとされています。
ゲーム理論の研究: MITの数学講師であるエド・ソープは、ブラックジャックのゲーム理論を研究するために704を使用し、研究モデルの定式化にFORTRANを利用しました。
人工衛星追跡: MIT計算センターの
IBM 704は、1957年秋、
スミソニアン天体物理観測所の人工衛星追跡に使用されました。
IBMのスタッフが観測所の科学者たちの衛星軌道計算を支援しました。
初期のモニター開発: ロスアラモス国立研究所では、バッチ処理を可能にするSLAMという初期のモニターが開発されました。
数値予報への応用: 1959年3月12日、
IBM 704は、日本の
気象庁で数値予報に初めて用いられました。これは、大気の状態を数値的に解くために膨大な計算能力を必要とする数値予報において、
IBM 704の繰り返し計算に便利な構造が役立ったためです。
レジスタ構成
IBM 704は、以下のレジスタを搭載していました。
アキュムレータ: 38ビットのレジスタで、演算結果を格納するために使用されます。
積・商レジスタ: 36ビットのレジスタで、乗算と除算の結果を格納します。
デクリメントレジスタ: 15ビットのレジスタが3つあり、インデックスレジスタとして使用されます。これらは、ベースアドレスから値を引いて実効アドレスを算出するために使用されました。複数のデクリメントレジスタを同時に利用することができましたが、値は加算されず、一緒にアドレスから引かれる動作でした。
命令形式とデータ形式
IBM 704の命令形式には、タイプAとタイプBの2種類があります。
タイプA: 「プレフィックス」3ビット、「デクリメント」15ビット、「タグ」3ビット、「アドレス」15ビットで構成されます。プレフィックスで命令の種類を、デクリメント部で即値や命令の種類を指定します。タグ部でデクリメントレジスタを指定し、アドレス部でアドレスや即値オペランドを格納します。
タイプB: 12ビットの命令コード、2ビットのフラグフィールド、4ビットの未使用フィールド、3ビットのタグフィールド、15ビットのアドレスフィールドで構成されます。
データ形式は以下の通りです。
固定小数点数: 二進の符号+絶対値形式で格納。
単精度浮動小数点数: 符号ビット、8ビット指数(エクセス128)、27ビット仮数で構成。
文字: 6ビットで表現(BCDの一種)。1ワードに6文字格納。
LISPの初期実装では、アドレスフィールドとデクリメントフィールドがCONSセルの実装に使用され、それぞれリンクされたリストの先頭と末尾を格納していました。LISPの関数CARとCDRは、それぞれ「Contents of Address part of Register number」「Contents of Decrement part of Register number」に由来しています。
メモリと周辺機器
IBM 704の周辺機器には、以下のものがありました。
IBM 711パンチカードリーダー: パンチカードを読み取るための機器。
IBM 716アルファベットプリンタ: 文字を印刷するための機器。
721パンチカードレコーダー: パンチカードにデータを書き込むための機器。
IBM 727磁気テープユニット: 磁気テープにデータを保存するための機器。
733磁気ドラムリーダー&レコーダー: 磁気ドラムにデータを保存するための機器。
737磁気コアストレージユニット: 4,096ワード(18,432バイト)のRAMを搭載。
制御コンソール: 36個の制御スイッチやボタン、データ入力スイッチを備え、レジスタの状態を表示。
IBM 740陰極線管出力レコーダー: ベクターディスプレイで出力を行う機器。高速表示の7インチディスプレイと、20秒の残像を持つ21インチディスプレイが存在。
まとめ
IBM 704は、浮動小数点演算ハードウェアを搭載した最初の量産型
コンピュータとして、科学技術計算の分野に革命をもたらしました。プログラミング言語の開発、音楽生成、
音声合成、気象予測など、多岐にわたる分野でその能力を発揮し、その後の
コンピュータ技術の発展に大きく貢献しました。
参考文献
Charles J. Bashe, Lyle R. Johnson, John H. Palmer, Emerson W. Pugh, IBM's Early Computers (MIT Press, Cambridge, 1986年)
Steven Levy, Hackers: Heroes of the Computer Revolution
IBM Type 704 Manual of operation, Form 24-66661-1, IBM, 1956
外部リンク
Oral history interview with Gene Amdahl Charles Babbage Institute, University of Minnesota, Minneapolis.
IBM 704 Manual of Operation
Complete Manual of Operation and other IBM 704 manuals
*
Applications and installations of the IBM 704 Data Processing System – A Third Survey of Domestic Electronic Digital Computing Systems, Report No. 1115, 1961年3月, by Martin H. Weik. Ballistic Research Laboratories, Aberdeen Proving Ground, Maryland.
コンピュータ歴史博物館 所蔵の紙の文書を電子化したもの