Hi,
AWOS wrote:Where would I be able to find a list of all families/steppings for the different processors? I found one on Intel's site for their processors, but after much Googling I am left empty handed with AMD and Cyrix.
For Intel, the family and model information is published in their
CPUID Application Note for all CPUs. For stepping information you need to download the "specification update" that corresponds to each group of CPUs.
For AMD, the family and model information for older CPUs (before family 0x0F) is published in their
AMD Processor Recognition Application Note. This doesn't include CPUs that AMD obtained from other manufacturers (e.g. NSC Geode), which also return the "AuthenticAMD" as the vendor ID. For stepping information (and family/model information for later CPUs) you need to download the "revision guide" that corresponds to each group of CPUs.
For VIA, NSC (now AMD Geode), IDT/Centaur, Rise and Transmeta, there's a datasheet for each CPU they produced that contains the CPUID family and model information. Some also contain steppings, but some don't.
For SiS and NexGen, I haven't been able to find any documentation. For IBM, their CPUs ("Blue Lightning") didn't support the CPUID instruction anyway.
For Cyrix, some don't support CPUID and some have CPUID disabled. There's a pair of I/O ports that work a little like getting data to/from the CMOS, where you set the location in I/O port 0x22 and then read or write the data from location 0x23. These I/O ports are for CPU configuration, and can be used to enable or disable certain features (e.g. the CPUID instruction) and obtain the model, stepping and revision for the CPU (which is in Cyrix's format, and doesn't correspond to Intel's family/model numbering).
For the Cyrix CPUs there's datasheets that contain both the Cyrix specific model, stepping (if present), and the Intel/CPUID specific family and model (if present).
Where possible, I ignore the "Intel compatible" model and stepping information and use the "manufacturer specific" model and stepping information. They can be different for Cyrix (as described above) and for some other CPUs (e.g. some AMD CPUs report a different family from CPUID 0x00000001 and CPUID 0x80000001).
Also for some manufacturers (Intel, Transmeta and possibly NexGen) there's a software version (microcode update version for Intel and possibly NexGen, and "Code Morphing Software" version for Transmeta). If you're using the family/model/stepping information for anything other than displaying it (e.g. detecting CPU bugs, enabling extra features, etc) then it can be worth getting this software version too. For Intel it's documented in their System Programmer's Guide. For Transmeta it's documented in their datasheets as part of the CPUID information.
Cheers,
Brendan