首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从CPUID获取CPU步长编码

从CPUID获取CPU步长编码
EN

Stack Overflow用户
提问于 2013-08-16 04:36:05
回答 2查看 1.5K关注 0票数 1

我看到使用CPUID提取CPU规格是可能的,但是我还没有看到像SLB8X那样提取CPU步长代码的方法,它是在马来西亚制造的英特尔至强X3360 2.83 Ghz 12M高速缓存和1333 Ghz。我相信相同的CPU ID信息与多个CPU步骤代码相关。

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

EN

回答 2

Stack Overflow用户

发布于 2013-08-16 04:42:49

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

票数 1
EN

Stack Overflow用户

发布于 2019-07-10 03:28:13

我将链接到步进if的表,但您的程序员可能会对功能表感兴趣,这样他们就可以知道特定处理器支持哪些指令,也就是说,如果他们在这么低的级别上工作。即使不是,知道这一点也很有趣。

此站点包含这两个表:https://www.felixcloutier.com/x86/cpuid

对于你正在寻找的一些特别的信息,这个网站说:

品牌索引方法(在奔腾®III Xeon®处理器中引入)提供了一个进入品牌标识表的入口点,该表由系统软件在内存中维护,可从系统级和用户级代码访问...然后,软件可以使用该索引在品牌标识表中定位处理器的品牌标识字符串。

然后参考表3-14,除非你已经有可以解释它的软件。

使用01H加载EAX可能是您的程序员所需要的全部,因为作为回报,您将获得EAX中的型号、系列和处理器类型,如下所示:

然后,EBX中的值将是缓存线大小(EBX的第二个字节)、品牌索引(EBX的低字节)和APIC (EBX的高字节)。

您可以使用类似以下内容来检查这些值:

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18261345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档