如何找出 AMD CPU 的最新可用微码版本?

如何找出 AMD CPU 的最新可用微码版本?

对于英特尔来说,有以下信息微代码更新指南.pdf发行公告,我找不到有关 AMD CPU 微码更新的类似信息。

它在任何地方都可以使用吗?

答案1

我能找到最接近的东西是这个针对 Intel、VIA 和 AMD 处理器的社区运行的微代码存储库:https://github.com/platomav/CPUMicrocodes/

AMD 微码列表(带有版本号)如下: https://github.com/platomav/CPUMicrocodes/tree/master/AMD

文件名的解释在第一个链接中。简而言之,它包含:

  • CPUID
  • 修订(微码更新修订计数器)
  • 日期(公开发布日期)
  • 校验和

答案2

@david 的回答很有帮助。不过我花了很多时间才弄清楚。

因此,我找不到在 Linux 或 Windows 上获取正确 CPUID 的方法。最后,我查找了http://instlatx64.atw.hu/(在MC Extractor 自述文件) 并发现 Ryzen 3600 有 ID 00870F10

我可以从 BIOS 中看到当前的微码,,,,(在dmesgWindows上dmidecode/proc/cpuinfocpuid信息CPUz也显示了这一点)。对我来说是这样的8701030(主板有 AGESA 1.2.0.B,而 zenbleed 修复应该在 1.2.0.C,请参阅AMD 公告)。

然后在CPU微代码根据 CPUID,我看到 repo 中还有一个较新的08701033微代码,希望它包含 zenbleed 修复程序。

更新,我知道如何查看此 CPUID,输出为cpuid -r。对于我的 CPU,这是eax和。对于其他 CPU0x00000001来说0x80000001可能应该也一样。

在此处输入图片描述

如何加载它?这超出了范围,但基本上你将原始微码打包成一个内核可以理解的文件,然后将其合并到(或替换)原始微码文件中,就我的情况而言/usr/lib/firmware/amd-ucode/microcode_amd_fam17h.bin

为此,您可以使用两个工具 -amd-ucodegenucode 信息

我写了一篇博客来讲述整个事情: https://rboci.blogspot.com/2024/04/zenbleed-microcode-update-on-amd-ryzen.html

总而言之,我执行此练习的特定原因是不值得的,因为一个简单的测试实际上显示多线程性能结果略有下降,而单线程只有微不足道的改善。

但这通常是在 Linux 上查找和部署较新的 AMD 微码的方法。

相关内容