理解 /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 6
model name : Intel(R) Pentium(R) 4 CPU 3.00GHz
stepping : 5
cpu MHz : 3143.295
cache size : 0 KB
physical id 0
siblings : 1
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 6
wp : yes
flags : fpu vme pse tsc msr pae cx8 sep pge cmov acpi mmx fxsr sse sse2
bogomips : 1674.44
rpm i386 i586 i686 之间的区别
有的
rpm有分
i386 i586 i686等不同版本,如:
abc-1.2.3-4.i386.rpm
abc-1.2.3-4.i586.rpm
abc-1.2.3-4.i686.rpm
它们有什么不同呢?
这里的
i386 i586 i686指的是适用于
intel i386、
i586、
i686 兼容指令集的微处理器。一般来说,等级愈高的机器可接受较低等级的
rpm文件。
i386―几乎所有的
X86平台,不论是旧的
pentum或者是新的
pentum-IV与
K7系统
CPU,都可以正常工作,
i指得是
Intel兼容的
CPU,至于
386就是
CPU的等级。
i586―就是
586等级的计算机,包括
pentum第一代
MMX CPU,
AMD的
K5,
K6系统
CPU(
socket7插脚)等
CPU都是这个等级。
i686―
pentum 2 以后的
Intel系统
CPU及
K7以后等级的
CPU都属于这个
686等级。
你可以透过
/proc/cpuinfo这个档案查询你的
CPU等级。
/proc/cpuinfo
This virtual file identifies the type of processor used by your system. The following is an example of the output typical of /proc/cpuinfo:
processor : 0 vendor_id : GenuineIntel cpu family : 15 model : 2 model name : Intel(R) Xeon(TM) CPU 2.40GHz stepping : 7 cpu MHz : 2392.371 cache size : 512 KB physical id : 0 siblings : 2 runqueue : 0 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 2 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 bogomips : 4771.02
<!--[if !supportLists]-->
・ <!--[endif]-->
processor
―
Provides each processor with an identifying number. On systems that have one processor, only a 0 is present.
<!--[if !supportLists]-->
・ <!--[endif]-->
cpu family
―
Austhoritatively identifies the type of processor in the system. For an Intel-based system, place the number in front of "86" to determine the value. This is particularly helpful for those attempting to identify the architecture of an older system such as a 586, 486, or 386. Because some RPM packages are compiled for each of these particular architectures, this value also helps users determine which packages to install.
<!--[if !supportLists]-->
・ <!--[endif]-->
model name
―
Displays the common name of the processor, including its project name.
<!--[if !supportLists]-->
・ <!--[endif]-->
cpu MHz
―
Shows the precise speed in megahertz for the processor to the thousandths decimal place.
<!--[if !supportLists]-->
・ <!--[endif]-->
cache size
―
Displays the amount of level 2 memory cache available to the processor.
<!--[if !supportLists]-->
・ <!--[endif]-->
siblings
―
Displays the number of sibling CPUs on the same physical CPU for architectures which use hyper-threading.
<!--[if !supportLists]-->
・ <!--[endif]-->
flags
―
Defines a number of different qualities about the processor, such as the presence of a floating point unit (FPU) and the ability to process MMX instructions.
Understanding /proc/cpuinfo
Example:
$ uname -r
2.6.18-8.el5
How many physical processors are there?
$ grep 'physical id' /proc/cpuinfo | sort | uniq | wc -l
2
How many virtual processors are there?
$ grep ^processor /proc/cpuinfo | wc -l
4
Are the processors dual-core (or multi-core)?
$ grep 'cpu cores' /proc/cpuinfo
cpu cores : 2
cpu cores : 2
cpu cores : 2
cpu cores : 2
"2" indicates the two physical processors are dual-core, resulting in 4 virtual processors.
If "1" was returned, the two physical processors are single-core. If the processors are single-core, and the number of virtual processors is greater than the number of physical processors, the CPUs are using hyper-threading. Hyper-threading is supported if
ht
is present in the CPU
flags
and you are using an SMP kernel.
Are the processors 64-bit?
A 64-bit processor will have
lm
("long mode") in the
flags
section of
cpuinfo
. A 32-bit processor will not.
e.g.,
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm cr8legacy ts fid vid ttp tm stc
What do the CPU flags mean?
The CPU flags are briefly described in the kernel header file
cpufeature.h
.
proc/cpuinfo 确定系统的CPU情况
一些操作系统的最新版本已经更新了
/proc/cpuinfo
文件,以支持多路平台。如果您的系统中的
/proc/cpuinfo
文件能够正确地反映出处理器信息,那么就不需要执行上述步骤。反之,可采用本文中的信息进行解释。
/proc/cpuinfo
文件包含系统上每个处理器的数据段落。
/proc/cpuinfo
描述中有
6
个条目适用于多内核和超线程(
HT
)技术检查:
processor
, vendor id, physical id, siblings, core id
和
cpu cores
。
- processor 条目包括这一逻辑处理器的唯一标识符。
- physical id 条目包括每个物理封装的唯一标识符。
- core id 条目保存每个内核的唯一标识符。
- siblings 条目列出了位于相同物理封装中的逻辑处理器的数量。
- cpu cores 条目包含位于相同物理封装中的内核数量。
- 如果处理器为英特尔处理器,则 vendor id 条目中的字符串是 GenuineIntel。
拥有相同
physical id
的所有逻辑处理器共享同一个物理插座。每个
physical id
代表一个唯一的物理封装。
Siblings
表示位于这一物理封装上的逻辑处理器的数量。它们可能支持也可能不支持超线程(
HT
)技术。每个
core id
均代表一个唯一的处理器内核。所有带有相同
core id
的逻辑处理器均位于同一个处理器内核上。如果有一个以上逻辑处理器拥有相同的
core id
和
physical id
,则说明系统支持超线程(
HT
)技术。如果有两个或两个以上的逻辑处理器拥有相同的
physical id
,但是
core id
不同,则说明这是一个多内核处理器。
cpu cores
条目也可以表示是否支持多内核。
例如,如果系统包含两个物理封装,每个封装中又包含两个支持超线程(
HT
)技术的处理器内核,则
/proc/cpuinfo
文件将包含此数据。(注:数据并不在表格中。)
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->
processor
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
physical id
|
0
|
1
|
0
|
1
|
0
|
1
|
0
|
1
|
core id
|
0
|
2
|
1
|
3
|
0
|
2
|
1
|
3
|
siblings
|
4
|
4
|
4
|
4
|
4
|
4
|
4
|
4
|
cpu cores
|
2
|
2
|
2
|
2
|
2
|
2
|
2
|
2
|
此例说明逻辑处理器
0
和
4
驻留在物理封装
0
的内核
0
上。这就表示逻辑处理器
0
和
4
支持超线程(
HT
)技术。相同的工作可用于封装
0
内核
1
上的逻辑处理器
2
和
6
,封装
1
内核
2
上的逻辑处理器
1
和
5
,以及封装
1
内核
3
上的逻辑处理器
3
和
7
。此系统支持超线程(
HT
)技术,因为两个逻辑处理器共享同一个内核。有两种方式可以确定是否支持多内核。由于内核
0
和
1
存在于封装
0
上,而内核
2
和
3
存在于封装
1
上,所以这是一个多内核系统。此外,
cpu cores
条目为
2
,也说明有两个内核驻留在物理封装中。这是一个多路系统,因为有两个封装。
值得注意的是
physical id
和
core id
的编号可能是也可能不是连续的。系统上有两个物理封装并不罕见,而且
physical id
等于
0
和
3
CPU ID
CPU ID
是
CPU
生产厂家为识别不同类型的
CPU
,而为
CPU
制订的不同的单一的代码;不同厂家的
CPU
,其
CPU ID
定义也是不同的;如
“0F24”
(
Inter
处理器)、
“681H”
(
AMD
处理器),根据这些数字代码即可判断
CPU
属于哪种类型,这就是一般意义上的
CPU ID
。
由
于计算机使用的是十六进制,因此
CPU ID
也是以十六进制表示的。
Inter
处理器的
CPU ID
一共包含四个数字,如
“0F24”
,从左至右分别表示
Type
(类型)、
Family
(系列)、
Mode
(型号)和
Stepping
(步进编号)。从
CPUID
为
“068X”
的处理器开始,
Inter
另外增
加了
Brand ID
(品种标识)用来辅助应用程序识别
CPU
的类型,因此根据
“068X”CPUID
还不能正确判别
Pentium
和
Celerom
处理
器。必须配合
Brand ID
来进行细分。
AMD
处理器一般分为三位,如
“681”
,从左至右分别表示为
Family
(系列)、
Mode
(型号)和
Stepping
(步进编号)。
Type
(类型)
类型标识用来区别
INTEL
微处理器是用于由最终用户安装,还是由专业个人计算机系
统集成商、服务公司或制作商安装;数字
“1”
标识所测试的微处理器是用于由用户安装的;数字
“0”
标识所测试的微处理器是用于由专业个人计算机系统集成
商、服务公司或制作商安装的。我们通常使用的
INTEL
处理器类型标识都是
“0”
,
“0F24”CPUID
就属于这种类型。
Family
(系列)
系
列标识可用来确定处理器属于那一代产品。如
6
系列的
INTEL
处理器包括
Pentium Pro
、
Pentium II
、
Pentium II Xeon
、
Pentium III
和
Pentium III Xeon
处理器。
5
系列(第五代)包括
Pentium
处理器和采用
MMX
技术的
Pentium
处理器。
AMD
的
6
系列实际指有
K7
系列
CPU
,有
DURON
和
ATHION
两大类。最新一代的
INTEL Pentium 4
系列处理器(包括相同核心的
Celerom
处理器)的系列值为
“F”
Mode
(型号)
型号标识可用来
确定处理器的制作技术以及属于该系列的第几代设计(或核心),型号与系列通常是相互配合使用的,用于确定计算机所安装的处理器是属于某系列处理器的哪种特
定类型。如可确定
Celerom
处理器是
Coppermine
还是
Tualutin
核心;
Athlon XP
处理器是
Paiomino
还是
Thorouhgbred
核心。
Stepping
(步进编号)
步进编号用来标识处理器的设计或制作版本,有助于控制和跟踪处理器的更
改,步进还可以让最终用户更具体地识别其系统安装的处理器版本,确定微处理器的内部设计或制作特性。步进编号就好比处理器的小版本号,如
CPUID
为
“686”
和
“686A”
就好比
WINZIP8.0
和
8.1
的关系。步进编号和核心步进是密切联系的。如
CPUID
为
“686”
的
Pentium III
处理器是
cCO
核心,而
“686A”
表示的是更新版本
cD0
核心。
Brand ID
(品种标识)
INTEL
从
Coppermine
核心的处理器开始引入
Brand ID
作为
CPU
的辅助识别手段。如我们通过
Brand ID
可以识别出处理器究竟是
Celerom
还是
Pentium 4
。