ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
x86系プロセッサーの命令の一つで、CPUの種類などを得ることができる。互換CPUでも利用可能。
この命令は、i386末期から利用可能となった。公式にはi486以降対応。
元々、CPUID命令対応以前のCPUでも、CPUリセット時にDXレジスターに16ビットでCPUの種類を表わすIDがセットされていた(これはEAX=1としてCPUID命令で得られる32ビット値中の下位16ビットそのままである)。これを32ビットに拡張し、また他の情報も得られるようにし、命令で取得可能にしたものである。
具体的には、フラグレジスター(EFLAGS)のビット21が変更可能である場合に命令が利用できる。オペコードは「0F A2」の2バイトである。
この命令を使うとCPUの種類を表わすコードやプロセッサーシリアルナンバー、そのCPUが持つ機能、メーカーなどを取得することができる。
cpuidという命令であることからも分かるように、CPUIDを得ることが主たる目的となる命令である。詳細は後述するが、これはEAX=1でcpuidを呼び出してEAXに返る32ビットの値である。
下位16ビットが従来から使われていたコードで、上位16ビットは拡張された内容である。
このコードは、最下位4ビットがステッピング、つぎの4ビットがモデル、次の4ビットがファミリー、残りの4ビットがタイプと予備(CPUの種類により微妙に違っている)となる。
CPUの大まかな種類はファミリーで表わし、i486=4、Pentiumシリーズ=5、Pentium Pro、Peintium Ⅱ〜Ⅲまで=6、Pentium 4=15となる。そして、各ファミリー中の細かい違い(SXとDXや、Pentium ⅡとⅢの違いなど)はモデルで表わされる。ステッピングはダイのバージョンなどを表わすものである。
実際には、EAXレジスターに取得したい情報の番号を入れcpuid命令を実行すると、EAXに応じた内容が各レジスターに返る。
利用できるEAXの範囲は、cpuid命令にて取得できる。
まずEAX=0でcpuid命令を実行すると、EAXに利用できる最大の番号(例えばEAX=2)が返る。
また拡張で、EAX=8000_0000でcpuid命令を実行すると、EAXに利用できる最大の番号(例えばEAX=8000_0004)が返る。
この範囲を越える値を入れて実行した場合、返却値は未定義となる。無効オペコード例外などは生成されないので注意。
EAX=0でcpuidを実行すると、次の値が得られる。cpuid対応の全CPU対象。
GenuineIntelの場合、EBX=0x756e6547、EDX=0x49656e69、ECX=0x6c65746eが返される。
EAX=1でcpuidを実行すると、次の値が得られる。cpuid対応の全CPU対象。
i486以降の内容は次のとおり。
0 | SSE3 | ストリーミングSIMD拡張命令3対応 |
1 | PCLMULQDQ | PCLMULQDQ Instruction |
2 | DTES64 | 64bit Debug Trace and EMON Store MSRs |
3 | MONITOR | MONITOR/MWAIT命令対応 |
4 | DS-CPL | CPLの条件を満たすデバッグストア拡張機能 |
5 | VMX | Intel VT (Virtual Machine Extensions) |
6 | SMX | Safer Mode Extensions |
7 | EST | 拡張版 Intel SpeedStep テクノロジー |
8 | TM2 | 温度モニター2の温度制御回路(TCC)を実装 |
9 | SSSE3 | Supplemental SSE3 |
10 | CNXT-ID | コンテキストID、BIOSからL1データキャッシュモードを設定可 |
11 | SDBG | シリコンデバッグ用のIA32_DEBUG_INTERFACE MSRに対応 |
12 | FMA | YMM状態を使用したFMA拡張に対応 |
13 | CX16 | CMPXCHG16B命令対応 |
14 | xTPR | タスク・プライオリティ・メッセージの送信を停止する機能に対応 |
15 | PDCM | Performance/Debug Capability MSR |
16 | 予約 | |
17 | PCID | Process-context Identifiers |
18 | DCA | Direct Cache Access |
19 | SSE4_1 | Streaming SIMD Extensions 4.1 |
20 | SSE4_2 | Streaming SIMD Extensions 4.2 |
21 | x2APIC | x2APIC |
22 | MOVBE | MOVBE |
23 | POPCNT | Population Count Instruction |
24 | TSC-Deadline | TSC-Deadline |
25 | AESNI | AES |
26 | XSAVE | CR4.OSXSAVE |
27 | OSXSAVE | CR4.OSXSAVE |
28 | AVX | AVX |
29 | F16C | 16ビット浮動小数点変換命令 |
30 | RDRAND | RDRAND instruction |
31 | HYPERVISOR | 何らかのHYPERVISOR状態 |
0 | FPU | x87浮動小数点命令に対応するFPU機能 |
1 | VME | 仮想8086モード拡張機能 |
2 | DE | I/Oブレークポイントをサポートするデバッグ拡張機能 |
3 | PSE | 4Miバイトページをサポートするページサイズ拡張機構 |
4 | TSC | タイムスタンプ・カウンター、RDTSC命令に対応 |
5 | MSR | モデル固有レジスター、RDMSR命令、WRMSR命令 |
6 | PAE | 32ビットを超える物理アドレスをサポートする物理アドレス拡張機構 |
7 | MCE | マシンチェック例外(例外18)とCR4.MCEイネーブル・ビットに対応 |
8 | CX8 | CMPXCHG8命令のサポート |
9 | APIC | オンチップAPICハードウェアのサポート |
10 | 予約 | |
11 | SEP | 高速システムコール命令SYSENTER/SYSEXITに対応 |
12 | MTRR | メモリータイプ範囲レジスター(MTRR_CAPレジスター)対応 |
13 | PGE | ページ・グローバル・イネーブル、PDE内とPTE内でグローバル・ビットに対応 |
14 | MCA | マシン・チェック・アーキテクチャー(MCG_CAPレジスター)対応 |
15 | CMOV | 条件付MOVE命令、CMOVcc(FPU対応時はFCMOVccとFCOMI命令も)対応 |
16 | PAT | ページ属性テーブル対応 |
17 | PSE-36 | 36ビット・ページ・サイズ拡張機構 |
18 | PSN | プロセッサーシリアルナンバー対応かつ有効 |
19 | CLFSH | CLFLUSH命令対応 |
20 | 予約 | |
21 | DS | デバッグストア(アドレスへ/からの分岐履歴をメモリーバッファに書く機能)対応 |
22 | ACPI | ACPI機能対応 |
23 | MMX | MMXテクノロジー拡張命令セット対応 |
24 | FXSR | 高速浮動小数点セーブ/リストア命令FXSAVE/FXRSTOR対応 |
25 | SSE | ストリーミングSIMD拡張命令対応 |
26 | SSE2 | ストリーミングSIMD拡張命令2対応 |
27 | SS | 自己スヌープ対応 |
28 | HTT | ハイパースレッディング・テクノロジー機能を搭載 |
29 | TM | T温度モニターの自動温度制御回路(TCC)を実装 |
30 | IA-64 | IA-64 Processor Capable |
31 | PBE | ペンディング・ブレーク・イネーブルFERR#/PBE#ピン対応 |
現在のIA-32プロセッサーの仕様書では、ビット30は予約としか記載がない。IA-64は名を出すことも憚られる黒歴史だったらしい。
EAX=2でcpuidを実行すると、次の値が得られる。cpuid対応の全CPU対象。
EAX=3でcpuidを実行すると、次の値が得られる。これは、プロセッサーシリアルナンバー対応製品のみで有効で、事前にEAX=0で最大入力値を確認せねばならない。
Transmetaの場合、EAXとEBXにも値を返す。CrusoeではEBXに、EfficeonではEAXとEBXに返される。
基本cpuid情報の最大入力値が4〜5以上で、かつIA32_CR_MISC_ENABLES.BOOT_NT4(ビット22)が0(デフォルト)時には、EAX=4またはEAX=5で、次の値が得られる。
EAX=4では、引数ECXが必要である。0ならL1D、1ならL2の情報、あるいは、0ならL1D、1ならL1I、2ならL2、を得る、といった動作をする。
いずれも、MSRのMISC_ENABLEのLCMVが0の場合に有効となる。Windows NTのバグ対策のためとされる。
EAX=6でcpuidを実行すると、パワーマネージメント情報が得られる。基本CPUID情報の最大入力値が6以上の場合のみ有効。
これは、IA32_ENERGY_PERF_BIAS(1B0H)と呼ばれる新しいアーキテクチャーのMSRの存在も意味する。
インデックスは複数のプロセッサーで同じである場合がある
インデックスは必ずしも連続しておらず、未使用の行(row)が存在しうる
ECXにサブリーフ番号を入れ、EAX=7でcpuidを実行すると、EBX:ECX:EDXに拡張Feature flags情報が得られる。基本CPUID情報の最大入力値が7以上の場合のみ有効。特に記載がない場合は各ビットが0で無効(機能なし)、1で有効(機能あり)。
EAX=0000_0001を使い切ったため拡張されたが、今後の更なる拡張でEAXを消費せずに済むよう、ECXで参照する情報(リーフ; leaf=葉)を切り替えられるようになっている。実際、2020(令和2)年頃の製品で既にECX=0の情報欄が埋まりつつあり、近い将来のCPUからECX=1のサブリーフが追加される可能性は高い。
もしECXに無効なサブリーフ番号を入れた場合、つまりそのCPUがまだ対応していないサブリーフ番号を参照しようとした場合、EAX=0が返る。ECXのサブリーフ番号が有効の場合は、EAXに対応する最大サブリーフ番号を返す。
0 | FSGSBASE | RDFSBASE/RDGSBASE/WRFSBASE/WRGSBASE |
1 | TSC_ADJUST | TSC adjustment MSR 0x3b |
2 | SGX | Intel Software Guard Extensions(Intel SGX Extensions) |
3 | BMI1 | 1st group bit manipulation extensions |
4 | HLE | Hardware Lock Elision |
5 | AVX2 | AVX2 instructions |
6 | FDP_EXCPTN_ONLY | x87 FPUデータポインターはx87例外でのみ更新される |
7 | SMEP | Supervisor Mode Execution Protection |
8 | BMI2 | 2nd group bit manipulation extensions |
9 | ERMS | Enhanced REP MOVSB/STOSB |
10 | INVPCID | Invalidate Processor Context ID |
11 | RTM | Restricted Transactional Memory |
12 | RDT-M | Intel Resource Director Technology (Intel RDT) Monitoring capability |
13 | Deprecates FPU CS and FPU DS values | |
14 | MPX | Intel Memory Protection Extensions |
15 | RDT-A | Supports Intel Resource Director Technology (Intel RDT) Allocation capability |
16 | AVX512F | |
17 | AVX512DQ | |
18 | RDSEED | The RDSEED instruction |
19 | ADX | The ADCX and ADOX instructions |
20 | SMAP | Supervisor-Mode Access Prevention (および CLAC/STAC 命令) |
21 | AVX512_IFMA | |
22 | 予約 | |
23 | CLFLUSHOPT | |
24 | CLWB | |
25 | PT | Intel Processor Trace |
26 | AVX512PF | AVX512PF (Intel Xeon Phi のみ) |
27 | AVX512ER | AVX512ER (Intel Xeon Phi のみ) |
28 | AVX512CD | |
29 | SHA | Intel Secure Hash Algorithm Extensions (Intel SHA Extensions) |
30 | AVX512BW | |
31 | AVX512VL |
0 | PREFETCHWT1 | PREFETCHWT1 (Intel Xeon Phi のみ) |
1 | AVX512_VBMI | |
2 | UMIP | user-mode instruction prevention |
3 | PKU | protection keys for user-mode pages |
4 | OSPKE | OSは、保護キー(およびRDPKRU/WRPKRU命令)を有効にするようにCR4.PKEを設定した |
5 | WAITPKG | |
6 | AVX512_VBMI2 | |
7 | CET_SS | CET shadow stack features |
8 | GFNI | |
9 | VAES | |
10 | VPCLMULQDQ | |
11 | AVX512_VNNI | |
12 | AVX512_BITALG | |
13 | 予約 | |
14 | AVX512_VPOPCNTDQ | AVX512_VPOPCNTDQ (Intel Xeon Phi のみ) |
15 | 予約 | |
16 | 予約 | |
17 | MAWAU | 64ビットモードでBNDLDXおよびBNDSTX命令によって使用されるMAWAUの値 |
18 | ||
19 | ||
20 | ||
21 | ||
22 | RDPID and IA32_TSC_AUX are available | |
23 | 予約 | |
24 | 予約 | |
25 | CLDEMOTE | cache line demote |
26 | 予約 | |
27 | MOVDIRI | MOVDIRI |
28 | MOVDIR64B | MOVDIR64B |
29 | 予約 | |
30 | SGX_LC | SGX Launch Configuration |
31 | PKS | protection keys for supervisor-mode pages |
0 | ※(仕様書に記載なし) | |
1 | 予約 | |
2 | AVX512_4VNNIW | AVX512_4VNNIW (Intel Xeon Phi のみ) |
3 | AVX512_4FMAPS | AVX512_4FMAPS (Intel Xeon Phi のみ) |
4 | Fast Short REP MOV | |
5 | 予約 | |
6 | 予約 | |
7 | 予約 | |
8 | 予約 | |
9 | 予約 | |
10 | MD_CLEAR | |
11 | 予約 | |
12 | 予約 | |
13 | 予約 | |
14 | 予約 | |
15 | Hybrid | the processor is identified as a hybrid part |
16 | 予約 | |
17 | 予約 | |
18 | 予約 | |
19 | 予約 | |
20 | CET_IBT | CET indirect branch tracking features |
21 | 予約 | |
22 | 予約 | |
23 | 予約 | |
24 | 予約 | |
25 | 予約 | |
26 | Enumerates support for indirect branch restricted speculation (IBRS) and the indirect branch predictor barrier (IBPB) | |
27 | Enumerates support for single thread indirect branch predictors (STIBP) | |
28 | Enumerates support for L1D_FLUSH | |
29 | Enumerates support for the IA32_ARCH_CAPABILITIES MSR | |
30 | Enumerates support for the IA32_CORE_CAPABILITIES MSR | |
31 | Enumerates support for Speculative Store Bypass Disable (SSBD) |
予約 (未使用)
EAX=9でcpuidを実行すると、DCA(Direct Cache Access)パラメーターが得られる。基本CPUID情報の最大入力値が9以上の場合のみ有効。
MSRのMISC_ENABLEのLCMVが0の場合に有効となる。Windows NTのバグ対策のためとされる。
EAX=10でcpuidを実行すると、DCAパラメーターが得られる。基本CPUID情報の最大入力値が10以上の場合のみ有効。
EDXのビット12〜0は、リビジョン2以降で有効。
MSRのMISC_ENABLEのLCMVが0の場合に有効となる。Windows NTのバグ対策のためとされる。
EAX=11でcpuidを実行すると、topology enumeration情報が得られる。基本CPUID情報の最大入力値が11以上の場合のみ有効。
引数としてECXを求める。ECX=0でcpuidを実行するとSMTの情報が得られる。
MSRのMISC_ENABLEのLCMVが0の場合に有効となる。Windows NTのバグ対策のためとされる。
予約 (未使用)
EAX=13、ECXにサブリーフ番号を入れてcpuidを実行すると、extended state enumeration情報が得られる。基本CPUID情報の最大入力値が13以上の場合のみ有効。
ECXのサブリーフ番号は、0でメイン、1でサブ、2〜62でXCR0.nのsub情報が得られる。
MSRのMISC_ENABLEのLCMVが0の場合に有効となる。Windows NTのバグ対策のためとされる。
EAX=15〜16、ECXにサブリーフ番号を入れてcpuidを実行すると、Intel Resource Director Technology (Intel RDT)やキャッシュ、Memory Bandwidth Allocation Enumerationなどに関する各種の情報が得られる。基本CPUID情報の最大入力値がEAXに入れる値以上の場合のみ有効。
ECXにサブリーフ番号を入れ、EAX=18(=12H)でcpuidを実行すると、Intel SGXに関する情報が得られる。基本CPUID情報の最大入力値が18以上の場合のみ有効。
ECXにサブリーフ番号を入れ、EAX=20(=14H)でcpuidを実行すると、Intel Processor Trace Enumeration情報が得られる。基本CPUID情報の最大入力値が20以上の場合のみ有効。
EAX=21(=15H)でcpuidを実行すると、タイムスタンプカウンター(TSC)やNominal Core Crystal Clockに関する情報が得られる。サブリーフ番号はない。基本CPUID情報の最大入力値が21以上の場合のみ有効。
EAX=22(=16H)でcpuidを実行すると、CPUの周波数情報が得られる。サブリーフ番号はない。基本CPUID情報の最大入力値が22以上の場合のみ有効。
ECXにサブリーフ番号を入れ、EAX=23(=17H)でcpuidを実行すると、System-On-Chip Vendor Attribute Enumerationに関する情報が得られる。基本CPUID情報の最大入力値が23以上の場合のみ有効。
ECXにサブリーフ番号を入れ、EAX=24(=18H)でcpuidを実行すると、Deterministic Address Translation Parametersに関する情報が得られる。基本CPUID情報の最大入力値が24以上の場合のみ有効。
ECXにサブリーフ番号を入れ、EAX=26(=1AH)でcpuidを実行すると、Hybrid Information Enumerationに関する情報が得られる。基本CPUID情報の最大入力値が26以上の場合のみ有効。
ECXにサブリーフ番号を入れ、EAX=31(=1FH)でcpuidを実行すると、V2 Extended Topology Enumerationに関する情報が得られる。基本CPUID情報の最大入力値が31以上の場合のみ有効。
後述する他社による実装EAX=8000_0000にIntelが対応するにあたり追加で用意した範囲。つまりIntelが使用しないことを宣言した範囲。未実装である。
互換プロセッサーでは、この番号で独自の情報を得られる可能性がある。
これは、元々はAMDが自社プロセッサーの情報取得用に作った仕様である。
Intel製品にない機能の有無を表現するのに、Intelの用意したフラグの空きを使っては、のちのち競合する恐れがあったためである。このため、この仕様においてビットの定義についてはAMD側に主導権があり、IntelもPentium 4以降で対応するようになったがここに独自のフラグを追加したりはしていない。
EAX=80000000Hでcpuidを実行すると、次の値が得られる。拡張機能対応チェックも兼ねている。
拡張CPUIDに対応していない場合、EAXは80000000Hよりも小さな値を返す。
IntelではEBX,ECX,EDXは0だが、他のブランドではEAX=0000_0000と同じベンダー文字列を返すことがある(AMD、Transmeta、NSCのGX2など)。
EAX=80000001Hでcpuidを実行すると、次の値が得られる。対応しているCPUのみ。
0 | LAHF | 64ビットモードでのlahf/sahfの使用可否 |
1 | CMPL | HTT=1がHTT(0)かCMP(1)を示す |
2 | SVM | Secure Virtual Machine |
3 | EAS | Extended APIC |
4 | AMC8 | LOCK MOV CR0 means MOV CR8 |
5 | ABM | Advanced Bit Manipulation. LZCNT |
6 | SSE4A | Streaming SIMD Extensions 4a |
7 | MASSE | Misaligned SSE mode |
8 | PREFETCH | PREFETCHとPREFETCHW命令のサポート |
9 | OSVW | OS Visible Workaround |
10 | IBS | instruction based sampling |
11 | XOP | eXtended Operations |
12 | SKINIT | SKINITとSTGIのサポート |
13 | WDT | ウォッチドッグタイマーのサポート |
14 | 予約 | |
15 | LWP | Light Weight Profiling |
16 | FMA4 | 4 operands MAC instructions |
17 | TCE | translation cache extension |
18 | 予約 | |
19 | MSR | NodeId MSR |
20 | 予約 | |
21 | TBM | trailing bit manipulations |
22 | TOPOEXT | topology extensions CPUID leafs |
23 | PERFCTR_CORE | core performance counter extensions |
24 | PERFCTR_NB | NB performance counter extensions |
25 | 予約 | |
26 | DBX | Data breakpoint extensions |
27 | PERFTSC | Performance TSC |
28 | PERFCTR_L2 | L2 performance counter extensions |
29 | 予約 | |
30 | 予約 | |
31 | 予約 |
0 | Feature flags(EAX=0000_0001、EDX) 0〜9と同じ | |
1 | ||
2 | ||
3 | ||
4 | ||
5 | ||
6 | ||
7 | ||
8 | ||
9 | ||
10 | 予約 | |
11 | SYSCALL | syscall/sysret命令のサポート |
12 | Feature flags 12〜17と同じ | |
13 | ||
14 | ||
15 | ||
16 | ||
17 | ||
18 | 予約 | |
19 | MP | Multiprocessing Capable |
20 | NX/XD | No-execute Page Protection |
21 | 予約 | |
22 | MMX+ | MMX Instruction Extensions |
23 | Feature flags 23〜24と同じ | |
24 | ||
25 | FFXSR | FXSAVE/FXRSTOR命令オプティマイズ |
26 | P1GB | 1GB large pageの対応 |
27 | RDTSCP | RDTSCP命令とIA32_TSC_AUXのサポート |
28 | 予約 | |
29 | LM | AMD64/Intel 64 ロングモード |
30 | 3DNow!+ | 3DNow! Instruction Extensions (Enhanced 3DNow!) |
31 | 3DNow! | 3DNow! Instructions |
Feature flagsと同じ、とされている領域については、CPU種類によっては別の情報が格納されていることもある。
殆どがAMD用の情報ビットで、Intelの仕様書では、ECXのビット0、5、8と、EDXのビット11、20、26、27、29のみ明記があり、他は予約としている。
対応しているCPUでEAX=80000002〜4Hでcpuidを実行すると、EAX,EBX,ECX,EDXにNUL末端のプロセッサーブランド文字列が得られる。最大48バイト。
Intelのプロセッサーも対応している。
EAX=80000005Hでcpuidを実行すると、1次キャッシュの情報が得られる。対応しているCPUのみ。
Intelのプロセッサーは対応せず、予約で値は全て0としている。
EAX=80000006Hでcpuidを実行すると、2次キャッシュ、3次キャッシュの情報が得られる。対応しているCPUのみ。
Intelプロセッサーの仕様書では、次のような記載がある。
EAX=80000007Hでcpuidを実行すると、電源管理関係の機能の情報が得られる。対応しているCPUのみ。
0 | TS | Temperature Sensor |
1 | FID | Frequency ID Control |
2 | VID | Voltage ID Control |
3 | TTP | Thermal Trip |
4 | TM | Thermal Monitoring |
5 | STC | Software Thermanl Control |
6 | MUL | 100MHz Multiplier Steps |
7 | HWPS | Hardware P-State Control |
8 | ITSC | Invariant TSC |
9 | 予約 | |
10 | 予約 | |
11 | 予約 | |
12 | 予約 | |
13 | 予約 | |
14 | 予約 | |
15 | 予約 | |
16 | 予約 | |
17 | 予約 | |
18 | 予約 | |
19 | 予約 | |
20 | 予約 | |
21 | 予約 | |
22 | 予約 | |
23 | 予約 | |
24 | 予約 | |
25 | 予約 | |
26 | 予約 | |
27 | 予約 | |
28 | 予約 | |
29 | 予約 | |
30 | 予約 | |
31 | 予約 |
Intelプロセッサーでは、ビット8(ITSC)のみ定義している。
EAX=80000008Hでcpuidを実行すると、拡張アドレス長機能などの情報が得られる。対応しているCPUのみ。
Intelプロセッサーの仕様書では、EAXのビット15〜0の範囲のみ定義がある。
EAX=8000000AHでcpuidを実行すると、SVM情報が得られる。対応しているCPUのみ。
EAX=80000019Hでcpuidを実行すると、TLBコンフィギュレーションディスクリプターが得られる。対応しているCPUのみ。
EAX=8000001AHでcpuidを実行すると、パフォーマンス最適化に関する情報が得られる。対応しているCPUのみ。
AMD K7とK8に限り、EAX=8FFFFFFFHでcpuidを実行すると、EAX:EBX:ECX:EDXに文字列 "IT'S HAMMER TIME" を返すイースターエッグがある。
AMDの拡張とは別に、TransmetaとVIAは、それぞれ独自のFeature Flagを提供している。
EAX=80860000Hでcpuidを実行すると、次の値が得られる。拡張機能対応チェックも兼ねている。
拡張CPUIDに対応していない場合、EAXは80860000Hよりも小さな値を返す。
EAX=80860001Hでcpuidを実行すると、CPUの情報を返す。対応しているCPUのみ。
EAX,EBXにCPUの種類、ECXにコアクロック周波数、EDXにFeature Flagが得られる。EDXの内容は次の通り。
0 | BAD | recovery CMS active |
1 | LR | LongRun |
2 | 予約 | |
3 | LRTI | LongRun Table Interface |
4 | 予約 | |
5 | 予約 | |
6 | 予約 | |
7 | 予約 | |
8 | 予約 | |
9 | 予約 | |
10 | 予約 | |
11 | 予約 | |
12 | 予約 | |
13 | 予約 | |
14 | 予約 | |
15 | 予約 | |
16 | 予約 | |
17 | 予約 | |
18 | 予約 | |
19 | 予約 | |
20 | 予約 | |
21 | 予約 | |
22 | 予約 | |
23 | 予約 | |
24 | 予約 | |
25 | 予約 | |
26 | 予約 | |
27 | 予約 | |
28 | 予約 | |
29 | 予約 | |
30 | 予約 | |
31 | 予約 |
EAX=80860002Hでcpuidを実行すると、プロセッサーの情報を返す。対応しているCPUのみ。
EAX=80860003〜6Hでcpuidを実行すると、CPUの情報文字列を返す。対応しているCPUのみ。
EAX=80860007Hでcpuidを実行すると、CPUの情報を返す。対応しているCPUのみ。
EAX=C0000000Hでcpuidを実行すると、次の値が得られる。拡張機能対応チェックも兼ねている。
拡張CPUIDに対応していない場合、EAXはC0000000Hよりも小さな値を返す。
EAX=C0000001Hでcpuidを実行すると、EDXにFeature Flagが得られる。対応しているCPUのみ。
0 | AIS | Alternate Instruction Set |
1 | AIS_EN | Alternate Instruction Set enabled |
2 | RNG | Random Number Generator (XSTORE) |
3 | RNG_EN | Random Number Generator (XSTORE) enabled |
4 | LH | LongHaul MSR 0000_110Ah |
5 | FEMMS | FEMMS |
6 | ACE | Advanced Cryptography Engine (XCRYPT) |
7 | ACE_EN | Advanced Cryptography Engine (XCRYPT) enabled |
8 | ACE2 | Advanced Cryptography Engine v2 |
9 | ACE2_EN | ACE v2 enabled |
10 | PHE | PadLock Hash Engine |
11 | PHE_EN | PHE enabled |
12 | PMM | PadLock Montgomery Multiplier |
13 | PMM_EN | PMM enabled |
14 | 予約 | |
15 | 予約 | |
16 | 予約 | |
17 | 予約 | |
18 | 予約 | |
19 | 予約 | |
20 | 予約 | |
21 | 予約 | |
22 | 予約 | |
23 | 予約 | |
24 | 予約 | |
25 | 予約 | |
26 | 予約 | |
27 | 予約 | |
28 | 予約 | |
29 | 予約 | |
30 | 予約 | |
31 | 予約 |
コメントなどを投稿するフォームは、日本語対応時のみ表示されます