System/370

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

テンプレート:IBM Mainframes

IBM System/370 (S/370システム/370、しすてむさんななまる)は、1970年6月30日IBMSystem/360ファミリの後継として投入したメインフレームのシリーズ名であり、そのアーキテクチャ名でもある。

顧客の移行が容易に行えるよう System/360 との互換性を保ちつつ、性能を向上させている。System/360 と比較したときの新たな機能としては、2プロセッサ構成の標準化、仮想記憶の完全サポート、128ビット浮動小数点演算などである。なお、これらが全て最初の発表時に挙げられていたわけではない(詳細は後述)。

本稿ではSystem/370シリーズに加えて、後続のシリーズ(30x0、4300、9370)と、その後続シリーズ中に採用された拡張アーキテクチャのSystem/370-XAESA/370ESA/390についても記述する。

概要

System/370は、前身のSystem/360から24ビットアドレッシング(最大仮想メモリは16MB)を引き継いで上位互換性を保ち、前身のSystem/360と同様に互換性のある複数モデルによってコンピュータ・ファミリーを形成し、ユーザーの資産(プログラム、周辺機器など)を保護した。

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

System/360に続くSystem/370の成功により、GEなどは撤退し、System/360の互換機を製造していたメーカーは撤退するか(RCAなど)System/370の互換機を開発する(日立製作所など)ようになった。また1975年にはIBMから退職したアムダール富士通と提携してプラグコンパチブル型(IBMのオペレーティングシステムを稼働させる)のSystem/370互換機を発表した。

System/370シリーズの後継製品は、大型(水冷・スタンドアロン)の3030・3080・3090、中型(空冷・スタンドアロン)の4300シリーズ、小型(空冷・ラックマウント)の9370シリーズである。これらは正式にはSystem/370シリーズ(という製品名称)ではなかったが、System/370アーキテクチャを継承したため、広義にはSystem/370と呼ばれる事がある。(このため本稿でも記述する。)

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

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

背景

System/370シリーズの中で特筆すべきマシンとして、IBM 3033、IBM 3090 がある。これらはオプションでベクター拡張機構を装備しスーパーコンピュータとしても使用できた。また、中小規模の低価格な IBM 9370 もある。

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

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

1980年頃には、それまでIBMマシンを利用している客はコンピュータの処理能力を増やしたくてもIBMからはそれ以上のマシンは出ていないという事態が生じていた。MC68000(1980年出荷開始)を搭載したアポロコンピュータワークステーションが市場を席巻していた。

ワークステーション市場は、その後すぐ1982年創立のSunの急成長によって急成長した。SunはSPARCプロセッサによりその地位を不動のものとした。IBMもPOWERプロセッサ、IBM版UNIXのAIXを開発し、RT-PCRS/6000とUnixワークステーションに乗り出した 。MC68000の改造チップを積み、IBM PC/XTで370の命令が実行できるシステムも出現した。

1997年にアムダールは富士通に吸収され、日立製作所は2000年に北米市場から撤退し、世界最高速の汎用機は日本の富士通のみが提供している時代が存在した。

従来マシンからの改良

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

  • 全 System/370 機種へのアドレス再配置ハードウェアの導入
  • 新たな System/370-158 と -168 の発表
  • 新たな4つのオペレーティングシステムの発表: DOS/VS(仮想記憶サポートした DOS)、OS/VS1(仮想記憶をサポートした OS/MFT)、OS/VS2(仮想記憶をサポートした OS/MVT。後に SVS と MVS へと進化)、VM/370(CP/CMS の再実装)

仮想記憶は実際にはこの発表以前に System/370 ハードウェアに導入されていた。

  • 1971年、System/370-145 で実装された(同機は仮想記憶開発を行った Cambridge Scientific Center に極秘裏に搬入された。この時期既にアドレス再配置ハードウェアが完成していたと思われる)[3]
  • 1972年、System/370-155-II と System/370-165-II は即座に System/370-158 と -168 に置換された[4]

その後のアーキテクチャ上の変更は主記憶容量の拡張(物理メモリと仮想アドレス空間)が中心となった。これは、負荷の増大と顧客の要望にこたえるためであった。これはムーアの法則に従ってメモリ単価が低下したことによる必然的傾向であった。IBMのメインフレーム開発では、基本的に従来互換は常に保たれていた。

  • 1981年10月、3033 と 3081 プロセッサに "extended real addressing" が追加され、物理記憶装置のアドレスが26ビットに拡張された(個々のアドレス空間は依然として24ビットであった)。この拡張は 4381 や 3090 といった他のシステムにも適用されていった。
  • System/370-XA (eXtended Architecture)アーキテクチャ: 3081 と 3083 プロセッサで1983年初めに利用可能となった。アドレス空間の 24ビットから 31ビットへの拡張、2つのアドレス空間の間でデータを移動させる機能、入出力アーキテクチャの完全な再設計(動的チャネルサブシステム)などの大きな改良がなされた。
  • ESA/370 アーキテクチャ(Enterprise System Architecture、後に ESA/390 と改称)では、32ビットのアクセスレジスタ16本を追加し、アドレッシングモードを追加し、複数アドレス空間を同時に扱う機能がいくつか追加された。

アドレス空間の拡張

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

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

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

  1. 第一に物理レベルで拡張(システム当たりのメモリ搭載量を増やす)
  2. 次にオペレーティングシステムレベルで拡張(システムソフトウェアが複数のアドレス空間にアクセスし、より大きなアドレス空間を利用可能とする)
  3. 最後にアプリケーションレベルで拡張(新しいアプリケーションがより大きなアドレス空間にアクセス可能とする)

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

31ビットと32ビット

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

  1. 最上位ビットを "control or escape bit" として残したいという意見があった[5]
  2. 32ビットアドレスと引数を符号付数値として扱う2つの命令(BXH と BXLE)の相互作用の問題(また、このために System/360 Model 67 での TSS でも 31ビットアドレッシングが使われた)。[6]
  3. システム設計段階で、System/360 Model 67 を使っていた主なサイトから 31ビットにすべきという意見があった。[7]

シリーズ機種

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

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

ファイル:IBM 370-145.png
System/370-145 のシステムコンソール(写真ではない)
出荷開始 アーキテクチャ 機種
1970年 System/370 370-xxx シリーズ (370-115 - 370-195)
1977年 System/370-compatible[8] 303x シリーズ (3031, 3032, 3033)
1979年 System/370-compatible 43xx シリーズ (4331, 4341, 4361)
1980年 System/370-compatible 308x シリーズ (3081, 3083, 3084)
1981年 System/370-XA 308x シリーズ (3081, 3083, 3084)
1983年 System/370-XA 4381
1986年 System/370-XA 3090 シリーズ (120 - 600)
1986年 System/370-compatible[9] 937x シリーズ
1988年 ESA/370 ES/3090 と ES/4381

System/370の後継

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

System/370上のLinux

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

アーキテクチャ

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

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

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

主なオプション機能は以下の通り。

インタフェース仕様は拡張可能であるため、初期のインタフェースに影響を与えることなく新たなインタフェースを追加可能である。そのような例として次の拡張があった。

  • ECPS:VM (VM/370 オペレーティングシステムをサポートするための機能)
  • ECPS:VSE (DOS オペレーティングシステムをサポートするための機能)

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

脚注

  1. テンプレート:Cite book
  2. テンプレート:Cite web
  3. Varian, op. cit., p. 29 – security over delivery of relocating 145 to CSC
  4. テンプレート:Cite journal [オンライン版はwww.research.ibm.com – Table 1 として機種一覧表、Table 2 として発表日の表がある。S/370-155-II と -165-II は前者にはあるが後者にはない。つまり、これらの改良版機種は正式には発表されなかったと推測される。"System/370 Advanced Function" の発表では、-158 と -168 の発表も重要な項目であった。
  5. テンプレート:Cite journal [オンライン版はwww.research.ibm.com – 特に201ページからの "31-bit addressing" を参照。
  6. Melinda Varian, VM and the VM community, past present, and future, SHARE 89 Sessions 9059-9061, 1977, p. 26, note 85; available online at www.princeton.edu/~melinda
  7. Varian, op. cit., pp. 8-9, note 21; includes other comments about the "Inner Six" 360-67 design disclosees
  8. テンプレート:Cite web 3xxx と 4xxx シリーズに 'System/370-compatible' という用語が使われている
  9. テンプレート:Cite web 9370 が System/370 compatible system に分類されている理由が説明されている。
  10. GA22-7000: System/370 principles of operation
  11. A22-6821: System/360 principles of operation
  12. GA22-7000-4: System/370 principles of operation, p. 9, chapter 1 – describes philosophy of evolution from S/360 to S/370

関連項目

外部リンク

テンプレート:IBM Computers