概要

CPUのファミリー・モデル・ステッピングとキャッシュの構成やサポートする拡張命令を表示するプログラムです。Intel専用でSandy Bridgeまで対応としました。

コマンドラインで動作します。リダイレクトでファイルに落とすことが可能です。
行の最初の16進数がCPUID命令のEAXの入力値で結果を16進数と2進数で出力します。
. 各ビットの意味についてサポートしているものは例えばEAX ビット位置 機能 サポートの有無のように出力されます。
,br / 入力がEAX=00000002h以外でEAXが連続して同じ値となる場合は、ECXが入力として機能していることを表し行の最初から16進数が2つ出力されます。2番目の値がECXとなります。
CPUID命令の動作をシミュレーションするためのヘッダファイルを出力します。(cpuid_emu.h,cpuidex_emu.h)ソースコードの#define CPUID_EMU の頭にある//を削除しコンパイルするとエミュレーション用のヘッダファイルでCPUID命令をエミュレートすることができます。
たとえばCore2Duoのパソコンで本プログラムを実行しcpuid_emu.h,cpuidex_emu.hを作成し、i7-2600パソコンで本プログラム上においてCore2DuoのCPUIDを再現することができます。
似たようなプログラムでCPUのエミュレーションをするときに使用できるでしょう。
※他のCPUのエミュレーションとは、本プログラム上で別のEXEファイルを実行できるという意味ではありません。
マルチコア・ハイパースレッド環境では、論理CPUごとにAPICやx2APICの値が異なりますが、本プログラムでは、Windowsが割り当てたコアのCPUIDを返しています。実行ごとにAPICやx2APICの値が異なる場合があります。

動作例(Celeron G1620 2.7GHz Ivy Bridge)

標準出力
cpuid_emu.h
cpuidex_emu.h

動作例(i5-3230M 2.6GHz Ivy Bridge)

標準出力
cpuid_emu.h
cpuidex_emu.h

動作例(i7-3770 3.4GHz Ivy Bridge)

標準出力
cpuid_emu.h
cpuidex_emu.h

動作例(i7-870 2.9GHz Lannfield)

標準出力
cpuid_emu.h
cpuidex_emu.h

動作例(Pentium 4 651 3.4GHz Cedar Mill)

標準出力
cpuid_emu.h
cpuidex_emu.h

動作例(Pentium 4 641 3.2GHz Cedar Mill)

標準出力
cpuid_emu.h
cpuidex_emu.h

動作例(i7-860 2.8GHz Lannfield)

標準出力
cpuid_emu.h
cpuidex_emu.h

動作例(i7-4770 3.4GHz Haswell)

標準出力
cpuid_emu.h
cpuidex_emu.h

動作例(i7-3820 3.6GHz Sandy Bridge-E)

標準出力
cpuid_emu.h
cpuidex_emu.h

動作例(Peniutm4 541 3.2GHz Prescott)

標準出力
cpuid_emu.h
cpuidex_emu.h

動作例(i7-2600 3.4GHz Sandy Bridge)

標準出力
cpuid_emu.h
cpuidex_emu.h

動作例(i3-2100 3.1GHz Sandy Bridge)

標準出力
cpuid_emu.h
cpuidex_emu.h

動作例(i3-m370 2.4GHz Arrandale)

標準出力
cpuid_emu.h
cpuidex_emu.h

動作例(Core2Quad Q8200 2.33GHz Yorkfield)

標準出力
cpuid_emu.h
cpuidex_emu.h

動作例(Core2DuoE6850 3.00GHz Conroe)

標準出力
cpuid_emu.h
cpuidex_emu.h

動作例(Core2DuoE6320 1.86GHz Conroe)

標準出力
cpuid_emu.h
cpuidex_emu.h

動作例(Core2DuoP8700 2.53GHz Penryn)

標準出力
cpuid_emu.h
cpuidex_emu.h

動作例(Core2DuoE4300 1.80GHz Conroe)

標準出力
cpuid_emu.h
cpuidex_emu.h

動作例(Celeron450 2.2GHz Conroe-L)

標準出力
cpuid_emu.h
cpuidex_emu.h

動作例(PentiumD945 3.4GHz Presler)

標準出力
cpuid_emu.h
cpuidex_emu.h

動作例(Pentium 4 531 3.0GHz Prescott)

標準出力
cpuid_emu.h
cpuidex_emu.h

参考資料

intel IntelR Processor Identification and the CPUID Instruction May 2012
Microsoft Visual Studio _cpuid、__cpuidex
intel インテルR プロセッサの識別とCPUID命令 2005年3月

ソースコード・実行ファイル

Visual C++ 2008用 ソース・実行ファイルのダウンロード