Firefox 151.01 修复英特尔 13/14 代 CPU 崩溃顽疾:历时一年,Mozilla 绕过硬件缺陷实现软件级补救

经过长达一年的调查与博弈,Mozilla 终于在 Firefox 151.01 稳定版中修复了一个导致浏览器在搭载 英特尔第 13 代和第 14 代 Raptor Lake CPU 的桌面系统上频繁崩溃的关键错误。这一更新为深受硬件不稳定困扰的用户提供了一剂重要的“软件止痛药”。

Firefox 151.01 修复英特尔 13/14 代 CPU 崩溃顽疾:历时一年,Mozilla 绕过硬件缺陷实现软件级补救插图

崩溃真相:从 zlib-rs 到 CPU 指令缺陷

Mozilla 工程师最初将问题锁定在浏览器的 zlib-rs 压缩例程上。在某些特定情况下,该例程中的距离值计算出现偏差,导致索引越界从而引发崩溃。

然而,深入调查揭示了更深层的原因:这并非单纯的软件 Bug,而是 英特尔 Raptor Lake CPU 的硬件不稳定 所致。具体涉及 RPL050 和 RPL060 等指令,这些指令在特定条件下会导致 CPU 内核读取不正确或过时的数据。

“热浪地图”:工程师如何通过崩溃数据定位硬件缺陷?

Mozilla 高级工程师 Gabriele Svelto 在去年首次标记此问题时,通过数据分析发现了一个令人惊讶的现象:崩溃率与环境温度高度相关。

“如果你有一台英特尔 Raptor Lake 系统并且身处北半球,由于夏季高温,你的机器很可能更频繁地崩溃。我知道这一点,因为我可以通过查看来自 Raptor Lake 系统的 Firefox 崩溃报告的语言环境,直观地看到哪些欧盟国家受到了热浪的影响。”

这一发现佐证了英特尔此前确认的根本原因:长时间暴露在过高电压和热量下导致的物理退化。高温加剧了电压不稳对晶体管的影响,从而诱发错误。

英特尔微码补丁的局限性与 Mozilla 的应对

英特尔此前推出了多个微码补丁(如 0x12c 和 0x12F),旨在缓解导致退化的电压条件。然而:

  • 治标不治本:微码只能预防进一步损坏,无法逆转已发生的物理退化。
  • 效果反复:部分用户反映,即使在更新微码后,崩溃问题仍偶有发生,甚至在 0x12F 版本后有所回潮。

面对硬件厂商的局限性,Mozilla 选择在软件层面进行规避。通过在 Firefox 151.01 中优化相关代码逻辑,绕过触发 CPU 读取错误的指令路径,从而显著提升了浏览器在这些不稳定硬件上的稳定性。

给用户的建议

如果你正在使用搭载 英特尔第 13 代或第 14 代酷睿处理器 的桌面 PC,并遭遇 Firefox 崩溃、游戏闪退或系统不稳定,建议采取以下措施:

  1. 立即更新 Firefox:升级至最新的 151.01 或更高版本,以获得软件层面的稳定性修复。
  2. 更新主板 BIOS/微码:确保你的主板 BIOS 已更新至最新版本,以应用英特尔最新的电压管理微码(如 0x12B/0x12C/0x12F 等),从硬件底层缓解风险。
  3. 改善散热:鉴于高温会加剧问题,确保机箱风道良好,CPU 散热器工作正常,避免长时间高负载运行导致过热。
  4. 关注保修政策:英特尔已为受影响的处理器延长保修期,若怀疑 CPU 已发生不可逆物理损坏,可联系官方售后进行检测。