CPU情報(/proc/cpuinfo)

/proc/cpuinfoは、システムのCPUの情報がテキスト形式で書かれている。当然、使用しているCPUによって表示内容は異なる。

[ヒント]ヒント

CPUの省電力機能によりクロックが変動する場合、/proc/cpuinfoを開いた時点のデータが得られる。

例63 Athlon II X3 445の/proc/cpuinfo(全コア800MHz動作時・Linux 3.0.9上)

processor	: 0
vendor_id	: AuthenticAMD
cpu family	: 16
model		: 5
model name	: AMD Athlon(tm) II X3 445 Processor
stepping	: 3
cpu MHz		: 800.000
cache size	: 512 KB
physical id	: 0
siblings	: 3
core id		: 0
cpu cores	: 3
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 5
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt npt lbrv svm_lock nrip_save
bogomips	: 6186.54
TLB size	: 1024 4K pages
clflush size	: 64
cache_alignment	: 64
address sizes	: 48 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate

processor	: 1
vendor_id	: AuthenticAMD
cpu family	: 16
model		: 5
model name	: AMD Athlon(tm) II X3 445 Processor
stepping	: 3
cpu MHz		: 800.000
cache size	: 512 KB
physical id	: 0
siblings	: 3
core id		: 1
cpu cores	: 3
apicid		: 1
initial apicid	: 1
fpu		: yes
fpu_exception	: yes
cpuid level	: 5
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt npt lbrv svm_lock nrip_save
bogomips	: 6186.39
TLB size	: 1024 4K pages
clflush size	: 64
cache_alignment	: 64
address sizes	: 48 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate

processor	: 2
vendor_id	: AuthenticAMD
cpu family	: 16
model		: 5
model name	: AMD Athlon(tm) II X3 445 Processor
stepping	: 3
cpu MHz		: 800.000
cache size	: 512 KB
physical id	: 0
siblings	: 3
core id		: 2
cpu cores	: 3
apicid		: 2
initial apicid	: 2
fpu		: yes
fpu_exception	: yes
cpuid level	: 5
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt npt lbrv svm_lock nrip_save
bogomips	: 6186.36
TLB size	: 1024 4K pages
clflush size	: 64
cache_alignment	: 64
address sizes	: 48 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate

CPUのフラグ

特定のCPUが持つ機能(特別な命令など)が利用可能なCPUでは、/proc/cpuinfoflagsという項目にその名前を示す文字列が含まれる。例えば、SSE2をサポートするCPUではsse2という文字列が含まれる。

表39 /proc/cpuinfoのフラグ(一部)

機能・命令フラグ
MMXmmx
MMX拡張mmxext
SSEsse
SSE2sse2
SSE3pni
SSSE3ssse3
SSE4.1sse4_1
SSE4.2sse4_2
SSE4Asse4a
AVXavx
3DNow!3dnow
3DNow!拡張3dnowext
POPCNT命令(SSE4かSSE4Aに含まれる)popcnt
Intel VT(Intel製CPUの仮想化支援機能)vmx
AMD-V(AMD製CPUの仮想化支援機能)svm

[ヒント]ヒント

更に色々なフラグを調べたい場合、カーネルソースのarch/x86/include/asm/cpufeature.harch/x86/kernel/cpu/capflags.cなどを参照。

CPUの認識数

CPUのコアや論理CPUを含んだCPUの認識数はprocessor:行の数で数えることができる。

例64 CPUの認識数を調べる

$ egrep -c "^processor\s:\s[0-9]+$" /proc/cpuinfo
(CPUの認識数が表示される)

認識されるCPUの種類に関する項目

  • 同一の物理CPUではphysical idの値が同一(異なる値のものは別の物理CPU)

  • 同一のCPUコアではcore idが同一(異なる値のものは別のCPUコア)

  • CPUコアの数はcpu coresの値