Content by David L. Beem (original HERE).
Edited by Tomáš Slavotínek.
Last update: 19 Jan 2021 (synced with David's version dated 2 Jan 2012).
The CPUID (or "Reset Signature") is an encoded value reported from the chip
to denote the particular CPU Family, Series, and Stepping of the CPU. Most Intel
486 CPUs with copyright dates of '92 or later (with the exception of the 486SL
CPUs) support retrieving the CPUID at any point ("OTF", or "On-The-Fly") when
the processor is operating. Otherwise the CPUID has to be gained from the system
BIOS saving the Reset Signature away early on in the boot process. This isn't
done by all 486 BIOS versions, but as a general rule IBM PS/2s (and later IBM
products) do.
The first digit of the 486 CPUID denotes the processor type on Intel CPUs.
Other manufacturers like IBM (Where it is the letter "A") use it as a vendor
indication. The only Pentium-class CPUs listed here are the "POD (Pentium
Overdrive) for 486" (CPUID 153xh) that fit in an extension of the 486 socket.
The "Second CPU" (CPUID 2xxxh) value does not come into definition here & is
ignored:
0 | | "Normal" CPU |
1 | | Overdrive (ODP) CPU |
2 | | Second CPU on a dual CPU system |
The
second digit denotes the CPU Family. This will be "4" for all the
486s on this page, with the sole exception of the PODs that have a
Pentium-class core & able to run a Pentium instruction set. In those
cases it will be "5".
The
third digit denotes the particular 486 processor series, with the exception
of the POD CPUs (The PODs multiply the base processor clock by 2.5 and have
an onboard Floating Point Unit, or "FPU" math coprocessor):
0 |
| 486DX-25, DX-33, or some 487SX (single clock speed with onboard FPU), with 8 KB WT L1 cache |
1 |
| 486DX-50 or later DX-33 (single clock speed with onboard FPU), with 8 KB WT L1 cache |
2 |
| 486SX (single clock speed without onboard FPU) or some 487SX, with 8 KB WT L1 cache |
3 |
| 486DX2 (clock doubled internal speed with FPU) with 8 KB WT L1 cache |
4 |
| 486SL (low-power 486DX in PQFP packaging) with 8 KB WT L1 cache |
5 |
| 486SX2 (clock doubled internal speed without FPU) with 8 KB WT L1 cache |
7 |
| 486DX2 with 8 KB WB L1 cache |
8 |
| 486DX4 with 16 KB WT L1 cache (clock tripled internally with onboard FPU) |
9 |
| 486DX4 with 16 KB WB L1 cache |
The fourth digit is an encoded value of the stepping depending on the
processor series. I have listed the steppings for the different CPUIDs. In many
cases I have only been able to narrow the CPUID and S-spec down to a range of
stepping values. On a few Intel 486 processors with L1 cache that can be set to
either Write-Through (WT) or Write-Back (WB) modes, the CPU will shift CPUIDs to
show which mode the L1 cache is in at the time.
There can be confusion between the CPUID used on some Intel 486 processors,
and those of it's competitor's 486 (AMD, Cyrix/TI, & UMC) models. In most
cases the emulation of Intel CPUIDs was deliberate: They wanted the software
unaware of whether it was running on a true Intel processor or their version.
This is undoubtedly why Intel made the OTF CPUID function return a 'Vendor ID'
string (Intel's value is "GenuineIntel"). For earlier 486 CPUs not supporting
the Vendor ID there is a couple ways to tell the common CPUIDs apart. One is
that Intel removed the 'UMOV' instruction that was on the 286 and 386 from their
486 CPUs. It is still present on the AMD models, although it has been made hard
to detect in some cases. Cyrix/TI models also don't have the 'UMOV', but there
are documented ways of telling them apart from other vendor's CPUs.
The Intel "S-spec" notation (only left off two 486 CPUs rebranded to IBM) is
a 5-character marking in the form "S", uppercase letter (usually "X" on the 486
CPUs), digit, digit, digit. It is simply a batch version encoding and doesn't
otherwise represent any processor capabilities on it's own. The numbers may not
be necessarily ordinal, but for the early 486 CPUs they are somewhat in order of
production. Each unit of a particular S-spec always has the same capabilities
and CPU stepping, but there may be more than one S-spec for a particular CPUID
or stepping. Intel also paired certain S-specs together, the lower value
representing one speed and the next representing the other speed.
The 486 steppings cover a few different CPU core types. The original core is
usually encoded by an uppercase letter followed by a digit (as in "A2"),
although there was single uppercase letters (i.e. "D") at the end of the cycle.
Later "SL Enhanced" cores (lower power requirements) are encoded lowercase
letter, uppercase letter, digit (as in "aB0"). The last Intel 486 core had only
one stepping, "A", that denoted the CPU had either a 8 or 16 KB L1 cache that is
settable to Write-Back mode (earlier 486 have an 8 KB L1 cache in Write-Through
mode). The POD cores (with two separate 8 KB data & code L1 caches, settable
to Write-Back or Write-Through modes) are in a completely different stepping
notation much like the early 486s: Uppercase letter-digit.
I know the purpose of only one 486 stepping change, although a little
background is needed: When Intel initially produced the 32-bit 80386 (before
even the "DX" marking came into place), they had added an instruction that was
later removed (The 'XBTS', or 'Extract Bit String'). Since the instruction was
only present in the 386 'A' step, some programmers began to check for it in
software to know if the CPU was the 'A' step or a later 386 that had some
initial bugs fixed. Intel inadvertently selected the same location of the
removed 'XBTS' opcode for a new 'CMPXCHG' ('Compare, Exchange') 486 instruction.
When the code to detect the 386 'A' step was falsely identifying the 486 chip
'A' step version, the CMPXCHG instruction was moved elsewhere for the 'B' step
486. I am currently working on code to detect the stepping based on the CMPXCHG
opcode position when the BIOS CPUID & OTF CPUID (signifying an older 486)
are not available.
CPUID |
OTF |
Processor |
S-spec |
© Date |
Stepping |
Notes |
0400h |
No |
486DX |
? |
|
A0, A1 |
|
0401h |
No |
486DX-25 |
SX308 |
'89 |
B2 - B6 |
|
? |
No |
486DX-25 |
SX249 |
'89 |
? |
|
? |
No |
486DX-25 |
SX250 |
'89 |
? |
|
? |
No |
486DX-25 |
SX493 |
'89 |
? |
“LOWPOWER” stamp |
? |
No |
486DX-33 |
None |
'89 |
? |
Rebranded IBM, FRU 63G9145 |
0402h |
No |
486DX-25 |
SX328 |
'89 |
C0 |
|
0402h |
No |
486DX-33 |
SX329 |
'89 |
C0 |
|
0403h |
No |
486DX |
? |
|
C1 |
|
0404h |
No |
486DX-25 |
SX418 |
'89 |
D0 |
|
0404h |
No |
486DX-33 |
SX419 |
'89 |
D0 |
|
0404h |
No |
486DX-33 |
SX668 |
'89 |
D0 |
|
0404h |
No |
486DX-33 |
SX729 |
'89 |
D0 |
|
0410h |
No |
486DX |
? |
|
cA2, cA3 |
|
0411h |
No |
486DX-50 |
SX408 |
'90 |
cB0, cB1 |
|
0411h |
No |
486DX-50 |
SX546 |
'89 |
cB0, cB1 |
|
0413h |
No |
486DX-50 |
SX710 |
'89 |
cC0 |
|
0413h |
No |
486DX-33 |
SX829 |
'89 |
cC0 |
|
0414h |
Yes |
486DX-33 |
SX767 |
'89, '92 |
aA0, aA1 |
SL Enhanced |
0415h |
Yes |
486DX |
? |
|
aB0 |
SL Enhanced |
? |
Yes |
486DX-33 |
SX810 |
'89, '92 |
? |
|
? |
No |
486SX-20 |
SX406 |
'89 |
? |
PGA packaging |
? |
No |
486SX-16 |
SX431 |
'89 |
? |
PGA packaging |
? |
No |
486SX-16 |
SX545 |
'89 |
? |
“LOWPOWER” stamp |
? |
No |
486SX-16 |
SX548 |
'89 |
? |
PGA packaging |
0420h |
No |
486SX-25 |
SX411 |
'89 |
A0 |
PGA packaging |
0420h |
No |
486SX-20 |
SX467 |
'89 |
A0 |
PGA packaging |
0420h |
No |
486SX-25 |
SX468 |
'89 |
A0 |
PGA packaging |
0420h |
No |
487SX |
? |
'89 |
A0 |
|
? |
No |
ODP486SX-20 |
SZ675 |
'89 |
A2? |
PGA packaging |
0421h |
No |
487SX |
SZ494 |
'89 |
B0 |
|
0422h |
No |
486SX-25 |
SX673 |
'89 |
B0 |
PQFP packaging |
0422h |
No |
486SX-25 |
SX679 |
'89 |
B0 |
PGA packaging |
0422h |
No |
486SX-33 |
SX680 |
'89 |
B0 |
PGA packaging |
0422h |
No |
486SX-25 |
SX826 |
'89 |
B0 |
PGA packaging |
? |
No |
486SX-25 |
SX765 |
'89 |
? |
|
? |
No |
486SX-25 |
SX893 |
'89 |
? |
PGA packaging |
0423h |
Yes |
486SX-33 |
SX797 |
'89, '92 |
D |
PGA packaging, SL Enhanced |
0423h |
Yes |
486SX-25 |
SX798 |
'89, '92 |
D |
PGA packaging, SL Enhanced |
0423h |
Yes |
486SX-33 |
SK798 |
'89, '92 |
D |
PGA packaging, SL Enhanced |
0423h |
Yes |
486SX-33 |
SX902 |
'89, '92 |
D |
PGA packaging, SL Enhanced |
0423h |
Yes |
486SX-25 |
SX903 |
'89, '92 |
D |
PGA packaging, SL Enhanced |
0423h |
Yes |
486SX-33 |
SK903 |
'89, '92 |
D |
PGA packaging, SL Enhanced |
0424h |
Yes |
486SX |
? |
|
gAx |
PGA, SL Enhanced, 3.3 volt |
? |
No |
486SX-33 |
SX724 |
'89 |
? |
PQFP packaging |
? |
Yes |
486SX-25 |
SX763 |
'89, '92 |
? |
PQFP packaging, PGA mount |
0427h |
No |
486SX |
? |
|
cA0 |
PQFP packaging |
0428h |
No |
486SX-25 |
SX683 |
'89 |
cB0 |
PQFP packaging |
0428h |
No |
486SX-33 |
SX684 |
'89 |
cB0 |
PQFP packaging |
042Ah |
Yes |
486SX-33 |
SX789 |
'89, '92 |
E, aA0, aA1 |
PGA & PQFP packaging, SL |
042Ah |
Yes |
486SX-25 |
SX790 |
'89, '92 |
E, aA0, aA1 |
PGA packaging |
042Bh |
Yes |
486SX-25 |
SX854 |
'89, '92 |
aB0, aC0 |
PQFP packaging |
042Bh |
Yes |
486SX-33 |
SX855 |
'89, '92 |
aB0, aC0 |
PQFP packaging |
042Bh |
Yes |
486SX-25 |
SX930 |
'89, '92 |
aB0, aC0 |
PGA packaging |
0432h |
No |
486DX2-50 |
SX626 |
'89 |
A0 - A2 |
Can be ODP486SX A2 step |
0432h |
No |
486DX2-50 |
SX627 |
'89 |
A0 - A2 |
Can be ODP486SX A2 step |
0433h |
No |
486DX2-50 |
SX641 |
'89 |
B1 |
|
0433h |
No |
486DX2-66 |
SX645 |
'89 |
B1 |
|
0433h |
No |
486DX2 |
SX731 |
'89 |
B1 |
|
0433h |
No |
486DX2-66 |
SX744 |
'89 |
B1 |
|
0433h |
No |
486DX2-50 |
SX749 |
'89 |
B1 |
|
0433h |
No |
486DX2-66 |
SX750 |
'89 |
B1 |
|
? |
No |
486DX2-40 |
SX722 |
'89 |
? |
|
? |
No |
486DX2-66 |
SX752 |
'89 |
? |
|
? |
No |
486DX2-66 |
SX759 |
'89 |
? |
|
? |
? |
486DX2-66 |
SX762 |
'89 |
? |
|
0433h |
No |
ODP486DX-25 |
SZ697 |
'89 |
B1 |
ODP, 5 volt |
0433h |
No |
ODP486DX-33 |
SZ698 |
'89 |
B1 |
ODP, 5 volt |
0433h |
No |
ODP486SX-25 |
SZ800 |
'89 |
B1 |
|
0433h |
No |
ODP486SX-33 |
SZ801 |
'89 |
B1 |
|
0433h |
No |
ODP486DX-33 |
SZ802 |
'89 |
B1 |
ODP, 5 volt |
0433h |
No |
486DX2 |
None |
'89 |
B1 |
Rebranded IBM, FRU 92F2582 |
0434h |
Yes |
486DX2 |
? |
|
aA0, aA1 |
SL Enhanced |
0435h |
Yes |
486DX2-50 |
None |
'89, '92 |
aB0, aC0 |
Rebranded IBM, FRU
03H4938 |
0435h |
Yes |
486DX2-66 |
None |
'89, '92 |
aB0, aC0 |
Rebranded IBM, FRU 03H4939 |
0435h |
Yes |
486DX2-66 |
SX807 |
'89, '92 |
aB0, aC0 |
SL Enhanced |
0435h |
Yes |
486DX2-50 |
SX808 |
'89, '92 |
aB0, aC0 |
SL Enhanced |
0435h |
Yes |
ODP486SX-25 |
SZ874 |
'89, '92 |
AB0, aC0 |
ODP Version 3.0, SL, 5 volt |
0435h |
Yes |
ODP486SX-33 |
SZ875 |
'89, '92 |
aB0, aC0 |
ODP Version 3.0, SL, 5 volt |
0435h |
Yes |
ODP486DX-33 |
SZ878 |
'89, '92 |
aB0, aC0 |
ODP Version 3.0, SL, 5 volt |
0435h |
Yes |
DX2ODP50 |
SZ902 |
'89, '92 |
aB0, aC0 |
ODP Version 3.0, SL, 5 volt |
0435h |
Yes |
DX2ODP66 |
SZ903 |
'89, '92 |
aB0, aC0 |
ODP Version 3.0, SL, 5 volt |
0435h |
Yes |
DX2ODPR66 |
SZ904 |
'89, '92 |
aB0, aC0 |
ODP Version 3.0, SL, 5 volt |
0435h |
Yes |
DX2ODP50 |
SZ932 |
'89, '92 |
aB0, aC0 |
ODP Version 4.0, SL, 5 volt |
0435h |
Yes |
DX20DP66 |
SZ933 |
'89, '92 |
aB0, aC0 |
ODP Version 4.0, SL, 5 volt |
0435h |
Yes |
DX2ODPR50 |
SZ934 |
'89, '92 |
aB0, aC0 |
ODP Version 4.0, SL, 5 volt |
0435h |
Yes |
DX2ODPR66 |
SZ935 |
'89, '92 |
aB0, aC0 |
ODP Version 4.0, SL, 5 volt |
0435h |
Yes |
486DX2-66 |
SX911 |
'89, '92 |
aB0, aC0 |
"i66" marking on underside, SL |
0435h |
Yes |
486DX2-50 |
SX912 |
'89, '92 |
aB0, aC0 |
"i50" marking on underside, SL |
? |
Yes |
486DX2-50 |
SX950 |
'89, '92 |
? |
PQFP |
0436h |
Yes |
486DX2-50 |
SX954 |
'89, '92 |
AB0, aC0 |
“i50” marking on underside |
0436h |
Yes |
486DX2-66 |
SX955 |
'89, '93 |
A |
"i66" marking on underside |
0440h |
No |
486SL-25 |
SX741 |
'89, '92 |
A |
PQFP, Low-power 486DX |
0441h |
No |
486SL-33 |
SX805 |
'89, '92 |
A |
PQFP, Low-power 486DX |
0441h |
No |
486SL-25 |
SX806 |
'89, '92 |
A |
PQFP, Low-power 486DX |
045Bh |
Yes |
486SX2-50 |
SX845 |
'89, '92 |
aC0 |
|
0470h |
Yes |
486DX2-50 |
SX954 |
'89, '93 |
A |
0436h CPUID in L1 WB mode |
0470h |
Yes |
486DX2-66 |
SX955 |
'89, '93 |
A |
0436h CPUID in L1 WB mode |
0480h |
Yes |
DX4ODP75 |
SU001 |
'89, '93 |
A |
ODP V1.1, 5 volt |
0480h |
Yes |
DX4ODP100 |
SU002 |
'89, '93 |
A |
ODP V1.1, 5 volt |
0480h |
Yes |
DX4ODPR75 |
SU003 |
'89, '93 |
A |
ODP V1.1, 5 volt |
0480h |
Yes |
DX4ODPR100 |
SU004 |
'89, '93 |
A |
ODP V1.1, 5 volt |
0480h |
Yes |
DX4ODP75 |
SZ956 |
'89, '93 |
A |
ODP V1.1, 5 volt |
0480h |
Yes |
DX4ODP100 |
SZ957 |
'89, '93 |
A |
ODP V1.1, 5 volt |
0480h |
Yes |
DX4ODPR75 |
SZ958 |
'89, '93 |
A |
ODP V1.1, 5 volt |
0480h |
Yes |
DX4ODPR100 |
SZ959 |
'89, '93 |
A |
ODP V1.1, 5 volt |
0480h |
Yes |
486DX4-100 |
SK047 |
'89, '93 |
A |
3 volt |
0480h |
Yes |
486DX4-100 |
SK050 |
'89, '93 |
A |
3 volt |
0480h |
Yes |
486DX4-100 |
SK051 |
'89, '93 |
A |
3 volt |
0480h |
Yes |
486DX4 |
SK053 |
'89, '93 |
A |
3 volt |
0480h |
Yes |
486DX4 |
SK099 |
'89, '93 |
A |
3 volt |
0480h |
Yes |
486DX4-75 |
SX870 |
'89, '93 |
A |
3 volt, "Mobile" CPU |
0480h |
Yes |
486DX4-75 |
SX876 |
'89, '93 |
A |
3 volt |
0480h |
Yes |
486DX4-100 |
SX877 |
'89, '93 |
A |
3 volt |
0480h |
Yes |
486DX4-75 |
SX884 |
'89, '93 |
A |
3 volt |
0480h |
Yes |
486DX4-100 |
SX900 |
'89, '93 |
A |
3 volt |
0480h |
Yes |
486DX4-100 |
SX906 |
'89, '93 |
A |
3 volt, "Mobile" CPU |
0480h |
Yes |
486DX4-100 |
SX896 |
'89, '94 |
A |
3 volt |
0483h |
Yes |
486DX4-100 |
* |
'89, '94 |
A |
|
0490h |
Yes |
486DX4-100 |
SX158 |
'89, '94 |
A |
3 volt, 16 KB WB L1 |
0490h |
Yes |
486DX4-100 |
SX209 |
'89, '94 |
A |
3 volt, 16 KB WB L1 |
0490h |
Yes |
486DX4-100 |
SK896 |
'89, '94 |
A |
3 volt, 16 KB WB L1 |
0490h |
Yes |
486DX4-100 |
SK096 |
'89, '94 |
A |
3 volt, 16 KB WB L1 |
1480h |
Yes |
DX4ODPR75 |
SZ925 |
'89, '93 |
A |
ODP V1.0, 5 volt |
1480h |
Yes |
DX4ODPR100 |
SZ926 |
'89, '93 |
A |
ODP V1.0, 5 volt |
1531h |
Yes |
POD63 |
SZ953 |
'89, '94 |
B1 |
Pentium core, 5 volt, ODP |
1531h |
Yes |
POD63 |
SZ990 |
'89, '94 |
B2 |
Pentium core, 5 volt, ODP |
1532h |
Yes |
POD63 |
SU013 |
'92, '94 |
C0 |
Pentium core, 5 volt, ODP |
1532h |
Yes |
POD83 |
SU014 |
'92, '94 |
C0 |
Pentium core, 5 volt, ODP |
* - Any of the CPUID 0490h in L1 WT mode
? - Unknown
OTF - retrieving the CPUID at any point - "On-The-Fly"
Further Reading
|