现代处理器是一种复杂的设备,也可以存在错误。此外,现代 x86 处理器并非直接执行 x86 指令,而是含有实现 x86 指令集的内部代码。内部代码被称为微码(Microcode)。更新微码可以修正或缓解 CPU 的缺陷(Bug)。
某些 CPU 缺陷可能导致 Firefox 崩溃。例如,Firefox 57 或更高版本在运行旧版微码的 Broadwell-U CPU 上会偶尔崩溃,而新版 Broadwell-U 微码则不会发生。
微码更新可以通过固件(通常称为 BIOS,即使技术上是 UEFI 固件而非旧式 BIOS)或由操作系统加载到 CPU。微码更新在重新启动时不会保留,所以在双或多系统环境下,如果微码更新并非通过 BIOS 提供,则各操作系统都必须提供更新。
在 Mac 上,请在 App Store 应用的“更新”窗格中获取所有 OS X 系统更新和 Apple 固件更新。
为确保 Windows 将更新的微码加载到 CPU,请启用 Windows 更新并将设定为安装更新。
要查看处理器微架构以及正在使用的微码修订版本,请在 Windows 命令提示符中运行命令 reg query HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0
。(您可以使用快捷键 Windows + R 打开“运行”对话框,输入 cmd
,然后按 Enter(回车键)来打开命令提示符)。其中“VendorIdentifier”显示了 CPU 供应商(英特尔为 GenuineIntel,AMD 为 AuthenticAMD)。“Identifier”则提供了系列(Family)、型号(Model)和步进(Stepping)。这些信息有助了解计算机使用的CPU型号,确认问题是否与 CPU 相关。标为“Update Revision”的信息显示了当前对此微架构的微码修订版本,两侧被用零填充。例如 Update Revision REG_BINARY 000000001E000000
表示版本为1E(十六进制)。“Previous Update Revision”表示已从 BIOS 加载的微码修订版本。
如果您的设备为供应商 GenuineIntel、系列 6、型号 61、步进 4,为避免 Firefox 57 或更高版本发生崩溃,微码版本需要为 1A 或更高。
默认有无微码更新取决于 Linux 发行版,并且对 Intel 与 AMD 的 CPU 可能有差异。
- 在基于 Debian 的发行版(包括 Ubuntu)中,英特尔处理器的微码更新由
intel-microcode
包提供,而 AMD 处理器由amd64-microcode
包提供。 - 在 Arch 上,AMD 微码更新默认安装,英特尔微码更新需特殊步骤。
- 在 Fedora 上,默认安装微码更新。
要查看处理器微架构以及正在使用的微码修订版本,请在终端中运行命令 less /proc/cpuinfo
。“vendor_id”为 CPU 供应商,英特尔为GenuineIntel,AMD 为 AuthenticAMD)。“cpu family”、“model”和“stepping”分别为系列、型号和步进。这些信息有助了解计算机使用的CPU型号,确认问题是否与 CPU 相关。标为“microcode”的信息显示了十六进制的微码修订版本(针对特定微架构)。
如果您的设备为供应商 GenuineIntel、系列 6、型号 61、步进 4,为避免 Firefox 57 或更高版本发生崩溃,微码版本需要为 1A 或更高。