制御レジスタ

制御レジスタは、 CPUやその他のデジタルデバイスの一般的な動作を変更または制御するプロセッサレジスタです。制御レジスタが実行する一般的なタスクには、割り込み制御、アドレッシングモードの切り替えページング制御、コプロセッサ制御などがあります。

歴史

初期のCPUには専用の制御レジスタがなく、限られた内部信号とフラグに依存していました。[1] IBMがSystem/360ページングバージョン[注 1]を開発したとき、16個の制御レジスタ[2] [3]を追加し、これが後のSystem/360 /67となりました。IBMは他のS/360モデルには制御レジスタを提供しませんでしたが、System/370ではレジスタとビットの割り当ては異なっていたものの、標準部品[4]にしました。IBMがDASS/370-XAS/370-ESAESA/390などの新しい機能をアーキテクチャに追加すると、制御レジスタにフィールドが追加されました。z /Architectureでは、IBMは制御レジスタのサイズを64ビットに倍増しました。

IBM 360/67の制御レジスタ

360/67では、CR0とCR2はアドレ​​ス変換に使用され、CR4-6には割り込みマスクや拡張制御モードなどのさまざまなフラグが含まれており、[3] CR8-14 [5]には2167構成ユニットのスイッチ設定が含まれています。

M67 CR0

制御レジスタ 0 には、動的アドレス変換用のセグメント テーブルのアドレスが含まれています。

M67 CR2

制御レジスタ 2 は、再配置例外アドレス レジスタです。

M67 CR4

CR4はチャネル0~31の拡張マスクレジスタです。各ビットは対応するチャネルの1/0チャネルマスクです。

M67 CR5

CR5は、チャネル32~63の拡張マスクレジスタ用に予約されています。各ビットは、対応するチャネルの1/0チャネルマスクです。

M67 CR6

CR6 には 2 つのモード フラグと PSW マスク ビットの拡張機能が含まれています。

CR6 旗とマスク
分野少し説明
00チャネルコントローラのマシンチェックマスク拡張 o
11チャネルコントローラ1のマシンチェックマスク拡張
2-3チャネルコントローラ2~3用に予約済み
4-7未割り当て
88拡張制御モード
99構成制御ビット
10-23未割り当て
24-31外部割り込みマスク
24タイマー
25割り込みキー
26故障警報 - CPU 1 (外部信号 2)
27故障警報 - CPU 2 (外部信号 3)
28予約済み(内線信号4)
29予約済み(内線信号5)
30外部割り込み - CPU 1、2 (Ext. Sig. 6)
31予約済み(内線信号7)

M67 CR8

制御レジスタ 8 には、プロセッサ ストレージ ユニット 1 ~ 4 の中央処理装置 (CPU) およびチャネル コントローラ (CC) への割り当てが含まれています。

プロセッサストレージユニット1~4の割り当て
少し説明
0プロセッサストレージユニット1からCPU1へ
1プロセッサストレージユニット1からCPU2へ
2-3CPU 3-4用に予約済み
4プロセッサストレージユニット1からCC0
5プロセッサストレージユニット1からCC1
6-7CC 3-4用に予約済み
8プロセッサストレージユニット2からCPU1へ
9プロセッサストレージユニット2からCPU2へ
10-11CPU 3-4用に予約済み
12プロセッサストレージユニット2からCC0
13プロセッサストレージユニット2からCC1へ
14-15CC 3-4用に予約済み
16プロセッサストレージユニット3からCPU1へ
17プロセッサストレージユニット3からCPU2へ
18-19CPU 3-4用に予約済み
20プロセッサストレージユニット3からCC0
21プロセッサストレージユニット3からCC1
22-23CC 3-4用に予約済み
24プロセッサストレージユニット4からCPU1へ
25プロセッサストレージユニット4からCPU2へ
26-27CPU 3-4用に予約済み
28プロセッサストレージユニット4からCC0
29プロセッサストレージユニット4からCC1
30-31CC 3-4用に予約済み

M67 CR9

制御レジスタ 9 には、プロセッサ ストレージ ユニット 5 ~ 8 の中央処理装置 (CPU) およびチャネル コントローラ (CC) への割り当てが含まれています。

プロセッサストレージユニット1~4の割り当て
少し説明
0プロセッサストレージユニット5からCPU1へ
1プロセッサストレージユニット5からCPU2へ
2-3CPU 3-4用に予約済み
4プロセッサストレージユニット5からCC0
5プロセッサストレージユニット5からCC1
6-7CC 3-4用に予約済み
8プロセッサストレージユニット6からCPU66
9プロセッサストレージユニット6からCPU2へ
10-11CPU 3-4用に予約済み
12プロセッサストレージユニット6からCC0
13プロセッサストレージユニット6からCC1
14-15CC 3-4用に予約済み
16プロセッサストレージユニット7からCPU1へ
17プロセッサストレージユニット7からCPU2へ
18-19CPU 3-4用に予約済み
20プロセッサストレージユニット7からCC0
21プロセッサストレージユニット7からCC1
22-23CC 3-4用に予約済み
24プロセッサストレージユニット8からCPU1へ
25プロセッサストレージユニット8からCPU2へ
26-27CPU 3-4用に予約済み
28プロセッサストレージユニット8からCC0
29プロセッサストレージユニット8からCC1
30-31CC 3-4用に予約済み

M67 CR10

制御レジスタ 10 には、プロセッサ ストレージ アドレス割り当てコードが含まれています。

プロセッサストレージアドレスビット11-14の割り当てコード
少し開始住所コード
0-3プロセッサストレージユニット1
4-7プロセッサストレージユニット2
8-11プロセッサストレージユニット3
12~15歳プロセッサストレージユニット4
16~19歳プロセッサストレージユニット5
20-23プロセッサストレージユニット6
24-27プロセッサストレージユニット7
28-31プロセッサストレージユニット8

M67 CR11

制御レジスタ 11 には、チャネル コントローラ (CC) の割り当てが含まれています。

CR11 チャネル コントローラ (CC) のパーティショニング
少し説明
0CC 0はCPU 1で利用可能
1CC 0はCPU 2で利用可能
2-3CPU 3~4用に予約済み
4CC 1 は CPU 1 で使用可能
5CC 1 は CPU 2 で使用可能
6-7CPU 3~4用に予約済み
8~15歳未割り当て
16CPU 1からCC 0のみ
17CPU 1からCC 1のみ
18-19CC 2-3用に予約済み
20CPU 2からCC 0のみ
21CPU 2からCC 1のみ
22-23CC 2-3用に予約済み
24-31未割り当て

M67 CR12

CR12 には I/O 制御ユニット パーティショニングが含まれています。

CR12 I/O制御ユニット1-16パーティショニング
少しI/O制御ユニットインタフェース
011
12
221
32
431
52
641
72
851
92
1061
112
1271
132
1481
152
1691
172
18101
192
20111
212
22121
232
24131
252
26141
272
28151
292
30161
312

M67 CR13

CR13 には I/O 制御ユニット パーティショニングが含まれています。

CR13 I/O制御ユニット17-32パーティショニング
少しI/O制御ユニットインタフェース
0171
12
2181
32
4191
52
6201
72
8211
92
10221
112
12231
132
14241
152
16251
172
18261
192
20271
212
22281
232
24291
252
26301
272
28311
292
30321
312

M67 CR14

CR14 にはインジケーターが含まれています。

CR14インジケーター
少しインジケータ
0-27未割り当て
222167 電源オン
23未割り当て
24直接制御、CPU 1
25直接制御、CPU 2
26-27未割り当て
28プレフィックス、CPU 1
29プレフィックス、CPU 2
30-31未割り当て

IBM S/390の制御レジスタ

IBM S/390ESA/390 [6]の制御レジスタは、従来のESA/370 [7]S/370-XA [8]、およびS/370 [9]プロセッサの制御レジスタを進化させたものです。特定の機能に依存するフィールドの詳細については、「動作原理」 [10]を参照してください。

ESA/390制御レジスタ
CRビット分野
01SSM抑制
02TODクロック同期制御
03低アドレス保護制御
04抽出権限の制御
05二次空間制御
06フェッチ保護オーバーライド制御
07ストレージ保護オーバーライド制御
08~12歳翻訳フォーマット
013AFPレジスタ制御
014ベクター制御
015アドレス空間機能制御
016故障警告サブクラスマスク
017緊急信号サブクラスマスク
018外部呼び出しサブクラスマスク
019TODクロック同期チェックサブクラスマスク
020クロックコンパレータサブクラスマスク
021CPUタイマーサブクラスマスク
022サービス信号サブクラスマスク
0241に設定
025割り込みキーサブクラスマスク
0261に設定
027ETRサブクラスマスク
028プログラム呼び出し高速
029暗号制御
10プライマリスペーススイッチイベント制御
11-19プライマリセグメントテーブルの起源
122一次部分空間群制御
123プライベートスペースの主な制御
124プライマリストレージ変更イベント制御
125~31プライマリセグメントテーブルの長さ
21-25ディスパッチ可能ユニット制御テーブルの起源
30-15PSWキーマスク
316-31セカンダリASN
40-15承認インデックス
416-31プライマリASN
50サブシステム連携制御
51-24リンクテーブルの起源
525~31リンクテーブルの長さ
51-25アドレス空間機能制御が1の場合、
プライマリASN第2テーブルエントリ
60-7I/O割り込みサブクラスマスク
71-19セカンダリセグメントテーブルの起源
722二次部分空間群制御
723二次的なプライベートスペース制御
724二次ストレージ変更イベント制御
725~31セカンダリセグメントテーブルの長さ
80-15拡張認証インデックス
816-31モニターマスク
90成功分岐イベントマスク
91命令フェッチイベントマスク
92ストレージ変更イベントマスク
93GR変更イベントマスク
94実アドレスイベントマスクを使用して保存
98分岐アドレス制御
910保管・変更・スペース管理
916-31PER汎用レジスタマスク
101-31開始アドレスごと
111-31PER終了アドレス
120分岐トレース制御
121-29トレースエントリアドレス
1230ASNトレース制御
1231明示的なトレース制御
130ホームスペーススイッチイベント制御
131-19ホームセグメントテーブルの原点
1323家庭のプライベート空間管理
1324自宅保管・変更・イベント管理
1325~31ホームセグメントテーブルの長さ
1401に設定
1411に設定
142拡張保存領域制御
143チャネルレポート保留サブクラスマスク
144リカバリサブクラスマスク
145劣化サブクラスマスク
146外部ダメージサブクラスマスク
147警告サブクラスマスク
1410TODクロック制御オーバーライド制御
1412ASN変換制御
1413-31ASNファーストテーブルオリジン
151-28リンケージスタックエントリアドレス

IBM z/Architecture の制御レジスタ

z/Architecture [11]の制御レジスタは、 IBM S/390プロセッサに搭載されていた従来のESA/390の制御レジスタを進化させたものです。特定の機能に依存するフィールドの詳細については、「Principles of Operation」を参照してください。[12] z/Architecture では制御レジスタが32ビットから64ビットに拡張されているため、ビット番号の割り当ては ESA/390 とは異なります。

z/Architecture モード制御レジスタ
CRビット分野
08トランザクション実行制御
09トランザクション実行プログラム割り込みフィルタリングオーバーライド
010クロックコンパレータの符号制御
013暗号カウンタ制御
014プロセッサアクティビティ計測拡張制御
015測定カウンタ抽出認証制御
030警告トラックサブクラスマスク
032TRACE TODクロック制御
033SSM抑制
034TODクロック同期制御
035低アドレス保護制御
036抽出権限の制御
037二次空間制御
038フェッチ保護オーバーライド制御
039ストレージ保護オーバーライド制御
040拡張DAT有効化制御
043命令実行保護有効化制御
044ASNおよびLX再利用制御
045AFPレジスタ制御
046ベクトル有効化制御
048故障警告サブクラスマスク
048故障警告サブクラスマスク
049緊急信号サブクラスマスク
050外部呼び出しサブクラスマスク
052クロックコンパレータサブクラスマスク
053CPUタイマーサブクラスマスク
054サービス信号サブクラスマスク
0561に初期化
057割り込みキーサブクラスマスク
058測定アラートサブクラスマスク
059タイミングアラートサブクラスマスク
061暗号制御
10-51プライマリアドレス空間制御要素 (ASCE)
プライマリ領域テーブルオリジン
プライマリセグメントテーブルオリジン
プライマリ実空間トークンオリジン
154一次部分空間群制御
155プライベートスペースの主な制御
156プライマリストレージの変更イベント
157プライマリスペーススイッチイベント制御
158プライマリリアルスペースコントロール
160-61一次指定型制御
162-63プライマリテーブルの長さ
233-57ディスパッチ可能ユニット制御テーブルの起源
259保護された保管施設の有効化制御
261トランザクション診断範囲
262-63トランザクション診断制御
30-31セカンダリ ASN 第 2 テーブルエントリ インスタンス番号
332~47PSWキーマスク
348-63セカンダリASN
40-31プライマリASN第2テーブルエントリインスタンス番号
432~47承認インデックス
448-63プライマリASN
533-57プライマリASN第2テーブルエントリの起源
632~39I/O割り込みサブクラスマスク
70-51セカンダリアドレス空間制御要素 (ASCE)
セカンダリ領域テーブル起点
セカンダリセグメントテーブル起点
セカンダリ実空間トークン起点
754二次部分空間群制御
755二次的なプライベートスペース制御
756二次ストレージ変更イベント制御
758二次実空間制御
760-61二次指定型制御
762-63二次テーブルの長さ
816-31強化モニターマスク
832~47拡張認証インデックス
848-63モニターマスク
932成功分岐イベントマスク
933命令フェッチイベントマスク
934ストレージ変更イベントマスク
935ストレージキー変更イベントマスク
936実アドレスイベントマスクを使用して保存
937ゼロアドレス検出イベントマスク
938トランザクション終了イベントマスク
939命令フェッチ無効化イベントマスク
940分岐アドレス制御
941PERイベント抑制制御
943保管・変更・スペース管理
100-63開始アドレスごと
110-63PER終了アドレス
120分岐トレース制御
121モードトレース制御
122-61トレースエントリアドレス
1262ASNトレース制御
1263明示的なトレース制御
130-51ホームアドレス空間制御要素(ASCE)
ホーム領域テーブル起点
ホームセグメントテーブル起点
ホーム実空間トークン起点
1355家庭のプライベート空間管理
1356ホームストレージ-変更-イベント
1357ホームスペーススイッチイベント制御
1358二次実空間制御
1360-61ホーム指定型制御
1362-63ホームテーブルの長さ
14321に設定
14331に設定
1434拡張保存域制御(ESA/390互換モード)

のみ)

1435チャネルレポート保留サブクラスマスク
1436リカバリサブクラスマスク
1437劣化サブクラスマスク
1438外部ダメージサブクラスマスク
1439警告サブクラスマスク
1442TODクロック制御オーバーライド制御
1444ASN変換制御
1445~63歳ASNファーストテーブルオリジン
150~60リンケージスタックエントリアドレス

Intelの制御レジスタx86シリーズ

CR0

CR0レジスタは、386以降のプロセッサでは32ビット長です。x64プロセッサのロングモードlong mode)では、CR0レジスタ(および他の制御レジスタ)は64ビット長です。CR0レジスタには、プロセッサの基本動作を変更する様々な制御フラグがあります。CR0レジスタは、従来のマシンステータスワード(MSW)レジスタの32ビット版です。MSWレジスタは、i386プロセッサの登場に伴い、制御レジスタに拡張されました。

少し名前フルネーム説明
0体育保護モードの有効化1の場合、システムは保護モード、それ以外の場合、システムはリアルモードです。
1国会議員モニターコプロセッサCR0のTSフラグを使用してWAIT/FWAIT命令の相互作用を制御します。
2EMエミュレーションセットされている場合、x87浮動小数点ユニットは存在しません。クリアされている場合、x87 FPU が存在します。
3TSタスク切り替えx87 命令が使用された後にのみタスクスイッチ時に x87 タスクコンテキストを保存できるようにします
4ET拡張タイプ386では、外部の数値演算コプロセッサが8028780387かを指定できた。
5北東数値エラー486以降では、設定すると内部x87浮動小数点エラー報告が有効になり、設定しない場合は外部ロジックを使用して内部浮動小数点ユニットからのPCスタイルのエラー報告が有効になります[13]
16WP書き込み禁止設定すると、特権レベルが 0 のときに CPU は読み取り専用ページに書き込むことができません。
18午前アライメントマスクAM が設定され、AC フラグ(EFLAGSレジスタ内)が設定され、特権レベルが 3 の 場合、アライメント チェックが有効になります。
29北西書き込み不可ライトスルーキャッシュをグローバルに有効/無効にする
30CDキャッシュを無効にするメモリキャッシュをグローバルに有効/無効にする
31PGページング1 の場合はページングを有効にして§ CR3 レジスタを使用し、それ以外の場合はページングを無効にします。

CR1

予約済み。アクセスしようとすると、CPU は # UD例外をスローします。

CR2

ページフォールトリニアアドレス(PFLA)と呼ばれる値が格納されます。ページフォールトが発生すると、プログラムがアクセスしようとしたアドレスがCR2レジスタに格納されます。

CR3

4 KiBページのアドレス変換における CR3 の典型的な使用法 

仮想アドレス指定が有効になっている場合、つまりCR0のPGビットがセットされているときに使用されます。CR3は、プロセッサが現在のタスクのページディレクトリとページテーブルを特定することで、リニアアドレスを物理アドレスに変換できるようにします。通常、CR3の上位20ビットはページディレクトリベースレジスタ(PDBR)となり、最初のページディレクトリの物理アドレスを格納します。CR4のPCIDEビットがセットされている場合、下位12ビットはプロセスコンテキスト識別子(PCID)として使用されます。[14]

CR4

保護モードで使用され、仮想 8086 サポート、I/O ブレークポイントの有効化、ページ サイズ拡張マシン チェック例外などの操作を制御します。

少し名前フルネーム説明
0VME仮想8086モード拡張設定されている場合、仮想 8086 モードで仮想割り込みフラグ (VIF) のサポートが有効になります。
1PVI保護モード仮想割り込み設定されている場合、保護モードで仮想割り込みフラグ (VIF) のサポートが有効になります。
2TSDタイムスタンプを無効にする設定されている場合、RDTSC命令はリング 0にある場合にのみ実行できます。それ以外の場合は、 RDTSC はどの特権レベルでも使用できます。
3ドイツデバッグ拡張機能設定されている場合、 I/O空間アクセス時にデバッグ レジスタ ベースのブレークが有効になります
4PSEページサイズ拡張設定されている場合、4 KiB ページに加えて 4 MiB の巨大ページを使用する 32 ビット ページング モードが有効になります。

PAEが有効になっているかプロセッサがx86-64ロングモードになっている場合、このビットは無視されます。[15]

5PAE物理アドレス拡張設定されている場合、ページ テーブル レイアウトが変更され、32 ビットの仮想アドレスが拡張 36 ビットの物理アドレスに変換されます。
6MCEマシンチェック例外設定されている場合、マシン チェック割り込みが発生します。
7白金族元素ページグローバル有効設定されている場合、アドレス変換 (PDE または PTE レコード) をアドレス空間間で共有できます。
8PCEパフォーマンス監視カウンタの有効化設定されている場合、RDPMC はどの権限レベルでも実行できますが、設定されていない場合は、RDPMC はリング 0 でのみ使用できます。
9OSFXSRFXSAVEおよびFXRSTOR命令のオペレーティング システム サポート設定されている場合、ストリーミング SIMD 拡張(SSE) 命令と高速 FPU 保存と復元が有効になります。
10OSXMMEXCPTマスクされていない SIMD 浮動小数点例外に対するオペレーティング システムのサポート設定されている場合、マスクされていない SSE 例外が有効になります。
11UMIPユーザーモード命令防止設定されている場合、CPL > 0の場合にはSGDT、SIDT、SLDT、SMSW、STR命令は実行できません。[14]
12LA5757ビットのリニアアドレス設定されている場合、5レベルのページングが有効になります。[16] [17] : 2–18 
13VMXE仮想マシン拡張機能の有効化Intel VT-x x86仮想化を参照してください
14SMXEセーフモード拡張機能を有効にする信頼できる実行技術(TXT)を参照
15[あ](予約済み)
16FSGSベースFSGSBASE 有効設定されている場合、RDFSBASE、RDGSBASE、WRFSBASE、および WRGSBASE 命令が有効になります。
17PCIDEPCID有効化設定されている場合、プロセスコンテキスト識別子 (PCID) が有効になります。
18OSXSAVEXSAVEとプロセッサ拡張状態を有効にする
19クアラルンプールキーロッカーを有効にする設定されている場合、AES キー ロッカー命令が有効になります。
20SMEP [20]スーパーバイザーモード実行保護の有効化設定されている場合、上位リングでのコード実行で障害が発生します
21SMAPスーパーバイザーモードアクセス防止の有効化設定されている場合、上位リングのデータにアクセスすると障害が発生します。[21]
22PKE保護キーの有効化Intel 64 および IA-32 アーキテクチャー ソフトウェア開発者マニュアルを参照してください。
23中央ヨーロッパ標準時制御フロー強制技術設定されている場合、制御フロー強制技術が有効になります。[17] : 2–19 
24PKSスーパーバイザーモードページの保護キーを有効にする設定されている場合、 4レベルまたは5レベルのページングが使用されているときに、各スーパーバイザモードのリニアアドレスは保護キーに関連付けられます。 [17] : 2–19 
25ユニットユーザー割り込み有効設定されている場合、ユーザー モードのプロセッサ間割り込みとそれに関連する命令およびデータ構造が有効になります。
63対26(予約済み)
  1. ^ Intel SGX仕様の初期の草案では、CR4のビット15は「CR4.SEE」と名付けられ、SGXエンクレーブ命令有効化ビットとして記述されていました。[18]この仕様の後の改訂では、このビットへの参照は削除されました。[19]

CR5~7

予約済み。CR1 と同じ大文字と小文字。

Intelの追加制御レジスタx86-64シリーズ

エファー

拡張機能有効化レジスタ(EFER)は、AMD K6プロセッサに追加されたモデル固有のレジスタで、 SYSCALL / SYSRET命令の有効化、および後にロングモードの開始と終了を可能にします。このレジスタはAMD64でアーキテクチャレジスタとなり、 IntelではIA32_EFERとして採用されています。MSR番号は0xC0000080です。

少し目的
0SCE (システムコール拡張)
1DPE (AMD K6 のみ: データプリフェッチ有効)
2SEWBED (AMD K6 のみ: 投機的 EWBE# 無効)
3GEWBED (AMD K6 のみ: グローバル EWBE# 無効)
4L2D (AMD K6 のみ: L2 キャッシュ無効)
5-7予約済み、ゼロとして読み取り
8LME(ロングモード有効化)
9予約済み
10LMA(ロングモードアクティブ)
11NXE (非実行有効)
12SVME (セキュア仮想マシン有効化)
13LMSLE (ロングモードセグメント制限有効化)
14FFXSR (高速 FXSAVE/FXRSTOR)
15TCE(翻訳キャッシュ拡張)
16予約済み
17MCOMMIT(MCOMMIT命令の有効化)
18INTWB (割り込み可能な WBINVD/WBNOINVD の有効化)
19予約済み
20UAIE (上位アドレス無視有効)
21AIBRSE(自動IBRS有効化)
22~63予約済み

CR8

CR8は、REXプレフィックスを使用して64ビットモードでアクセスできる新しいレジスタです。CR8は外部割り込みの優先順位付けに使用され、タスク優先度レジスタ(TPR)と呼ばれます。[15]

AMD64アーキテクチャではソフトウェアで最大15個の外部割り込み優先度クラスを定義できます。優先度クラスは1から15までの番号が付けられ、優先度クラス1が最低、優先度クラス15が最高です。CR8は下位4ビットをタスク優先度の指定に使用し、残りの60ビットは予約済みで、必ず0を書き込んでください。

システムソフトウェアは、TPRレジスタを使用して、低優先度割り込みによる高優先度タスクへの割り込みを一時的にブロックできます。これは、ブロックする最高優先度の割り込みに対応する値をTPRにロードすることで実現されます。例えば、TPRに9(1001b)をロードすると、優先度クラス9以下のすべての割り込みがブロックされますが、優先度クラス10以上のすべての割り込みは認識されます。TPRに0をロードすると、すべての外部割り込みが有効になります。TPRに15(1111b)をロードすると、すべての外部割り込みが無効になります。

TPR はリセット時に 0 にクリアされます。

XCR0とXSS

XCR0(拡張制御レジスタ0)は、XSAVE/XRSTOR命令を用いて、特定のCPU機能に関連するレジスタの保存または読み込みを切り替えるために使用される制御レジスタです。また、一部の機能においては、対応する命令の実行をプロセッサが有効化または無効化するためにも使用されます。XCR0は、特権命令であるXSETBV命令を用いて変更でき、非特権命令であるXGETBV命令を用いて読み出すことができます。[22]

少し名前有効な機能目的
0X87x87 FPUx87 FPU/MMX状態は「1」である必要があります
1南南東南南東MXCSRと16個のXMMレジスタ
2AVXAVXYMMレジスタの上位16個[a]
3BNDREGMPX4つのBNDレジスタ
4BNDCSRBNDCFGUおよびBNDSTATUSレジスタ
5OPマスクAVX-5128つのkマスクレジスタ
6ZMM_Hi256ZMMレジスタの上位16個[b]
7Hi16_ZMM16個の「ハイ」ZMMレジスタ(ZMM16からZMM31)
8PTプロセッサトレース
9PKRU保護キーPKRUレジスター
10パシド
11CET_UインテルCETユーザーシャドウスタック
12CET_Sスーパーバイザーシャドウスタック
13HDCハードウェアデューティサイクリング
14ユニットユーザーの割り込み
15LBR最終支店記録
16HWPハードウェアPステート
17XTILECFGインテル AMX64バイトのTILECFGレジスタ
18XTILEDATA8つの1024バイトTILEレジスタ
19 [c]APXインテル APX16 個の「高」GPR(R16 から R31)
20~63歳予約済み
  1. ^ すべての YMM レジスタの下位 128 ビットは SSE 状態に格納されます。
  2. ^ ZMMレジスタZMM0からZMM15の下位256ビットは、SSEおよびAVX状態に格納されます。
  3. ^ Intel APX は XCR0 のビット 19 で示されますが、実際には、XSAVE (非圧縮形式) を通じて、Intel MPX が保存されていた未使用の 128 バイトのスペースに書き込まれます。

IA32_XSS MSR も存在し、これはアドレス に配置されていますDA0h。IA32_XSS MSR は、XCR0 の「スーパーバイザ」状態とみなされるビットを制御し、通常のプログラムからは見えないようにする必要があります。特権命令である XSAVES および XRSTORS 命令と連携して動作し、操作対象のデータにスーパーバイザ状態を追加します。簡単に言うと、XCR0 で X87 状態が有効で、IA32_XSS で PT 状態が有効になっている場合、XSAVE 命令は X87 状態のみを格納しますが、特権命令である XSAVES 命令は X87 状態と PT 状態の両方を格納します。これは MSR であるため、RDMSR 命令と WRMSR 命令を使用してアクセスできます。

少し目的
0~7予約済み。0 にする必要があります。
8PT (9 つのプロセッサ トレース MSR の保存と読み込みを有効にします。)
10プロセッサアドレス空間ID(PASID)状態
11制御フロー強制技術 (CET) ユーザー状態
12制御フロー強制技術(CET)スーパーバイザ状態
13HDC (IA32_PM_CTL1 MSR の保存と読み込みを有効にします。)
14ユーザー割り込み(UINTR)状態
15最終分岐記録(LBR)状態
16HWP (IA32_HWP_REQUEST MSR の保存/読み込みを有効にする)
17~63歳予約済み。0 にする必要があります。

参照

注記

  1. ^ IBM は 360/64 や 360/66 を出荷したことはなく、360/67 のみを出荷しました。

参考文献

IBMマニュアル
M67予備試験
System/360 モデル67 - タイムシェアリングシステム - 暫定技術概要(PDF) . システム・リファレンス・ライブラリー (初版) . IBM . C20-1647-0 . 2023年5月8日閲覧.
M67
IBM System/360 モデル67 - 機能特性(PDF) . システム・リファレンス・ライブラリー(第3版). IBM . 1972年2月. A27-2719-0 . 2023年5月8日閲覧
S/370
IBM System/370 - 動作原理(PDF)(第11版). IBM . 1987年9月. GA22-7000-10 . 2023年5月8日閲覧.
S/370-XA
IBM System/370 拡張アーキテクチャー動作原理(PDF) (第2版). IBM . 1987年1月. SA22-7085-1 . 2023年5月8日閲覧.
S/370-ESA
IBM Enterprise Systems Architecture/370 Principles of Operation (PDF) (初版). IBM . 1988年8月. SA22-7200-0 . 2023年5月8日閲覧.
S/390-ESA
IBM Enterprise Systems Architecture/390 Principles of Operation (PDF) (第9版). IBM . 2003年6月. SA22-7201-08 . 2023年5月8日閲覧.
z/アーキテクチャ
z/Architecture - 動作原理(PDF)(第14版). IBM . 2022年5月. SA22-7832-13 . 2023年5月8日閲覧
  1. ^ "lab4.pdf" (PDF) .ウプサラ大学. 2024年3月17日. 2021年1月17日時点のオリジナルよりアーカイブ(PDF) . 2024年3月16日閲覧
  2. ^ M67prelim、pp. 25-26、制御レジスタ。
  3. ^ ab M67、p. 16、表4.制御レジスタ。
  4. ^ S/370、pp. 4-8-4-11、制御レジスタ。
  5. ^ M67、pp. 31-35、センシングのための制御レジスタのビット割り当て。
  6. ^ S/390-ESA.
  7. ^ S/370-ESA。
  8. ^ S/370-XA.
  9. ^ S/370.
  10. ^ S/390-ESA、pp. 4-6-4-10、制御レジスタ。
  11. ^ z/アーキテクチャ。
  12. ^ z/Architecture、pp. 4-9~4-12、制御レジスタ。
  13. ^ Intel486マイクロプロセッサフ​​ァミリプログラマーズリファレンスマニュアル(PDF) . Intel. 1992. p. 4-7.
  14. ^ ab Intel Corporation (2016). 「4.10.1 プロセスコンテキスト識別子 (PCID)」. Intel 64 および IA-32 アーキテクチャ ソフトウェア開発者マニュアル(PDF) . 第 3A 巻: システムプログラミングガイド、パート 1.
  15. ^ ab 「AMD64アーキテクチャプログラマーズマニュアル第2巻:システムプログラミング」(PDF)。AMD 2012年9月。pp. 127 & 130。2017年8月4日閲覧
  16. ^ 「5レベルページングと5レベルEPT」(PDF)Intel 2017年5月 p.16 2018年1月23日閲覧
  17. ^ abc 「Intel 64およびIA-32アーキテクチャー・ソフトウェア開発者マニュアル」(PDF) . Intel® Corporation. 2021年6月28日. 2021年9月21日閲覧
  18. ^ Intel、「ソフトウェア ガード拡張プログラミング リファレンス」、参照番号 329298-001、2013 年 9 月 - 1.7 章と 6.5.2 章で CR4.SEE について説明しています。
  19. ^ Intel、「ソフトウェア ガード拡張機能プログラミング リファレンス」、参照番号 329298-002、2014 年 10 月 - CR4.SEE については言及されていません。
  20. ^ Fischer, Stephen (2011-09-21). 「スーパーバイザーモード実行保護」(PDF) . NSA Trusted Computing Conference 2011. National Conference Services, Inc. 2016年8月3日時点のオリジナル(PDF)からアーカイブ。 2017年8月4日閲覧
  21. ^ Anvin, H. Peter (2012年9月21日). 「x86: スーパーバイザーモードアクセス防止」. LWN.net . 2017年8月4日閲覧。
  22. ^ 「第13章 Xsave機能セットを使用した状態管理」(PDF) . Intel(R) 64およびIA-32アーキテクチャー・ソフトウェア開発者マニュアル、第1巻:基本アーキテクチャー. Intel Corporation (2019) . 2019年3月23日閲覧
  • Intel 64 および IA-32 アーキテクチャ開発者マニュアル: Vol. 3A
  • Intel 64 および IA-32 アーキテクチャ ソフトウェア開発者マニュアル
  • 技術ドキュメント: AMD64
  • ワイアットの世界: Pentium III を分解する (1999-05-28)
「https://en.wikipedia.org/w/index.php?title=Control_register&oldid=1302338722」より取得