CPUID:报道的微观建筑似乎模棱两可

发布于 2025-01-26 03:23:32 字数 1214 浏览 6 评论 0 原文

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编程。我想确保根据架构是正确的做法。

Ubuntu 20.04 LTS. Note (unknown type) reported:

$ 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
. . .

So what is this processor? Kaby? Coffee? or Skylake? I ask because I am doing PMU programming. I want to be sure to do the right thing depending on what the architecture is.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

云雾 2025-02-02 03:23:32

这是 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 输出:

 版本信息(1/eax):
 ...家庭/模特/踏脚/...
 (简单合成器)=英特尔核心(未知类型)(Kaby Lake / Coffee Lake){Skylake},14nm
 

猜测这是在说家庭/模型/步进和扩展模型/家庭领域没有区分KBL和CFL(因此是未知类型),但请暗示一个或另一个。 {Skylake} 提醒您KBL和CFL都是Skylake的迭代。

“(未知类型)”可能是说它不知道它是I3/5/7/9还是Pentium还是Celeron。

在我的i7-6700k Skylake桌面上,我明白了。从 CPUID版本20170122 从旧的Arch Linux Aurst安装中,该安装量仍是在发布CPU本身一年以上的一年以上,这可能是比您较旧的版本。

   version information (1/eax):
      processor type  = primary processor (0)
      family          = Intel Pentium Pro/II/III/Celeron/Core/Core 2/Atom, AMD Athlon/Duron, Cyrix M2, VIA C3 (6)
      model           = 0xe (14)
      stepping id     = 0x3 (3)
      extended family = 0x0 (0)
      extended model  = 0x5 (5)
      (simple synth)  = Intel Core i3-6000 / i5-6000 / i7-6000 / Pentium G4000 / Celeron G3900 / Xeon E3-1200 (Skylake), 14nm

是的,(简单的合成器)可能是它能够从那片叶子中的东西而不是品牌字符串中神圣的。

从该工具的最新版本中,版本20220224

   version information (1/eax):
      processor type  = primary processor (0)
      family          = 0x6 (6)
      model           = 0xe (14)
...
      (family synth)  = 0x6 (6)
      (model synth)   = 0x5e (94)
      (simple synth)  = Intel Core (unknown type) (Skylake-H R0) {Skylake}, 14nm
    ...
   (uarch synth) = Intel Skylake {Skylake}, 14nm
   (synth) = Intel Core i*-6000 (Skylake-H R0) {Skylake}, 14nm

因此(未知类型)似乎完全正常i3/5/7。

不过,您的Ubuntu 20.04 LTS中的 CPUID 的版本似乎确实知道咖啡湖。也许还不够新的知识,因为您对您的skylake表示“ R0”,因为您的Skylake(不是 a'''''';没有新的迭代CPU作为Skylake发行

。 。

   (synth) = Intel Xeon E-2200 (Coffee Lake R0) {Skylake}, 14nm

我不确定 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 the msr-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:

 version information (1/eax):
 ... family/model/stepping/...
 (simple synth)  = Intel Core (unknown type) (Kaby Lake / Coffee Lake) {Skylake}, 14nm

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.

   version information (1/eax):
      processor type  = primary processor (0)
      family          = Intel Pentium Pro/II/III/Celeron/Core/Core 2/Atom, AMD Athlon/Duron, Cyrix M2, VIA C3 (6)
      model           = 0xe (14)
      stepping id     = 0x3 (3)
      extended family = 0x0 (0)
      extended model  = 0x5 (5)
      (simple synth)  = Intel Core i3-6000 / i5-6000 / i7-6000 / Pentium G4000 / Celeron G3900 / Xeon E3-1200 (Skylake), 14nm

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,

   version information (1/eax):
      processor type  = primary processor (0)
      family          = 0x6 (6)
      model           = 0xe (14)
...
      (family synth)  = 0x6 (6)
      (model synth)   = 0x5e (94)
      (simple synth)  = Intel Core (unknown type) (Skylake-H R0) {Skylake}, 14nm
    ...
   (uarch synth) = Intel Skylake {Skylake}, 14nm
   (synth) = Intel Core i*-6000 (Skylake-H R0) {Skylake}, 14nm

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.

   (synth) = Intel Xeon E-2200 (Coffee Lake R0) {Skylake}, 14nm

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 newer cpuid 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)".

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文