1993年,CPU 巨头Intel推出了Pentium处理器。

新的品牌顺利地摆脱了AMD等公司对286,386,486等数字系列的品牌“抄袭”,树立了全新的领先者的形象。

再加上90年代初斥巨资成功推进的Intel Inside计划, Intel 成功地从一家主要向电脑制造商供货的公司,转变成一家直接面向消费者的品牌。

不知道哪位天才把Pentium翻译成霸气的“奔腾”,真是惊艳全场的神来之笔。

新产品,新品牌,Intel 可谓意气风发,准备一统天下。

但谁也没想到的是,这个被寄予厚望的CPU内部居然隐藏着一个Bug!

1

Bug被发现的过程也颇为传奇,我们得从数学上的一个概念说起。

早在希腊时代,欧几里得就已经证明质数有无穷多个,并且数字越大,质数分布得越稀疏。

神奇的是,尽管分布得很稀疏,但只要出现一个质数,就可以在附近找到另外一个, 例如41 和 43、101 和 103、10007 和 10009,他们之间相差都是2。

数学家给这些相差为2的连续质数起了一个名称:孪生质数。

1919年,挪威数学家 Viggo Brun证明了一件有趣的事情,就算有无穷多的孪生质数,它们倒数的和会收敛于一个常数,这个常数被称为“布朗常数”。

但是让数学家头疼的是:他们不知道这个布朗常数是不是无理数。

随着计算机的出现,有些人就想到一个招数:用计算机强大的算力,暴力求解。

美国 Lynchburg College 的数学教授Thomas Nicely就是其中的一员,他的实验室恰巧装备了新的奔腾计算机。

严谨的Nicely为了防止算错,用了两种算法做双保险,如果答案不同,肯定是某个地方出了问题。

Nicely满怀希望地开始了计算,可是结果让他失望:两种算法的结果真的不一样!

深入研究以后,Nicely发现:824 633 702 441和824 633  702 443这两个孪生质数,它们的倒数的小数点后的第10位被算错了!

Nicely换了一台老旧的486电脑来计算,答案算对了。

他再用奔腾电脑来重新计算,错误重现。

到底是自己的程序写错了?还是电脑的问题?

Nicely开始做排除法,排除自己代码的错误,Borland编译器的错误,芯片组的错误,花了整整4个月的时间,终于找到了Bug的起源地:奔腾CPU。

2

1994年10月24号,Nicely打电话给Intel的技术支持部门,告知他们这个问题,Intel说几天内就会有回复,但是从此杳无音信。

原因很简单,Intel早在1994年6月就知道了这个问题:浮点除法运算(FDIV)出错。

奔腾CPU的FDIV引入了一种全新的、快速的实现方法,使用了一个2048项的硬件查找表,但是由于意外,有5个值没有被正确地设置,他们本应该是2,但是却设置成了0。

这个Bug只有在高精度计算的时候才会被触发,普通用户很难碰到,Byte杂志估计,出错的概率是90亿分之一。

既然影响不大,Intel的选择是:隐瞒,悄悄修复,不公布任何细节。

毕竟已经售出几百万片CPU了,大规模召回损失太大。

又不是不能用!

3

收不到回音的Nicely很不爽,10月30号,他开始给一些IT著名人士和杂志发邮件,包括Byte杂志,PC Week,InfoWorld,PC Magazine。

这件事情很快在网络上发酵,一大批牛人开始了问题定位的接力赛:

第一棒选手是上面提到的Nicely。

第二棒则是挪威的Terje Mathis,他很快确认了Nicely的问题,并且写了一个简单的汇编测试程序,发到了comp.sys.intel新闻组中(没错,那时候别说社交网络了,就连BBS还不流行)

第三棒是德国的Andreas Kaiser ,他找到了24个数字,它们的倒数在奔腾CPU只能得到单精度的结果。

第四棒是一位设计FPU(floating-point-unit)的专业人士,加州Vitesse半导体设计师Tim Coe。

他根据24个数字的线索,推测出奔腾CPU采用了基数为 4 的 SRT 算法,每个时钟周期可以生成两位的商,使得速度比原来快两倍。

事实也确实如此,内部专业人士的确厉害。

到了第五棒,一个超级大牛出现了,MATLAB之父:Cleve Moler

Moler总结了之前的数据,找到了Bug的规律。

可见犯了错误以后,想捂是捂不住的,你越想捂,这世界上越有人要把你扒个底朝天。

但是到目前为止,Intel奔腾这个硬件Bug还主要在科技圈中转悠,破圈还需要等待一个重要时刻。

4

1994年11月24号,JPL(喷气推进实验室,钱学森是重要创始人)有两名工程师得知了这个Bug,建议实验室停购奔腾电脑。

CNN的记者史蒂夫·杨听说了JPL的事情,嗅觉灵敏的他立刻联系Moler,进行采访,当天晚上JPL的新闻和Moler的采访就在电视台播放,纽约时报、波士顿环球报等大肆报道,文章铺天盖地而来。

奔腾CPU这个本来很难出现的Bug一下子成为街头巷尾的热议话题。

在媒体的重压之下,Intel终于承认了浮点计算的漏洞,但依然嘴硬,它声称并不严重,并且只给那些能证明自己受到影响的用户更换CPU。

这种想蒙混过关的处理态度引发众怒,动摇了消费者对Intel CPU的信心。

其他厂商也顺时而动,IBM暂停销售装有Intel CPU的个人电脑,导致Intel股票大幅下跌。

1994年12月,撑不住的Intel终于宣布:召回所有有缺陷的处理器。

这也是历史上第一次全面召回计算机芯片。

Intel为此付出的代价是:4.75亿美元,名誉的损失更是难以估量。

5

故事到此并没有结束。

照理说硬件出了问题,无法修改,只能替换。

但是不要忘了我们刚提到的那一群天才,MATLAB之父Cleve Moler ,Tim Coe,阿贡国家实验室的 Peter Tang 以及来英特尔的几位工程师,他们通力合作,在12月5号居然开发出了一个非常巧妙的软件修复办法。

细节这里就不赘述了,大概是:在特定情况下,将被除数和除数都乘以15/16,就可以进入安全状态。

这个修复办法被发到新闻组中,让所有人免费使用。

精明的Cleve Moler让公司发布了一个可以检测和纠正除法错误的MATLAB版本,并且立刻发了一个新闻稿《MathWorks修复了Intel奔腾浮点数Bug》。

就在奔腾的Bug闹得沸沸扬扬,全国皆知的时候,新闻稿出现在了美国各大媒体的传真机上。

Cleve Moler成功地实施了一次完美营销,这一年,他的公司MathWorks只是一家不到250人的小公司,随后便走上了快车道,成为这一领域的巨头。

参考资料

https://dl.acm.org/doi/pdf/10.1145/3386331《A History of MATLAB》

https://buzzorange.com/techorange/2019/11/08/intel-pentium-bug/

https://faculty.lynchburg.edu/~nicely/pentbug/pentbug.html

https://en.wikipedia.org/wiki/Pentium

https://en.wikipedia.org/wiki/Pentium_FDIV_bug

https://en.wikipedia.org/wiki/Intel#Intel_Inside

福 利 时 间 到 !

5本飞哥的《深入理解 Linux 网络》, 免费包邮!

飞哥2010年硕士毕业于西北大学计算机学院,有十多年的大型互联网公司项目经验,目前就职于腾讯。

飞哥喜欢对技术进行深度思考,善于挖掘技术点背后的原理,这本书从内核和源码层面把网络给扒了底朝天,非常硬核,掌握了这些知识,无论是面试还是实际工作的网络问题,都可以轻松面对。

点击下方小程序卡片即可抽奖,中奖后务必要记着填写邮寄地址!

一道数学题,让芯片巨头亏了5亿美金!相关推荐

  1. 深度解读3D打印巨头Stratasys为何1亿美金收购Grabcad

    [编者按]本文的作者是微小网联合创始人兼执行主编姚应标,其曾为多家3D打印企业提供营销咨询服务. "创立四年的CAD设计师社区Grabcad被3D打印巨头Stratasys以1亿美元的价格收 ...

  2. 干了一年“元宇宙”,Meta亏了300亿美金

    来源:青投创新 编辑:Leon " Facebook更名成Mate:从社交媒体转型为"元宇宙",但前景并不乐观. 一年前,Meta在元宇宙上高歌猛进.该公司刚刚完成了从F ...

  3. 比尔盖茨聘请投资高手,26年亏掉4300亿美金!

    大年初五,聊聊挣钱的话题,先从比尔盖茨的故事说起: 2020年末,比尔盖茨身价1072亿美金,创了历史新高.其中,他名下微软3%的股票市值300亿,也就是说772亿是靠投资理财赚来的. 这要从1994 ...

  4. GTC2018八大热点:发布多项黑科技,联合芯片巨头ARM打造AI芯片专用IP

    来源:人工智能和大数据丨公众号 一年一度的GTC至今已经迎来了第十个年头,虽然它每年或多或少的给网友一些"失望",但它也终究是代表着GPU行业的高水平技术大会.那么,今年的GTC大 ...

  5. 芯片巨头为何痴恋开源软件?英特尔Imad Sousou来解密

    芯片巨头为何痴恋开源软件?英特尔Imad Sousou来解密 发表于19小时前| 1001次阅读| 来源CSDN| 12 条评论| 作者董世晓 英特尔开源OpenStackImad Sousou wi ...

  6. 英伟达联合芯片巨头ARM打造IOT设备的AI芯片

    今年的GTC 2018比较神奇,最为重磅的消息选择了在提前秘密发布,而不是在GTC Keynote现场--英伟达重磅宣布,将联合芯片巨头ARM打造IOT设备的AI芯片专用IP,这款机器学习IP集成到A ...

  7. 芯片巨头英特尔放弃竞争迷你计算机市场

    英特尔曾希望通过Galileo与基于ARM架构的树莓派进行正面竞争,而Edison则是一套完整的开发者套件,并且体积非常小巧,只有SD卡大小. 腾讯数码讯(Bear)快跟英特尔的Edison.Joul ...

  8. 芯片巨头们2019年的AI芯片之争会如何?

    导语:本文分析了目前AI芯片市场的情况,以及NVIDIA在这一市场的领先地位.不过,随着芯片巨头在AI芯片领域有了新的进展,NVIDIA将会面临更多的挑战,2019年AI芯片市场会如何? 作者将会分三 ...

  9. 存储器芯片巨头动态观察:三星、美光、SK海力士都在做什么?

    近年来我国一直在大力发展半导体产业,而存储器芯片是其中最热门的重点关注领域之一.作为集成电路的三大品类之一,存储器芯片广泛应用于内存.消费电子.智能终端和固态存储硬盘等领域.对电子产品而言,存储器芯片 ...

最新文章

  1. PyTorch 笔记(12)— Tensor 持久化、向量化、torch.set_num_threads、torch.set_printoptions
  2. 全面支持三大主流环境 |百度PaddlePaddle新增Windows环境支持
  3. 【攻防世界014】tt3441810
  4. 编程之美系列之一——阶乘的运算
  5. Eclipse 工作目录被破坏,导致Eclipse 打不开
  6. “数据门”事件频发 如何避免人为因素导致数据泄露?
  7. Flexible 弹性盒子模型之CSS justify-content 属性
  8. 论文浅尝 | 基于动态记忆的原型网络进行元学习以实现少样本事件探测
  9. 远程桌面服务器office版本,在启用远程桌面服务的计算机上部署 Office 2010
  10. 在装有raid卡的服务器上安装Ubuntu
  11. 网易云深度学习第一课第一周编程作业
  12. kali linux切换更新源_KALI更新源2020版(永久实用)
  13. 7-1 输入学生姓名,输出问候信息。
  14. elastic集群单节点停机维护
  15. [Ext JS 4]性能优化
  16. 普通人在互联网还有机会么?
  17. 最齐全的射灯ies光域网素材,速来收藏
  18. SpringBoot2.6.5整合CXF框架
  19. 数据库系统原理与应用教程(081)—— MySQL 视图(View)的创建与使用
  20. android仿微信图片选择预览裁剪,仿微信图片选择

热门文章

  1. Andorid-15k+的面试题。
  2. 区块链改变18大行业,BAT等巨头早已布局
  3. 01.JS基础_前端的语法(4)
  4. hadoop SWAP交换空间
  5. 详解Object.create(null)(转载自https://juejin.cn/post/6844903589815517192)
  6. android 无法后台运行,安卓模拟器无法后台?
  7. 用python :输入 20 个整数,统计其中正数、负数和零的个数
  8. Ubuntu 4.10 (Warty Warthog,长疣的疣猪)
  9. vba html 转化为 xlsx,使用VBA批量转换Excel格式,由.xls转换成.xlsx
  10. su - xxx Could not create session 无法su切换用户