As you could notice from the topic it needs to be able get cpu's stepping code properly. As Wikipedia says there're stepping codes like A0, A2, B0 etc. So, commands in linux (ubuntu 16.04) give:

# 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

The whole outputs: cat /proc/cpuinfo (one core):

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 (part):

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 (part):

Signature: Type 0, Family 6, Model 44, Stepping 2

Some screenshot from an internet of CPU-Z program:

Revision E0 ?

Some screenshot from an internet of CPU-G program:

Stepping 4 ?

So what't the 0x2 or 2 ? Why not A0 or B1 as in Wikipedia mentioned ? How to get this letter before stepping number ?

Best regards, V7

1 Answer 1


There’s no way to map stepping numbers to stepping names using only information from the CPU. You need to look at specification updates from Intel; these contain descriptions of the errata fixed in various revisions of CPUs, and also contain identification information allowing the various steppings to be identified (where appropriate).

For example, for your E8500, the specification update lists two revisions, C0 and E0; C0 corresponds to processor signature 10676h, E0 to processor signature 1067Ah (see table 1 on page 16). The last four bits in these signatures are the stepping values given in /proc/cpuinfo, lscpu etc., and in CPU-Z’s “stepping” field; as you can see, there’s no obvious correlation between the numeric values and the stepping names (6 for the E8500 stepping C0, A for the E8500 stepping E0). Tools such as CPU-Z contain all this identification information and use it to provide stepping names in their GUI.

  • Dear @Stephen, So, you mean that CPU-Z has their parser for Intel's information or own database with these identifications and these identifications as A0, B1 are more subjective (unformal) than real identification ? Btw thank you very much
    – Artfaith
    Commented Jan 22, 2018 at 13:30
  • I don’t think Intel provide any easily-parsed database of identifications, so I imagine the CPU-Z developers have gone over all the specification updates and built their own database. The “A0”, “B1”-style identifications are no less formal than the information provided by CPUID, the semantics are slightly different, that’s all. In practice it doesn’t make much difference, what’s really important is the errata that affect you and whether they’re fixed (and Intel’s documentation tells you how to determine that). Commented Jan 22, 2018 at 13:38

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .