Linux
在 Linux 中獲取 CPU 步進
正如您從主題中註意到的那樣,它需要能夠正確獲取 cpu 的步程序式碼。正如維基百科所說,有諸如A0、A2、B0等步程序式碼。因此,linux(ubuntu 16.04)中的命令給出:
# dmidecode -t 4 | grep Stepping | awk '{ printf $8": "$9"\n" }' # Stepping: 2 # lscpu | grep Stepping # Stepping: 2 # cpuid | grep stepping # stepping id = 0x2 (2) # cat /proc/cpuinfo | grep stepping # stepping: 2
整個輸出: cat /proc/cpuinfo (一個核心):
processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 44 model name : Intel(R) Xeon(R) CPU E5620 @ 2.40GHz stepping : 2 microcode : 0x13 cpu MHz : 2400.208 cache size : 12288 KB physical id : 0 siblings : 4 core id : 0 cpu cores : 4 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 11 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 syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 popcnt lahf_lm epb kaiser tpr_shadow vnmi flexpriority ept vpid dtherm ida arat bugs : bogomips : 4800.41 clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management: ...
cpuid(部分):
... family = Intel Pentium Pro/II/III/Celeron/Core/Core 2/Atom, AMD Athlon/Duron, Cyrix M2, VIA C3 (6) ... (simple synth) = Intel Core i7-900 (Gulftown B1) / Core i7-980X (Gulftown B1) / Xeon Processor 3600 (Westmere-EP B1) / Xeon Processor 5600 (Westmere-EP B1), 32nm ...
dmidecode -t 4(部分):
... Signature: Type 0, Family 6, Model 44, Stepping 2 ...
來自CPU-Z程序網際網路的一些截圖:
來自CPU-G程序網際網路的一些截圖:
那麼0x2或2是什麼?為什麼不像維基百科中提到的 A0 或 B1 ?如何在踏號前得到這封信?
最好的問候,V7
僅使用來自 CPU 的資訊無法將步進編號映射到步進名稱。您需要查看英特爾的規格更新;這些包含對在各種 CPU 版本中修復的勘誤表的描述,還包含允許辨識各種步進的標識資訊(在適當的情況下)。
例如,對於您的 E8500,規格更新列出了兩個修訂版,C0 和 E0;C0 對應於處理器簽名 10676h,E0 對應於處理器簽名 1067Ah(請參見第 16 頁上的表 1)。這些簽名中的最後四位是在 CPU-Z 的“步進”欄位中給出的步進值
/proc/cpuinfo
,lscpu
等等;如您所見,數值和步進名稱之間沒有明顯的相關性(E8500 步進 C0 為 6,E8500 步進 E0 為 A)。CPU-Z 等工具包含所有這些標識資訊,並使用它在其 GUI 中提供步進名稱。