CPUID:报道的微观建筑似乎模棱两可
Ubuntu 20.04 Lts。注意(未知类型)
报告:
$ cpuid | less
CPU 0:
vendor_id = "GenuineIntel"
version information (1/eax):
processor type = primary processor (0)
family = 0x6 (6)
model = 0xe (14)
stepping id = 0xd (13)
extended family = 0x0 (0)
extended model = 0x9 (9)
(family synth) = 0x6 (6)
(model synth) = 0x9e (158)
(simple synth) = Intel Core (unknown type) (Kaby Lake / Coffee Lake) {Skylake}, 14nm
.
.
.
(uarch synth) = Intel Coffee Lake {Skylake}, 14nm
(synth) = Intel Xeon E-2200 (Coffee Lake R0) {Skylake}, 14nm
cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 158
model name : Intel(R) Xeon(R) E-2278G CPU @ 3.40GHz
stepping : 13
microcode : 0xea
cpu MHz : 3400.000
cache size : 16384 KB
physical id : 0
siblings : 16
core id : 0
cpu cores : 8
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 22
. . .
该处理器是什么?卡比?咖啡?还是Skylake?我问是因为我正在做PMU编程。我想确保根据架构是正确的做法。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是 http://www.etallen.com/cpuid.html 代码> cpuid 命令,而不是
msr-tools
软件包的一部分。根据
具体来说,根据wikichip (“客户”核心的Xeon-badged版本),所以Coffee Lake ER。
成为咖啡湖意味着IA核心在微体系外观与Skylake(和Kaby Lake)相同,尽管它具有更新的GPU,并且具有更高速度的存储器控制器。
对于CPU核心,改进只是硅过程(14nm ++)的改进。
除了用于熔化和L1TF或其他相关内容等漏洞的一些硬件修复。也许是对幽灵缓解的改进。但是尚未修复需要在微型码或JCC杂音中禁用LSD(LOOP缓冲区)的错误,因此,这些性能问题仍然由其微代码自我折磨,即使在角案件中也可以确保正确性。
PMU硬件在SKL,KBL和CFL中相同,除了(?)某些勘误是被修复的。我认为,事件ID都是相同的。
了解命令行
cpuid
输出:我猜测这是在说家庭/模型/步进和扩展模型/家庭领域没有区分KBL和CFL(因此是未知类型),但请暗示一个或另一个。
{Skylake}
提醒您KBL和CFL都是Skylake的迭代。“(未知类型)”可能是说它不知道它是I3/5/7/9还是Pentium还是Celeron。
在我的i7-6700k Skylake桌面上,我明白了。从
CPUID版本20170122
从旧的Arch Linux Aurst安装中,该安装量仍是在发布CPU本身一年以上的一年以上,这可能是比您较旧的版本。是的,(简单的合成器)可能是它能够从那片叶子中的东西而不是品牌字符串中神圣的。
从该工具的最新版本中,
版本20220224
,因此
(未知类型)
似乎完全正常i3/5/7。不过,您的Ubuntu 20.04 LTS中的
CPUID
的版本似乎确实知道咖啡湖。也许还不够新的知识,因为您对您的skylake表示“ R0”,因为您的Skylake(不是 a'''''';没有新的迭代CPU作为Skylake发行。 。
我不确定
cpuid
r0的含义。也许是“修订0”,如果不知道“咖啡湖刷新”,那将是有道理的。我想知道较新的cpuid
是否会报告R1或拼写“刷新”?它确实是咖啡湖家族的E-22XX系列Xeon。 CPU核心基本上与Skylake相同,并且在14nm(++)过程中构建。 IDK如果英特尔在CFL和CFL-REFRESH之间进行了所有内容,那么为了对其进行编程,您拥有所需的所有信息。
“ r”的其他实例显示在CPUID输出中,表示“注册商标”,例如“ Intel(r)Xeon(r)”,“ intel(r)Xeon(r)”,“ brand string
intel(r)xeon(r)xeon(r)e-2278g cpu @ 3.40 GHz
Linux通过带有不同ECX输入的CPUID机器说明。但是我认为R0可能被用来表示“第一次迭代”(0刷新?),因为它不仅是复制诸如“ Xeon(r)”之类的字符串。This is the http://www.etallen.com/cpuid.html version of the
cpuid
command, rather than the one that's part of themsr-tools
package.According to Intel's web site, "Intel(R) Xeon(R) E-2278G" is a Coffee Lake, as your
cpuid
shell command figured out from other CPUID info, perhaps including the brand string.Specifically, according to wikichip, it's a Coffee Lake Refresh iteration of Coffee Lake E (the Xeon-badged versions of "client" cores), so Coffee Lake ER.
Being Coffee Lake means the IA cores are microarchitecturally identical to Skylake (and Kaby Lake), although it has a newer GPU and has memory controllers rated for higher speeds.
For the CPU cores, the improvement is just a refinement of the silicon process (14nm++).
Except maybe for some hardware fix for vulnerabilities like Meltdown, and L1TF or other related things. And maybe refinement of the Spectre mitigations. But not yet fixing the bug that required disabling the LSD (loop buffer) in microcode, or the JCC erratum, so both those performance problems are still self-inflicted by its microcode to ensure correctness even in corner cases.
The PMU hardware is AFAIK identical in SKL, KBL, and CFL, except perhaps(?) some errata being fixed. The event IDs are all the same, I assume.
Understanding command-line
cpuid
output:I'm guessing that this is saying that the family/model/stepping and extended-model/family fields don't distinguish between KBL and CFL (thus unknown type), but do imply one or the other. And
{Skylake}
is reminding you that KBL and CFL are both iterations of Skylake.The "(unknown type)" is probably saying it doesn't know whether it's an i3/5/7/9 or Pentium or Celeron.
On my i7-6700k Skylake desktop, I get this. From
cpuid version 20170122
from an old Arch Linux AUR install, which is still over a year after the CPU itself was released, which may be an older version than you have.So yeah, (simple synth) is probably what it was able to divine from just the things in that leaf, not the brand string.
From the latest version of the tool,
version 20220224
,So the
(unknown type)
seems perfectly normal, just a consequence of Intel not varying the family, model, stepping numbers across i3/5/7.The version of
cpuid
in your Ubuntu 20.04 LTS does seem to know about Coffee Lake, though. Perhaps not new enough to know about Coffee Lake Refresh, since yours said "R0" for yours, same as "R0" for my Skylake (which is not a "refresh"; there weren't new iterations of CPUs released as Skylake. They moved straight on to Kaby Lake after SKL.)Anyway, your version of
cpuid
does eventually get to a correct and fully accurate description of your CPU, synthesized from various pieces of information.I'm not sure exactly what
cpuid
means by R0. Perhaps "revision 0", which would make sense if it didn't know about "Coffee Lake Refresh". I wonder if a newercpuid
would report R1 or spell out "Refresh"?It is indeed an E-22xx series Xeon of the Coffee Lake family. The CPU cores are basically identical to Skylake, and it's built in a 14nm(++) process. IDK if Intel tweaked anything at all inside the cores between CFL and CFL-refresh, so for programming it you have all the info you need.
Other instances of "R" show up in CPUID output that mean "registered trademark" like in "Intel(R) Xeon(R)" in the brand string
Intel(R) Xeon(R) E-2278G CPU @ 3.40GHz
that Linux pulls directly out of the CPU via the EAX=0017h leaf of the CPUID machine instruction with different ECX inputs. But I think the R0 is probably being used to mean "first iteration" (0th refresh?), since it's not just copying strings like "Xeon(R)".