IBM System/370
IBM System/370 (S/370 、システム/370 、しすてむさんななまる)は、1970年 6月30日 にIBM が発表したメインフレーム ・コンピュータ のシリーズ名およびコンピュータ・アーキテクチャ 名で、System/360 ファミリの後継である。
System/370は、System/360 との互換性 を保ち、性能向上に加えて商用初の仮想記憶 をサポートした。System/360に続くSystem/370の成功により、コンピュータ市場でのIBMの影響力は圧倒的となった。
またSystem/370の後続シリーズ(30x0、4300、9370)の上位モデルでは、1981年に拡張アーキテクチャのSystem/370-XA が発表され、アドレス空間と入出力が拡張された(31ビット アドレス空間、動的チャネルサブシステム)。このアーキテクチャは後にESA/370、ESA/390を経て、現在のz/Architecture へと発展した。
概要
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 はその約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シリーズの中で特筆すべきマシンとして、IBM 3033、IBM 3090 がある。これらはオプションでベクター 拡張機構を装備しスーパーコンピュータ としても使用できた。また、中小規模の低価格な IBM 9370 もある。
System/370で話題にするべきトピックに仮想計算機 (VM)がある。仮想記憶 という概念をコンピュータのほかの部分にも適用した概念で、一台の物理マシンの上に複数台の仮想コンピュータを実現した。当時、コンピュータにOSをインストールするためには数日を要していた。その間、エンドユーザーはコンピュータを使うことが出来なかった。商用利用でマシンタイム一分間数百円の時代であるにも係わらず。仮想計算機はこの作業を、エンドユーザーの利用と並行して行うことができ、最後にDASD (Direct Access Storage Device, つまりハードディスク )をテープに吸い上げ、物理マシンのDASDに戻し直せばよくなった。エンドユーザーが使えない時間は数時間にまで減った。
アドレス空間の拡張
上述の通り、System/370 での大きなアーキテクチャ上の変化として、アドレス空間が 24ビット から 31ビット に拡張された。
System/370 のアドレッシングの拡張は、24ビット論理アドレスに依存している System/360 命令セット設計とそれを使った大量のコードベースのために複雑化した。特によく使われる命令 "Load Address" (LA) はアドレスをレジスタに置くときに上位8ビットを明示的にクリアしていた。このため、既存ソフトウェアの移行時に大きな問題となった。
アドレッシングの拡張の実装は以下の3段階で行う戦略がとられた。
第一に物理レベルで拡張(システム当たりのメモリ搭載量を増やす)
次にオペレーティングシステムレベルで拡張(システムソフトウェアが複数のアドレス空間にアクセスし、より大きなアドレス空間を利用可能とする)
最後にアプリケーションレベルで拡張(新しいアプリケーションがより大きなアドレス空間にアクセス可能とする)
System/360 の命令セット中核部は 24ビット論理アドレスのままとされたため、この第三のステップは「現状」の明らかな打破を要求した。既存のアセンブリ言語 アプリケーションはもちろん書き換えない限り移行できないし、アセンブラでないアプリケーションも新たなコンパイラを使わないと対応できない。このため、高性能な31ビットの環境で24ビットアプリケーションを動作させる状況がしばらく続いたユーザーが多かった。
31ビットと32ビット
IBM が 32ビット ではなく 31ビット を選んだ理由はいくつかある。System/360 Model 67 は完全な 32ビットアドレッシングモードを持っていたが、この機能は System/370 には反映されず、当初は 24ビットとなった。System/370-XA でアドレス空間を 31ビットとしたのには、以下のような理由があった。
最上位ビットを "control or escape bit" として残したいという意見があった[ 5]
32ビットアドレスと引数を符号付数値として扱う2つの命令(BXH と BXLE)の相互作用の問題(また、このために System/360 Model 67 での TSS でも 31ビットアドレッシングが使われた)。[ 6]
システム設計段階で、System/360 Model 67 を使っていた主なサイトから 31ビットにすべきという意見があった。[ 7]
モデル
下表では System/370 の主なシリーズと機種をまとめている。アーキテクチャ欄で各シリーズの主要アーキテクチャを示している。多くの機種で複数のアーキテクチャがサポートされていた。例えば 308x は当初 System/370 アーキテクチャとして出荷されたが、後に XA も提供された。4381 などの多くのプロセッサで、マイクロプログラムの置き換えが可能となっており、ユーザーがアーキテクチャを選択可能になっていた。
以下で "System/370-compatible" という用語が出てくるのは、IBM の文書がこの用語を使っているためである。IBM 以外では、この用語はアムダール や日立製作所 などのIBM以外の System/370互換機を指すのが一般的である。
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 はコンピュータ・アーキテクチャ 仕様であり[ 10] 、System/360 アーキテクチャとの互換性 を保った改良版であり[ 11] [ 12] 、多くの点で共通している。アーキテクチャには、あらゆる実装で使用可能な必須インタフェースと常に実装されるとは限らないオプションインタフェースから構成される。
アーキテクチャ上の主な特徴は次の通り。
プロセッサ(1個以上)
汎用レジスタ 16本
制御レジスタ 16本
ステータスレジスタ (PSW; program status word) では、以下のような情報が示される
割り込み マスク
特権状態
条件コード
命令アドレス(プログラムカウンタ)
タイミング機能(カレンダクロック、インターバルタイマ、CPUタイマ、クロック比較器)
割り込み機構: マスク可割り込みとマスク不可割り込み、クラス分けされている。
命令セット : 各命令の完全な説明とプログラム割り込みと呼ばれる例外時の動作も定義されている。
主記憶装置
1バイトは8ビット
特殊なプロセッサ通信領域がアドレス0にある。
キーによるメモリ保護機能
手動制御操作により、以下のことが可能
ブート プロセス(Initial Program Load、IPL)
オペレータによる割り込み
システムのリセット
基本デバッグ 機能
システム状態(メモリとプロセッサ)を表示して手動変更可能
入出力機構: 周辺機器そのものを記述しているわけではない。
主なオプション機能は以下の通り。
Dynamic Address Translation(動的アドレス変換)機構により仮想記憶 システムを実装可能
浮動小数点 命令
インタフェース仕様は拡張可能であるため、初期のインタフェースに影響を与えることなく新たなインタフェースを追加可能である。そのような例として次の拡張があった。
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 で非互換になっている。このため、オペレーティングシステム (デバイスドライバ 相当部分)は移植が必要であった。
オペレーティングシステム
System/370の仮想記憶をサポートするオペレーティングシステムには、小規模向けの DOS/VS (後のDOS/VSE、現在のz/VSE)、大規模向けの OS/VS(後の OS/VS1、OS/VS2、MVS、OS/390、現在のz/OS)、仮想化OSのVM/370などが使用できた。
またGNUコンパイラコレクション には System/370 向けのバックエンドがあったが、更新されることなく最後には System/390 用バックエンドに置換された。System/370 と System/390 の命令セットは基本的には同じで System/360 以来の一貫性を保持しているが、gcc における古いシステムのサポートは重視されなかった。現在サポートされているのは、System/390 Generation 5 (G5) の全命令セットをサポートしたマシンであり、そのハードウェアプラットフォームで Linux/390 がリリースされた。
後継
System/370 は1990年代 に System/390 に置き換えられた。ただし、当初はマーケティングのための製品ラインの改称でしかなかった。2000年、zSeries が後継として登場。zSeries では64ビット のアーキテクチャが導入されており、31ビット化以来の大きな変化となった。アーキテクチャ的にも命令セット的にも System/360 からの互換性は基本的に保たれている。
その他
System/360では設計責任者をつとめたジーン・アムダール はSystem/370の設計の際に新技術の導入について積極案を主張したが、既にSystem/360が大成功して多数の顧客で稼働中のため互換性を重視する経営層により却下された。そのためアムダールは1970年にIBMを退社、アムダール 社を設立した。アムダールはIBMに対してプラグコンパチブル(互換機 を参照)で、かつIBMより「小回りの利く」開発体制が可能にする新技術の採用による高性能を実現し、IBMに戦いを挑んだ。初号モデルの470V/6の開発は難航したが、提携した富士通 からの支援もあって無事完成、出荷(1975年)され、その後は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の命令が実行できるシステムも出現した。
脚注
^ Pugh, E.W.; L.R. Johnson, John H. Palmer. IBM's 360 and early 370 systems . MIT Press. ISBN 0-262-16123-0
^ “Information technology industry timeline, 1964-1974 ”. 2008年2月26日 閲覧。
^ Varian, op. cit., p. 29 – security over delivery of relocating 145 to CSC
^ A. Padegs (1981年9月). “System/360 and Beyond”. IBM Journal of Research & Development (IBM) 25 (5): 377–390. [オンライン版はwww.research.ibm.com – Table 1 として機種一覧表、Table 2 として発表日の表がある。S/370-155-II と -165-II は前者にはあるが後者にはない。つまり、これらの改良版機種は正式には発表されなかったと推測される。"System/370 Advanced Function" の発表では、-158 と -168 の発表も重要な項目であった。
^ A. Padegs (1983年5月). “System/370 Extended Architecture: design considerations”. IBM Journal of Research & Development (IBM) 27 (3): 198-205. [オンライン版はwww.research.ibm.com – 特に201ページからの "31-bit addressing" を参照。
^ 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
^ Varian, op. cit., pp. 8-9, note 21; includes other comments about the "Inner Six" 360-67 design disclosees
^ “IBM timeline of S/370 series ”. 2008年2月26日 閲覧。 3xxx と 4xxx シリーズに 'System/370-compatible' という用語が使われている
^ “IBM 9370 announcement letter ”. 2014年1月14日 閲覧。 9370 が System/370 compatible system に分類されている理由が説明されている。
^ GA22-7000: System/370 principles of operation
^ A22-6821: System/360 principles of operation
^ GA22-7000-4: System/370 principles of operation, p. 9, chapter 1 – describes philosophy of evolution from S/360 to S/370
関連項目
外部リンク
IBMメインフレーム
年
シリーズ名
アーキテクチャ
主なモデル
主なOS
主な特徴
1952
701シリーズ
-
701 , 704 , 709 , 7090 , 7040 , 7094
-
科学技術計算用、真空管 /トランジスタ
1953
702シリーズ
-
702 , 705 , 7080
-
真空管 /トランジスタ
1953
650シリーズ
-
650 , 7070 , 7074 , 7072
-
科学技術計算用、真空管 /トランジスタ
1959
1401シリーズ
-
1401 , 1410 , 1440 , 7010 , 1460
-
商用計算用、オールトランジスタ
1961
その他
-
305(RAMAC) , 7030(Stretch)
-
ディスク装置 (RAMAC)、マルチタスク (Stretch)
1964
System/360
S/360
20 - 195
OS/360 , DOS/360, CP-67/CMS
汎用機 、アーキテクチャ 、IC 、24ビット アドレッシング、仮想機械
1970
System/370
S/370
115 - 195
OS/VS(MVS) , DOS/VS, VM/370
仮想記憶 、マルチプロセッサ 、PPAR
1977
30x0, 4300 , 9370
S/370, S/370-XA
303x/308x/3090, 43x1, 937x
MVS/XA, DOS/VSE, VM/XA
31ビット アドレッシング・動的チャネルサブシステム(S/370-XA)
1990
ES/9000
S/390 , ESA/390
9021, 9121, 9221
MVS/ESA, VSE/ESA, VM/ESA, AIX/ESA
64ビット データ空間、拡張ストレージ(ES)、LPAR 、ESCON 、FICON
1994
S/390
ESA/390
9672/9674(G1 - G6), IBM Multiprise 2000/3000
OS/390 , VSE/ESA, VM/ESA, Linux
CMOS , 並列シスプレックス , UNIX 互換環境(OS/390 USS)、Linuxサポート
2000
eServer zSeries
z/Architecture
z800/z900, z890/z990
z/OS , z/VSE , z/VM , Linux
64ビット アドレッシング、IFL、zAAP、zIIP、IPv6
2005
System z
z/Architecture
z9, z10
z/OS , z/VSE , z/VM , Linux
IRD
2010
zEnterprise
z/Architecture
z114/z196, z12
z/OS , z/VSE , z/VM , Linux
ブレード拡張(POWER , x86 )
2015
z System
z/Architecture
z13, LinuxOne
(z13)z/OS , z/VSE , z/VM , Linux (LinuxOne) Linux, z/VM
2017
IBM Z
z/Architecture
z14, LinuxOne II
(z14)z/OS , z/VSE , z/VM , Linux (LinuxOne) Linux, z/VM
暗号化 、zHyperLink
2019
IBM Z
z/Architecture
z15, LinuxOne III
(z15)z/OS , z/VSE , z/VM , Linux (LinuxOne) Linux, z/VM
全方位型暗号化技術、Data Privacy Passports、OpenShift
2022
IBM Z
z/Architecture
z16
(z16)z/OS , z/VSE , z/VM , Linux
IBM Telum プロセッサー、オンチップのAIアクセラレーター、耐量子暗号