CPUID (番号)

読み:スィーピーユーアイディー
外語:CPUID 英語
品詞:固有名詞

i386末期のCPUから利用可能となった命令、CPUID命令などで得られる、CPUの種類を表わす番号のこと。

CPUID命令対応以前のCPUでも、CPUリセット時にDXレジスタに16ビットでCPUの種類を表わすIDがセットされていた(これはEAX=1としてCPUID命令で得られる32ビット値中の下位16ビットそのままである)。

このことから、その流れで、CPUID命令で得られるCPUの種類を表わすコードをCPUIDと呼ぶのである。

具体的には、EAXレジスタに1を代入してCPUID命令を実行すると、EAXレジスタにCPUのIDが代入される。

またEAXレジスタに0を代入してCPUID命令を実行すると、EBX:EDX:ECXにベンダー文字列が返る。

上位16ビットは拡張用領域で、下位16ビットが従来から使われていたコードである。このコードは、最下位4ビットがステッピング、つぎの4ビットがモデル、次の4ビットがファミリー、残りの4ビットがタイプと予備(CPUの種類により微妙に違っている)となる。

CPUの大まかな種類はファミリーで表わし、i486=4、Pentiumシリーズ=5、Pentium Pro、Peintium Ⅱ〜Ⅲまで=6、Pentium 4=15となる。そして、各ファミリー中の細かい違い(SXとDXや、Pentium ⅡとⅢの違いなど)はモデルで表わされる。ステッピングはダイのバージョンなどを表わすものである。

ビット機能

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: 予備