“cpuid 级别”是什么意思?

“cpuid 级别”是什么意思?

举个例子,我只放了 16 核机器中 1 个核的输出。

输出中的“cpuid level”为“6”是什么意思?另外,“bogomips”为“5992.10”和“clflush size”为“64”是什么意思?

processor    :    0
vendor_id    :    GenuineIntel
cpu family   :    15
model        :    6
model name   :    Intel(R) Xeon(TM) CPU 3.00GHz
stepping     :    8
cpu MHz      :    2992.689
cache size   :    4096 KB
physical id  :    0
siblings     :    4
core id      :    0
cpu cores    :    2
fpu          :    yes
fpu_exception:    yes
cpuid level  :    6
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 syscall nx lm constant_tsc pni monitor ds_cpl 
                  vmx cid cx16 xtpr lahf_lm
bogomips     :    5992.10
clflush size :    64
cache_alignment:  128
address sizes:    40 bits physical, 48 bits virtual
power management:

答案1

显示的大部分信息都来自 x86 指令“cpuid”。“level”是您可以安全用于询问处理器以获取信息的最大选项集。

英特尔应用说明http://www.intel.com/assets/pdf/appnote/241618.pdf包含很多有关说明的详细信息。我认为“级别”相当于文档中列出的“功能”。

答案2

bogomips是基于循环中一组非常特定的指令的速度,内核会将该值用于某些计时循环。在这个上下文之外,它几乎没有意义 - 有些人错误地认为它是 CPU 速度的衡量标准(在这个上下文中它就是非常在特定语境中,但不是一般情况)。

clfush功能列表中的 指的是缓存行刷新功能的可用性,这是一条指令,用于告诉 CPU 的缓存某个数据块不再需要或可能不再有效(因此如果需要,应该从其他地方重新读取)。我猜想 中指定的大小clflush size将是可以控制此过程的粒度 - 即可以刷新的最小块(可能与 CPU 的 L1 缓存的行宽直接相关)。除非您是 CPU 工程师或试图在非常低的级别调试某些东西,否则这可能也不是一件有用的事情。

相关内容