プログラム・ステータス・ワード[a] ( PSW ) は、ステータス・レジスタやプログラム・カウンタの機能、場合によってはそれ以上の機能を果たすレジスタです。この用語は、ストレージ内のPSWのコピーにも適用されます。この記事では、IBM System/360 およびその後継機種のPSWについてのみ説明し、左端(最上位)ビットを0としてビット番号を付けるIBMの規則に従います。
PSW 内の特定のフィールドは非特権命令を使用してテストまたは設定できますが、残りのフィールドのテストまたは設定は特権命令を使用してのみ実行できます。
PSWには、ゼロ、正、負、オーバーフロー、および他のアーキテクチャのステータスレジスタの同様のフラグを表す2ビットの条件コードが含まれています。条件分岐命令は、この4ビット値としてエンコードされた条件コードをテストします。各ビットは、2 3 + 2 2 + 2 1 + 2 0の4つの条件コード値のいずれかのテストを表します。(IBMはビッグエンディアンのビット番号付けを使用しているため、マスク値8はコード0、マスク値4はコード1、マスク値2はコード2、マスク値1はコード3を選択します。)
64ビットPSWは(とりわけ)以下を記述します。
アーキテクチャの初期のインスタンス (System/360 および初期の System/370) では、命令アドレスは 24 [b]ビットでした。後期のインスタンス (XA/370) では、命令アドレスは 31 ビット + モード ビット (0 の場合は 24 ビット アドレッシング モード、1 の場合は 31 ビット アドレッシング モード) で、合計 32 ビットでした。
現在のアーキテクチャ ( z/Architecture ) のインスタンスでは、命令アドレスは 64 ビット、PSW 自体は 128 ビットです。
PSWはLOAD PSW命令(LPSWまたはLPSWE)によってロードできます。PSWの内容は、Extract PSW命令(EPSW)によって調べることができます。
S/360
360/20を除くすべての機種において、[c] PSWは以下の形式を持ちます。S/360拡張PSW形式は、制御レジスタ6のビット8がセットされた360/67にのみ適用されます。
IBM S/360 PSW フォーマットS/360標準PSW
| | システムマスク | 鍵 | あ | M | W | P | 割り込みコード | | | 0 | | | | | | | 7 | 8 | | | 11 | 12 | 13 | 14 | 15 | 16 | | | | | | | | | | | | | | | 31 | |
| | ILC | CC | プログラム マスク | 命令アドレス | | 32 | 33 | 34 | 35 | 36 | | | 39 | 40 | | | | | | | | | | | | | | | | | | | | | | | 63 | | S/360 標準 PSW 略語| ビット | 分野 | 意味 |
|---|
| 0-7 | SM | システムマスク| 少し | 意味 |
|---|
| 0 | チャネル0マスク | | 1 | チャンネル1マスク | | 2 | チャンネル2マスク | | 3 | チャンネル3マスク | | 4 | チャンネル4マスク | | 5 | チャンネル5マスク | | 6 | チャンネル6マスク | | 7 | 外部マスク | | | 8-11 | 鍵 | PSWキー | | 12 | あ | アスキー | | 13 | M | 機械検査用マスク | | 14 | W | 待機状態 | | 15 | P | 問題の状態 | | 16-31 | IC | 割り込みコード | | 32-33 | ILC | 命令長コード | | 34-35 | CC | 条件コード | | 36~39 | 首相 | プログラムマスク| 少し | 意味 |
|---|
| 36 | 固定小数点オーバーフロー | | 37 | 小数オーバーフロー | | 38 | 指数アンダーフロー | | 39 | 意義 | | | 40~63歳 | IA | 命令アドレス | | |
S/360拡張PSW [15]
| | スペア | 24/32 ビット モード | トランジション コントロール | I/O マスク | 外部 マスク | 鍵 | あ | M | W | P | ILC | CC | プログラム マスク | スペア | | | 0 | | | 3 | 4 | 5 | 6 | 7 | 8 | | | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | | | 23 | 24 | | | | | | | 31 | |
| | 命令アドレス | | 32 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 63 | | S/360 拡張 PSW 略語| ビット | 分野 | 意味 |
|---|
| 0-3 | | スペア(0である必要があります) | | 4 | | 24/32ビットアドレスモード | | 5 | | 翻訳制御 | | 6 | IO | I/Oマスク(概要) | | 7 | 元 | 外部マスク(概要) | | 8-11 | 鍵 | 保護キー | | 12 | あ | アスキー | | 13 | M | 機械検査用マスク | | 14 | W | 待機状態 | | 15 | P | 問題の状態 | | 16-17 | ILC | 命令長コード | | 18-19 | CC | 条件コード | | 20-23 | 首相 | プログラムマスク| 少し | 意味 |
|---|
| 20 | 固定小数点オーバーフロー | | 21 | 小数オーバーフロー | | 22 | 指数アンダーフロー | | 23 | 意義 | | | 24-31 | | スペア | | 32-63 | IA | 命令アドレス | | |
S/370
IBM S/370 PSW フォーマットS/370基本制御モードPSW
| | チャン・ マスク | 私 O | 元 | 鍵 | 0 | M | W | P | 割り込みコード | | | 0 | 1 | 2 | | 4 | 5 | 6 | 7 | 8 | | | 11 | 12 | 13 | 14 | 15 | 16 | | | | | | | | | | | | | | | 31 | |
| | ILC | CC | プログラム マスク | 命令アドレス | | 32 | 33 | 34 | 35 | 36 | | | 39 | 40 | | | | | | | | | | | | | | | | | | | | | | | 63 | | S/370 BCモードPSW略語| ビット | 分野 | 意味 |
|---|
| 0-5 | | チャネル0~5のチャネルマスク | | 6 | IO | チャネル5以上のI/Oマスク | | 7 | 元 | 外部マスク | | 8-11 | 鍵 | PSWキー | | 12 | E=0 | 基本制御モード | | 13 | M | 機械検査用マスク | | 14 | W | 待機状態 | | 15 | P | 問題の状態 | | 16-31 | IC | 割り込みコード | | 32-33 | ILC | 命令長コード | | 34-35 | CC | 条件コード | | 36~39 | 首相 | プログラムマスク| 少し | 意味 |
|---|
| 36 | 固定小数点オーバーフロー | | 37 | 小数オーバーフロー | | 38 | 指数アンダーフロー | | 39 | 意義 | | | 40~63歳 | IA | 命令アドレス | | |
S/370拡張制御モードPSW
| | 0 | R | 0 | 0 | 0 | T | 私 O | 元 | 鍵 | 1 | M | W | P | S | 0 | CC | プログラム マスク | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | | 0 | 1 | 2 | | 4 | 5 | 6 | 7 | 8 | | | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | | | 23 | 24 | | | | | | | 31 | |
| | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 命令アドレス | | 32 | | | | | | | 39 | 40 | | | | | | | | | | | | | | | | | | | | | | | 63 | | S/370 ECモードPSW略語| ビット | 分野 | 意味 |
|---|
| 1 | R | マスク1枚あたり | | 5 | T | DATモード | | 6 | IO | I/Oマスク; CR2のチャネルマスクに従う | | 7 | 元 | 外部マスク; CR0の外部サブクラスマスクの対象 | | 8-11 | 鍵 | PSWキー | | 12 | E=1 | 拡張制御モード | | 13 | M | 機械検査用マスク | | 14 | W | 待機状態 | | 15 | P | 問題の状態 | | 16 | S | アドレス空間制御 0=プライマリ空間モード 1=セカンダリ空間モード | | 18-19 | CC | 条件コード | | 20-23 | 首相 | プログラムマスク| 少し | 意味 |
|---|
| 20 | 固定小数点オーバーフロー | | 21 | 小数オーバーフロー | | 22 | 指数アンダーフロー | | 23 | 意義 | | | 40~63歳 | IA | 命令アドレス | | |
S/370 拡張アーキテクチャ (S/370-XA)
IBM 拡張アーキテクチャ (XA) PSW 形式拡張アーキテクチャ拡張制御モードPSW
| | 0 | R | 0 | 0 | 0 | T | 私 O | 元 | 鍵 | 1 | M | W | P | S | 0 | CC | プログラム マスク | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | | 0 | 1 | 2 | | 4 | 5 | 6 | 7 | 8 | | | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | | | 23 | 24 | | | | | | | 31 | |
| | あ | 命令アドレス | | 32 | 33 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 63 | | S/370-XA ECモードPSW略語| ビット | 分野 | 意味 |
|---|
| 1 | R | マスク1枚あたり | | 5 | T | DATモード | | 6 | IO | I/Oマスク; CR2のチャネルマスクに従う | | 7 | 元 | 外部マスク; CR0の外部サブクラスマスクの対象 | | 8-11 | 鍵 | PSWキー | | 12 | E=1 | 拡張制御モード | | 13 | M | 機械検査用マスク | | 14 | W | 待機状態 | | 15 | P | 問題の状態 | | 16 | S | アドレス空間制御 0=プライマリ空間モード 1=セカンダリ空間モード | | 18-19 | CC | 条件コード | | 20-23 | 首相 | プログラムマスク| 少し | 意味 |
|---|
| 20 | 固定小数点オーバーフロー | | 21 | 小数オーバーフロー | | 22 | 指数アンダーフロー | | 23 | 意義 | | | 32 | あ | アドレッシングモード 0=24ビット; 1=31ビット | | 33-63 | IA | 命令アドレス | | |
エンタープライズ システム アーキテクチャ (ESA)
IBM エンタープライズ システム アーキテクチャー (ESA) PSW 形式エンタープライズシステムアーキテクチャ拡張制御モードPSW [ 22
| | 0 | R | 0 | 0 | 0 | T | 私 O | 元 | 鍵 | 1 | M | W | P | として | CC | プログラム マスク | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | | 0 | 1 | 2 | | 4 | 5 | 6 | 7 | 8 | | | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | | | 23 | 24 | | | | | | | 31 | |
| | あ | 命令アドレス | | 32 | 33 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 63 | | ESA ECモードPSW略語| ビット | 分野 | 意味 |
|---|
| 1 | R | マスク1枚あたり | | 5 | T | DATモード | | 6 | IO | I/Oマスク; CR2のチャネルマスクに従う | | 7 | 元 | 外部マスク; CR0の外部サブクラスマスクの対象 | | 8-11 | 鍵 | PSWキー | | 12 | E=1 | 拡張制御モード | | 13 | M | 機械検査用マスク | | 14 | W | 待機状態 | | 15 | P | 問題の状態 | | 16-17 | として | アドレス空間制御 00=プライマリ空間モード 01=アクセスレジスタモード 10=セカンダリ空間モード 11=ホーム空間モード | | 18-19 | CC | 条件コード | | 20-23 | 首相 | プログラムマスク| 少し | 意味 |
|---|
| 20 | 固定小数点オーバーフロー | | 21 | 小数オーバーフロー | | 22 | 指数アンダーフロー[d] | | 23 | 意義[e] | | | 32 | あ | アドレッシングモード 0=24ビット; 1=31ビット | | 33-63 | IA | 命令アドレス | | |
z/アーキテクチャ
IBM z/Architecture PSW フォーマットz/Architecture ロングPSW
| | 0 | R | 0 | 0 | 0 | T | 私 O | 元 | 鍵 | 0 | M | W | P | として | CC | プログラム マスク | R I | 0 | 0 | 0 | 0 | 0 | 0 | EA | | | 0 | 1 | 2 | | 4 | 5 | 6 | 7 | 8 | | | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | | | 23 | 24 | | | | | | 30 | 31 | |
| | B A | 0 | | | 32 | 33 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 63 | |
| | 命令アドレス | | | 64 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 95 | |
| | 命令アドレス(続き) | | | 96 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 127 | | 長いPSW略語| ビット | 分野 | 意味 |
|---|
| 1 | R | マスク1枚あたり | | 5 | T | DATモード | | 6 | IO | I/Oマスク | | 7 | 元 | 外部マスク | | 8-11 | 鍵 | PSWキー | | 12 | E=0 | LPSWEの場合はゼロでなければなりません | | 13 | M | 機械検査用マスク | | 14 | W | 待機状態 | | 15 | P | 問題の状態 | | 16-17 | として | アドレス空間制御 00=プライマリ空間モード 01=アクセスレジスタモード 10=セカンダリ空間モード 11=ホーム空間モード | | 18-19 | CC | 条件コード | | 20-23 | 首相 | プログラムマスク| 少し | 意味 |
|---|
| 20 | 固定小数点オーバーフロー | | 21 | 小数オーバーフロー | | 22 | HFP指数アンダーフロー | | 23 | HFPの重要性 | | | 24 | RI | IBM専用 | | 31 | EA | 拡張アドレス指定モード 0 = 下記の BA で定義; 1 = 64 ビット、BA は 0 でなければならない | | 32 | 学士 | 基本アドレス指定モード 0=24または64; 1=31 | | 64-127 | IA | 命令アドレス | | |
|
z/ArchitectureショートPSW
| | 0 | R | 0 | 0 | 0 | T | 私 O | 元 | 鍵 | 1 | M | W | P | として | CC | プログラム マスク | R I | 0 | 0 | 0 | 0 | 0 | 0 | EA | | | 0 | 1 | 2 | | 4 | 5 | 6 | 7 | 8 | | | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | | | 23 | 24 | 25 | | | | | 30 | 31 | |
| | B A | 命令アドレス | | 32 | 33 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 63 | | PSWの略語| ビット | 分野 | 意味 |
|---|
| 1 | R | マスク1枚あたり | | 5 | T | DATモード | | 6 | IO | I/Oマスク | | 7 | 元 | 外部マスク | | 8-11 | 鍵 | PSWキー | | 12 | E=1 | LPSWの場合は1つである必要があります | | 13 | M | 機械検査用マスク | | 14 | W | 待機状態 | | 15 | P | 問題の状態 | | 16-17 | として | アドレス空間制御 00=プライマリ空間モード 01=アクセスレジスタモード 10=セカンダリ空間モード 11=ホーム空間モード | | 18-19 | CC | 条件コード | | 20-23 | 首相 | プログラムマスク| 少し | 意味 |
|---|
| 20 | 固定小数点オーバーフロー | | 21 | 小数オーバーフロー | | 22 | HFP指数アンダーフロー | | 23 | HFPの重要性 | | | 24 | RI | IBM専用 | | 31 | EA | 拡張アドレス指定モード 0 = 下記の BA で定義; 1 = 64 ビット、BA は 0 でなければならない | | 32 | 学士 | 基本アドレス指定モード 0=24または64; 1=31 | | 33-63 | IA | 命令アドレス | | |
注記
- ^ 命名法はアーキテクチャによって異なります。
- ^ しかし、拡張動的アドレス変換
機能を備えた360/67 では、拡張PSWモード(制御レジスタ6、ビット8 )のPSW [9]のビット4によって32ビットモードが選択されます。
- ^ 名前にもかかわらず、350/20 は S/360 アーキテクチャに準拠していません。
- ^ ESA/390ではビット22はHFP指数アンダーフローとして名前が変更されました。
- ^ ビット23はESA/390ではHFP重要度として名前が変更されました
参考文献
- ^ func67、p. 15、命令のフェッチと実行。
- ^ func67、pp. 15–16、命令フェッチと実行。
- S360
- IBM System/360 動作原理(PDF) (第8版)。IBM。1968年9月。A22-6821-7。
- 関数67
- IBM System/360 モデル67 機能特性(PDF) (第3版). IBM. 1972年2月. GA27-2719-2.
- S370
- IBM System/370 動作原理(PDF) (第11版). IBM. 1987年9月. A22-7000-10.
- S370-XA
- IBM System/370 拡張アーキテクチャの動作原理(PDF) (第2版)。IBM。1987年1月。SA22-7085-1。
- S370-ESA
- IBM Enterprise Systems Architecture/370 Principles of Operation (PDF) (初版). IBM. 1988年8月. SA22-7200-0.
- z
- z/Architecture 動作原理(PDF) (第14版). IBM. 2022年5月. SA22-7832-13.