CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

CPUID命令

CPUの識別情報を取り出すためのCPUID命令を実行してみました

・・・"CPUID"はちょっとタイプミスすると"CUPID"になってカワイイ。

当然Cでは記述できないのでインラインアセンブラレジスタから大域変数にコピーしてます

x86系インストラクションとしてのCPUID命令はi486プロセッサの後期から実装され、Pentiumプロセッサから正式アナウンスされたとあります。手元のIntel486DX2 MicroProcessor Data Book 1992Feb.preliminary版のインストラクションセットには記載がありません

インテル® プロセッサの識別とCPUID命令アプリケーションノート485 にフォーマットの説明があり

サポートされないはずですがEAX=0で呼び出してインテルのベンダID:”GenuineIntel”、EAX=1でプロセッサシグネチャを引き出せています

そういえばインテルPCIボードのベンダIDは”8086”だったような・・・

プロセッサシグネチャは”43x”487またはDX2またはDX2ODP。ステッピング5が認識されました

CPUIDは先代のi486ボードでも確認していて、ステッピング6だったので今回のCPUはちょっと古かったようです。さらにEAX=1でEDXに返される機能コードでページサイズ拡張機能PSEのフラグも変わってますがこんな重要な機能がステッピング違いで変わっていいのか謎です