| デザイナー | IBM |
|---|---|
| ビット | 64ビット |
| 紹介された | 2000 (2000年) |
| バージョン | ARCHLVL 2およびARCHLVL 3(2008) |
| デザイン | CISC |
| タイプ | レジスター - レジスターレジスター - メモリメモリ - メモリ |
| エンコーディング | 変数(2、4、または6バイト長) |
| 分岐 | 条件コード、インデックス、カウント |
| エンディアン | 大きい |
| 前任者 | ESA/390 |
| レジスター | |
| アクセス 16×32、ブレークイベントアドレスレジスタ(BEAR)64ビット、制御 16×64、浮動小数点制御 32ビット、プレフィックス 64ビット、PSW 128ビット | |
| 汎用 | 16×64ビット |
| 浮動小数点 | 16×64ビット(16進数とIEEEバイナリ; IBM System z9以降はIEEE10進数) |
| ベクター | 32×128ビット、VR0~VR15にはFPR0~FPR15が含まれる |
| IBMメインフレームの歴史、1952年から現在 |
|---|
| 市場名 |
| 建築 |
z/Architecture は、当初ESA Modal Extensions ( ESAME ) と略称され、IBMの64ビット複合命令セットコンピュータ(CISC)命令セットアーキテクチャーであり、同社のメインフレームコンピュータに実装されています。IBMは2000年後半に最初の z/Architecture ベースのシステムであるz900 を発表しました。 [ 1 ]その後の z/Architecture システムには、IBM z800、z990、z890、System z9、System z10、zEnterprise 196、zEnterprise 114、zEC12、zBC12、z13、z14、z15、z16、z17などがあります。
z/Architectureは、従来の32ビット・データ/31ビット・アドレッシング・アーキテクチャーESA/390、および32ビット・データ/24ビット・アドレッシング・アーキテクチャーSystem/360までの先行製品との後方互換性を維持しています。IBM z13は、ESA/390アーキテクチャー・モードでのオペレーティング・システムの実行をサポートする最後のz Systemsサーバーです。[ 2 ]ただし、元々ESA/390アーキテクチャーで動作するように作成された24ビットおよび31ビットの問題状態アプリケーション・プログラムは、この変更の影響を受けません。
特徴
このセクションは拡張が必要です。不足している情報を追加していただければ幸いです。 (2024年6月) |
z/ArchitectureにはESA/390のほぼすべての機能[ a ]が含まれており、さらにいくつかの新機能が追加されています。z /Architectureの 機能[ b ]には以下のものがあります。
- S/370-XAで導入されたアーキテクチャを備えたチャネルサブシステム
- ESA/390で導入された16ビット符号付きハーフワードオフセットを持つ分岐相対命令
- 32ビット符号付きハーフワードオフセットを持つ相対ロング命令
- トリモーダル(24/31/64ビット)アドレス
- ESA/370で導入された16個の32ビットアクセスレジスタ(AR)
- 16 個の 64 ビット汎用レジスタ (GR)、古いアーキテクチャでは 32 ビット
- System/370で32ビットとして導入された16個の64ビット制御レジスタ(CR)
- 16個の64ビット浮動小数点レジスタ(FPR)
- 32個の128ビットベクトルレジスタ(VR); VR0~VR15のビット0~63にはFPR0~FPR15が格納される
- 1 32ビット浮動小数点制御(FPC)レジスタ
- 1 128ビットのプログラムステータスワード[ c ](PSW)には64ビットの命令アドレスが含まれます。
- 8 KiB のプレフィックス ストレージ領域 (PSA)
- 暗号化機能
- ESA/390 で追加されたIEEE 2進浮動小数点命令
- IEEE 10進浮動小数点命令
各機能がいつ導入されたかについては、「動作原理」を参照してください。[ 3 ] [ 5 ]
延長即時融資
拡張即値機能は、32 ビットの符号付きおよび符号なし即値オペランドを持つ命令、左端の検索命令、およびその他のロード命令 (ロードおよびテスト、バイトのロード、論理文字のロードなど) を追加します。
一般指示拡張機能
汎用命令拡張機能は、以下の30の命令を追加します。
- 比較と分岐命令
- 比較とトラップの命令
- ロード命令、例:ロードとテスト(LT)
- 店舗の指示
高級施設
上位ワード機能は、64 ビット汎用レジスタの上位ワードを操作する命令を提供します。
長距離移動施設
ロング ディスプレイスメント機能は、20 ビットの符号付きディスプレイスメントを持つ命令 (例: LAY) を追加します。
その他の命令拡張機能 1
その他の命令拡張機能1は、
- 論理とトラップの比較(CLT と CLGT)
- 選択したビットを回転して挿入する (RISBGN)
その他の命令拡張機能 2
その他の命令拡張機能2は、
- 条件による間接分岐(BIC)
- 新しい加算、乗算、減算命令
その他の命令拡張機能 3
その他の命令拡張機能 3
- 補体(NCRK、NCGRK)
- 右から左へ移動(MVCRL)
- いいえ、そして(NNRK、NNGRK)
- 排他的論理和ではない (NXRK, NXGRK)
- いいえまたは(NORK、NOGRK)
- または補語(OCRK、OCGRK)
- 選択 (SELR、SELGR)
- 高を選択(SELFHR)
ベクター施設
このセクションの事実関係の正確性には疑問があります。関連する議論は(2025年7月) |
z13では、「ベクター機能」と呼ばれる128ビットのパックドSIMD機能が導入されました。 [ d ]これは、z/Architecture Principles of Operationの第11版で初めて文書化されました。[ 6 ]ベクターレジスタが32個追加され、それぞれ128ビット幅です。既存の16個の浮動小数点レジスタは、新しいベクターレジスタにオーバーレイされます。新しいアーキテクチャでは、整数、浮動小数点、文字列データ型を含むベクターレジスタ内のデータを操作するための150以上の新しい命令が追加されています。z13の実装には、ベクターデータを操作するための2つの独立したSIMDユニットが含まれています。 [ 7 ] IBM 3090で初めて導入され、 ES/9000でもサポートされていた古いベクタープロセッサ機能は、z/Architectureではサポートされていません。[ 8 ]
ニューラルネットワーク処理支援機能
z16ではニューラルネットワーク処理支援機能[ 9 ] [ 10 ]が導入され、モデル依存のデータ型に対する演算を実行する複数の命令が導入されました。z16では、これは16ビットのNNPデータタイプ1形式です。
新しい命令には、AI およびニューラル ネットワーク アプリケーションに役立つテンソル演算が含まれています。
レジスター
このセクションは拡張が必要です。不足している情報を追加していただければ幸いです。 (2024年7月) |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
各プロセッサにはこれらのレジスタがある
- アクセスレジスタ
- ブレーキングイベントアドレスレジスタ(BEAR)
- 制御レジスタ
- 浮動小数点制御(FPC)レジスタ
- 浮動小数点レジスタ
- 一般レジスター
- プレフィックスレジスタ
- プログラムステータスワード(PSW)
- ベクトルレジスタ
アクセスレジスタ
各CPUには16個の32ビットアクセスレジスタがある。[ 11 ] [ 17 ] ARモードで実行されているプログラムがレジスタ1~15をベースレジスタまたはアドレスを含むレジスタオペランドとして指定すると、CPUはアドレス変換中に関連付けられたアクセスレジスタを使用する。
ブレーキングイベントアドレスレジスタ(BEAR)
64ビットのBEAR [ 12 ] [ 18 ]には、命令の連続実行を中断した最後の命令のアドレスが格納されます。割り込みが発生すると、BEARは実アドレス272(110 16)のダブルワードに格納されます。分岐命令の実行後、BEARには分岐命令のアドレスではなく、実行命令のアドレスが格納されます。
制御レジスタ
16個の64ビット制御レジスタは、PSWに含まれる情報を除き、CPUの制御と状態を提供します。これらは、IBM S/390プロセッサに搭載されていた旧ESA/390の制御レジスタを進化させたものです。特定の機能に依存するフィールドの詳細については、「Principles of Operation」を参照してください。[ 19 ] z/Architectureでは制御レジスタが32ビットから64ビットに拡張されているため、ビット番号の割り当てはESA/390とは異なります。
| CR | ビット | 分野 |
|---|---|---|
| 0 | 8 | トランザクション実行制御 |
| 0 | 9 | トランザクション実行プログラム割り込みフィルタリングオーバーライド |
| 0 | 10 | クロックコンパレータの符号制御 |
| 0 | 13 | 暗号カウンタ制御 |
| 0 | 14 | プロセッサアクティビティ計測拡張制御 |
| 0 | 15 | 測定カウンタ抽出認証制御 |
| 0 | 30 | 警告トラックサブクラスマスク |
| 0 | 32 | TRACE TODクロック制御 |
| 0 | 33 | SSM抑制 |
| 0 | 34 | TODクロック同期制御 |
| 0 | 35 | 低アドレス保護制御 |
| 0 | 36 | 抽出権限の制御 |
| 0 | 37 | 二次空間制御 |
| 0 | 38 | フェッチ保護オーバーライド制御 |
| 0 | 39 | ストレージ保護オーバーライド制御 |
| 0 | 40 | 拡張DAT有効化制御 |
| 0 | 43 | 命令実行保護有効化制御 |
| 0 | 44 | ASNおよびLX再利用制御 |
| 0 | 45 | AFPレジスタ制御 |
| 0 | 46 | ベクトル有効化制御 |
| 0 | 48 | 故障警告サブクラスマスク |
| 0 | 48 | 故障警告サブクラスマスク |
| 0 | 49 | 緊急信号サブクラスマスク |
| 0 | 50 | 外部呼び出しサブクラスマスク |
| 0 | 52 | クロックコンパレータサブクラスマスク |
| 0 | 53 | CPUタイマーサブクラスマスク |
| 0 | 54 | サービス信号サブクラスマスク |
| 0 | 56 | 1に初期化 |
| 0 | 57 | 割り込みキーサブクラスマスク |
| 0 | 58 | 測定アラートサブクラスマスク |
| 0 | 59 | タイミングアラートサブクラスマスク |
| 0 | 61 | 暗号制御 |
| 1 | 0~51 | プライマリアドレス空間制御要素 (ASCE)プライマリ領域テーブルオリジンプライマリセグメントテーブルオリジンプライマリ実空間トークンオリジン |
| 1 | 54 | 一次部分空間群制御 |
| 1 | 55 | プライベートスペースの主な制御 |
| 1 | 56 | プライマリストレージの変更イベント |
| 1 | 57 | プライマリスペーススイッチイベント制御 |
| 1 | 58 | プライマリリアルスペースコントロール |
| 1 | 60~61ページ | 一次指定型制御 |
| 1 | 62~63 | プライマリテーブルの長さ |
| 2 | 33~57 | ディスパッチ可能ユニット制御テーブルの起源 |
| 2 | 59 | 保護された保管施設の有効化制御 |
| 2 | 61 | トランザクション診断範囲 |
| 2 | 62~63 | トランザクション診断制御 |
| 3 | 0~31 | セカンダリ ASN 第 2 テーブルエントリ インスタンス番号 |
| 3 | 32~47 | PSWキーマスク |
| 3 | 48~63 | セカンダリASN |
| 4 | 0~31 | プライマリASN第2テーブルエントリインスタンス番号 |
| 4 | 32~47 | 承認インデックス |
| 4 | 48~63 | プライマリASN |
| 5 | 33~57 | プライマリASN第2テーブルエントリの起源 |
| 6 | 32~39 | I/O割り込みサブクラスマスク |
| 7 | 0~51 | セカンダリアドレス空間制御要素 (ASCE)セカンダリ領域テーブル起点セカンダリセグメントテーブル起点セカンダリ実空間トークン起点 |
| 7 | 54 | 二次部分空間群制御 |
| 7 | 55 | 二次的なプライベートスペース制御 |
| 7 | 56 | 二次ストレージ変更イベント制御 |
| 7 | 58 | 二次実空間制御 |
| 7 | 60~61ページ | 二次指定型制御 |
| 7 | 62~63 | 二次テーブルの長さ |
| 8 | 16~31 | 強化モニターマスク |
| 8 | 32~47 | 拡張認証インデックス |
| 8 | 48~63 | モニターマスク |
| 9 | 32 | 成功分岐イベントマスク |
| 9 | 33 | 命令フェッチイベントマスク |
| 9 | 34 | ストレージ変更イベントマスク |
| 9 | 35 | ストレージキー変更イベントマスク |
| 9 | 36 | 実アドレスイベントマスクを使用して保存 |
| 9 | 37 | ゼロアドレス検出イベントマスク |
| 9 | 38 | トランザクション終了イベントマスク |
| 9 | 39 | 命令フェッチ無効化イベントマスク |
| 9 | 40 | 分岐アドレス制御 |
| 9 | 41 | PERイベント抑制制御 |
| 9 | 43 | 保管・変更・スペース管理 |
| 10 | 0~63 | 開始アドレスごと |
| 11 | 0~63 | PER終了アドレス |
| 12 | 0 | 分岐トレース制御 |
| 12 | 1 | モードトレース制御 |
| 12 | 2~61 | トレースエントリアドレス |
| 12 | 62 | ASNトレース制御 |
| 12 | 63 | 明示的なトレース制御 |
| 13 | 0~51 | ホームアドレス空間制御要素(ASCE)ホーム領域テーブル起点ホームセグメントテーブル起点ホーム実空間トークン起点 |
| 13 | 55 | 家庭のプライベート空間管理 |
| 13 | 56 | ホームストレージ-変更-イベント |
| 13 | 57 | ホームスペーススイッチイベント制御 |
| 13 | 58 | 二次実空間制御 |
| 13 | 60~61ページ | ホーム指定型制御 |
| 13 | 62~63 | ホームテーブルの長さ |
| 14 | 32 | 1に設定 |
| 14 | 33 | 1に設定 |
| 14 | 34 | 拡張保存域制御(ESA/390互換モード) のみ) |
| 14 | 35 | チャネルレポート保留サブクラスマスク |
| 14 | 36 | リカバリサブクラスマスク |
| 14 | 37 | 劣化サブクラスマスク |
| 14 | 38 | 外部ダメージサブクラスマスク |
| 14 | 39 | 警告サブクラスマスク |
| 14 | 42 | TODクロック制御オーバーライド制御 |
| 14 | 44 | ASN変換制御 |
| 14 | 45~63 | ASNファーストテーブルオリジン |
| 15 | 0~60 | リンケージスタックエントリアドレス |
浮動小数点制御(FPC)レジスタ
FPCレジスタには、割り込みマスク(IM)、ステータスフラグ(SF)、データ例外コード(DXC)、10進丸めモード(DRM)、および2進丸めモード(BRM)が格納されます。割り込みは、AFPレジスタ(追加浮動小数点レジスタ)の制御ビット(制御レジスタ0のビット13)が1の場合にのみ、FPCレジスタにDXCが格納されます。また、DXCの各ビットは通常は意味を持ちますが、プログラムでは通常、個々のビットを参照するのではなく、8ビット整数として扱う必要があります。
| バイト名 | ビット | フィールド名 | 使用 |
|---|---|---|---|
| マスク | 0 | イミ | IEEE無効操作マスク |
| マスク | 1 | IMz | IEEEゼロ除算マスク |
| マスク | 2 | イモ | IEEEオーバーフローマスク |
| マスク | 3 | イム | IEEEアンダーフローマスク |
| マスク | 4 | IMx | IEEE不正確マスク |
| マスク | 5 | IMq | 量子例外マスク |
| 旗 | 8 | SFi | IEEE無効操作フラグ |
| 旗 | 9 | SFz | IEEEゼロ除算 |
| 旗 | 10 | SFo | IEEEオーバーフローフラグ |
| 旗 | 11 | SFu | IEEEアンダーフローフラグ |
| 旗 | 12 | SFx | IEEE不正確フラグ |
| 旗 | 13 | SFq | 量子例外フラグ |
| DXC | 16~23歳 | DXC | データ例外コード |
| DXC | 16 | 私 | IEEE無効操作 |
| DXC | 17 | z | IEEEゼロ除算 |
| DXC | 18 | o | IEEEオーバーフロー |
| DXC | 19 | あなた | IEEEアンダーフローマスク |
| DXC | 20 | × | IEEE不正確マスク |
| DXC | 21 | 年/四半期 | 量子例外マスク |
| 25~27 | DRM | DFP丸めモード | |
| 29~31 | BRM | BFP丸めモード |
浮動小数点レジスタ
各CPUには16個の64ビット浮動小数点レジスタがあり、FP0~15はVR0~15のビット0~63を占有します。ベクトルレジスタを除くと、浮動小数点データは3つの形式と3つのサイズのいずれかになります。z/Architectureは以下をサポートします。
- 16進浮動小数点、 System/360から継承された形式
- E
- 単精度、FPレジスタの半分
- D
- 倍精度、フルFPレジスタ
- X
- FPレジスタの偶数・奇数ペアにおける拡張精度
- IEEE 754 2進浮動小数点
- IEEE 754 10進浮動小数点
一般レジスター
各 CPU には 16 個の 64 ビット汎用レジスタがあり、アキュムレータ、ベース レジスタ[ e ]、インデックス レジスタ[ e ]として機能します。Grandéとして指定された命令は64 ビットすべてを操作します。拡張即値機能によって追加された一部の命令はレジスタ内の任意のハーフワードまたはワードを操作します。他のほとんどの命令はビット 0 ~ 31 を変更または使用しません。
プレフィックスレジスタ
プレフィックスレジスタは、実アドレスを絶対アドレスに変換するために使用されます。z/Architectureモードでは、PSAは2ページ(8 KiB)です。ビット0~32と51~63は常にゼロです。実アドレスのビット0~50がゼロの場合、プレフィックスレジスタのビット0~50に置き換えられます。実アドレスのビット0~50がプレフィックスレジスタのビット0~50と等しい場合、ゼロに置き換えられます。
プログラムステータスワード(PSW)
PSWは、CPU上で現在実行中のプログラムの状態を反映する命令アドレスやその他のフィールドを保持します。プログラムの状態は、制御レジスタの内容によっても影響を受けます。
ベクトルレジスタ
各CPUには32個の128ビットベクトルレジスタがあります。[ 20 ] VR0~15のビット0~63はFPR0~15でもあります。ベクトルレジスタには、16個の8ビットフィールド、8個の16ビットフィールド、4個の32ビットフィールド、2個の64ビットフィールド、または1個の128ビットフィールドを含めることができます。
メモリ
IBM は、 z/Architecture 内のメモリを主ストレージと拡張ストレージに分類します。
主記憶は8ビットバイト(オクテット)でアドレス指定され、より大きな[ f ]グループに整列されます。
- ハーフワード
- 2バイト
- 16ビット
- 言葉
- 4バイト
- 32ビット
- ダブルワード
- 8バイト
- 64ビット
- クワッドワード
- 16バイト
- 128ビット
- ページ
- 4096バイト
z/Architecture では 0 から 2 64 -1までの実アドレスと仮想アドレスが許可されますが、エンジニアリング上の制約により、現在のモデルと計画中のモデルはそれよりはるかに少ない数に制限されます。
拡張ストレージは 4 KiB ブロックでアドレス指定され、ブロック番号は 0 から 2 32までの範囲になります。
アドレッシング
このセクションは拡張が必要です。不足している情報を追加していただければ幸いです。 (2024年6月) |
主記憶アドレスの種類
z/Architectureには3種類の主記憶アドレスがある。
- 仮想アドレス
- アプリケーションプログラムから見えるアドレス。アドレス空間へのオフセットであり、ページテーブルとセグメントテーブルを介したアドレス変換の対象となります。
- 実住所
- アドレス変換後のアドレス、またはアドレス変換をオフにして実行されているOSコンポーネントから見えるアドレス。プレフィックスが付加される可能性があります。
- 絶対アドレス
- プレフィックス後のアドレスは、プレフィックスレジスタを介して最初の 2 ページ[ g ]を参照します。
アドレスエンコーディング
z/ArchitectureはESAと同じ切り捨てアドレッシング方式を採用していますが、いくつかの命令形式が追加されています。ESAと同様に、ARモードでは、各非ゼロベースレジスタは、アドレス空間を指定するベースレジスタに関連付けられています。命令によっては、アドレスが複数の異なる形式で提供される場合があります。
- R
- アドレスは汎用レジスタに格納されている
- 相対的
- 現在の命令からの符号付き 16 ビット ハーフワード オフセット。
- 相対的に長い
- 現在の命令からの符号付き 32 ビット ハーフワード オフセット。
- RS
- ベースレジスタと12ビットの変位
- RSY
- ベース レジスタと 20 ビットのディスプレイスメント。正式にはロング ディスプレイスメント、口語的には「Yonder」と呼ばれます。
- 処方箋
- ベースレジスタ、インデックスレジスタ、12ビットの変位レジスタ
- RXY
- ベース レジスタ、インデックス レジスタ、および 20 ビットのディスプレイスメント。正式にはロング ディスプレイスメント、口語的には「Yonder」と呼ばれます。
- SIY
- ベース レジスタと 20 ビットのディスプレイスメント。正式にはロング ディスプレイスメントと呼ばれ、口語的には「Yonder」と呼ばれます。
アドレッシングモード
S/370-XAとESAでサポートされている2つのアドレッシングモードに加えて、a/Architectureは64ビット仮想アドレスを持つ拡張アドレッシングモードを備えています。このアドレッシングモードは、PSWのEA(ビット31)とBA(ビット32)によって制御されます。有効な組み合わせは以下のとおりです。
- 00 24ビットアドレス指定
- 01 31ビットアドレス指定
- 11 64ビットアドレス指定
翻訳モード
z/Architectureは、PSWの[ 21 ]ビット5(DATモードビット)とビット16~17(アドレス空間制御(AS)ビット)によって制御される4つの仮想変換モードをサポートしています。
- プライマリスペースモード
- すべてのストレージ参照はプライマリアドレス空間の変換テーブルを使用する
- アクセスレジスタモード
- すべてのストレージ参照では、ベース レジスタに関連付けられたアクセス レジスタによって指定された変換テーブルが使用されます。
- セカンダリスペースモード
- すべてのストレージ参照は、セカンダリアドレス空間の変換テーブルを使用します。
- ホームスペースモード
- すべてのストレージ参照はホームアドレス空間の変換テーブルを使用する
オペレーティングシステムのサポート
IBM のオペレーティング システムz/OS、z/VSE、z/TPF、およびz/VMは、z/Architecture をサポートするMVS、VSE、トランザクション処理機能(TPF)、およびVMのバージョンです。z/OS、z/VSE、および z/VM の旧バージョンは引き続き 32 ビット システムをサポートしていました。z/OS バージョン 1.6 以降、z/VSE バージョン 4 以降、およびz/VMバージョン 5 以降では、z/Architecture が必要です。
Linux は、 IBM Z 上の Linuxで z/Architecture もサポートします。
z/Architectureは、異なるアドレスサイズを使用する複数のオペレーティングシステムとアプリケーションの同時実行をサポートします。これにより、ソフトウェア開発者は、アプリケーションとデータ構造に最も有利なアドレスサイズを選択できます。
2009年7月7日、IBMは自社のオペレーティング・システムの新バージョンを発表した際に、アーキテクチャー・レベル・セット4(ALS4)が存在し、System z10およびそれ以降のマシンに実装されていることを暗黙のうちに述べました。[ 22 ] [ 23 ] ALS4はLOADxxでもARCHLVL3として指定されていますが、それ以前のz900、z800、z990、z890、System z9ではARCHLVL2が指定されていました。System z10の以前の発表では、50以上の新しいマシン命令、1MBのページ・フレーム、ハードウェア10進浮動小数点ユニット(HDFU)などの追加機能を備えたz/Architectureを実装するとだけ述べられていました。[ 24 ] [ 25 ]
z/ OSを含むz/Architecture向けのほとんどのオペレーティング・システムでは、アーキテクチャ上の制限ではなく、効率性と互換性の観点から、コード実行を各仮想アドレス空間の最初の2GB(31アドレスビット、または2 31アドレス可能バイト)に制限しています。Linux on IBM Zでは、64ビットのアドレス範囲内でコードを実行できます。
z/OS
各 z/OSアドレス空間(64 ビット アドレス空間と呼ばれる)のサイズは 16エクサバイトです。
コード(または混合)スペース
Javaプログラミング言語のz/OS実装は例外です。z/OSの仮想メモリ実装は複数の2GBのアドレス空間で、2 GBの同時常駐プログラム コード。
データ専用スペース
データ専用スペースは、読み取りと書き込みは可能ですが、実行コードとして使用することはできません。(他の最新プロセッサのNX ビットに似ています。) デフォルトでは、z/Architecture メモリスペースは 64 ビット ポインターによってインデックス付けされ、実行中のプログラムから最大 16 エクサバイトのメモリを参照できます。
データスペースとハイパースペース
16エクサバイトを超えるデータアドレス空間を必要とするアプリケーションでは、 追加のアドレス空間またはデータ専用空間を用いた拡張アドレス指定技術を採用できます。ユーザープログラムで利用可能なデータ専用空間は、以下のように呼ばれます。
これらの空間は、どちらもプログラムが作成できる仮想記憶域であり、最大2 ギガバイトまで拡張できるという点で似ています。アドレス空間とは異なり、データ空間またはハイパー空間にはユーザーデータのみが含まれ、システム制御ブロックや共通領域は含まれません。プログラムコードはデータ空間またはハイパー空間で実行できません。[ 30 ]
データスペースはバイト アドレス指定可能であるのに対し、ハイパースペースはページ アドレス指定可能であるという点で、ハイパースペースと異なります。
IBM メインフレーム拡張ストレージ
従来、IBM System/360メインフレームおよびその後継機種(z/Architectureメインフレームを含む)では、メモリはバイト単位でアドレス指定可能でした。この種のメモリは「中央記憶装置」と呼ばれています。IBMメインフレームのプロセッサは、1980年代から1990年代にかけて、別の種類のメモリである拡張記憶装置(Expanded Storage)をサポートしていました。これは、 1985年にIBM 3090ハイエンドメインフレームシリーズで初めて導入されました。 [ 31 ]
拡張ストレージは4KBページ単位でアドレス指定可能です。アプリケーションが拡張ストレージ内のデータにアクセスする場合、まず中央ストレージに移動する必要があります。同様に、中央ストレージから拡張ストレージへのデータ移動は4KBページ単位に行われます。当初、ページ移動は比較的コストのかかる命令、つまりページングサブシステムコードによって実行されていました。
MVPG (ページ移動) 命令とADMF (非同期データ移動機能) 機能 の導入により、中央ストレージと拡張ストレージ間で単一ページおよびページ グループを移動する際のオーバーヘッドが削減されました。
MVPG命令とADMFは、拡張ストレージ内のデータにアクセスするために、通常はz/OSまたはz/VM(およびACP?)のミドルウェアによって明示的に呼び出されます。具体的な用途としては、以下のものがあります。
- MVPG は、拡張ストレージ内のハイパースペース内のバッファーにアクセスするため、VSAMローカル共有リソース (LSR) バッファー プール管理によって使用されます。
- IBM Db2は、ハイパープールにアクセスするためにMVPGとADMFの両方を使用します。ハイパープールは、ハイパースペースに配置されるバッファープールの一部です。
- VM ミニディスク キャッシュ。
1990年代半ばまでは、中央ストレージと拡張ストレージはプロセッサ上の物理的に異なるメモリ領域でした。1990年代半ば以降、中央ストレージと拡張ストレージは、基盤となるプロセッサメモリの割り当ての選択肢に過ぎなくなりました。これらの選択は、特定の想定される用途に基づいて行われました。例えば、拡張ストレージはハイパーバッチ機能(ハイパースペースへのアクセスにMVPG命令を使用する)に必要です。
前述のハイパースペースとページングのケースに加えて、拡張ストレージには次のような用途もあります。
- 拡張ストレージへの仮想 I/O (VIO)。これにより、拡張ストレージ内のシミュレートされたデバイスに一時データ セットが保存されます。(この機能は、中央ストレージでは VIO に置き換えられました。)
- VM ミニディスク キャッシュ。
z/OS は拡張ストレージのサポートを廃止しました。z/OS のすべてのメモリは中央ストレージになりました。z /VM 6.4 は、拡張ストレージの使用をすべて廃止するという開発意向表明を履行しています。
MVPGとADMF
MVPG
IBMはMVPGを「1ページを移動し、ページの移動が完了するまで中央処理装置は他の命令を実行できない」と説明している。[ 32 ]
MVPGメインフレーム命令[ 33 ](M o V e P a G e、オペコードX'B254')は、 MVCL(M o V e C haracter L ong)命令と比較されてきました。どちらも1つの命令でメインメモリ内で256バイトを超えるデータを移動できます。これらの命令はアトミック性の定義には準拠していませんが、文書化されたタイミングと非重複制約の範囲内で、単一の命令として使用できます。[ 34 ]:注8、7~27ページ [ 35 ]
主記憶内で256バイト以上を移動する必要性は、歴史的にはソフトウェア[ 36 ](MVCループ)、 1970年のSystem/370の発表とともに導入されたMVCL [ 37 ]、および1989年にIBMによって特許取得され発表されたMVPG [ 38 ]で対処されてきました。それぞれに利点があります。[ 39 ]
ADMF
1992年に導入されたADMF(非同期データムーバー機能)は、単一ページに制限されているMVPG(ページ移動)命令の機能を上回り、[ 40 ]中央ストレージと拡張ストレージ間でページグループを移動できます。
IOSADMFというマクロ命令は、 「ADMFの直接的な低レベル使用」を回避するAPIとして説明されており[ 41 ] 、ハイパースペースへのデータの読み取り[ h ]やハイパースペースからのデータの書き込みに使用できます。[ 42 ]ハイパースペースはDSPSERV CREATEを使用して作成されます。
再入可能性を提供するために、IOSADMFは「リストフォーム」と「実行フォーム」と一緒に使用されます。[ 43 ]
IBM以外の実装
プラットフォーム・ソリューションズ社(PSI)は以前、z/Architectureと互換性のあるItaniumベースのサーバーを販売していました。IBMは2008年7月にPSIを買収したため、PSIシステムは販売終了となりました。 [ 44 ] FLEX-ES、zPDT、Herculesエミュレーターもz/Architectureを実装しています。VOS3オペレーティングシステムの新しいリリースを実行する日立メインフレームは、ESA/390に加えて、いくつかの64ビット命令を含む日立独自のCPU命令を実装しています。日立は2002年に発表されたz900-G2/z800 CPUに関してIBMと正式に提携していましたが、日立のマシンはz/Architectureと互換性がありません。
注記
- ^ ESA非同期ページアウト、非同期データムーバー、プログラム呼び出し高速、およびESA/390ベクトル機能は、z/Architectureには存在しません。z/Architectureベクトル機能は、 z13以降、全く異なるベクトル機能に置き換えられました。
- ^完全なリストについては、第1章「動作原理の導入」を参照してください。 [ 3 ] [ 4 ]
- ^ z の PSW はクワッドワードであり、古いアーキテクチャではダブルワードですが、IBM は常にこのレジスタに対してプログラム ステータス ワードという命名法を使用してきました。
- ^名前が似ているにもかかわらず、 Vector Facility for z/Architecture は3090上のVector Facilityと互換性がありません。
- ^ a b汎用レジスタ0を除く。
- ^一部の命令では、アラインされていないデータへの参照が許可されます。
- ^ ESA モードの最初のページへの参照ですが、現在のモデルでは利用できません。
- ^ AREAD – ハイパースペースからプログラムのプライマリ アドレス空間にデータを転送します。
参考文献
- z-0
- z/Architecture Principles of Operation (PDF) (初版). IBM . 2000年12月. SA22-7832-00 . 2025年8月11日閲覧.
- z-1
- z/Architecture Principles of Operation (PDF) (第2版). IBM . 2001年10月. SA22-7832-01 . 2025年8月11日閲覧.
- z-2
- z/Architecture Principles of Operation (PDF) (第3版). IBM . 2003年6月. SA22-7832-02 . 2025年8月11日閲覧.
- z-3
- z/Architecture Principles of Operation (PDF) (第4版). IBM . 2004年5月. SA22-7832-03 . 2025年8月11日閲覧.
- z-6
- z/Architecture Principles of Operation (PDF) (第7版). IBM . 2008年2月. SA22-7832-06 . 2025年8月11日閲覧.
- z-7
- z/Architecture Principles of Operation (PDF) (第8版). IBM . 2009年2月. SA22-7832-07 . 2025年8月11日閲覧.
- z-8
- z/Architecture Principles of Operation (PDF) (第9版). IBM . 2010年8月. SA22-7832-08 . 2025年8月11日閲覧.
- z-9
- z/Architecture Principles of Operation (PDF) (第10版). IBM . 2012年9月. SA22-7832-09 . 2025年8月11日閲覧.
- z-10
- z/Architecture Principles of Operation (PDF) (第11版). IBM . 2015年3月. SA22-7832-10 . 2025年8月11日閲覧.
- z-11
- z/Architecture Principles of Operation (PDF) (第12版). IBM . 2017年9月. SA22-7832-11 . 2025年8月11日閲覧.
- z-12
- z/Architecture Principles of Operation (PDF) (第13版). IBM . 2019年9月. SA22-7832-12 . 2025年8月11日閲覧.
- z-13
- z/Architecture Principles of Operation (PDF) (第14版). IBM . 2022年5月. SA22-7832-13 . 2025年8月11日閲覧.
- z-14
- z/Architecture Principles of Operation (PDF) (第15版). IBM . 2025年4月. SA22-7832-14 . 2025年7月3日閲覧。
- z
- z/Architecture Principles of Operation (PDF) (第15版). IBM . 2025年4月. SA22-7832-14 . 2025年7月3日閲覧。
- ^ 「z/Architectureの開発と特性」(PDF) . IBM Journal of Research and Development . 45 (4/5). 2002年7月~9月. 2013年12月12日時点のオリジナルよりアーカイブ(PDF) 。
- ^ 「将来のサーバーで廃止されるz13サーバーの機能に対応」 IBM 2015年6月25日。2017年9月15日時点のオリジナルよりアーカイブ。 2017年9月18日閲覧。
- ^ a b z-14、pp. 1-2–1-7、オリジナル z/Architecture のハイライト。
- ^ z-14、pp. 1-7–1-31、 z/Architecture への追加。
- ^ z-4、pp. 1-7–1-31、 z/Architecture への追加。sfn エラー: ターゲットなし: CITEREFz-4 (ヘルプ)
- ^ z-10、p. xxviii、第11版の変更点の要約。
- ^ 「IBM z Systems プロセッサー最適化入門」(PDF) . IBM .
- ^ z-0、p. 1-6、 ESA/390ベース。
- ^ z-14、p. 1-23、ニューラルネットワーク処理支援機能。
- ^ z-14、pp. 26-1–26-126、第26章 特殊機能アシスト命令。
- ^ a b z、p. 5-50、アクセスレジスタ指定アドレス空間。
- ^ a b z、p. 4-46、Breaking-Event-Addressレジスタ。
- ^ z、pp. 4-9–4-11、図4-5。制御レジスタフィールドの割り当て。
- ^ z、pp. 3-22–3-23、 z/Architecture アーキテクチャーモードでのプレフィックス付け。
- ^ z、pp. 4-5–4-8、プログラムステータスワード形式。
- ^ z、p. 4-8、短縮PSWフォーマット。
- ^ z、pp. 6-15–6-16、アクセスレジスタ。
- ^ z、p. 4-46 4-46、Breaking-Event-Addressレジスタ。
- ^ z、pp. 4-9–4-12、制御レジスタ。
- ^ z、pp. 2-5–2-6、ベクトルレジスタ。
- ^ z、pp. 3-41、3-42、図3-15。翻訳モード。
- ^プレビュー: IBM z/VM V6.1 – 将来の仮想化の成長のための基盤Archived 2021-10-28 at the Wayback Machine、IBM 米国ソフトウェア発表 209-207、2009 年 7 月 7 日付
- ^ ALS 1は9672 G2、ALS 2は9672 G5、ALS 3はオリジナルのz/Architecture:「IBM CMOS Processor Table」でした。2008年11月18日。 2013年12月10日時点のオリジナルよりアーカイブ。 2012年10月18日閲覧。
- ^ 「IBM System z10 Business Class (z10 BC) リファレンス・ガイド」(PDF)。IBM 。2008年。2011年3月4日時点のオリジナルよりアーカイブ(PDF) 。 2012年10月18日閲覧。
- ^ 「z/Architecture Principles of Operation」(PDF)。2020年11月30日時点のオリジナルよりアーカイブ(PDF) 。 2016年1月15日閲覧。
- ^ホスキンス、ジム、フランク、ボブ (2002). 『IBM Eserver ZシリーズとS/390サーバーの探究』マキシマム・プレス、p. 26. ISBN 1885068913. 2021年4月27日にオリジナルからアーカイブ。2017年10月19日に取得。VM
データスペースアーキテクチャは、すべてのSystem/390プロセッサで標準です。
- ^「CAがVSEポリシーを擁護」InformationWeek、1991年10月21日、15ページ。Computer
Associates Internationalは現在、VSE/ESAまたはSystem/370ユーザーにデータスペース技術を提供しています。
- ^ 「メモリ内のデータ分析」 IBM。
- ^ Hemanth Nandas (2007年10月15日). 「ハイパースペースとは何か?ハイパースペースを最初にサポートしたOSはどれか?」 .ニュースグループ: ibmmainframes.com . 2017年2月2日時点のオリジナルよりアーカイブ。 2017年1月25日閲覧。HIGH PERFORMANCE SPACE または「High Performance Dataspace」(著者 Anuj Dhawan、同日)
- ^ 「CheatSheet #54 zTidBits z/OS Extended Addressing」(PDF) . 2023年5月6日時点のオリジナル(PDF)からアーカイブ。 2022年7月17日閲覧。
- ^ Sakaki, M.; Samukawa, H.; Honjou, N. (1988). 「数値計算集約型アブイニシオ分子軌道計算におけるIBM 3090大容量仮想ストレージの有効利用」 . IBM Systems Journal . 27 (4): 528– 540. doi : 10.1147/sj.274.0528 . ISSN 0018-8670 .
- ^ US 5442802 非同期コプロセッサデータムーバ方法および手段
- ^ 「HLASM – MVPG = MoVe PaGe」。2013年10月6日時点のオリジナルよりアーカイブ。2017年1月24日閲覧。
- ^ MOVE LONG、注8。「GA22-7000-10、IBM System/370、Principles of Operation」(PDF)。2021年4月11日時点のオリジナルよりアーカイブ(PDF) 。 2021年10月11日閲覧。
- ^「処理は即座に実行され、命令が途中で完了したり、別の命令が割り込まれたりすることはありません。特に、操作を中断できないことを伝えるために使用されます。」「FOLDOCからのAtomic」。
- ^ 「$MVCL – 256バイトを超えるストレージの移動」 IBM 、 2014年9月20日。2017年2月2日時点のオリジナルよりアーカイブ。 2017年1月24日閲覧。
- ^ “Move Long” . 2017年4月27日時点のオリジナルよりアーカイブ。2017年1月24日閲覧。
- ^ US 5237668非特権命令における仮想アドレス指定を用いて、複数の媒体内または複数の媒体間での1ページのデータのコピーを制御するプロセス
- ^ 「位置合わせされたページの場合、MVPGはMVCLよりも高速か?」 IBM -MAIN(メーリングリスト)。2011年1月22日時点のオリジナルよりアーカイブ。 2017年1月24日閲覧。
- ^ IBM の特許 EP0549924A1 では、MVPG は「1 ページを移動する」と説明されています。
- ^ Celestini, Art (1997年8月20日). "admf" . IBM-MAIN (メーリングリスト). 2011年1月22日時点のオリジナルよりアーカイブ。 2017年1月24日閲覧– Googleグループ経由。
- ^ z/OS MVS プログラミング: 拡張アドレス指定機能ガイド – SA23-1394-00
- ^ 「IOSADMF — ハイパースペースデータの転送」 IBM 2015年2月7日。2017年2月2日時点のオリジナルよりアーカイブ。 2017年1月24日閲覧。
- ^ 「IBM、Platform Solutionsを買収」(プレスリリース)IBM、2008年7月2日。2008年9月5日時点のオリジナルよりアーカイブ。 2008年9月6日閲覧。