山本ワールド
Windowsプログラミング
アルゴリズム Vitual C++ 2008/2013によるWin32/Win64 APIレベルのプログラム 基礎 Vitual C++ 2008/2013によるAPIレベルのプログラム(32/64bit) Wix3でインストーラーを作る Visual C++ 2008 Standard Editonによるフォームアプリケーションのプログラム(32/64bit) Vitual C++ 2008 Standard EditonによるAPIレベルのプログラム(32/64bit) Windows 7対応 Visual C++ 2008 ExpressによるAPIレベルのプログラム Visual C++ 2005 ExpressによるAPIレベルのプログラム Visual C++ Versiosn 5 BORLAND C++ Windowsプログラム全般 Excel VBA その他CPUの物理CPU数・ソケット数等を取得cpuidview(32/64bit)
概要
現システムのCPUの物理CPU数・ソケット数等を取得してファイルおよび画面に結果を表示するものである。
CPUの物理CPU数・ソケット数等を取得cpuid4(32/64bit)の改良版にあたる。
他のシステムで結果を保存すればインポートすることによりCPUIDの値を閲覧することができる。
本ソフトにはあらかじめいくつかのCPUのCPUID値をあらかじめ用意しているのでいろいろなCPUのCPUIDを閲覧することができる。
さらにVirtual Box用にCPUIDの値を変更するバッチファイルを作成することができる。バッチファイルを実行することによりゲストOSから見えるCPUIDの値を変えることができる。
VirtualBoxによるCPUIDのエミュレーション参照
なお本プログラムはC++ソースコード上でCPUIDを再現するものであり、CPUでサポートしていない命令をエミュレーションするものではない。
次項に本ソフトに付属するCPUID値を定義したCSVファイルの一覧を示す。
CPUID値を定義したCSVファイル名の一覧
CPUIDインポート用ファイル | シグニチャ | 開発コード | プロセス | 備考 |
---|---|---|---|---|
Intel_DX4.csv | 0x00480 | 600nm | ||
MMX_Pentium.csv | 0x00543 | Tillamook | 250nm | |
Pentium_2_Pentium_2_Xeon.csv | 0x00652 | Deschutes | 250nm | |
Intel_Celeron.csv | 0x00686 | Coppermine-128 | 180nm | |
Intel_Celeron_2000MHz.csv | 0x00f27 | Northwood-128 | 130nm | |
Intel_Pentium_4_3200MHz.csv | 0x00f62 | Cedar Mill | 65nm | Pentium4 641 |
Intel_Pentium_4_3400MHz.csv | 0x00f62 | Cedar Mill | 65nm | Pentium4 651 |
Intel_Pentium_D_3400MHz.csv | 0x00f65 | Presler | 65nm | Pentium D945 |
Intel_Pentium_M_processor_1600MHz.csv | 0x006d8 | Dothan | 90nm | |
Intel_Celeron_450_2200MHz.csv | 0x00661 | Conroe-L | 65nm | |
Intel_Core_2_6320_1860MHz.csv | 0x006f6 | Conroe | 65nm | |
Intel_Core_2_Duo_E6850_3000MHz.csv | 0x006fb | Conroe | 65nm | |
Intel_Core_2_Duo_P8400_2260MHz.csv | 0x10676 | Penryn | 45nm | |
Intel_Core_2_Duo_P8700_2530MHz.csv | 0x1067a | Penryn | 45nm | |
Intel_Core_2_Quad_Q8200_2330MHz.csv | 0x10677 | Yorkfield | 45nm | |
Intel_Celeron_430_1800MHz.csv | 0x10661 | Conroe-L | 65nm | |
Intel_Celeron_925_2300MHz.csv | 0x1067A | Penryn | 45nm | |
Intel_Core_i7_870_2930MHz.csv | 0x106e5 | Lynnfield | 45nm | |
Intel_Atom_D2701_2130MHz.csv | 0x30661 | Cedarview | 32nm | |
Intel_Core_i3_2100_3100MHz.csv | 0x206a7 | Sandy Bridge | 32nm | |
Intel_Core_i3_M_370_2400MHz.csv | 0x20655 | Arrandale | 32nm | |
Intel_Core_i5_2400_3100MHz.csv | 0x206a7 | Sandy Bridge | 32nm | |
Intel_Core_i7_2600_3400MHz.csv | 0x206a7 | Sandy Bridge | 32nm | |
Intel_Core_i7_3820_3600MHz.csv | 0x206d7 | Sandy Bridge-E | 32nm | |
Intel_Core_i5_3210M_2500MHz.csv | 0x306a9 | Ivy Bridge | 22nm | |
Intel_Core_i5_3230M_2600MHz.csv | 0x306a9 | Ivy Bridge | 22nm | |
Intel_Core_i7_3770_3400MHz.csv | 0x306a9 | Ivy Bridge | 22nm | |
Intel_Core_i5_4440_3100MHz.csv | 0x306c3 | Haswell | 22nm | |
Intel_Core_i7_4770_3400MHz.csv | 0x306c3 | Haswell | 22nm | |
Intel_Core_i7_4790_3600MHz.csv | 0x306c3 | Haswell Refresh | 22nm | |
Intel_Xeon_E5_2699_v3_2300MHz.csv | 0x306f2 | Haswell-EP | 22nm | |
Intel_Core_i7_5775C_3300MHz.csv | 0x40671 | Broadwell-H | 14nm | |
Intel_Core_i7_6700_3400MHz.csv | 0x506e3 | Skylake-S | 14nm | |
Intel_Core_i7_7700_3600MHz.csv | 0x906e9 | Kabelake | 14nm | |
Intel_Core_i5_4300U_1900MHz_cpuid.csv | 0x40651 | hASWELL ULT | 14nm | |
Intel_Celeron_G1620_2700MHz.csv | 0x306a9 | Ivy Bridge | 22nm | |
Intel_Celeron_G1840_2800MHz.csv | 0x306c3 | Haswell | 22nm | |
Intel_Celeron_G3900_2800MHz.csv | 0x506e3 | Skylake | 14nm | |
Intel Atom Z3775.csv | 0x30678 | Bay Trail-T | 22nm | |
Intel_Core_M_5Y71_1200MHz.csv | 0x306D4 | Broadwell-Y | 14nm | |
AMD_A4_5300B_APU_with_Radeon_tm_HD_Graphics | 0x610F01 | Trinity | 32nm | |
Intel_Core_i5_10210U_1600MHz.csv | 0x0806ec | Comet Lake | 14nm |
機能一覧
現システムのCPUのCPUIDの表示
実行しているWindows上の現システムのCPUのCPUIDを表示します。CPUIDVIEW.CPPのコメントアウトしているヘッダーファイルを有効にしてCPUIDのエミュレーション
本プログラムでエクスポートを選択するとCPUIDをクラスで記述したヘッダーファイルを出力するので、そのヘッダファイルを他のプログラムにインクルードして__cpuid等をマクロで置き換えることにより他CPUから抽出したCPUIDを再現することができる。C++のソース上で__cpuid関数等をマクロで置き換えることによりCPUIDの結果をシミュレーションすることができる。
また、スレッドに割り当てるCPUを固定するSetThreadAffinityMask API(マクロによる置き換え)をエミュレーションするため、CPUによりCPUIDの戻り値が異なるEAX=0x1とEAX=0xBのケースにおいても、正常に動作する。
エミュレーション用のヘッダーファイルはcsvファイルと同じCPU分ダウンロードファイルに添付しています。
表示しているCPUのCPUIDを一覧表示
表示しているCPUのCPUIDをヘッダーファイル・概要ファイルとして保存
表示しているCPUのCPUIDをCSVファイルとして保存
CPUIDの一覧をCSVファイルとして保存します。このCSVファイルを使用すれば他のマシーンでCPUIDの値を確認したりVirtualBox上でCPUIDの再現ができます。前項で作成したCSVファイルをインポートしCPUIDを表示
表示しているCPUのCPUIDをVirtualBoxのゲストマシーンのCPUIDを設定するバッチファイルとして保存
保存されたバッチファイルを実行するとVirtualBoxのゲストマシーンのCPUIDを変更することができます。VirtualBoxによるCPUIDのエミュレーション参照
CSVファイルと同じCPUについてダウンロードファイルにバッチファイルを添付しています。
テスト環境
コンパイラ
Visual C++ 97/2005/2008/2010/2013 32/64bit マルチバイト/UNICODE実行環境
以下の環境で動作確認をしました。HITACHI FLORA 270 PC-5NH02-YA5LA MMX Pentium 166MHz with Windows 95 Visual C++ 97で作成した32bit実行ファイル
HITACHI FLORA 270GX PC7NW1-GDE27H420Celeron 600MHz with Windows 98 SE Visual C++ 97で作成した32bit実行ファイル
HITACHI FLORA 270GX PC7NW1-GDE27H420Celeron 600MHz with Windows 2000 Visual C++ 2005で作成した32bit実行ファイル
HP ProBook5220m Core i3-M370 with Windows XP 32bit Visual C++ 2013で作成した32bit実行ファイル
自作PC Core i7-3820 with VirtualBox上のWindows Vista 32bit Visual C++ 2013で作成した32bit実行ファイル
自作PC Core i7-3820 with Windows 7 64bit Visual C++ 2013で作成した32bit/64bit実行ファイル
HP ProBook5220m Core i3-M370 with Windows 8.1 64bit Visual C++ 2013で作成した32bit実行ファイル
HP ProBook5220m Core i3-M370 with Windows 10 64bit Visual C++ 2013で作成した32bit実行ファイル
lenovo YOGA PRO3 Core M-5Y71 with Windows 10 64bit Visual C++ 2013で作成した32bit実行ファイル
ASUS Transbook T90Chi Atom Z3775 with Windows 10 32bit Visual C++ 2013で作成した32bit実行ファイル
DELL PowerEdge T110 II Celeron G1620 with Windows 2012 Server Visual C++ 2013で作成した32bit実行ファイル
変更履歴
2015/11/02cpuid4最終バージョン
2015/11/22バグフィクッスおよび再ビルドなしにCPUの切り替えができるようにインポート機能を追加。VirtualBox用のバッチファイル作成機能の追加
CPUIDの基本ファンクション0x14までのサブファンクションに対応できるように修正
出力ファイルをUNICODE/SJISからSJISに統一。
インポート機能の追加に伴い各種クラスで動的に確保したメモリの解放を追加
CPUIDの基本ファンクションが1(Pentiumなど)までや2(Pentium 2など)までのCPUに対応できるようにAPICの取得及びキャッシュの取得方法を修正(80486まで対応可能)
ブランドストリングをサポートしていないPentium3以前の世代に合わせてブランドID及びシグネチャからCPU名を取得できるように修正(80486まで対応可能)
APICのパッケージ・コア・スレッドのビット幅の計算にバグがあったので修正
4次キャッシュをサポート
2016年01月16日(土)Celeron 430,Celeron 925,i7-4790のエミュレーションファイルを追加
2016年07月18日(月)Celeron G1620,Core M-5Y71,Atom Z3775の追加
2017年01月24日(火)Celeron G1840の追加
2017年02月12日(日)Core i5-4440の追加
2017年08月04日(金)Celeron G3900の追加
2017年09月01日(金)AMD A4 5300Bの追加(AMD固有のCPUIDはサポートしていません。)
2017年09月17日(日)Core i7-6700のミュレーションファイルを追加
2018年11月11日(日)Core i7-7700のミュレーションファイルを追加
2018年11月14日(水)Core i5-4300Uのミュレーションファイルを追加
2018年11月23日(金)高DPI化
2020年11月01日(金)Core i5-10210Uのミュレーションファイルを追加
2015/11/22バグフィクッスおよび再ビルドなしにCPUの切り替えができるようにインポート機能を追加。VirtualBox用のバッチファイル作成機能の追加
CPUIDの基本ファンクション0x14までのサブファンクションに対応できるように修正
出力ファイルをUNICODE/SJISからSJISに統一。
インポート機能の追加に伴い各種クラスで動的に確保したメモリの解放を追加
CPUIDの基本ファンクションが1(Pentiumなど)までや2(Pentium 2など)までのCPUに対応できるようにAPICの取得及びキャッシュの取得方法を修正(80486まで対応可能)
ブランドストリングをサポートしていないPentium3以前の世代に合わせてブランドID及びシグネチャからCPU名を取得できるように修正(80486まで対応可能)
APICのパッケージ・コア・スレッドのビット幅の計算にバグがあったので修正
4次キャッシュをサポート
2016年01月16日(土)Celeron 430,Celeron 925,i7-4790のエミュレーションファイルを追加
2016年07月18日(月)Celeron G1620,Core M-5Y71,Atom Z3775の追加
2017年01月24日(火)Celeron G1840の追加
2017年02月12日(日)Core i5-4440の追加
2017年08月04日(金)Celeron G3900の追加
2017年09月01日(金)AMD A4 5300Bの追加(AMD固有のCPUIDはサポートしていません。)
2017年09月17日(日)Core i7-6700のミュレーションファイルを追加
2018年11月11日(日)Core i7-7700のミュレーションファイルを追加
2018年11月14日(水)Core i5-4300Uのミュレーションファイルを追加
2018年11月23日(金)高DPI化
2020年11月01日(金)Core i5-10210Uのミュレーションファイルを追加
プログラムソースの概要
ソースファイルと実行ファイルのダウンロード
ダウンロード cpuidview3.zip(602k)
エミュレーションをしない場合に必要なソースファイルは、cpuidview.cpp cpu.h cpp.c resource.h undervc2008.h resource.rcです。
cpuidview.cppに最初に実行されるWinMain関数が含まれています。
エミュレーションをする場合は、該当するCPU名のヘッダーファイルが必要となります。
実行ファイルは、以下の通りです。
ZIPファイルに含まれるファイル
エミュレーションをしない場合に必要なソースファイルは、cpuidview.cpp cpu.h cpp.c resource.h undervc2008.h resource.rcです。
cpuidview.cppに最初に実行されるWinMain関数が含まれています。
エミュレーションをする場合は、該当するCPU名のヘッダーファイルが必要となります。
実行ファイルは、以下の通りです。
実行ファイル | ビルド | 実行OS |
---|---|---|
cpuidview.exe | Visual C++ 2013 | XP以上 |
cpuidview2010.exe | Visual C++ 2010 | XP以上 |
cpuidview2008.exe | Visual C++ 2008 | XP以上 |
cpuidview2005.exe | Visual C++ 2005 | 2000以上 |
cpuidview0097.exe | Visual C++ 97 | 95以上 |
│ cpu.cpp │ cpu.h │ cpuidview.cpp │ cpuidview.exe │ cpuidview0097.exe │ cpuidview2005.exe │ cpuidview2008.exe │ cpuidview2010.exe │ resource.h │ resource.rc │ undervc2008.h └─emu Intel Celeron_cpuid.txt Intel Celeron_emu.h Intel Celeron_summary.txt ~ Intel_Xeon_E5_2699_v3_2300MHz.bat Intel_Xeon_E5_2699_v3_2300MHz.csv Intel_Xeon_E5_2699_v3_2300MHz_cpuid.txt Intel_Xeon_E5_2699_v3_2300MHz_emu.h Intel_Xeon_E5_2699_v3_2300MHz_summary.txt
Copyright (C) 2012 山本ワールド All Rights Reserved.