CPU微码是什么?

gol*_*lem 6 linux boot cpu

今天从我的 Linux /boot 目录解压 initramfs 文件后,我发现它包含 GenuineIntel.bin 文件,该文件是所谓的CPU microcode的映像。

然后我在ArchWikiWikipedia上找到了描述这个主题的文章。现在我不确定我对这个主题的模糊理解是否正确。

谁能用简单的英语解释一下 CPU 微码是什么?

Law*_*ceC 7

在包括 Intel 和 AMD 型号在内的许多现代 CPU 中,有些指令直接在硬件中执行,有些指令是“微编码”的——本质上,这些指令在内部由一系列更小的 CPU 内部指令组成。

我不确定你所说的 CPU 内部“执行”微码的设施是什么,我相信 Intel/AMD CPU 中的微码可能控制微编码指令以外的东西。这是可以更新的东西,但需要在每次重新启动时应用。

无论如何,有时 Intel/AMD 会发布“微码更新”,以纠正某些缺陷或禁用不可靠的指令。因此,通常您希望在真正使用 CPU 之前将最新的微码更新安装在 CPU 上。BIOS 可以作为硬件初始化的一部分来执行此操作,它也可能是 Linux 硬件初始化的一部分。

如果包含它的 BIOS 更新已应用于系统,则 BIOS 只会为 CPU 应用最新的微码更新,因此 BIOS 可能不会为可用的 CPU 应用最新的更新。