説明
EAX
レジスタの入力値が0
の場合、プロセッサは、CPUID
基本情報を返すために、CPUID
命令が認識可能な最大値をEAX
レジスタに返す(表2-5.
を参照)。EBX、EDX、ECXの各 レジスタには、ベンダ識別ストリングが返される。インテル®プロセッサの場合、ベンダ 識別ストリングは「GenuineIntel」になり、次のように表される。EBX ← 756e6547h (* "Genu", with G in the low nibble of BL *) EDX ← 49656e69h (* "ineI", with i in the low nibble of DL *) ECX ← 6c65746eh (* "ntel", with n in the low nibble of CL *)
オペコード 命令 64
ビット モード
互換/ レガシー モード
説明
0F A2 CPUID 有効 有効 EAXレジスタに最初に入力された値に応
じて、プロセッサの識別情報と機能情報
をEAX、EBX、ECX、EDXの各レジス
タに返す。
表2-5. CPUID機能リーフ
EAXの初期値 プロセッサに関して提供される情報
0H EAX
EBX ECX EDX
CPUID基本情報の最大入力値(表2-6.を参照)
“Genu”
“ntel”
“ineI”
1H EAX
EBX
ECX EDX
バージョン情報(タイプ、ファミリ、モデル、ステッピングID)
ビット7~0:ブランド・インデックス
ビット15~8:CLFLUSHのラインサイズ(返される値∗ 8 =キャッシュ・
ライン・サイズ)
ビット23~16:物理パッケージ当たりの論理プロセッサの数
ビット31~24:プロセッサのローカルAPIC IDの初期値
機能情報(図2-8.を参照)
機能情報(図2-8.を参照)
2H EAX
EBX ECX EDX
キャッシュおよびTLB情報 キャッシュおよびTLB情報 キャッシュおよびTLB情報 キャッシュおよびTLB情報
3H EAX
EBX ECX EDX
予約済み 予約済み 予約済み 予約済み
4H
EAX
EBX
ECX EDX
キャッシュ・パラメータ・リーフ
ビット4~0:キャッシュ・タイプ**
ビット7~5:キャッシュ・レベル(1から始まる)
ビット8:キャッシュ・レベルの自己初期化(ソフトウェアによる初期化は
不要)
ビット9:フル・アソシアティブ・キャッシュ
ビット13~10:予約済み
ビット25~14:このキャッシュを共有しているスレッドの数*
ビット31~26:このダイ上のプロセッサ・コアの数(マルチコア)*
ビット11~00:L =システム・コヒーレンシ・キャッシュ・サイズ*
ビット21~12:P =物理ライン・パーティション*
ビット31~22:W =アソシアティブ・ウェイ数*
ビット31~00:S =セット数*
予約済み= 0
* この数を求めるには、レジスタファイル内の値に1を加算する。
例えば、プロセッサ・コアの数は、EAX[31:26]+1になる。
**キャッシュ・タイプ・フィールド 0 = Null -キャッシュなし
1 =データ・キャッシュ
2 =命令キャッシュ
3 =ユニファイド・キャッシュ
4~31 =予約済み
注:3より大きく80000000より小さいCPUIDリーフは、IA32_CR_
MISC_ENABLES.BOOT_NT4(ビット22)がクリアされている場合(デ
フォルト)にのみ参照可能である。
5H
EAX
EBX ECX EDX
MONITOR/MWAITリーフ
ビット15~00:最小モニタライン・サイズ(バイト単位)(デフォルトは
プロセッサのモニタ・グラニュラリティ)
ビット31~16:予約済み= 0
ビット15~00:最大モニタライン・サイズ(バイト単位)(デフォルトは
プロセッサのモニタ・グラニュラリティ)
ビット31~16:予約済み= 0
予約済み= 0 予約済み= 0
拡張機能CPUID情報
80000000H EAX
EBX ECX EDX
拡張機能CPUID情報の最大入力値(表2-6.を参照)
予約済み 予約済み 予約済み 80000001H
EAX EBX ECX EDX
拡張されたプロセッサ・シグネチャと拡張された機能ビット 予約済み
予約済み 予約済み
ビット10~0:予約済み
ビット11:SYSCALL/SYSRETを利用可能
ビット19~12:予約済み
ビット28~-21:予約済み
ビット29:インテルEM64Tを利用可能
ビット31~-30:予約済み
表2-5. CPUID機能リーフ(続き)
EAXの初期値 プロセッサに関して提供される情報
入力値が
1
の場合、プロセッサはEAXレジスタにバージョン情報を返す(図 2-3.
を参照)。 バージョン情報は、IA-32
プロセッサ・ファミリID
、モデルID
、ステッピングID
、プロ セッサ・タイプで構成される。インテル®EM64T
に対応した最初のプロセッサのモデル、ファミリ、プロセッサ・タイプは、次のようになる。
•
モデル- 0011B
80000002H EAX
EBX ECX EDX
プロセッサ・ブランド・ストリング
プロセッサ・ブランド・ストリング(続き)
プロセッサ・ブランド・ストリング(続き)
プロセッサ・ブランド・ストリング(続き)
80000003H EAX
EBX ECX EDX
プロセッサ・ブランド・ストリング(続き)
プロセッサ・ブランド・ストリング(続き)
プロセッサ・ブランド・ストリング(続き)
プロセッサ・ブランド・ストリング(続き)
80000004H EAX
EBX ECX EDX
プロセッサ・ブランド・ストリング(続き)
プロセッサ・ブランド・ストリング(続き)
プロセッサ・ブランド・ストリング(続き)
プロセッサ・ブランド・ストリング(続き)
80000005H EAX
EBX ECX EDX
予約済み= 0 予約済み= 0 予約済み= 0 予約済み= 0
80000006H EAX
EBX ECX
EDX
予約済み= 0 予約済み= 0
ビット7~0:キャッシュ・ライン・サイズ
ビット15~12:L2アソシアティビティ
ビット31~16:キャッシュ・サイズ(1K単位)
初期値はECX = 0x04008040 予約済み= 0
80000007H EAX
EBX ECX EDX
予約済み= 0 予約済み= 0 予約済み= 0 予約済み= 0
80000008H EAX
EBX ECX EDX
仮想/物理アドレスサイズ
ビット7~0:物理アドレスビット数
ビット15~8:仮想アドレスビット数
ビット31~16:予約済み
初期値はEAX = 0x3028 予約済み= 0
予約済み= 0 予約済み= 0
表2-6. インテル® EM64T対応プロセッサに対するCPUID命令のソース・オペランドの最大値
IA-32プロセッサ
EAXレジスタの最大値
基本情報 拡張機能情報
5H 80000008H
表2-5. CPUID機能リーフ(続き)
EAXの初期値 プロセッサに関して提供される情報
•
プロセッサ・タイプ- 00B
使用可能なプロセッサ・タイプについては、表
2-7.
を参照のこと。ステッピングID
につい ては、必要に応じて情報を提供する。ファミリ
ID
が0FH
またはそれ以上の場合にのみ、拡張ファミリID
と拡張モデルID
を確認 する必要がある。プロセッサ情報は、常にファミリ、モデル、ステッピングを組み合わせ て表示すること。各
ID
フィールドを次のように計算して、ファミリを表示する。Displayed family = ((Extended Family ID(4-bits) << 4)) (8-bits) + Family ID (4-bits zero extended to 8-bits)
表示されるモデルは、モデル
ID
と拡張モデルID
から次のように計算する。Displayed Model = ((Extended Model ID (4-bits) << 4))(8-bits) + Model (4-bits zero extended to 8-bits)
初期の
IA-32
プロセッサの識別については、AP-485
『インテル®プロセッサの識別と CPUID
命令(資料番号241618J
)』および『IA-32
インテル®アーキテクチャ・ソフトウェア・デベ ロッパーズ・マニュアル、上巻』の第13章を参照のこと。
EAX
レジスタの入力値が1の場合、EBX
レジスタには、関連のない4
つの情報が返される。図2-3. EAXレジスタのバージョン情報
表2-7. プロセッサ・タイプ・フィールド
タイプ コード化
オリジナルOEMプロセッサ 00B
インテル® OverDrive®プロセッサ 01B
デュアルプロセッサ* 10B
インテル用に予約済み 11B
* Intel486™プロセッサには適用不可
31 12 11 8 7 4 3 0
EAX
ファミリ(インテル® Pentium® 4プロセッサ・ファミリの場合は1111B)
モデル(0000Bから開始)
13 14
プロセッサ・タイプ
ファミリ モデル ステッピング ID
15 モデル
拡張 ファミリ
16 19 20 27
28
拡張
•
ブランド・インデックスEBX[7:0] - IA-32
プロセッサのブランド・ストリングで構成さ れるブランド・ストリング・テーブルのエントリには、この数字が入っている。ブラ ンド・インデックスの用途の詳細については、この命令の「ブランド識別」の項を参 照のこと。このフィールドは、インテル®Pentium
®III Xeon™
プロセッサで導入された ものである。• CLFLUSH
命令キャッシュ・ライン・サイズEBX[15:8] -
この数字は、CLFLUSH命令に よって8
バイト・インクリメントでフラッシュされるキャッシュ・ラインのサイズを示 す。このフィールドは、インテル®Pentium
®4
プロセッサで導入されたものである。• EBX[23:16]
には、パッケージに含まれるスレッドの数が示される。• APIC ID
の初期値 EBX[31:24] -この数字は、電源入力時にプロセッサのローカルAPICに
割り当てられる8
ビットの物理ID
を示す。このフィールドは、インテルPentium 4
プロ セッサで導入されたものである。EAX
レジスタの入力値が1の場合、機能情報はEDX
レジスタに返される(図2-8.
を参照)。 オペレーティング・システムやアプリケーションのコードは、この機能ビットを利用して、プロセッサで利用可能な
IA-32
アーキテクチャ機能を識別できる。表2-8.
に、EDXレジス タの機能フラグのコード化を示す。現時点でEDX
レジスタに返されるすべての機能フラグ について、1は、対応する機能をサポートしていることを示す。ソフトウェアは、機能フ ラグを正しく解釈するのに当たってインテルをベンダとして識別する必要がある。ソフト ウェアは、将来の機能フラグについて、機能の存在を示す1
に依存してはならない。表2-8. CPUID機能情報
レジスタビット番号 ニーモニック 説明
EDX.0 FPU オンチップ浮動小数点ユニット。プロセッサは、x87 FPUを
搭載している。
EDX.1 VME 仮想8086モード強化。仮想8086モード強化機能には次の
ものが含まれる。機能制御用のCR4.VME、保護モード仮想 割り込み用のCR4.PVI、ソフトウェア割り込みインダイレク ション、ソフトウェア・インダイレクション・ビットマップ によるTSSの拡張、EFLAGS.VIFフラグ、EFLAGS.VIPフ ラグ。
EDX.2 DE デバッグ拡張。機能制御用のCR4.DE、オプションのDR4
およびDR5へのアクセストラップを含めて、I/Oブレークポ イントをサポート。
EDX.3 PSE ページ・サイズ拡張。機能制御用のCR4.PSE、ページ・
ディレクトリ・エントリ(PDE)内の定義済みのダーティ ビット、CR3、PDE、PTE内のオプションの予約ビット・ト ラッピングを含めて、4Mバイトのラージ・ページ・サイズ をサポート。
EDX.4 TSC タイム・スタンプ・カウンタ。特権制御用のCR4.TSDを含
めて、RDTSC命令をサポート。
EDX.5 MSR モデル固有レジスタのRDMSR命令およびWRMSR命令。
RDMSR命令とWRMSR命令をサポート。MSRによっては、
プロセッサに依存しないものもある。