【问题标题】:Determine CPUID as listed in the Intel Intrinsics Guide确定 Intel Intrinsics Guide 中列出的 CPUID
【发布时间】:2013-02-28 09:20:17
【问题描述】:

在 Intel Intrinsics Guide 中,在几个 Intrinsics 的底部有“延迟和吞吐量信息”,列出了几个 CPUID 的性能。

例如,Intrinsics Guide 中的表格对于 Intrinsic _mm_hadd_pd 如下所示:

CPUID(s)               Parameters   Latency   Throughput
0F_03                                    13            4
06_2A                  xmm1, xmm2         5            2
06_25/2C/1A/1E/1F/2E   xmm1, xmm2         5            2
06_17/1D               xmm1, xmm2         6            1
06_0F                  xmm1, xmm2         5            2

现在:我如何确定我的 CPU 有什么 ID?

我正在使用 Kubuntu 12.04 并尝试使用 sudo dmidecode -t 4 以及 Ubuntu 软件包中的小程序 cpuid,但它们的输出并不是很有用。

我在上述命令的输出中的任何地方都找不到 Intrinsics Guide 中列出的任何字符串。

【问题讨论】:

    标签: intrinsics cpuid


    【解决方案1】:

    您可以使用 CPUID 指令获取该信息,其中

    扩展系列,位位置 20 到 27 与家人一起使用 代码,在位位置 8 到 11 中指定,用于指示处理器是否属于 Intel386、Intel486、Pentium、Pentium Pro 或 Pentium 4 系列处理器。 P6 系列处理器包括所有基于 Pentium Pro 处理器架构的处理器 并且有一个等于 00h 的大家庭 和等于 06h 的家庭代码。奔腾4 系列处理器包括所有基于 Intel NetBurst® 微架构的处理器 并且有一个等于 00h 的大家庭和一个等于 0Fh 的家庭代码。

    bit positi 中指定的扩展模型 16 至 19 日,连同 在位 4 到 7 中指定的型号是 用于识别处理器的型号 在处理器家族中。

    更多详情请参见Intel Processor Identification and the CPUID Instruction 的第 22 页。

    实际的 CPUID 是“family_model”。 以下代码应该可以完成这项工作:

    #include "stdio.h"
    
    int main () {
    
      int ebx = 0, ecx = 0, edx = 0, eax = 1;
      __asm__ ("cpuid": "=b" (ebx), "=c" (ecx), "=d" (edx), "=a" (eax):"a" (eax));
    
      int model = (eax & 0x0FF) >> 4;
      int extended_model = (eax & 0xF0000) >> 12;
      int family_code = (eax & 0xF00) >> 8;
      int extended_family_code = (eax & 0xFF00000) >> 16;
    
      printf ("%x %x %x %x \n", eax, ebx, ecx, edx);
      printf ("CPUID: %02x %x\n", extended_family_code | family_code, extended_model | model);
      return 0;
    }
    

    对于我的电脑,我得到:

    CPUID:06_25

    希望对你有帮助。

    【讨论】:

    • 是的,就是这样。现在我得到了 Sandy Bridge 的 06_2A :)
    • 一个很好的答案,但肯定有比编译源代码更简单的方法吗?也许有一些程序?
    猜你喜欢
    • 1970-01-01
    • 2010-12-11
    • 1970-01-01
    • 2020-01-27
    • 2017-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-23
    相关资源
    最近更新 更多