IBM 700/7000 series

IBM 700/7000シリーズ (アイビーエムななひゃく・ななせんシリーズ) は、1950年代から1960年代初頭にかけてIBM社が製造していた大規模コンピュータシステム (メインフレーム) のシリーズである。このシリーズには、互換性のないいくつかの異なるプロセッサ・アーキテクチャが含まれている。700シリーズは真空管ロジックを使用しており、トランジスタ化された7000シリーズが導入されたことによって時代遅れになった。7000シリーズは、最終的に、1964年に発表されたSystem/360に置き換えられた。しかし、7000シリーズに取って代わる十分に強力な最初の360である360/65は、1965年11月まで利用可能にはならなかった。OS/360の初期の問題と、ソフトウェアの変換コストが高かったため、その後も何年にもわたって多くの7000シリーズが使用された。
日本でも、特にIBM 7000シリーズが輸入され、利用されている。
アーキテクチャ.
IBM 700/7000シリーズは、データと命令の格納方法が全く異なる6つの方法がある。
700クラスは真空管を使用し、7000クラスはトランジスタ化されている。初期の701と702のモデルを除いて、すべてのマシンは (当時の他のほとんどのコンピュータと同様に) 磁気コアメモリを使用しているが、当初はウィリアムス管を使用し、後に磁気コアメモリに変換された。
シリーズでも機種によりワードマシン（科学技術計算用）であったりキャラクタマシン（事務計算用（商用））であったりと、仕様が一貫したりしているわけではない。ストレッチ(Stretch)として知られる7030のように性格の全く違う機種にも、通し番号のように見える名前が付与された。
ソフトウェアの互換性の問題.
初期のコンピュータはソフトウェアなしで販売されていた。オペレーティングシステムが登場し始めると、4つの異なるメインフレームアーキテクチャと1400ミッドラインアーキテクチャを持つことは、少なくとも4つの異なるプログラミング作業が必要となることを意味し、IBMにとって大きな問題となった。
System/360は、7000シリーズおよび1400シリーズのアーキテクチャの最高の機能を1つの設計に統合した。ただし、一部の360モデルには、1400と7000の命令セットをマイクロコードでエミュレートできるオプション機能を持っている。1970年半ばに発売された360の後継機であるSystem/370のセールスポイントの1つは、改良された1400/7000シリーズのエミュレーションで、360上で必要に応じてシャットダウンしてエミュレーションモードで再起動するのではなく、オペレーティングシステムの制御下で実行できるようになったことである。
周辺機器.
アーキテクチャは異なるものの、同じクラスのマシンは同じエレクトロニクス技術を使用し、通常は同じ周辺機器を使用する。テープ・ドライブは通常7トラック形式を使用し、真空管マシンにはIBM 727が、トランジスタマシンには729が使用されている。真空管機もほとんどのトランジスタ機も、701で導入されたものと同じ、ラインプリンターを使用している。これらのユニット、IBM 711、721、および716は、IBMの会計機テクノロジーに基づいており、プラグボード式のコントロールパネルも含まれている。これらは比較的低速であり、7000シリーズの設置においては、はるかに高速な周辺機器を搭載したIBM 1401を組み込んで、カードからテープ、およびテープからラインプリンタへの操作をオフラインで実行するのが一般的であった。その後の3台のマシン、7010、7040、7044は、ミッドラインのIBM 1400シリーズの周辺機器を採用した。7030のテクノロジーの一部は、Hypertapeなど、他の7000シリーズコンピュータのデータチャネルや周辺機器で使用された。
最初の科学技術計算機 (701).
IBMポキプシー 研究所での開発中は「防衛計算機」(Defense Calculator)として知られていたが、1953年4月7日にこのマシンはIBM 701電子データ処理マシン (IBM 701 Electronic Data Processing Machine) として正式に発表された。
データ形式
数値の幅は36ビットまたは18ビットで、固定小数点のみである。
命令形式
命令は18ビット長のシングルアドレスである。
メモリを2048ワードから4096ワードに拡張するために、アドレスフィールドの最上位ビットを使用してバンクを選択する33番目の命令が追加された。(この命令は、元々アドレスフィールドを無視していたため、未使用のビットを持つ唯一の命令であると思われる「No OP」命令を使用して作成された可能性があるが、この新しい命令の説明書は現在入手できない)。
レジスタ
プロセッサレジスタは以下のように構成されていた。
メモリ
2,048または4,096 - 6ビット文字の36ビットバイナリワード
その後の科学技術計算機 (704/709/7090/7094).
IBMの36ビット科学技術アーキテクチャは、さまざまな計算集約型アプリケーションに使用された。最初のマシンは真空管式の704と709で、その後、トランジスタ式の7090、7094、7094-II、そして低価格の7040と7044が続いた。最終モデルは、入出力操作を処理する7044にリンクされた7094で構成される直接結合システム (Direct Coupled System: DCS) であった。
データ形式
数値は固定小数点でも浮動小数点でも36ビットである。(参照：なぜ36ビットなのか?)
命令形式
基本的な命令フォーマットは、3ビットのプレフィックス、15ビットのデクリメント、3ビットのタグ、15ビットのアドレスからなる。プレフィックス・フィールドは命令のクラスを指定する。デクリメント・フィールドは、多くの場合、演算結果を更新するための即値オペランドを含むか、命令タイプをさらに定義するために使用される。タグの3ビットは3つ (7094では7つ) のインデックスレジスタを指定し、その内容がアドレスから減算されて実効アドレスが生成される。アドレスフィールドには、アドレスまたは即時オペランドが含まれる。
レジスタ
プロセッサ・レジスタは次のように構成されている。
アキュムレータ (および乗数/商) レジスタは符号/絶対値形式で動作する。
インデックスレジスタは2の補数形式で動作し、命令アドレスを修正するために使用される場合、命令内のアドレスから減算される。3つのインデックス・レジスタを持つマシンでは、タグに2つまたは3つのビットがセットされている場合 (つまり、複数のレジスタを選択している場合)、それらの値は減算される前に一緒にOR演算される。7つのインデックスレジスタを持つIBM 7094には「互換性」モードがあり、このトリックを使用した以前のマシンのプログラムを引き続き使用できる。
センス・インジケータは、パネル・スイッチやライトを介してオペレータとの対話を可能にする。
メモリ
入力/出力
709/7090 シリーズは、テープやディスクなどの高速入出力にデータ同期チャネル (Data Synchronizer Channels; DSC) を使用する。基本的な7ビットのDSC (7607など) は、メモリとI/Oデバイス間のデータ転送を制御するコンピュータメモリから独自の簡単なプログラムを実行するが、より高度な9ビットの7909では、より高度なチャネルプログラムをサポートしている。709xのユニットレコード装置は非常に遅かったため、パンチカードのI/Oや高速プリントは、オフラインのIBM 1401との間で磁気テープを転送して行うことがよくあった。その後、データチャネルを使用して7090を7040に、または7094を7044に接続してIBM 7094/7044 Direct Coupled System (DCS)を構成するために使用された。この構成では、より高速な1400シリーズの周辺機器を使用できる 7044 が主にI/Oを処理した。
FORTRANアセンブリプログラム
FORTRAN Assembly Program (FAP) は、IBMの間に合わせのFMS (Fortran Monitor System)オペレーティングシステムの下で動作する、709、7090、および 7094 用のアセンブラである。以前のアセンブラは SCAT (SHARE Compiler-Assembler-Translator) であった。マクロはベル研究所 (BE-FAP) によってFAPに追加され、最終的な7090/7094アセンブラはIBSYSの下でIBMAPとなった。
メモリを予約するために使用されるその擬似命令BSSは「BSSセクション」という一般名の由来であり、今日でも多くのアセンブリ言語で、実行イメージに保存する必要のないタイプの予約メモリアドレス範囲を指定するために使用されている。
事務処理用アーキテクチャ (702/705/7080).
IBM 702とIBM 705は類似しており、705は702のプログラムの多くを変更することなく動かすことができるが、完全に互換性があるわけではない。
IBM 7080は705をトランジスタ化したバージョンで、さまざまな改良が加えられている。
後方互換性のために、705 I モード、705 II モード、705 III モード、または完全な 7080モードで実行できる。
データ形式
データは、レコードマークで終わる可変長の文字列で表される。
命令形式
5文字：1文字のオペコードと4文字のアドレス - OAAAA
レジスタ
メモリ
入力/出力
705 と基本的な 7080 は、7ビット・インターフェイスのチャネルを使用する。7080は、7908データチャンネルを装備して、9ビット・インターフェースを使用して高速デバイスを接続することができる。
1400シリーズアーキテクチャ (7010).
700/7000 事務処理用アーキテクチャは、大きく成功したIBM 1400シリーズの中型ビジネス・コンピュータに影響を与えた。その後、IBMはIBM 7010と呼ばれるIBM 1410のメインフレーム版を発表した。
データ形式
命令形式
レジスタ
なし、すべての命令はメモリ上で動作した。ただし、低位メモリの固定位置にある15個の5文字フィールドは、インデックスレジスタとして扱うことができ、その値を命令で指定されたアドレスに追加することができる。また、現在処理中の文字のアドレスなど、今日では目に見えない内部レジスタもプログラマに公開されている。
メモリ
10進アーキテクチャ (7070/7072/7074).
IBM 7070、IBM 7072、IBM 7074は、10進の固定ワード長のマシンである。
これらは、小型で古いIBM 650と同様に10桁ワードを使用しているが、650と命令セットの互換性はない。
データ形式
命令形式
レジスタ
メモリ
入力/出力
707x は7ビット・インターフェースのチャネルを使用する。7070と7074は、9ビット・インターフェイスを使用してより高速なデバイスを接続するために、7907のデータチャネルを装備することができる。
タイムライン.
IBM 7074は、1962年に米国内国歳入庁で使用された。
IBM 7700データ収集システム(IBM 7700 Data Acquisition System)は、その番号と発表日が1963年12月2日であるにもかかわらず、IBM 7000シリーズのメンバーではない。
パフォーマンス.
700シリーズと7000シリーズのすべてのマシンは、Wheatstone (1972年)、Dhrystone (1984年)、LINPACK (1979年)、 (1986年) などの標準的な性能測定ツールよりも前のものである。
下の表では、GibsonとKnightの測定では速度を報告しており、数値が大きいほど速度が高くなる。TRIDIAの測定では時間を報告するが、数値が低い方が高速である。