I am writing an application collecting info on user's CPU. The app should detect Core 2 based CPU , core's name( Allendale, Conroe, etc),Tjmax temp etc,stepping,etc. How the app (using CPUID) can find out what is the core's stepping (B2,L2,B3)? On Intel's CPU list there's afield called"CPUID String" and there is theID number of the core (6F6 for Conroe, 6F2 for Allendale and 6F7 for Kentsfield). And my question is: How to get the number on user's CPU? I'm asking about that because I'd like to use that as a base of CPU recognition. BTW Is there a better method of detecting the core name ?
Here is an answer from our engineers:
Unless Allendale has a different CPUID, you cannot tell an Allendale from a Conroe-based on CPUID alone. The same is true with Conroe and Kentsfield. When we get to G-step they all have the same CPUID and the issue problem still exists.
An algorithm to determine one processor from another with the same CPUID gets very complex. That is the main reason that Brand String was implemented. You might be able to look at the 4-digit processor number and associate the CPUID & the processor number to get the correct code name, but Intel frowns upon applications printing out internal code names.
You might find this pre-existing thread in our Intel Software Network forums helpful at http://software.intel.com/en-us/forums//topic/52684.
More information is available in the Intel 64 and IA-32 Architectures Software Developer's Manual at http://www.intel.com/design/processor/manuals/253666.pdf, page 202.
Intel is a registered trademark of Intel Corporation or its subsidiaries in the United States and other countries.
*Other names and brands may be claimed as the property of others.