从CPUID获取CPU步骤代码

时间:2013-08-15 20:36:05

标签: intel cpuid

我看到可以使用CPUID提取CPU规格,但我还没有看到像SLB8X那样提取CPU步骤代码的方法,SLB8X是在马来西亚制造的Intel Xeon X3360 2.83 Ghz 12M缓存和1333Mhz。我相信相同的CPU ID信息与多个CPU步骤代码有关。

Comp Sci中的BS,但不是程序员,只是为我的程序员获取一些信息,看看上面是否可行。或者,Intel.com和/或AMD上是否有将CPUID映射到步骤代码的表格?

2 个答案:

答案 0 :(得分:1)

我将链接到步进ID表,但也许您的程序员会对功能表感兴趣,因此他们知道特定处理器支持的指令,即它们是否处于较低的水平。即使不是,这也很有趣。

此站点同时具有这两个表: https://www.felixcloutier.com/x86/cpuid

对于您正在寻找的某些特定信息,该网站说:

品牌索引方法(Pentium®IIIXeon®处理器引入)提供了进入品牌识别表的入口,该表由系统软件保存在内存中,并且可以从系统级和用户级代码访问...软件可以然后使用该索引在品牌标识表中找到处理器的品牌标识字符串。

然后请参阅表3-14,除非您已经具有可以解释它的软件。

程序员可能只需要用01H加载EAX,因为这样一来,您将在EAX中获得模型,系列和处理器类型,如下所示: enter image description here 然后,EBX中的值将是缓存行大小(EBX的第二个字节),品牌索引(EBX的低字节)和APIC ID(EBX的高字节)。

您可以使用以下方法检查这些值:

unsigned eax, ebx, ecx, edx;
if (__get_cpuid(0x00, &eax, &ebx, &ecx, &edx) == 0) {
    // cpuid not supported
}
if (eax < 0x14) {
    // leaf 0x14 not supported
}
__cpuid_count(0x14, 0x00, eax, ebx, ecx, edx); 
if ((ebx & 0x10) == 0) {
    // PTWRITE not supported
}

答案 1 :(得分:0)

CPU不报告。您可以在Linux上使用sudo dmidecode --type processor查找处理器信息。您将获得Signature: Type 0, Family 6, Model 45, Stepping 7

等信息