在英特尔手册中,有一些包含Performance-Monitoring Counters列表的表,但是它们对于特定的处理器家族来说是非常特殊的。
例如,一个表列出P6 Family的计数器,另一个表列出Pentium的计数器。
在Ubuntu中,如果我做了cat /proc/cpuinfo,我会得到一行,上面写着cpu family,但是它是一个数字。在这个数字和英特尔的processor family概念之间有什么映射吗?
我也看过英特尔的此页,但它甚至没有提到“家庭”这个词。
顺便说一句,我在X3470上,所以我想也许Xeon是他们的家人,但是手册上没有列出。
发布于 2014-03-12 07:49:36
具体来说,对于"X3470“,它是基于Nehalem微体系结构的。
一般来说,对于Intel 80x86和仅仅Intel 80x86 (不包括Itanium和Xeon Phi/KNC,以及所有其他80x86 CPU制造商-不要忘记检查CPUID中的“供应商ID”字符串):
CPUID.family == 4意味着它是一个80486 (没有性能监控)CPUID.family == 5的意思是它是奔腾CPUID.family == 15的意思是它是一个"Netburst“(奔腾4,奔腾D,奔腾EE,和一些加速器,而不是其他,一些Xeons,而不是其他)CPUID.family == 6的意思是从奔腾临(1995年)到最新的哈斯韦尔(2014年),除了"Netburst“对于CPUID.family == 6,您必须检查CPUID.model字段。您可以通过费力地搜索所有各种规范更新,同时低声低语来查找模型数字的范围(注意:这是传统的方法)。我不知道是否有一种不那么疯狂的破译方法。
请注意,还有“营销胡说八道”(面向销售人员的东西,对软件开发人员来说是完全无用的)。这包括CPU品牌名称(Xeon、Celeron、Core i7等)和CPU模型名称("X3470")。你看的那一页只是“营销胡说八道”。
发布于 2014-03-12 07:41:46
“家庭”是一个模棱两可的概念。由/proc/cpuinfo返回的数字是来自CPUID指令的“家族”字段,它给出了一个模糊的概念,即哪些处理器与此相关,并且实际上只在进行表查找以选择不支持“处理器品牌字符串”扩展的CPUID指令的处理器的名称时有用。
您可以尝试解析“处理器品牌字符串”以获取您想要的信息,但是最好检查扩展的CPUID指令,看看是否支持您要查找的计数器。
发布于 2014-03-12 07:09:33
IMHO,而不是找出家庭,寻找CPU能力标志,如:
http://lxr.linux.no/#linux+v3.13.5/arch/x86/include/asm/cpufeature.h
https://stackoverflow.com/questions/22344132
复制相似问题