通信用語の基礎知識 IPv4
戻る
参加者募集中

cpuid (x86)

辞書:科学用語の基礎知識 中央演算処理装置用語x86編 (IYCP86)
読み:スィーピーユーアイディー
外語:cpuid 英語
品詞:固有名詞
2001/02/21 作成
2014/10/29 更新

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=0000_0000

EAX=0でcpuidを実行すると、次の値が得られる。cpuid対応の全CPU対象。

  • EAX: 基本CPUID情報の最大入力値
  • EBX:EDX:ECX: ベンダー文字列
    • "GenuineIntel" Intel
    • "AuthenticAMD" AMD
    • "CyrixInstead" Cyrix
    • "CentaurHauls" Centaur
    • "NexGenDriven" NexGen
    • "GenuineTMx86" Transmeta
    • "RiseRiseRise" Rise
    • "UMC UMC UMC " UMC
    • "SiS SiS SiS " SiS
    • "Geode by NSC" National Semiconductor

EAX=0000_0001

EAX=1でcpuidを実行すると、次の値が得られる。cpuid対応の全CPU対象。

  • EAX: プロセッサーシグネチャ
    • CPUID番号(プロセッサーシリアルナンバーの上位32ビット)

      i486以降の内容は次のとおり。

      • ビット0〜3: Stepping ID (i386ではMinor Stepping)
      • ビット4〜7: Model Number (i386ではMajor Stepping)
      • ビット8〜11: Family Code
      • ビット12〜13: Processor Type (i386ではビット15〜12がProcessor Type)
      • ビット14〜15: 予備
      • ビット16〜19: Extended Model
      • ビット20〜27: Extended Family
      • ビット28〜31: 予備
  • EBX: ファンクションフラグ
    • ビット31〜24: APIC ID
    • ビット23〜16: 論理CPU数
    • ビット15〜8: CLFLUSH
    • ビット7〜0: ブランドID
  • ECX: Feature flags(その2)
    0SSE3ストリーミングSIMD拡張命令3対応
    1PCLMULQDQPCLMULQDQ Instruction
    2DTES6464bit Debug Trace and EMON Store MSRs
    3MONITORMONITOR/MWAIT命令対応
    4DS-CPLCPLの条件を満たすデバッグストア拡張機能
    5VMXIntel VT (Virtual Machine Extensions)
    6SMXSafer Mode Extensions
    7EST拡張版 Intel SpeedStep テクノロジー
    8TM2温度モニター2の温度制御回路(TCC)を実装
    9SSSE3Supplemental SSE3
    10CIDコンテキストID、BIOSからL1データキャッシュモードを設定可
    11 予約
    12FMAFMA
    13CX16CMPXCHG16B命令対応
    14xTPRタスク・プライオリティ・メッセージの送信を停止する機能に対応
    15PDCMPerformance/Debug Capability MSR
    16 予約
    17PCIDProcess-context Identifiers
    18DCADirect Cache Access
    19SSE4_1Streaming SIMD Extensions 4.1
    20SSE4_2Streaming SIMD Extensions 4.2
    21x2APICx2APIC
    22MOVBEMOVBE
    23POPCNTPopulation Count Instruction
    24TSC-DeadlineTSC-Deadline
    25AESNIAES
    26XSAVECR4.OSXSAVE
    27OSXSAVECR4.OSXSAVE
    28AVXAVX
    29F16C16ビット浮動小数点変換命令
    30RDRANDRDRAND instruction
    31HYPERVISOR何らかのHYPERVISOR状態
  • EDX: Feature flags(その1)
    0FPUx87浮動小数点命令に対応するFPU機能
    1VME仮想8086モード拡張機能
    2DEI/Oブレークポイントをサポートするデバッグ拡張機能
    3PSE4Miバイトページをサポートするページサイズ拡張機構
    4TSCタイムスタンプ・カウンター、RDTSC命令に対応
    5MSRモデル固有レジスター、RDMSR命令、WRMSR命令
    6PAE32ビットを超える物理アドレスをサポートする物理アドレス拡張機構
    7MCEマシンチェック例外(例外18)とCR4.MCEイネーブル・ビットに対応
    8CX8CMPXCHG8命令のサポート
    9APICオンチップAPICハードウェアのサポート
    10 予約
    11SEP高速システムコール命令SYSENTER/SYSEXITに対応
    12MTRRメモリータイプ範囲レジスター(MTRR_CAPレジスター)対応
    13PGEページ・グローバル・イネーブル、PDE内とPTE内でグローバル・ビットに対応
    14MCAマシン・チェック・アーキテクチャー(MCG_CAPレジスター)対応
    15CMOV条件付MOVE命令、CMOVcc(FPU対応時はFCMOVccとFCOMI命令も)対応
    16PATページ属性テーブル対応
    17PSE-3636ビット・ページ・サイズ拡張機構
    18PSNプロセッサーシリアルナンバー対応かつ有効
    19CLFSHCLFLUSH命令対応
    20 予約
    21DSデバッグストア(アドレスへ/からの分岐履歴をメモリーバッファに書く機能)対応
    22ACPIACPI機能対応
    23MMXMMXテクノロジー拡張命令セット対応
    24FXSR高速浮動小数点セーブ/リストア命令FXSAVE/FXRSTOR対応
    25SSEストリーミングSIMD拡張命令対応
    26SSE2ストリーミングSIMD拡張命令2対応
    27SS自己スヌープ対応
    28HTTハイパースレッディング・テクノロジー機能を搭載
    29TMT温度モニターの自動温度制御回路(TCC)を実装
    30IA-64IA-64 Processor Capable
    31PBEペンディング・ブレーク・イネーブルFERR#/PBE#ピン対応

現在のIA-32プロセッサーの仕様書では、ビット30は予約としか記載がない。IA-64は名を出すことも憚られる黒歴史だったらしい。

EAX=0000_0002

EAX=2でcpuidを実行すると、次の値が得られる。cpuid対応の全CPU対象。

  • EAX,EBX,ECX,EDX: CPUキャッシュとTLBディスクリプター

EAX=0000_0003

EAX=3でcpuidを実行すると、次の値が得られる。これは、プロセッサーシリアルナンバー対応製品のみで有効で、事前にEAX=0で最大入力値を確認せねばならない。

  • EDX:ECX: プロセッサーシリアルナンバーの下位64ビット (上位32ビットはEAX=1のEAX)

Transmetaの場合、EAXとEBXにも値を返す。CrusoeではEBXに、EfficeonではEAXとEBXに返される。

EAX=0000_0004〜5

基本cpuid情報の最大入力値が4〜5以上で、かつIA32_CR_MISC_ENABLES.BOOT_NT4(ビット22)が0(デフォルト)時には、EAX=4またはEAX=5で、次の値が得られる。

  • EAX=4時: キャッシュ・コンフィグレーション・ディスクリプターの情報
  • EAX=5時: MONITOR/MWAIT機能の情報

EAX=4では、引数ECXが必要である。0ならL1D、1ならL2の情報、あるいは、0ならL1D、1ならL1I、2ならL2、を得る、といった動作をする。

いずれも、MSRのMISC_ENABLEのLCMVが0の場合に有効となる。Windows NTのバグ対策のためとされる。

EAX=0000_0006

EAX=6でcpuidを実行すると、パワーマネージメント情報が得られる。基本CPUID情報の最大入力値が6以上の場合のみ有効。

  • EAX:
    • ビット0: 1=ディジタル温度計あり
    • ビット1: 1=Dynamic Acceleration有効
    • ビット2: 1=operating point protection有効
  • EBX:
    • ビット3〜0: ディジタル温度計の割込スレッショルド数
  • ECX:
    • ビット0: ACNT/MCNT

EAX=0000_0007

ECXにサブリーフ番号を入れ、EAX=7でcpuidを実行すると、拡張Feature flags情報が得られる。基本CPUID情報の最大入力値が7以上の場合のみ有効。

今後の拡張も考慮し、ECXで最大4294967296種類の情報が得られるらしい。

ECX=0
  • EAX: 対応する最大サブリーフ番号
  • EBX: 拡張Feature flags
    0FSGSBASERDFSBASE/RDGSBASE/WRFSBASE/WRGSBASE
    1TSC_ADJUSTTSC adjustment MSR 0x3b
    2 予約
    3BMI11st group bit manipulation extensions
    4HLEHardware Lock Elision
    5AVX2AVX2 instructions
    6 予約
    7SMEPSupervisor Mode Execution Protection
    8BMI22nd group bit manipulation extensions
    9ERMSEnhanced REP MOVSB/STOSB
    10INVPCIDInvalidate Processor Context ID
    11RTMRestricted Transactional Memory
    12 予約
    13 予約
    14MPXIntel Memory Protection Extensions
    15 予約
    16AVX512F 
    17AVX512DQ 
    18RDSEEDThe RDSEED instruction
    19ADXThe ADCX and ADOX instructions
    20SMAPSupervisor Mode Access Prevention
    21AVX512IFMA52 
    22 予約
    23CLFLUSHOPT 
    24 予約
    25PTIntel Processor Trace
    26AVX512PF 
    27AVX512ER 
    28AVX512CD 
    29SHA 
    30AVX512BW 
    31AVX512VL 
  • ECX: 拡張Feature flags
    0PREFETCHWT1 
    1AVX512VBMI 
    2 予約
    3 予約
    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 予約
  • EDX: 予約 (未使用)

EAX=0000_0008

予約 (未使用)

EAX=0000_0009

EAX=9でcpuidを実行すると、DCA(Direct Cache Access)パラメーターが得られる。基本CPUID情報の最大入力値が9以上の場合のみ有効。

  • EAX: PLATFORM_DCA_CAP MSR 0000_01F8h
  • EBX: 予約 (未使用)
  • ECX: 予約 (未使用)
  • EDX: 予約 (未使用)

MSRのMISC_ENABLEのLCMVが0の場合に有効となる。Windows NTのバグ対策のためとされる。

EAX=0000_000A

EAX=10でcpuidを実行すると、DCAパラメーターが得られる。基本CPUID情報の最大入力値が10以上の場合のみ有効。

  • EAX:
    • ビット7〜0: リビジョン
    • ビット15〜8: 1論理プロセッサーに対するPeMoカウンター数
    • ビット23〜16: PeMoカウンターのビット幅
    • ビット31〜24: EBXビットベクター長
  • EBX:
    • ビット0: core cycles event unavailable
    • ビット1: instructions retired event unavailable
    • ビット2: reference cycles event unavailable
    • ビット3: last level cache references event unavailable
    • ビット4: last level cache misses event unavailable
    • ビット5: branch instructions retired event unavailable
    • ビット6: branch mispredicts retired event unavailable
    • ビット31〜7: 予約
  • ECX: 予約 (未使用)
  • EDX:
    • ビット4〜0: 固定機能PeMoカウンターの数
    • ビット12〜5: 固定機能PeMoカウンターのビット幅
    • ビット31〜13: 予約

EDXのビット12〜0は、リビジョン2以降で有効。

MSRのMISC_ENABLEのLCMVが0の場合に有効となる。Windows NTのバグ対策のためとされる。

EAX=0000_000B

EAX=11でcpuidを実行すると、topology enumeration情報が得られる。基本CPUID情報の最大入力値が11以上の場合のみ有効。

引数としてECXを求める。ECX=0でcpuidを実行するとSMTの情報が得られる。

MSRのMISC_ENABLEのLCMVが0の場合に有効となる。Windows NTのバグ対策のためとされる。

EAX=0000_000C

予約 (未使用)

EAX=0000_000D

EAX=13でcpuidを実行すると、extended state enumeration情報が得られる。基本CPUID情報の最大入力値が13以上の場合のみ有効。

引数としてECXを求める。0でメイン、1でサブ、2〜62でXCR0.nのsub情報が得られる。

MSRのMISC_ENABLEのLCMVが0の場合に有効となる。Windows NTのバグ対策のためとされる。

EAX=0000_0014

ECXにサブリーフ番号を入れ、EAX=20(=14H)でcpuidを実行すると、Intel Processor Trace Enumeration情報が得られる。基本CPUID情報の最大入力値が20以上の場合のみ有効。

今後の拡張も考慮し、ECXで最大4294967296種類の情報が得られるらしい。

EAX=0000_0016

EAX=22(=16H)でcpuidを実行すると、CPUの周波数情報が得られる。基本CPUID情報の最大入力値が22以上の場合のみ有効。

  • EAX
    • ビット0〜15: Processor Base Frequency (MHz)
    • ビット16〜31: 予約 (=0)
  • EBX
    • ビット0〜15: Maximum Frequency (MHz)
    • ビット16〜31: 予約 (=0)
  • ECX
    • ビット0〜15: Bus (Reference) Frequency (MHz)
    • ビット16〜31: 予約 (=0)
  • EDX: 予約

未実装機能

後述する他社による実装EAX=8000_0000にIntelが対応するにあたり用意した範囲。未実装である。

  • EAX=4000_0000〜4FFF_FFFF

拡張機能

これは、元々はAMDが自社プロセッサーの情報取得用に作った仕様である。

Intel製品にない機能の有無を表現するのに、Intelの用意したフラグの空きを使っては、のちのち競合する恐れがあったためである。このため、この仕様においてビットの定義についてはAMD側に主導権があるようである。なお、IntelもPentium 4以降で対応するようになった。

EAX=8000_0000

EAX=80000000Hでcpuidを実行すると、次の値が得られる。拡張機能対応チェックも兼ねている。

  • EAX: 拡張CPUID情報の最大入力値
  • EBX: 予約 (未使用)
  • ECX: 予約 (未使用)
  • EDX: 予約 (未使用)

拡張CPUIDに対応していない場合、EAXは80000000Hよりも小さな値を返す。

IntelではEBX,ECX,EDXは0だが、他のブランドではEAX=0000_0000と同じベンダー文字列を返すことがある(AMD、Transmeta、NSCのGX2など)。

EAX=8000_0001

EAX=80000001Hでcpuidを実行すると、次の値が得られる。対応しているCPUのみ。

  • EAX: 拡張プロセッサー種類情報(AMD系CPUの種類)
  • EBX: 拡張プロセッサー種類情報(AMD系CPUの種類)
  • ECX: Extended Feature flags(その2)
    0LAHF64ビットモードでのlahf/sahfの使用可否
    1CMPLHTT=1がHTT(0)かCMP(1)を示す
    2SVMSecure Virtual Machine
    3EASExtended APIC
    4AMC8LOCK MOV CR0 means MOV CR8
    5ABMAdvanced Bit Manipulation. LZCNT
    6SSE4AStreaming SIMD Extensions 4a
    7MASSEMisaligned SSE mode
    8PREFETCHPREFETCHとPREFETCHW命令のサポート
    9OSVWOS Visible Workaround
    10IBSinstruction based sampling
    11XOPeXtended Operations
    12SKINITSKINITとSTGIのサポート
    13WDTウォッチドッグタイマーのサポート
    14 予約
    15LWPLight Weight Profiling
    16FMA44 operands MAC instructions
    17TCEtranslation cache extension
    18 予約
    19MSRNodeId MSR
    20 予約
    21TBMtrailing bit manipulations
    22TOPOEXTtopology extensions CPUID leafs
    23PERFCTR_COREcore performance counter extensions
    24PERFCTR_NBNB performance counter extensions
    25 予約
    26 予約
    27 予約
    28PERFCTR_L2L2 performance counter extensions
    29 予約
    30 予約
    31 予約
  • EDX: Extended Feature Flags(その1)
    0 Feature flags(EAX=0000_0001、EDX) 0〜9と同じ
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10 予約
    11SYSCALLsyscall/sysret命令のサポート
    12 Feature flags 12〜17と同じ
    13
    14
    15
    16
    17
    18 予約
    19MPMultiprocessing Capable
    20NX/XDNo-execute Page Protection
    21 予約
    22MMX+MMX Instruction Extensions
    23 Feature flags 23〜24と同じ
    24
    25FFXSRFXSAVE/FXRSTOR命令オプティマイズ
    26P1GB1GB large pageの対応
    27RDTSCPRDTSCP命令とIA32_TSC_AUXのサポート
    28 予約
    29LMAMD64/Intel 64 ロングモード
    303DNow!+3DNow! Instruction Extensions (Enhanced 3DNow!)
    313DNow!3DNow! Instructions

Feature flagsと同じ、とされている領域については、CPU種類によっては別の情報が格納されていることもある。

殆どがAMD用の情報ビットで、Intelの仕様書では、ECXのビット0と、EDXのビット11、20、26、27、29のみ明記があり、他は予約で値は0としている。

EAX=8000_0002〜0004

対応しているCPUでEAX=80000002〜4Hでcpuidを実行すると、EAX,EBX,ECX,EDXにプロセッサーブランド文字列が得られる。最大48バイト。

Intelのプロセッサーも対応している。

EAX=8000_0005

EAX=80000005Hでcpuidを実行すると、1次キャッシュの情報が得られる。対応しているCPUのみ。

  • EAX: 4/2 MB L1 TLB configuration descriptor
  • EBX: 4 KB L1 TLB configuration descriptor
  • ECX: data L1 cache configuration descriptor
  • EDX: code L1 cache configuration descriptor

Intelのプロセッサーは対応せず、予約で値は全て0としている。

EAX=8000_0006

EAX=80000006Hでcpuidを実行すると、2次キャッシュ、3次キャッシュの情報が得られる。対応しているCPUのみ。

  • EAX: 4/2 MB L2 TLB configuration descriptor
  • EBX: 4 KB L2 TLB configuration descriptor
  • ECX: unified L2 cache configuration descriptor
  • EDX: unified L3 cache configuration descriptor

Intelプロセッサーの仕様書では、次のような記載がある。

  • EAX: 予約 (未使用)
  • EBX: 予約 (未使用)
  • ECX:
    • ビット7〜0: キャッシュラインサイズ(バイト数)
    • ビット11〜8: 予約 (未使用)
    • ビット15〜12: L2 Associativity field
      • 00H ‐ Disabled
      • 01H ‐ Direct mapped
      • 02H ‐ 2-way
      • 04H ‐ 4-way
      • 06H ‐ 8-way
      • 08H ‐ 16-way
      • 0FH ‐ Fully associative
    • ビット31〜16: Cache size in 1K units
  • EDX: 予約 (未使用)

EAX=8000_0007

EAX=80000007Hでcpuidを実行すると、電源管理関係の機能の情報が得られる。対応しているCPUのみ。

  • EDX: Power Management
    0TSTemperature Sensor
    1FIDFrequency ID Control
    2VIDVoltage ID Control
    3TTPThermal Trip
    4TMThermal Monitoring
    5STCSoftware Thermanl Control
    6MUL100MHz Multiplier Steps
    7HWPSHardware P-State Control
    8ITSCInvariant 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)のみ定義していたことがあったが、最新の資料ではなくなり、全ビットが予約で0となっている。

EAX=8000_0008

EAX=80000008Hでcpuidを実行すると、拡張アドレス長機能などの情報が得られる。対応しているCPUのみ。

  • EAX:
    • ビット7〜0: 物理アドレス
    • ビット15〜8: 仮想アドレス
    • ビット23〜16: ゲスト物理アドレス長 (0ならビット7〜0を参照)
    • ビット31〜24: 予約
  • ECX:
    • ビット7〜0: ダイ数−1あたりのコア数
    • ビット11〜8: 予約
    • ビット15〜12: number of LSBs in APIC ID that indicate core ID
    • ビット31〜16: 予約

Intelプロセッサーの仕様書では、EAXのビット15〜0の範囲のみ定義がある。

EAX=8000_000A

EAX=8000000AHでcpuidを実行すると、SVM情報が得られる。対応しているCPUのみ。

EAX=8000_0019

EAX=80000019Hでcpuidを実行すると、TLBコンフィギュレーションディスクリプターが得られる。対応しているCPUのみ。

EAX=8000_001A

EAX=8000001AHでcpuidを実行すると、パフォーマンス最適化に関する情報が得られる。対応しているCPUのみ。

特殊拡張機能

AMDの拡張とは別に、TransmetaとVIAは、それぞれ独自のFeature Flagを提供している。

Transmeta

EAX=8086_0000

EAX=80860000Hでcpuidを実行すると、次の値が得られる。拡張機能対応チェックも兼ねている。

  • EAX: 拡張CPUID情報の最大入力値
  • EBX:EDX:ECX: ベンダー文字列

拡張CPUIDに対応していない場合、EAXは80860000Hよりも小さな値を返す。

EAX=8086_0001

EAX=80860001Hでcpuidを実行すると、CPUの情報を返す。対応しているCPUのみ。

EAX,EBXにCPUの種類、ECXにコアクロック周波数、EDXにFeature Flagが得られる。EDXの内容は次の通り。

0BADrecovery CMS active
1LRLongRun
2 予約
3LRTILongRun 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=8086_0002

EAX=80860002Hでcpuidを実行すると、プロセッサーの情報を返す。対応しているCPUのみ。

  • EAX: ハードウェアリビジョン
  • EBX: ソフトウェアリビジョン1/2
  • ECX: ソフトウェアリビジョン2/2
EAX=8086_0003〜6

EAX=80860003〜6Hでcpuidを実行すると、CPUの情報文字列を返す。対応しているCPUのみ。

EAX=8086_0007

EAX=80860007Hでcpuidを実行すると、CPUの情報を返す。対応しているCPUのみ。

  • EAX: カレントのコアクロック周波数(MHz)
  • EBX: カレントのコア電圧(mV)
  • ECX: カレント(LongRun)パフォーマンスレベル(0〜100%)
  • EDX: カレントのゲートディレイ(fs)

VIA

EAX=C000_0000

EAX=C0000000Hでcpuidを実行すると、次の値が得られる。拡張機能対応チェックも兼ねている。

  • EAX: 拡張CPUID情報の最大入力値

拡張CPUIDに対応していない場合、EAXはC0000000Hよりも小さな値を返す。

EAX=C000_0001

EAX=C0000001Hでcpuidを実行すると、EDXにFeature Flagが得られる。対応しているCPUのみ。

0AISAlternate Instruction Set
1AIS_ENAlternate Instruction Set enabled
2RNGRandom Number Generator (XSTORE)
3RNG_ENRandom Number Generator (XSTORE) enabled
4LHLongHaul MSR 0000_110Ah
5FEMMSFEMMS
6ACEAdvanced Cryptography Engine (XCRYPT)
7ACE_ENAdvanced Cryptography Engine (XCRYPT) enabled
8ACE2Advanced Cryptography Engine v2
9ACE2_ENACE v2 enabled
10PHEPadLock Hash Engine
11PHE_ENPHE enabled
12PMMPadLock Montgomery Multiplier
13PMM_ENPMM enabled
14 予約
15 予約
16 予約
17 予約
18 予約
19 予約
20 予約
21 予約
22 予約
23 予約
24 予約
25 予約
26 予約
27 予約
28 予約
29 予約
30 予約
31 予約

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.03 (16-May-2019)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club