Windows TIPS
[System Environment]
Tips   Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

coreinfoツールでCPUの仮想化対応機能をチェックする

解説をスキップして操作方法を読む

デジタルアドバンテージ 打越 浩幸
2012/02/24
対象OS
Windows Vista
Windows 7
Windows Server 2008
Windows Server 2008 R2
Summary
CPUの持つ仮想化支援機能には、Intel-VTやAMD-Vのほか、ページングをサポートするSLAT機能がある。
SLAT機能を利用すると、Hyper-Vのパフォーマンスの向上が期待できる。
SLATが利用できるかどうかは、Sysinternalsのcoreinfoツールで確認できる。

解説

TIPS「Windows 7のWindows XP Modeが利用できるかどうかを調べる

  Windows Server 2008/2008 R2のHyper-VやWindows 7のWindows Virtual PCなどの仮想化ソフトウェアを利用する場合、CPUがIntel-VTやAMD-Vなどの仮想化支援機能をサポートしている必要がある(Windows Virtual PCでは必須ではないが、パフォーマンスを考えるとほぼ必須といえる)。現在使用中のシステムのCPUがこの機能をサポートしているかどうかを調べる方法は本TIPSでも紹介している(関連記事参照)。

連載Windows 8「Window 8の機能の概要

 だが最近の仮想化ソフトウェアでは、さらにSLAT(Second Level Address Translation)という、仮想マシンのアドレス空間から物理メモリ・アドレス空間への変換をサポートする機能も利用している。Windows 8ではクライアントOSにもHyper-Vが導入されるが、SLATは必須機能になっている(関連記事参照)。サーバ版のWindows 8ではオプション機能だが、パフォーマンスを向上させるためには、もしくはRemoteFXを利用する場合は、やはりこのSLAT機能が必要だ。ちなみにSLAT機能は、実際のIntel製CPUではEPT(Extended Page Table)、AMD製CPUではNPT(Nested Page Table)という名称になっている。

TIPS「Sysinternalsツールをオンラインで使う

  現在使用しているCPUがSLAT機能をサポートしているかどうかを調べるにはいくつか方法があるが、ここではSysinternals(関連記事参照)から提供されているCoreinfoツールを利用する方法を紹介する。

  操作方法

 SysinternalsのCoreinfoツールは以下のサイトからダウンロードできる。原稿執筆時点での最新版はVer.3.04である。

 ダウンロードした.ZIPファイルを解凍し、コマンド・プロンプト上で「coreinfo -?」とすると使い方が表示されるが、基本的には引数なしか、「coreinfo -v」を実行する。

CPU情報の表示

 coreinfoツールを引数なしで実行すると、CPUの持つ各機能(フラグ)やキャッシュ、コアなどの情報がすべて表示される。結果は例えば次のようになる。左端のフラグ名の右隣に表示されている「*」はその機能があることを、「-」はその機能がないことを表している。

D:\Sysinternals>coreinfo …引数なしで実行する

Coreinfo v3.04 - Dump information on system CPU and memory topology
Copyright (C) 2008-2012 Mark Russinovich
Sysinternals - www.sysinternals.com

Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz …CPU情報
Intel64 Family 6 Model 42 Stepping 7, GenuineIntel …CPUバージョン情報
■仮想化/ハイパースレッド関連
HTT             *       Hyperthreading enabled
HYPERVISOR      -       Hypervisor is present
VMX             *       Supports Intel hardware-assisted virtualization
SVM             -       Supports AMD hardware-assisted virtualization
EM64T           *       Supports 64-bit mode
■セキュリティ/パワーマネージメント関連
SMX             *       Supports Intel trusted execution
SKINIT          -       Supports AMD SKINIT
EIST            *       Supports Enhanced Intel Speedstep
■ページング関連
NX              *       Supports no-execute page protection
PAGE1GB         -       Supports 1 GB large pages
PAE             *       Supports > 32-bit physical addresses
PAT             *       Supports Page Attribute Table
PSE             *       Supports 4 MB pages
PSE36           *       Supports > 32-bit address 4 MB pages
PGE             *       Supports global bit in page tables
SS              *       Supports bus snooping for cache operations
VME             *       Supports Virtual-8086 mode
■FPU/SIMD命令セット関連
FPU             *       Implements i387 floating point instructions
MMX             *       Supports MMX instruction set
MMXEXT          -       Implements AMD MMX extensions
3DNOW           -       Supports 3DNow! instructions
3DNOWEXT        -       Supports 3DNow! extension instructions
SSE             *       Supports Streaming SIMD Extensions
SSE2            *       Supports Streaming SIMD Extensions 2
SSE3            *       Supports Streaming SIMD Extensions 3
SSSE3           *       Supports Supplemental SIMD Extensions 3
SSE4.1          *       Supports Streaming SIMD Extensions 4.1
SSE4.2          *       Supports Streaming SIMD Extensions 4.2
■拡張命令セット関連1
AES             *       Supports AES extensions
AVX             *       Supports AVX intruction extensions
FMA             -       Supports FMA extensions using YMM state
MSR             *       Implements RDMSR/WRMSR instructions
MTTR            *       Supports Memory Type Range Registers
XSAVE           *       Supports XSAVE/XRSTOR instructions
OSXSAVE         *       Supports XSETBV/XGETBV instructions
■拡張命令セット関連2
CMOV            *       Supports CMOVcc instruction
CLFSH           *       Supports CLFLUSH instruction
CX8             *       Supports compare and exchange 8-byte instructions
CX16            *       Supprots CMPXCHG16B instruction
DCA             -       Supports prefetch from memory-mapped device
F16C            -       Supports half-precision instruction
FXSR            *       Supports FXSAVE/FXSTOR instructions
FFXSR           -       Supports optimized FXSAVE/FSRSTOR instruction
MONITOR         *       Supports MONITOR and MWAIT instructions
MOVBE           -       Supports MOVBE instruction
PCLULDQ         *       Supports PCLMULDQ instruction
POPCNT          *       Supports POPCNT instruction
SEP             *       Supports fast system call instructions
■拡張制御命令セット関連
DE              *       Supports I/O breakpoints including CR4.DE
DTES64          *       Can write history of 64-bit branch addresses
DS              *       Implements memory-resident debug buffer
DS-CPL          *       Supports Debug Store feature with CPL
PCID            *       Supports PCIDs and settable CR4.PCIDE
PDCM            *       Supports Performance Capabilities MSR
RDTSCP          *       Supports RDTSCP instruction
TSC             *       Supports RDTSC instruction
TSC-DEADLINE    *       Local APIC supports one-shot deadline timer
TSC-INVARIANT   *       TSC runs at constant rate
xTPR            *       Supports disabling task priority messages
■ACPI/センサ/APIC関連
ACPI            *       Implements MSR for power management
TM              *       Implements thermal monitor circuitry
TM2             *       Implements Thermal Monitor 2 control
APIC            *       Implements software-accessible local APIC
x2APIC          *       Supports x2APIC
■拡張機能関連
CNXT-ID         -       L1 data cache mode adaptive or BIOS

MCE             *       Supports Machine Check, INT18 and CR4.MCE
MCA             *       Implements Machine Check Architecture
PBE             *       Supports use of FERR#/PBE# pin

PSN             -       Implements 96-bit processor serial number
■プロセッサ・コア/NUMA情報
Logical to Physical Processor Map:
**------  Physical Processor 0 (Hyperthreaded)
--**----  Physical Processor 1 (Hyperthreaded)
----**--  Physical Processor 2 (Hyperthreaded)
------**  Physical Processor 3 (Hyperthreaded)

Logical Processor to Socket Map:
********  Socket 0

Logical Processor to NUMA Node Map:
********  NUMA Node 0
■キャッシュ情報
Logical Processor to Cache Map:
**------  Data Cache          0, Level 1,   32 KB, Assoc   8, LineSize  64
**------  Instruction Cache   0, Level 1,   32 KB, Assoc   8, LineSize  64
**------  Unified Cache       0, Level 2,  256 KB, Assoc   8, LineSize  64
--**----  Data Cache          1, Level 1,   32 KB, Assoc   8, LineSize  64
--**----  Instruction Cache   1, Level 1,   32 KB, Assoc   8, LineSize  64
--**----  Unified Cache       1, Level 2,  256 KB, Assoc   8, LineSize  64
----**--  Data Cache          2, Level 1,   32 KB, Assoc   8, LineSize  64
----**--  Instruction Cache   2, Level 1,   32 KB, Assoc   8, LineSize  64
----**--  Unified Cache       2, Level 2,  256 KB, Assoc   8, LineSize  64
------**  Data Cache          3, Level 1,   32 KB, Assoc   8, LineSize  64
------**  Instruction Cache   3, Level 1,   32 KB, Assoc   8, LineSize  64
------**  Unified Cache       3, Level 2,  256 KB, Assoc   8, LineSize  64
********  Unified Cache       4, Level 3,    8 MB, Assoc  16, LineSize  64

Logical Processor to Group Map:
********  Group 0

Hyper-V 2.0実践ライブ・マイグレーション術 第4回「プロセッサ互換性モード

  Hyper-VやWindows Virtual PCのユーザーからすると、先頭の方にある仮想化機能は確認すべきだ。Hyper-Vの場合はさらに、サポートされている命令セットなどもチェックしておく必要がある。Hyper-Vのマイグレーションで異なるCPU間で仮想マシンを移動させる場合、利用できる命令セットが異なっているとマイグレーションできなくなるからだ。そのようなシステムを利用する場合は、仮想マシンで利用できる命令セットを制限しなければならない(関連記事参照)。

仮想化支援機能をチェックする

 CPUがHyper-Vの実行に適しているかどうかをチェックするには、「coreinfo -v」を実行する。ただしこれを実行するためには、次の2つの条件を満たしておく必要がある。

  1. Hyper-Vが動作していないWindows OS上で実行すること
  2. 管理者権限のあるコマンド・プロンプト上で実行すること

 正しく実行できると、次のように表示される。

D:\Sysinternals>coreinfo -v …-vオプション付きで実行する

Coreinfo v3.04 - Dump information on system CPU and memory topology
Copyright (C) 2008-2012 Mark Russinovich
Sysinternals - www.sysinternals.com

Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz
Intel64 Family 6 Model 42 Stepping 7, GenuineIntel
HYPERVISOR      -       Hypervisor is present …Hyper-Vはない
VMX             *       Supports Intel hardware-assisted virtualization
EPT             *       Supports Intel extended page tables (SLAT)

D:\Sysinternals>

 「VMX」は、Intel-VTやAMD-Vに相当する。この例では、「VMX」と「EPT」が両方とも「*」なので、仮想化支援機能もSLAT機能も利用できるということになる。

 この例では、「HYPERVISOR」が「-」になっていることに注意していただきたい。すでにHyper-VがインストールされているWindows OS上でこれを実行すると次のように表示され、「仮想化機能が利用できるかどうか判定できない」という意味のメッセージが表示される。ハイパーバイザ下では、そのOS自体がすでに仮想化された環境の中で実行されているので、実際のCPUの機能を調べることができないからだ。

D:\Sysinternals>coreinfo -v …-vオプション付きで実行する

Coreinfo v3.04 - Dump information on system CPU and memory topology
Copyright (C) 2008-2012 Mark Russinovich
Sysinternals - www.sysinternals.com

Note: Coreinfo must be executed on a system without a hypervisor running for accurate results. …結果が正しくないという注意

Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz
Intel64 Family 6 Model 42 Stepping 7, GenuineIntel
HYPERVISOR      *       Hypervisor is present …Hyper-Vがオン
VMX             -       Supports Intel hardware-assisted virtualization
EPT             -       Supports Intel extended page tables (SLAT)

D:\Sysinternals>

 Hyper-Vが動作しているOS上でテストしたい場合は、一時的にHyper-Vを無効にしてから実行するとよい。Hyper-Vを無効にするには、管理者権限のあるコマンド・プロンプト上で次のコマンドを実行し、システムを再起動する。

C:\>bcdedit /set {current} hypervisorlaunchtype off …Hyper-Vをオフにする
The operation completed successfully.

C:\>

 元に戻すには、次のコマンドを実行してから再起動する。

C:\>bcdedit /set {current} hypervisorlaunchtype auto ……元に戻す
The operation completed successfully.

C:\>

 もしくは、バックアップしておいたbcdeditのバックアップ・データをリストアしてもよいだろう(TIPS「bcdeditでブート構成情報をバックアップ/リストアする」参照)。End of Article

「Windows TIPS」


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間