System/370

IBM System/370 は、1970年6月30日にIBMが発表したメインフレーム・コンピュータのシリーズ名およびコンピュータ・アーキテクチャ名で、System/360ファミリの後継である。

System/370は、System/360 との互換性を保ち、性能向上に加えて商用初の仮想記憶をサポートした。System/360に続くSystem/370の成功により、コンピュータ市場でのIBMの影響力は圧倒的となった。

またSystem/370の後続シリーズの上位モデルでは、1981年に拡張アーキテクチャのSystem/370-XAが発表され、アドレス空間と入出力が拡張された。このアーキテクチャは後にESA/370、ESA/390を経て、現在のz/Architectureへと発展した。

1. 概要
-----

System/370は、前身のSystem/360から24ビットアドレッシングを引き継いで上位互換性を保ち、前身のSystem/360と同様に互換性のある複数モデルによってコンピュータ・ファミリーを形成し、ユーザーの資産を保護した。

System/370は商用として初めての仮想記憶を実現したため、ユーザーはより広いアドレス空間を使用できるようになり、企業におけるデータベースやオンライン・トランザクション処理の用途が拡大した。

System/360に続くSystem/370の成功により、GEなどは撤退し、System/360の互換機を製造していたメーカーは撤退するかSystem/370の互換機を開発するようになった。また1975年にはIBMから退職したアムダールが富士通と提携してプラグコンパチブル型のSystem/370互換機を発表した。

System/370シリーズの後継製品は、大型の3030・3080・3090、中型の4300シリーズ、小型の9370シリーズである。これらは正式にはSystem/370シリーズではなかったが、System/370アーキテクチャを継承したため、広義にはSystem/370と呼ばれる事がある。

1981年には上位機種用にSystem/370-XAアーキテクチャが発表され、論理アドレッシングが31ビットに拡張され、I/OによるCPU負荷を軽減する動的チャネルサブシステムが採用された。なお、この技術は特許と著作権で守られていたため互換機対策とも言われ、この技術をめぐりIBM産業スパイ事件も発生した。System/370-XAアーキテクチャは、更にハイパー空間などを持つESA/370アーキテクチャとなった。

1990年にはブランド名がエンタープライズシステムと改称され、製品シリーズ名はES/3090、ES/4300、ES/9370に、アーキテクチャ名はESA/390と名称変更された後、真の後継製品であるES/9000シリーズに引き継がれた。

2. 特徴
-----

System/370 はその約20年の歴史の中で数回のアーキテクチャ改良を重ねてきた。最初の最も大きな変更は仮想記憶の導入であり、1972年、IBM の "System/370 Advanced Function" の発表により一般に公開された。IBM は当初、System/370 では何故か仮想記憶を採用しなかった。1972年の発表には以下の事項が含まれていた。

全 System/370 機種へのアドレス再配置ハードウェアの導入
新たな System/370-158 と -168 の発表
新たな4つのオペレーティングシステムの発表: DOS/VS、OS/VS1、OS/VS2、VM/370仮想記憶は実際にはこの発表以前に System/370 ハードウェアに導入されていた。

1971年、System/370-145 で実装された
1972年、System/370-155-II と System/370-165-II は即座に System/370-158 と -168 に置換されたその後のアーキテクチャ上の変更は主記憶容量の拡張が中心となった。これは、負荷の増大と顧客の要望にこたえるためであった。これはムーアの法則に従ってメモリ単価が低下したことによる必然的傾向であった。IBMのメインフレーム開発では、基本的に従来互換は常に保たれていた。

1981年10月、3033 と 3081 プロセッサに "extended real addressing" が追加され、物理記憶装置のアドレスが26ビットに拡張された。この拡張は 4381 や 3090 といった他のシステムにも適用されていった。
System/370-XA アーキテクチャ: 3081 と 3083 プロセッサで1983年初めに利用可能となった。アドレス空間の 24ビットから 31ビットへの拡張、2つのアドレス空間の間でデータを移動させる機能、入出力アーキテクチャの完全な再設計などの大きな改良がなされた。
ESA/370 アーキテクチャでは、32ビットのアクセスレジスタ16本を追加し、アドレッシングモードを追加し、複数アドレス空間を同時に扱う機能がいくつか追加された。System/370シリーズの中で特筆すべきマシンとして、IBM 3033、IBM 3090 がある。これらはオプションでベクター拡張機構を装備しスーパーコンピュータとしても使用できた。また、中小規模の低価格な IBM 9370 もある。

System/370で話題にするべきトピックに仮想計算機がある。仮想記憶という概念をコンピュータのほかの部分にも適用した概念で、一台の物理マシンの上に複数台の仮想コンピュータを実現した。当時、コンピュータにOSをインストールするためには数日を要していた。その間、エンドユーザーはコンピュータを使うことが出来なかった。商用利用でマシンタイム一分間数百円の時代であるにも係わらず。仮想計算機はこの作業を、エンドユーザーの利用と並行して行うことができ、最後にDASDをテープに吸い上げ、物理マシンのDASDに戻し直せばよくなった。エンドユーザーが使えない時間は数時間にまで減った。

2.1. アドレス空間の拡張
--------------

上述の通り、System/370 での大きなアーキテクチャ上の変化として、アドレス空間が 24ビットから 31ビットに拡張された。

System/370 のアドレッシングの拡張は、24ビット論理アドレスに依存している System/360 命令セット設計とそれを使った大量のコードベースのために複雑化した。特によく使われる命令 "Load Address"  はアドレスをレジスタに置くときに上位8ビットを明示的にクリアしていた。このため、既存ソフトウェアの移行時に大きな問題となった。

アドレッシングの拡張の実装は以下の3段階で行う戦略がとられた。

第一に物理レベルで拡張
次にオペレーティングシステムレベルで拡張
最後にアプリケーションレベルで拡張System/360 の命令セット中核部は 24ビット論理アドレスのままとされたため、この第三のステップは「現状」の明らかな打破を要求した。既存のアセンブリ言語アプリケーションはもちろん書き換えない限り移行できないし、アセンブラでないアプリケーションも新たなコンパイラを使わないと対応できない。このため、高性能な31ビットの環境で24ビットアプリケーションを動作させる状況がしばらく続いたユーザーが多かった。

2.2. 31ビットと32ビット
----------------

IBM が 32ビットではなく 31ビットを選んだ理由はいくつかある。System/360 Model 67 は完全な 32ビットアドレッシングモードを持っていたが、この機能は System/370 には反映されず、当初は 24ビットとなった。System/370-XA でアドレス空間を 31ビットとしたのには、以下のような理由があった。

最上位ビットを "control or escape bit" として残したいという意見があった
32ビットアドレスと引数を符号付数値として扱う2つの命令の相互作用の問題。
システム設計段階で、System/360 Model 67 を使っていた主なサイトから 31ビットにすべきという意見があった。

3. モデル
------

下表では System/370 の主なシリーズと機種をまとめている。アーキテクチャ欄で各シリーズの主要アーキテクチャを示している。多くの機種で複数のアーキテクチャがサポートされていた。例えば 308x は当初 System/370 アーキテクチャとして出荷されたが、後に XA も提供された。4381 などの多くのプロセッサで、マイクロプログラムの置き換えが可能となっており、ユーザーがアーキテクチャを選択可能になっていた。

以下で "System/370-compatible" という用語が出てくるのは、IBM の文書がこの用語を使っているためである。IBM 以外では、この用語はアムダールや日立製作所などのIBM以外の System/370互換機を指すのが一般的である。



4. アーキテクチャ
----------

System/370 はコンピュータ・アーキテクチャ仕様であり、System/360 アーキテクチャとの互換性を保った改良版であり、多くの点で共通している。アーキテクチャには、あらゆる実装で使用可能な必須インタフェースと常に実装されるとは限らないオプションインタフェースから構成される。

アーキテクチャ上の主な特徴は次の通り。

プロセッサ
汎用レジスタ 16本
制御レジスタ 16本
ステータスレジスタ  では、以下のような情報が示される
割り込みマスク
特権状態
条件コード
命令アドレス
タイミング機能
割り込み機構: マスク可割り込みとマスク不可割り込み、クラス分けされている。
命令セット: 各命令の完全な説明とプログラム割り込みと呼ばれる例外時の動作も定義されている。
主記憶装置
1バイトは8ビット
特殊なプロセッサ通信領域がアドレス0にある。
キーによるメモリ保護機能
手動制御操作により、以下のことが可能
ブートプロセス
オペレータによる割り込み
システムのリセット
基本デバッグ機能
システム状態を表示して手動変更可能
入出力機構: 周辺機器そのものを記述しているわけではない。主なオプション機能は以下の通り。

Dynamic Address Translation機構により仮想記憶システムを実装可能
浮動小数点命令インタフェース仕様は拡張可能であるため、初期のインタフェースに影響を与えることなく新たなインタフェースを追加可能である。そのような例として次の拡張があった。

ECPS:VM
ECPS:VSE アーキテクチャに修正を加える際には、互換性を保持することに多大な労力を費やした。特に、最低でも非特権プログラムの互換性だけは確保された。この方針は System/360 のころからのものである。互換性を保つための鍵となった方針として、未使用フィールドを予め決まった値にセットしておいた点がある。そして、それ以外の値になっていると例外として認識される。インタフェースを変更するとき、この未使用フィールドを新たな目的で使用することができる。行儀の良いプログラムなら、新たなインタフェースを実装したシステム上でも実行可能であることが期待できる。例えば、64ビットの PSW レジスタのビット番号 32 は未使用であり、0 でないときは例外が発生することになっていた。後に System/370 XA アーキテクチャが定義され、そのビットで 24ビットアドレスなのか31ビットアドレスなのかを識別するようになった。従って、24ビットアーキテクチャ上で動作していたほとんどのプログラムは新たな31ビットシステムでも64ビットシステムでも動作可能である。しかし、全てのインタフェースの互換性が保たれたわけではない。例えば、入出力インタフェースは System/370 XA で非互換になっている。このため、オペレーティングシステムは移植が必要であった。

5. オペレーティングシステム
---------------

System/370の仮想記憶をサポートするオペレーティングシステムには、小規模向けの DOS/VS 、仮想化OSのVM/370などが使用できた。

またGNUコンパイラコレクションには System/370 向けのバックエンドがあったが、更新されることなく最後には System/390 用バックエンドに置換された。System/370 と System/390 の命令セットは基本的には同じで System/360 以来の一貫性を保持しているが、gcc における古いシステムのサポートは重視されなかった。現在サポートされているのは、System/390 Generation 5  の全命令セットをサポートしたマシンであり、そのハードウェアプラットフォームで Linux/390 がリリースされた。

6. 後継
-----

System/370 は1990年代に System/390 に置き換えられた。ただし、当初はマーケティングのための製品ラインの改称でしかなかった。2000年、zSeries が後継として登場。zSeries では64ビットのアーキテクチャが導入されており、31ビット化以来の大きな変化となった。アーキテクチャ的にも命令セット的にも System/360 からの互換性は基本的に保たれている。

7. その他
------

System/360では設計責任者をつとめたジーン・アムダールはSystem/370の設計の際に新技術の導入について積極案を主張したが、既にSystem/360が大成功して多数の顧客で稼働中のため互換性を重視する経営層により却下された。そのためアムダールは1970年にIBMを退社、アムダール社を設立した。アムダールはIBMに対してプラグコンパチブルで、かつIBMより「小回りの利く」開発体制が可能にする新技術の採用による高性能を実現し、IBMに戦いを挑んだ。初号モデルの470V/6の開発は難航したが、提携した富士通からの支援もあって無事完成、出荷され、その後はIBMと激しい争いを演じた。

1997年にアムダールは富士通に吸収され、日立製作所は2000年に北米市場から撤退した。その後、日立はメインフレームのハードウェアから撤退し、富士通はメインフレームからの撤退を表明した。

なおSystem/370の命令が実行できるワークステーションも存在した。1980年にMC68000が出荷され、それを搭載したアポロコンピュータのワークステーションが市場を席巻し、1982年創立のサン・マイクロシステムズがSPARCプロセッサにより急成長すると、IBMもPOWERプロセッサ、IBM版UNIXのAIXを開発し、RT-PC・RS/6000とUnixワークステーションに乗り出したが、MC68000の改造チップを積みIBM PC/XTでSystem/370の命令が実行できるシステムも出現した。

8. 脚注
-----

9. 関連項目
-------

メインフレーム
System/360
System z
24ビット
31ビット
IBM

10. 外部リンク
---------

[1] モデル135の写真と説明
[2] モデル145の写真と説明
[3] S/370コンソールの写真
[4] S/370発表資料など
url=http://febcm.club.fr/english/information_technology/information_technology_3.htm