Hacker News 中文摘要

RSS订阅

几个CPU硬件漏洞 -- A few CPU hardware bugs

文章摘要

文章讨论了几个CPU硬件漏洞,包括英特尔CPU中CPUID指令返回错误拼写字符串的问题,以及其他厂商CPU中一些设计缺陷。作者指出这些漏洞鲜为人知但值得关注,并提供了相关证据链接。

文章总结

几个值得关注的CPU硬件缺陷

本文作者受到Catherine(Whitequark)关于劣质固件的观察启发,分享了在厂商CPU中发现的一些设计缺陷案例,其中有些问题无伤大雅,有些则严重得令人意外。

一、英特尔拼写错误的CPUID信息 1. "GenuineIotel"事件 某些至强处理器(如E3-1231 v3)错误地将制造商ID显示为"GenuineIotel"而非正确的"GenuineIntel"。该错误可能源于比特位翻转('n'和'o'的ASCII码仅差1位),现已被维基百科收录为知名案例。

  1. "ore i5"事件 酷睿i5-1245U处理器在品牌字符串中遗漏了"C"字母,显示为"Intel(R) ore(TM) i5"。该错误在戴尔Latitude 5430笔记本的Ubuntu认证配置中得到证实。考虑到AMD处理器通常由固件设置CPU名称,这个错误可能源自英特尔微代码或厂商固件包。

二、ITE处理器的流水线缺陷 台湾芯片公司ITE的IT81202嵌入式控制器(采用RISC-V架构)存在硬件级缺陷:在乘法指令(mul)后立即修改某些寄存器的操作可能失效。解决方案包括: 1. 禁用乘法/除法指令支持 2. 通过插入空操作指令的变通方案恢复部分性能 (开发者已在Zephyr项目中提交相关补丁)

作者指出,相比英特尔的拼写错误,这个涉及嵌入式系统的流水线缺陷更可理解——毕竟RISC-V在当时尚属新兴架构,且该处理器应用场景有限。这个案例更多是作为技术警示,而非指责厂商的理由。

注:本文案例均附有原始技术文档和社区讨论链接作为佐证。

评论总结

以下是评论内容的总结:

  1. 关于硬件缺陷的讨论

    • 有观点认为IT81202 CPU的微码错误可能与逻辑合成过程中的缺陷有关(评论2:"bug in the logic synthesis process?")
    • 用户提到Rockchip RTC的日历错误案例(评论3:"November had 31 days")
  2. GenuineIotel拼写错误的可能原因

    • 可能是硬件位翻转导致(评论4:"differ by only one bit")
    • 也可能是键盘输入错误(评论4:"fat-fingered 'GenuineIontel'")
  3. 历史CPU缺陷案例

    • 提到AMD CPU可解锁额外核心的特性(评论5:"unlockable extra cores")
    • 早期386处理器存在类似问题(评论5:"early 386s were extremely buggy")
  4. 关于乘法指令错误的讨论

    • 有用户认为该错误暴露了测试不足(评论7:"done very little testing")
    • 解决方案是添加空操作指令而非禁用乘法(评论6:"put two instructions after the mul";评论8:"compilers can do this")
  5. 其他有趣观点

    • 有人调侃Iotel商标问题(评论9:"Will someone register the Iotel trademark")
    • 用户分享遇到过的CPU启动问题(评论10:"prevented Linux from booting")
  6. 相关链接

    • 提供了Linux内核补丁和微软技术博客的参考链接(评论3、5)
    • 包含一个娱乐性技术链接(评论11)

注:所有评论均未显示评分(None),主要围绕硬件缺陷、测试不足和历史案例展开讨论。