标题: VB6.0中的“取消 Pentium(tm) FDIV 安全性检查”
作者: Demon
链接: https://demon.tw/copy-paste/vb-pentiumtm-fdiv.html
版权: 本博客的所有文章,都遵守“署名-非商业性使用-相同方式共享 2.5 中国大陆”协议条款。
最近比尔盖子在用VB6.0编写一个小型程序。在高级编译优化选项中,有一项:“取消 Pentium(tm) FDIV 安全性检查”,这是什么意思呢?在查阅了资料以后,终于明白了,我们就来了解一下吧。
1994年10月,美国弗吉尼亚州Lynchburg College数学系教授Thomas Nicely发现用电脑处理长除法时一直出错。他用一个数字去除以824,633,702,441时,答案一直是错误的。事后才知道,这位教授使用的 60-100MHz P5版本奔腾处理器在浮点运算单元有一个问题,原因是英特尔为了加速运算,将整个乘法表烧录在处理器上面,但是2048个乘法数字中,有5个输入错误。在极少数情况下,会导致除法运算的精确度降低甚至出错。这就是后来臭名昭著的Pentium FDIV bug。
因此,为了避免由于处理器bug导致的运算错误,很多编译器都增加了一个编译选项,可以让程序通过间接运算的方法绕过这个FDIV bug,避免在有 FDIV bug的奔腾处理器上运算错误。但是,由于如今几乎已经不可能有人使用这种老奔腾处理器了,因此可以在VB6.0或其它的编译器中(如果有的话),安全的 “取消 Pentium(tm) FDIV 安全性检查”,可以轻微提高性能,同时不会导致任何异常。
最后送上十几年前的那个笑话:英特尔有新格言了
United We Stand, Divided We Fall.
注:这句话原出自《伊索寓言》,翻译过来即是
合即立,分即跨。
但是Divided在这里是“除法”的意思。于是就有了翻译过来大概是
加法我们对了,除法我们错了。
原文链接:http://biergaizi.info/archives/2012/03/1300.html
赞赏微信赞赏支付宝赞赏
随机文章:
不遵守 CC 协议也就罢了。然而您确实挂上了 CC 协议声明,却把作者和链接换成自己,可是更恶劣的行为啊 ^_^.
我知道这个版权信息可能是自动生成的,但是转载文章时版权就变成自己这个严重的问题,建议您修改一下末班或直接额外注明在文章中。
仔细看了看,确实有原文链接,但开头的版权声明真明显……