System/360

概要

System/360は市場で大いに成功し、顧客は小さめのシステムを購入しても、後で自社の成長に合わせて上位機種に移行でき、その際にソフトウェアの書き換えが不要という利点が生じた。プログラムや周辺機器の互換性が生まれ、コンピュータ・ファミリを形成した。また商用では初めてオペレーティングシステムや仮想機械が登場した。その設計は、後のコンピュータ設計に影響を与え続け、史上最も成功したコンピュータの1つとされている。System/360シリーズの大成功により、コンピュータでは後発であったIBMは、競合他社を圧倒することになる。System/360シリーズのアーキテクチャやアプリケーション・プログラムの互換性は、後続のSystem/370だけでなく、2009年現在の最新のSystem zまで引き継がれている。
1964年に発表されたSystem/360で、最も低性能な機種は0.018から0.034MIPSで、最上位機種はその約50倍の性能である。主記憶装置の容量は8kBから8MBまであったが、後者の構成は滅多に見られなかった。また補助記憶装置は、主記憶装置に比してやや低速な磁気コアメモリ装置 Large Core Storage (LCS) を最大8MBまで接続可能である。大型機種では主記憶装置は最低でも256kB以上で、512kB、768kB、1024kB といった容量が一般的だった。
コンピュータ・アーキテクチャと実装を明確に区別した最初のコンピュータシリーズである。System/360の設計責任者はジーン・アムダールであり、後に独立してアムダール社を設立した。プロジェクトマネージャはフレデリック・ブルックスで、責任者は会長のトーマス・J・ワトソン・ジュニアである。ワトソンのもう1人の副官であるジョン・R・オペルもSystem/360の立ち上げに深く関わった。System/360開発プロジェクトには多額の費用がかかっており、フォーチュン誌による "$5 billion gamble" という表現の示すとおり、IBMはSystem/360に社運をかけたと言っても過言ではない（2002年の価値に換算すると280億ドルつまり約3兆円）。そして、IBMは賭けに勝ったのである。同時期のあのアポロ計画の予算が250億ドルである。
それまでのコンピュータは、主に事務処理や入出力処理用の小型機（IBM 1401など。衛星プロセッサとも）と主に科学計算用の大型機（IBM 7090など）で、それぞれ別々の命令セットアーキテクチャで作られる（専用機）のが普通で、OSのようなシステムプログラムはモデル別に開発され、大型のモデルに変更するなどするとアプリケーションプログラムは再利用できなかった。System/360は、最下位モデルから最上位モデルまで命令セットアーキテクチャを統一し、基本的にはシリーズ内のどれかで動くプログラムは、全てのモデルで動く（汎用機）。また、様々なソフトウェアを入れ替える事により、多種多様の業務に対応できるとも言える。「360度（円の角度）、様々な業務に対応できる」という事で、360と付けられた。構成によっていくつかのサブモデル（360/40など）がある。また、360の後継としてSystem/370シリーズがある。
汎用コンピュータとしては、このコンピュータが初ともされる。
System/360は、IBM をメインフレームの巨人メーカーへと育て上げた。当時のメインフレーム市場における IBM の強さを「白雪姫と7人の小人」とたとえているものもある。1967年頃には、大型コンピュータにおける米国メーカーの出荷高の7割以上を IBM が占め、他社を圧倒してメインフレーム市場をほぼ独占する。他の7社は、UNIVAC、Honeywell、GE、CDC、RCA、NCR、バロースで、数%ずつのシェアを分け合った。

コンピュータ・ファミリ

それまでとは異なり、IBMは小型から大型までのさまざまなモデルを含むコンピュータシリーズ全体を開発し、全てにおいて同じ命令セットが動作するようにした（一部市場向けには例外あり）。これによって顧客は小さなシステムで運用をはじめて、必要に応じて（ソフトウェアを変更することなく）上位モデルにアップグレードすることが可能となった。さらに多くのモデルでは顧客の以前の機種（例えばIBM 1401やIBM 1620）をマイクロコードでエミュレーションするオプションを提供していた。これにより従来のプログラムもそのまま新しいマシンで動作させることができた。
この柔軟性により、導入にあたっての障害が小さくなった。他のベンダー（ゼネラル・エレクトリック以外）では機種間の互換性がないため、顧客の要望に応えるために個々の機種が高性能に設計されていて、結果として高価すぎて導入しにくいことが多かった。System/360はこの市場の成り立ちを全く変えてしまい、企業は低価格で安心して下位機種からリースすることができた（当時、IBMはコンピュータを販売するのではなくリースしていた。これは戦前の会計用パンチカードシステムのころからの伝統であり、不況に強いビジネスモデルと言われている）。

機種

IBMは6モデルのコンピュータと40機種の共通周辺機器を発表した。最終的にはNASA向けの特殊な機種も含めて14モデルがリリースされた。最も安価なモデルは 360/20 で、4Kの磁気コアメモリを装備し、レジスタも他のモデルが32ビット16本なのに対して、16ビット8本であり、命令セットは他の機種のサブセットになっていた（小企業向けであり、それ以上のものではない）。
1964年の最初の発表では、モデル30, 40, 50, 60, 62, 70 という6モデルが含まれている。モデル30, 40, 50 は中小型システムで、従来のIBM 1400シリーズの市場をカバーする。これらは1965年中頃に出荷が開始された。モデル60以上のモデルは7000シリーズの市場をカバーすることを想定していたが出荷されることなく、モデル65 と 75 が新たに発表され、モデル65 は1965年11月に出荷開始され、モデル75 は1966年1月に出荷開始された。
下位モデルとして、モデル20（1966年、上述）、22（1971年）、25（1968年）が追加された。モデル22はモデル30に若干制限を加えたバージョンで、主記憶容量の上限が小さくなっていて、I/Oチャネルの容量も小さくなっている。したがってディスクやテープ装置の性能や容量がモデル30より小さくなっている。
モデル44（1966年）は中型の科学技術計算向けであり、浮動小数点演算機構が付加されているものの一部命令が削除されている。
上位モデルとして、モデル67（1966年、後述、64または66と予測されていた機種）、85（1969年）、91（1967年）、95（1968年）、195（1971年）が追加された。モデル85はSystem/360と後継のSystem/370のギャップを埋めるために出された機種で、後の370/165の基盤となった。System/370にもモデル195があるが、そちらは動的アドレス変換機構を含まない。
実装面ではそれぞれのモデル毎に異なり、データパス幅が異なり、マイクロコードを使っているものも使っていないものもあるが、いずれも互換性を保っている。すなわち、特に文書化された点を除いて、各モデルはソフトウェア的に互換で、新機能はアーキテクチャを崩さないようにして追加されている。
例えばモデル91は科学技術計算向けに設計されており、ビジネス向けの十進演算命令は省かれていた。モデル91はTomasuloのアルゴリズムによりアウト・オブ・オーダー実行を行うが、そのための「不正確な割込み」（imprecise interrupt）という問題は不評で、以後の同様のマシンでは「確定ユニット」が取り入れられた。モデル65にはCPU間信号を追加したデュアルプロセッサ版 (M65MP) があり、モデル85ではキャッシュメモリを導入している。モデル44, 75, 91, 95, 195ではロジックをハードウェアで実装しているが、それら以外の下位モデルではマイクロコードを採用している。
モデル67は1965年8月に発表されたモデルで、IBMとしては初の動的アドレス変換機構（DAT、現在ではMMUと呼ばれるもの）でタイムシェアリングシステムをサポートした。モデル40をベースとしてDAT実験機が構築されている。モデル67をリリースする前にIBMはモデル64と66を発表していた。それらはモデル60と62にDATを追加したものだが、60および62の代替としてモデル65をリリースすることが決まり、モデル64と66もモデル67で代替されることになった。System/370では1972年にDATハードウェアが再登場したが、370でも当初はDATがなかった。モデル65と同様、モデル67にもデュアルCPU版が存在する。
System/360の全モデルは1977年末には販売停止となった。

従来との互換性

IBMの既存の顧客は第二世代のマシン上で動作するソフトウェアの大きな資産を抱えていた。多くのモデルで顧客の従来のマシン（例えば、モデル30では IBM 1400シリーズ、モデル65では IBM 7094）のエミュレーションをオプションとして提供している。特殊なハードウェアを使ったり、特殊なマイクロコードやソフトウェアを使って、ターゲットシステムの命令をエミュレートし、古いプログラムを新しいマシン上で実行可能としていた。ただし、初期化時にモードを切り換えるので、エミュレーションと通常運用を同時に行うことはできない。モデル85と後のSystem/370にもエミュレーション・オプションが残されているが、そちらはOSの上で通常のプログラムと同じようにエミュレーションを行える。

後継機種と派生機種

System/360は1971年にSystem/370シリーズに置き換えられ、360/20の後継としては IBM System/3 が用意された。当初の計画では劇的に進化したFSテクノロジーで置き換えるはずだったが、コストと時間がかかり過ぎ、1970年代中盤に計画が中止された。その後の互換システムとしては、IBM自身の3090、System/390、zSeries、System zがある。
機械語レベルまたはアーキテクチャレベルで同一または互換といえるコンピュータとしては、アムダールの470ファミリ、日立製作所のメインフレーム、UNIVAC 9200/9300/9400シリーズ、イングリッシュ・エレクトリックの System 4、RCA Spectra 70 シリーズ（UNIVACに売却され UNIVAC 90/60 となった）などがある。また、ソビエト連邦もSystem/360互換機を製造していた（ES EVM）。
1975年に登場した IBM 5100 ポータブルコンピュータは、System/360のAPL.SVプログラミング言語をハードウェアエミュレータ経由で実行できるオプションを提供していた。これは、5100向けのAPL処理系開発が遅延したためにとったアプローチである。
放射線耐性を強化するなどの改造を加えた System/360 は System/4 Pi アビオニクスコンピュータと呼ばれ、いくつかのジェット戦闘機やジェット爆撃機に使われた。完全32ビットのAP-101版の 4 Pi は二重化されたフォールトトレラントなスペースシャトルのコンピュータシステムに使われた。アメリカ連邦航空局 (FAA) はSystem/360を改造した特殊なクラスターを IBM 9020 と呼び、1970年から1990年代まで航空管制に使用していた。（9020用ソフトウェアはその後の新ハードウェア上でもエミュレーション機能上で使われている。）

チャネル

周辺機器は「チャネル」経由でシステムと接続する。チャネルは、周辺機器と主記憶間のデータ転送に最適化された命令セットを持つ専用プロセッサである。現代風に言えば、Direct Memory Access (DMA) に近い。
チャネルには、バイトマルチプレクサチャネルとセレクタチャネルがある。前者は低速デバイス向けで、パンチカードリーダ/パンチ、ラインプリンター、通信コントローラなどを接続する。後者は高速デバイス向けで、ディスクドライブ、磁気テープドライブ、磁気ドラムなどを接続する。モデル20以外のSystem/360は、バイトマルチプレクサチャネルを1つとセレクタチャネルを1つ以上備えている。小型のシステム（モデル50まで）ではチャネルが本体に内蔵されているが、大型のシステム（モデル65など）では本体とは別筐体になっている（IBM 2860/2870など）。
バイトマルチプレクサチャネルは同時に複数の周辺機器の入出力を扱え、それぞれの周辺機器は最高速度で動作できる。このため「マルチプレクサ」と名付けられており、複数の周辺機器の入出力を多重化して主記憶との単一のデータ経路にまとめている。各周辺機器は、1バイトモード、2バイトモード、4バイトモード、バーストモードのいずれかで動作するよう設定される。相対的に高速な周辺機器ほど大きなデータブロックを使用する。例えば2501パンチカードリーダは毎分600枚のパンチカードを読み込み、1バイトモードで動作する。一方、1403-N1プリンターはバーストモードで動作する。また、バイトマルチプレクサチャネルにはサブセレクタ部があり、磁気テープドライブを接続できる。バイトマルチプレクサのチャネルアドレスは一般に "0" で、サブセレクタのアドレスは "C0" から "FF" である。したがって磁気テープドライブは一般に 0C0 から 0C7 のアドレスに配置される。他の一般的なアドレスとしては、2501カードリーダは00A、2540リーダ/パンチは00C/00D、1403-N1プリンターは00E/00F、3211プリンターは010から013、2701/2703通信ユニットは020から0BFである。これらのアドレスはz/VMでもそのまま継承されている。
モデル30/40/50には1052-7コンソールが付属しており、アドレスは一般に01Fとされた。ただし、コンソールはバイトマルチプレクサチャネルに接続されるわけではなく、直接本体と接続される。
セレクタチャネルは高速周辺機器を扱う。ストレージデバイスを制御ユニットに接続し、制御ユニットをチャネルに接続する。制御ユニットを介することで多数のデバイスをチャネルに接続できる。上位モデルでは複数のセレクタチャネルを備え、それらが同時並行的に動作するので、全体として性能が向上する。
制御ユニットとチャネルは灰色のバスタグ (bus and tag) ケーブル対で接続する。バスケーブルはアドレスおよびデータ情報を運び、タグケーブルはバスケーブル上のデータが何なのかを示す。一般に制御ユニットはデイジーチェーン接続される。各制御ユニットには対応するアドレスの範囲が割り当てられている。例えば制御ユニットXがアドレス40から4F、制御ユニットYがC0からDF、制御ユニットが80から9Fといった具合である。アドレス範囲は8以上の2のべき乗でなければならず、各制御ユニットには複数のデバイスを接続できる。例えば、制御ユニットYに6台のディスクを接続し、それらにアドレスC0からC5を対応させる。
制御ユニット同士をどういう順番で接続するかも重要である。各制御ユニットには優先度として High または Low が設定される。制御ユニットが X、Y、Z の順序でデイジーチェーン接続されている場合、デバイス選択をメインフレームからチャネルに送信すると、X→Y→Z→Y→X とその信号が送られていく。優先度がHighに設定された制御ユニットは信号が外に向かう際にチェックを行い、優先度がLowに設定された制御ユニットは信号が折り返して戻ってくる際にチェックを行う。また、1つの制御ユニットを複数のチャネルから接続することができ、それらチャネルは別々のメインフレームでもよい。
一般にチャネルのケーブルは最大約60メートルまでとされている。このとき制御ユニット1台を接続するとケーブル長約3メートルに換算する。

ブロックマルチプレクサチャネル

モデル85および195で、IBMは新たな種類のチャネルである 2880 ブロックマルチプレクサチャネルを導入した。このチャネルはチャネルプログラムの実行を中断して配下デバイスの入出力完了を待ち合わせずに別のデバイスのためにチャネルを解放することができる。これを最初に使ったのは 2305 固定ヘッドディスクで、8つのアドレスを持ち、回転位置検出 (RPS) 機能を持っていた。
これらのチャネルは標準で1.5MB/sであり、2バイト・インタフェースでは3MB/sとなる。後者の場合、タグケーブル1本につきバスケーブル2本を使用する。

基本ハードウェア部品

発明されたばかりの集積回路は信頼性や可用性に不安があったため、IBMはハイブリッド集積回路を使用した。個々のトランジスタやダイオードと基板にプリントされた抵抗などでフリップフロップを構成して、プラスチックか金属でカバーを施した。これをいくつかプリント基板に実装してSLTモジュール（Solid Logic Technology）と呼んだ。SLTモジュールの一方の端にはソケットがあり、バックプレーンにあるピンを挿入する形で実装する（一般的な実装とはソケットとピンが逆である）。

オペレーティングシステム

System/360の小型機種向けには BOS/360（ベーシック）、COS/360（カード）、TOS/360（テープ）、DOS/360（ディスク）があり、DOS/360は後に DOS/VS, DOS/VSE, VSE/AF, VSE/SP, VSE/ESA へと発展し、最終的に z/VSE に進化した。
それより上位のモデルではOS/360を使用した。当初 PCP (Primary Control Program) や MFT (Multiprogramming with a Fixed number of Tasks) があり、それらが OS/VS1 に発展した。また、MVT (Multiprogramming with a Variable number of Tasks) は MVS へと発展した。MVTは開発に時間がかかりすぎたため、機能の限定された MFT が主に使用された。PCPは中型機で使われたが、最終的にはMFTとMVTだけが残った。
モデル67を1965年8月に発表したとき、IBMは多くの先進的機能を備えたTSS/360（Multicsへの対抗OS）も本体と同時にリリースすると発表した。しかし正常に動作させることができず、リリース延期が繰り返され、最終的に1971年にキャンセルされた。代わりとしてCP-67、MTS、TSO（タイムシェアリングシステム）などが使われた。
CP-67は仮想機械システムであり、CP/CMS(en:CP/CMS)とも呼ばれる。CP-67はIBMの主流ではない部門がMITの研究者らと共同で開発した。CP/CMSは広く受け入れられ、VM/370 へと発展し、こんにちの z/VM へとつながっている。
モデル20には単純化したOSである、CPS (Card Processing System)、TPS (Tape Processing System)、DPS (Disk Processing System) が用意された。それぞれ必要な主記憶容量が 4K (CPS)、8K (TPS)、12K (DPS) であり、多くのユーザーは最小構成で使えるCPSを使っていた。
TPSとDOSでは、実行すべきジョブスタックの定義（JCL）とトランザクションデータの供給にパンチカードリーダーを使っていた。しかし、OS自体はディスクや磁気テープで提供されており、結果（マスターファイル）も磁気テープやハードディスクに格納することができる。

周辺機器

System/360の周辺機器は従来の1400シリーズの流用より新規に開発されたものが多く、2で始まる4桁の番号がついている。1400シリーズからの流用として例えば、1403プリンターは信頼性が高かったので、1403-N1プリンターとして存続した。また光学文字認識 (OCR) リーダとして 1287 と 1288 があった。
小型システムの多くは、IBM 1052-7 がコンソール・タイプライタとして付属していた。上位機種には10万ドルもするグラフィカル・ディスプレイ IBM 2250 を接続することもあった。モデル85では 5450 をコンソールとして採用し、モデル165やSystem370/168ではその系統を受け継いだ 3066 コンソールが採用されている。

直接アクセス記憶装置 (DASD)

360用の最初のディスクドライブは IBM 2302 と IBM 2311 である。2302 は 1302 を改良したものである。
2311はリムーバブルなディスクパック 1316 を使用する装置であり、IBM 1311 の後継である。理論上は7.2MBの容量があるが、実際の容量はレコード設計に依存する。例えば、モデル20で1316パックを使う場合、固定長セクタでフォーマットされ、最大容量は5.4MBとなっていた。
1966年、2314 が出荷された。内蔵制御ユニットにより最大で8台のディスクドライブを使用できる。実際は9台のドライブがあるが、1台は予備として予約されている。各ドライブに2316ディスクパックを装着すると、それぞれの容量は23MB弱となる。2311と2314のディスクパックは現代から見れば巨大であり、例えば1316は直径が36cmで、6枚のプラッタがある。プラッタ群の一番上の面と一番下の面にはデータを記録せず、それら以外の中間のプラッタは両面に記録するので、全部で10面あることになる。10個の読み書き用ヘッダは同期して動作する。シークをなるべく短縮するため、プラッタ群を同心円状に貫く仮想的シリンダにデータをなるべくまとめて記録する。一般に可変レコード長であり、現代のハードディスクのように固定長セクタでフォーマットされているわけではない。
初期のSystem/360では、トラック毎にヘッドがある磁気ドラムを高速記憶装置として使っていた。容量4MBで3,500RPMの2301は7320の後継として、System/360発表時にその一部として発表された。303.8kB/sの IBM 2303 は1966年1月31日に発表されたもので、容量は3.913MBである。磁気ドラムはこれらだけであり、後継としては固定ヘッドディスクがリリースされた。
1970年に登場した6,000RPMの固定ヘッドディスク装置2305は、モジュール毎に5Mb (2305-1) と 11Mb (2305-2) の容量である。容量は小さいものの、データ転送速度と転送レートが高速であり、高性能を求める用途で使われた。例えば、オーバレイリンケージで同じメモリ領域の内容を高速に切り換えるなどの用途で使われた。固定ヘッドディスクや磁気ドラムは、初期の仮想記憶システムでのページング用デバイスとして重宝された。2305は固定ヘッドディスク装置だが、ドラムと呼ばれることも多かった。
あまり見られない記憶装置として IBM 2321 Data Cell がある。複雑な機構を内蔵した装置で、多数の磁気テープ片にデータを記録し、指定された磁気テープ片を取り出して読み書きし、元の場所に戻すということを繰り返し、ランダムアクセスが可能である。2311が7.2MBの容量だった時代に400MBという大容量を実現している。コスト/容量/速度の各面で磁気テープとハードディスクのギャップを埋めようとした装置といえる。しかし電気機械式だったため信頼性が低かった。
モデル44は、標準でディスクドライブを1台備えていた。2315ディスクカートリッジを装着し、1,171,200バイトの容量である。

磁気テープ装置

2400磁気テープドライブはドライブと制御ユニットが統合されており、1/2インチ磁気テープドライブを追加することができる。System/360でIBMは7トラックから9トラックにフォーマットを切り換えた。2400は従来の7トラックの磁気テープも読み書きできる。1967年には、より低速で安価な2ドライブと制御ユニットを統合した 2415 がリリースされた。1968年、高速な 2420 がリリースされ、1979年まで製造されていた。

ユニットレコード装置

パンチカード関連装置としては、2501カードリーダ、1442と2540リーダ/パンチがあり、多くのシステムに2540が使われていた。さらにソータとしても使える 2560 MFCM ("Multi-Function Card Machine") はモデル20でのみ使えたが、信頼性に問題があることで有名だった。
ラインプリンターとしてはIBM 1403と低速なIBM 1443（IBM 1443）があった。
紙テープリーダ 2671 は1964に登場した。読み取り速度は 1,000 cps である。初期には紙テープリーダやパンチもあったが、標準品ではなく特注品扱いだった。
光学文字認識 (OCR) 装置としては 1287 と 1288 がある。1287は手書きの数字や一部のOCR用フォントを認識でき、キャッシュレジスター用のOCR紙テープを読み取れる。1288はページ単位でOCRフォントの文書を読み取ることができ、手書きの数字も認識できる。
磁気インク文字認識 (MICR) 装置としては、1412 と 1419（小切手ソータ）がある。また小切手に磁気インクで印刷する 1445 プリンターがある。これらは基本的に銀行向けである。

通信制御装置

通信制御装置として2701/2702があり、モデム・通信回線を通して、1030データ収集システム・1050データ通信システムなど様々な遠隔地通信端末の接続を可能にして、それまでデータ処理をすべて電算機室に集めたセンター集中方式から遠隔地コンピューティングへの幕開けを迎えた。

現存するマシン

System/360の現存するマシンは数少ない。当時は多数のメインフレームシステムが稼働していたが、現存しているものは数少なく、しかもいずれも動作できない状態である。多くはリース品だったので、役目を終えたマシンはIBMが回収し、廃棄された。一般にメインフレームは古いほど巨大で維持費もかかる。スミソニアン博物館は System/360 Model 65 を所有しているが、既に展示していない。ボストンの科学博物館（Museum of Science）にあったSystem/360 Model 30はマウンテンビューのコンピュータ歴史博物館へ移されて、動作しないものが展示されている。ニュージーランドのオークランドにある輸送技術博物館やオーストリアのウィーン工科大学にも動作しないSystem/360が展示されている。西オーストラリア大学は完全なシステムを所蔵している。ジンデルフィンゲンのIBM博物館にはモデル20とモデル91がある。スタンフォード大学の計算機科学科にはSystem/360の制御パネルがいくつか展示されており、中にはシステム規模が最大だったFAAの IBM 9020 の制御パネルもある。エンディコットにあるIBMの歴史センターにも動作しないSystem/360などが展示されている。日本では情報処理学会のコンピュータ博物館は日本企業が開発したコンピューターだけを所蔵しているので、京都コンピュータ学院のKCGコンピュータ博物館がSystem/360モデル40を所蔵・展示している, 。