什么是处理器的勘误表 Errata?

最近Intel被曝出最新的第六代酷睿处理器存在Prime95下的bug,开始还以为是什么大问题,后来了解了Errata,其实没什么!具体可下载Intel的官方文档。以下是Intel在2007年发表的博客文章,转载过来以供学习。

最近大家可能从不同的网站看到一些有关英特尔酷睿2处理器errata的报道,给不少用户造成了疑惑或者惊慌,我可以告诉大家,大家其实可以大放宽心继续购买和使用酷睿2处理器。 为什么呢?请听我慢慢道来。 什么是errata ? 从英文的字面意思翻译过来就是勘误表,这个词汇来源于出版印刷业,一本书刊印出版,但是发现一些错排、错字或错别字,一般的做法就是附上一张勘误表。其实,这是一种负责任的表现。如果再版和修订,就会将已发现的问题解决掉。 那么处理器的errata是指什么意思呢?就是处理器设计完成后,在测试,验证和使用过程中发现的一些出现几率非常非常小——只有在按照特定的执行顺序,执行一系列特定的操作,才会出现的影响处理器某个特定功能不能正常工作的错误——而且这样的错误即使发生,对实际应用的影响也是微乎其微的。熟悉软件开发的人也都知道程序中的微小错误叫bug(臭虫),如果是程序中的重大错误就不能叫bug了,应该叫设计缺陷。类比于程序中的bug,芯片和处理器的这些微小错误,我们称之为errata。 看到这里,大家也许会说,厂商为什么不能提供没有任何bug的软件和没有任何errata的芯片和处理呢?世界上没有这样的产品。 就像著名哲人说的话一样:如果不会犯错误,人类就不能进步;如果不能发现错误,人类同样不能进步;如果发现错误但不认可错误,人类一样不能进步,因为你没有机会去真正的面对错误、避免和修正错误。 任何软件都有bug,任何芯片(包括处理器)都有errata。厂商要尽量杜绝的是产品中的出现的重大设计缺陷,以处理器为例,融合在设计过程中的繁复测试和验证,以及对样品和试产样品的大量测试验证,目标是发现全部的重大设计缺陷,以及绝大多数errata。对于重大设计缺陷,当然是必须修正。errata有别于重大设计缺陷,厂商要分析的是errata 出现的几率和对产品本身功能性影响的程度,然后分优先级在不同的版本中依次解决它们,有的甚至不加以解决。例如,如果一个errata 只是有一万亿次分一的几率会造成处理器的运行速度降低1%。 芯片和处理器errata 是业界共知的,都是技术层面的东西,大家都有约定俗成的解决办法。一般用户也没有兴趣想知道,即使有好奇心,想知道也可以从英特尔定期公布的处理器errata 白皮书中看到。这些errata有的是英特尔公司在处理器的测试和验证中自己发现的,有的是业界公司和人士在测试和验证发现的。 本着担负企业责任的宗旨,英特尔会定期发布已知的errata,而且有很长的历史了。另外,从1994年开始,英特尔除了继续和其他软硬件厂商共同解决errata,还为解决errata 提供了另外一个途径,就是以软件的方法升级处理器的MicroCode(微代码),一般BIOS都可以存放好几个不同型号处理器家族的修订微代码。所以,大家看到较为常见的做法就是通过升级BIOS 的方法解决处理器errata的问题。 回到我的博文的起始,关于近期被反复报道的“一些型号的酷睿™ 微体系结构处理器存在问题,并详细阐述了它们与操作系统之间产生的交互影响”。报道中出现的是errata,不是所谓的“重大安全问题”。这个errata是英特尔公司在为处理器作高负载极端耐力测试中发现的,出现概率微乎其微的小问题。即使如此,这个问题只会出现在早期的酷睿2处理器(去年夏天销售的产品),并且通过BIOS的升级就可以完全避免这个问题。 为了使大家更容易理解这类errata 对绝大数用户意味着什么,我打个比方。如果一辆小轿车设计的最高时速是300公里。假如这辆车的里程表只有在下面这些情况下才会出现1公里的误差(出现errata):超载1000公斤,坑坑洼洼、弯弯曲曲的道路上连续行驶1000小时同时保持 300公里的最高时速度,然后按照下面的操作顺序操控汽车并重复1000次:坡起,从1档加速到5档,空档溜车,刹车,原地左转3圈,再右转3圈。 大家一看就知道,上述情况在现实中发生的概率微乎其微,因为它的前提条件太苛刻,即使发生了,其危害也微乎其微。类比于这样的情况,很多errata就是这样的。 https://blogs.intel.com/china/2007/07/06/\_errata\_bug/

0%