IBM 7090

**IBM 7090**は、IBMの科学技術計算用第二世代トランジスタ版メインフレームであり、真空管ベースの IBM 709 の後継マシンである。最初の7090は1959年11月に稼動。1960年、典型的なシステム価格は290万ドルで、レンタルでは月額63,500ドルであった。

ワード長は36ビットで、アドレス空間は32Kワード。最大メモリ容量144Kバイト。基本メモリサイクルは2.18μ秒。IBM 7030 (Stretch) プロジェクトから生じた IBM 7302 磁気コアメモリ記憶装置を流用している。

7090は709の6倍の性能で、レンタル料は半分だった。

## 派生機種:IBM 7094/7040/7044

709は704を強化したマシンだったが、709がリリースされたころには真空管からトランジスタへと時代が移りつつあった。そこでIBMは709開発チームにトランジスタ版の後継機開発を指示した。このプロジェクトは709-T（Tは Transistorized の意）と呼ばれたが、それを「セブン・オー・ナインティ」と発音したことから、機種名が7090となった。

IBM 7090 から以下のような機種が派生している:
; IBM 7094 （1962年9月）
: 上位機種。7本のインデックスレジスタを持つ（7090は3本）。制御コンソール上部に追加されたインデックスレジスタの内容を示すランプ群が追加されている。倍精度浮動小数点数と関連する命令が追加されているが、7090とは大部分で互換性が保たれている。インデックスレジスタが増えているために命令形式は微妙に変更され、これが問題の元となることがあった。
; IBM 7040 （1963年）
: 下位機種。命令が削減され、入出力機構が単純化されている。具体的にはインデックスレジスタ、文字操作命令、浮動小数点演算命令がオプションとなっている。
; IBM 7044 （1963年）
: 7040の規模拡張版。
; IBM 7094 II （1964年4月）
: 7094の上位機種。クロック速度向上と命令のオーバーラップ実行（原始的な命令パイプライン）が導入され、7090の約2倍の性能を誇る。

## 命令形式とデータ形式
基本命令形式は IBM 709 と同じで、「プレフィックス」3ビット、「デクリメント」15ビット、「タグ」3ビット、「アドレス」15ビットから構成される。プレフィックス部は命令の種類を指定する。デクリメント部は命令結果を修飾する即値を格納するか、命令の種類指定に使われる。タグ部はインデックスレジスタを指定し、指定されたインデックスレジスタの内容がアドレスから**引かれ**て実効アドレスとなる。アドレス部はアドレスか即値オペランドを格納している。命令はパイプライン処理されず、とある整数演算命令には14サイクルの実行時間を要した。

* 固定小数点数が二進の符号+絶対値形式で格納された。
* 単精度浮動小数点数は、符号ビット、8ビット指数（エクセス128）、27ビット仮数で構成され、メモリ上では1ワード（36ビット）に格納される。
* 7094で導入された倍精度浮動小数点数は、符号ビット、8ビット指数（エクセス128）、54ビット仮数で構成される63ビット分であるが、メモリ上では連続する2ワード（72ビット）に格納され、第2ワードに格納された符号ビットと指数部はオペランドとして使用されるときには無視される。
* 文字は6ビットで表され（BCDの一種で、英文字には大文字小文字の種類は無い）、メモリ上の1ワードに6文字が格納される。

文書やプログラムでは八進法が用いられた。制御卓のランプやスイッチも3ビットずつグループ化されている。

## 入出力

7090シリーズはチャネルを入出力に採用しており、現代のDMA方式の先駆けとも言える。最大8本のデータチャネルを接続でき、各チャネルに10台の IBM 729 磁気テープ装置を接続できる。各データチャネルはコマンドと呼ばれる非常に簡単な操作を受け付けた。テープだけでなく、パンチカードやプリンタなども接続可能で（後にはハードディスクも）、当時としては高性能である。ただし、プリンタやパンチカードの入出力には既存のPCSのものを流用しているので性能は低い。その後、安価な IBM 1401 を使用してパンチカードから磁気テープに変換して7090/94に持っていくという方法が一般化した。出力も磁気テープにいったん溜め込み（スプーリング）、1401で印刷したりパンチカードに変換したりした。というのも、IBM 1401用のプリンタ (1403) の方がPCS用プリンタより高速だったのである。後にIBMは**7094/7044 Direct Coupled System**を導入し、データチャネル間の通信ができるようにして、7094が計算を行い7044が入出力を担当するという構成を可能にした（7040/7044は IBM 1401 用周辺機器が接続可能）。

## ソフトウェア
7090 と 7094 は当時としては成功した機種であり、IBMは様々なソフトウェアを提供した。また、非常に活発なユーザー組織 SHARE もあった。

IBSYS は重装備のオペレーティングシステムであり、各種サブシステムと言語サポートを備えていた。例えば、FORTRAN、COBOL、SORT/MERGE、MAPアセンブラなど。なお、7090/7094用のIBSYSと7040/7044用IBSYSには一部に非互換があった。IBSYSは磁気テープ上のジョブ(プログラムとデータ)間に書かれた制御カードイメージを処理するモニターである。IBSYS制御カードは1桁目に "$" があり、続いて「制御名」でIBSYSの設定すべきユーティリティを指定し、後続のジョブをそのユーティリティで処理する。パンチカードのカードデッキのイメージを磁気テープ上に持ち込んだものであり、これはオフラインでパンチカードから磁気テープにコピーされた。

FMS (FORTRAN Monitor System) は、FORTRANとアセンブリ言語のバッチ処理に特化した IBSYS よりも軽いシステムである。そのアセンブラ FAP (FORTRAN Assembly Program) は MAPには劣るが当時としては十分な機能を備えていた。FMSのFORTRANコンパイラは IBM 704 向けにバッカスらが開発したコンパイラの強化版である。

## 主な利用例

* CTSS (Compatible Time-Sharing System) タイムシェアリングオペレーティングシステムは、メモリバンクを追加するなどの改造を施した7094上にMITの Project MAC が開発したものである。
*NASAは7090（後に7094）を複数台マーキュリー計画やジェミニ計画の制御に使用した。アポロ計画の初期でもSystem/360に移植完了するまでは7094上のフライト計画ソフトウェアが使用され続けた。
* ジェット推進研究所は Space Flight Operations Facility に 7094/7044 Direct Coupled System を所有していた。
* アメリカ空軍は、弾道ミサイル早期警戒システム (BMEWS) 用の7094を1980年代まで約30年間使い続けた。
* アメリカ海軍は、1980年代終盤まで Pacific Missile Test Center の 7094 を使い続けた（引退式は1982年6月に開催された）。そのアプリケーション群は後継の 175 に全部移植されることはなかった。
* アメリカン航空のSABRE航空機予約システムでは2台の 7090 が使用された (1962) 。
* 1961年、Alexander Hurwitz は 7090 を使用して当時としては最大のメルセンヌ数（1281桁と1332桁）を発見した。
* 映画『博士の異常な愛情』に 7090と1401が登場している。そこで1403プリンタがプロットの転換点の役割を果たしている。
* 作曲家ヤニス・クセナキスは、IBM 7090 で「Atrées」を作曲し、パリのヴァンドーム広場で演奏した。
* 日本へは、IBM 7090が1963年に合計3台輸入され、それぞれ三菱原子力（のちにDP部門は三菱総研へ吸収）、日本IBMのデータセンター（東京・ワカ末ビル）、東芝（川崎市）に1台ずつ設置された。各所にはIBM 729モデルII磁気テープ駆動装置付きのIBM 1401システムも置かれ、データの準備および計算結果の印刷などは磁気テープを媒体にこちらで行われた。

## 脚注

## 参考文献
* Reference Manual, IBM 7090 Data Processing System, 1961, IBM A22-6528-3

## 関連項目
* IBM 700/7000 series
** IBM 704
* IBMのディスク記憶

## 外部リンク
* IBM Archives - 7090
* IBM 7090 Data Processing System from BRL61 Report
* IBM 7090/94 Architecture page
* IBM 7090 Music From Mathematics 1960年、 "Digital to Sound Transducer" を使用してベル研究所で録音された。
* IBM 7094 の歌う Daisy (mp3) 
* Bob Supnik's SimH project &ndash; 7090/7094 シミュレータが含まれている。
* Dave Pitts' IBM 7090 support &ndash; シミュレータ、クロスアセンブラ、リンカがある。
* IBM 7090/94 IBSYS Operating System