System/370
System/370 はコンピュータ・アーキテクチャ仕様であり、System/360 アーキテクチャとの互換性を保った改良版であり、多くの点で共通している。アーキテクチャには、あらゆる実装で使用可能な必須インタフェースと常に実装されるとは限らないオプションインタフェースから構成される。
アーキテクチャ上の主な特徴は次の通り。
プロセッサ(1個以上) 汎用レジスタ 16本 制御レジスタ 16本 ステータスレジスタ (PSW; program status word) では、以下のような情報が示される 割り込みマスク 特権状態 条件コード 命令アドレス(プログラムカウンタ) タイミング機能(カレンダクロック、インターバルタイマ、CPUタイマ、クロック比較器) 割り込み機構: マスク可割り込みとマスク不可割り込み、クラス分けされている。 命令セット: 各命令の完全な説明とプログラム割り込みと呼ばれる例外時の動作も定義されている。
主記憶装置 1バイトは8ビット 特殊なプロセッサ通信領域がアドレス0にある。 キーによるメモリ保護機能
手動制御操作により、以下のことが可能 ブートプロセス(Initial Program Load、IPL) オペレータによる割り込み システムのリセット 基本デバッグ機能 システム状態(メモリとプロセッサ)を表示して手動変更可能
入出力機構: 周辺機器そのものを記述しているわけではない。
主なオプション機能は以下の通り。
Dynamic Address Translation(動的アドレス変換)機構により仮想記憶システムを実装可能
浮動小数点命令
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の命令が実行できるシステムも出現した。
インタフェース仕様は拡張可能であるため、初期のインタフェースに影響を与えることなく新たなインタフェースを追加可能である。そのような例として次の拡張があった。
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 で非互換になっている。このため、オペレーティングシステム(デバイスドライバ相当部分)は移植が必要であった。