So-net無料ブログ作成

/proc/cpuinfoの中身 [備忘録]

2010.07.22追記
 本アーティクルの「flags」以降の部分については http://piro791.blog.so-net.ne.jp/2010-07-22 に追加調査した分があります。本アーティクルよりもそちらの方が「より正確かもしれない」という状態なので、そっちを参照しる。

 「え~と…この子って64ビット版のせんとくんが動作するんだっけー?」と/proc/cpuinfoを見始めたのが運の尽き。次第に、「この項目はなに?」「このフラグってなに?」と気になりはじめてしまい、あちこち調べまわることに。(汗)

# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Core(TM)2 CPU          6400  @ 2.13GHz
stepping        : 6
cpu MHz         : 2133.675
cache size      : 2048 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm
bogomips        : 4273.36

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Core(TM)2 CPU          6400  @ 2.13GHz
stepping        : 6
cpu MHz         : 2133.675
cache size      : 2048 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 2
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm
bogomips        : 4267.00


 もう、気になって気になって仕方がない。そこで調べてみた。^^;
 ちなみにこのマシンはCore2 Duoなので2プロセッサー分見えていますね。

processor  そのマシンに刺さっているプロセッサ(コア)の通し番号。最初が0番。
vendor_id  そのプロセッサを作ったベンダー名
cpu family  よくわかりませんが、ファミリー番号と言われてもねえ。サイトによっては、「ix86」(「x」は数値)の「x」の部分の数値が入る…とか書いてありますが、マシンによっては「15」とか出てくるんですが…(汗)
model  モデル番号だそうです。IntelだったりAMDだったりで番号の振り方が違うらしいです。
model name  プロセッサの名前っすね。ここを見るのが一番分かり易いですね。
stepping  同じコアでも世代が微妙に違ったりするとここの数値が変化するとかしないとか。ちなみに、vender_idとcpu familyとmodelとsteppingとでmodel nameを特定するんだそうで。
cpu MHz  プロセッサの動作周波数。実測値を表示するので微妙にキリのよくない数値になっています。
cache size  読んで字のごとく、キャッシュサイズですな。L2キャッシュのサイズがここに出る模様ですが、L2キャッシュの無い古いプロセッサとかはL1キャッシュ(というか単なる内蔵キャッシュ)が出る模様です。
physical id  物理プロセッサID。この数値が同じプロセッサは、同じソケットに刺さっている。シングルコア・シングルプロセッサだったりするとそもそも項目自体が表示されない。
siblings  そのコアが乗っかっている物理プロセッサに、いくつのコアが同居しているか?という数値。Core2じゃなくてHTなP4の場合でも、ここには「2」と出る。てことは、Core2 Quadだと「4」ということになるんですかね。
core id  物理プロセッサ毎のコアの通し番号
cpu cores  siblingsと何が違うんだろう…?
fdiv_bug  初期のPentiumプロセッサで存在した浮動小数点演算のバグを持つかどうか。このバグのせいで一時期PentiumプロセッサなPCが市場から消えてi486DX4-100MHzなPCが席捲したんだよね…。
hlt_bug  詳細は不明。どうやらPentium4プロセッサの一部でこれが「yes」になる模様。
f00f_bug  古いPentiumプロセッサで無効な命令を実行するとシステム全体がハングアップするバグを持つプロセッサかどうか。このバグが有っても、無効な命令を実行した時のバグなので普通は影響は出ない。(わざと実行するようにしない限りは。)
coma_bug  詳細は不明。Cyrix/IBM製プロセッサ6x86系でyesになる模様。影響はよくわかりません。
fpu  数値演算コプロセッサを搭載しているかどうか。386まではCPUとは別に「387」というオプションが無いとここがyesにならない。また、486でもSXだとオプションじゃなかったかな?と思う。それ以降は当たり前のように内蔵しているのでほとんどyesになるはず。
fpu_exception  私のつたない英文読解能力によれば…数値演算プロセッサが演算を終了した際、CPUに結果を通知するために割り込みを発生させることができるかどうか。極めて古い数値演算プロセッサの一部にはCPUがI/O接続をして結果を獲得しなければならないものがある。らしいです
cpuid level  CPUが持つ固有の情報をどのレベルまで読み出せるかというフラグ。このレベルによってCPUの個体番号が読めたりするらしい。
wp  詳細は不明。486とか386とかもの凄く古いプロセッサだとnoになってたりする模様。
bogomips  ベンチマーク値。単位はMIPS。かなり単純なベンチマークだそうなので、ここに正確性を求めるのは酷というもの。まあ、超おおざっぱに性能比較したいとかそういう時に参考程度でどうぞ。

 まあ、ここまででも結構調べるのが大変だったりする訳ですが、flagsなんか超面倒臭そうですよ奥さん。



fpu  数値演算コプロセッサを内蔵している
vme  仮想86モード拡張が有効(386以降のプロセッサなら全部有効…なはず)
de  デバッグモード拡張が有効(上に同じく)
pse  ページサイズ拡張が有効。(メモリのページング処理にまつわる)
tsc  タイムスタンプコントローラを内蔵している(プロセッサ内に内蔵されている64ビットカウンター)
msr  CPUのインプリメントに依存する機能を制御するレジスタ群「Model Specific Register」が有効
pae  物理アドレス拡張が有効(IA32プロセッサで、この機能によって物理メモリのアドレス指定に使えるビット数が32ビットから36ビットに拡張される)
pse36  ページサイズ拡張が有効(peaと同じような事をページングテーブルでもやる)
mce  プロセッサがエラーの発生をチェックしてOSにレポートする機能が有効。多分これが機能したとき、そのプロセッサについては「お前はもう、死んでいる…(ホアタァッ!)」ということかと思われ。
mca  上に同じ
cx8  CMPXCHG8 instructionという物が有効らしい
apic  割り込みコントローラAPICが有効
sep  Pentium2から実装された機能で、カーネルのシステムコールを高速で実行するためのロジックが有効…ということらしい。
mtrr  キャッシュメモリの現状をプロセッサに通知するためのレジスタが有効
pge  仮想記憶にまつわる何か…らしいがよくわからん
cmov  CMOV命令(Conditional MOV命令)が有効
pat  x86ページングテーブルを拡張し、ページジングテーブルを修飾する情報を追加する機能が有効  
clflush  CLFLUSH instructionという拡張命令が有効らしい
dts  Debug Trace Store
acpi  MSRを経由してのACPIが有効
mmx  MMX命令(マルチメディア拡張命令)が有効
fxsr  FXSAVE and FXRSTOR instructionsという物が有効らしい(スタックにレジスタをセーブ・リストアする挙動にかかわるそうだ)
sse  マルチメディア拡張セットSSEが有効
sse2  マルチメディア拡張セットSSE-2が有効
ss  CPU self snoopだそうですが、よくわかりません。
ht  ハイパースレッディングが有効
tm  プロセッサ内の温度センサーが有効
tm2  上に同じ
pbe  よくわかりません。
nx  プロセッサが備えるメモリ保護機構(Execute Disabled)が有効
lm  ロングモード対応(x86_64)
constant_tsc  よくわかりません。
pni  よくわかりません。
monitor  よくわかりません。
ds_cpl  よくわかりません。
vmx  システム仮想化支援機能が有効
est  SpeedStepテクノロジに対応
cx16  CMPXCHG16B拡張命令に対応しているということらしい
xptr  Send Task Priority Messages
lahf_lm  ロングモードにおいて、LAHF命令、SAHF命令が有効
IA64  IA-64プロセッサである



 つまり、要するにflagsにlmが書いてあれば64ビット版のOSが動作する…はず…ということですね。

 ちなみに、今動いているOSが64ビットかどうかは関係ないです。今動いているOSが64ビットかどうか見たいときはuname -aしませう。

nice!(0)  コメント(2)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 2

Twalk

自分もcpuinfoの表示の意味を知りたかったので、こちらでまとめてあるのを見つけて、助かりました。多謝!
by Twalk (2009-10-31 12:56) 

通りすがり

> cpu cores  siblingsと何が違うんだろう…?
Pentium 4 Hyperthreading=onで1CPUの場合は、
siblingsが「2」、cpu coresが「1」になっていました。
by 通りすがり (2010-04-14 10:42) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0