英特尔|一道数学题,让芯片巨头,亏了5亿美金( 二 )



这件事情很快在网络上发酵 , 一大批牛人开始了问题定位的接力赛:
第一棒选手是上面提到的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还主要在科技圈中转悠 , 破圈还需要等待一个重要时刻 。
41994年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人的小公司 , 随后便走上了快车道 , 成为这一领域的巨头 。