第2章 运算方法和运算器-3幻灯片.ppt

  1. 1、本文档共92页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机组成原理与系统结构 谬误:只有理论数学家才需要关注浮点数的精度问题。 这种看法是有问题的。这一点可以从1994年11月各大报纸在显要版面刊登的一条消息所引起的广泛关注中看出来。下面我们就来看一看当初究竟是什么事情吸引了人们的视线。 David A.Patterson《计算机组成和设计》 Pentium处理器使用的是标准的浮点除法算法,它在每一步中都会产生多位的商。具体来说,它会根据除数和被除数最高几位的取值情况每次预测出下2位的商来,这和非恢复式除法算法很类似,但具体实现时预测采用了查表的方法。 David A.Patterson《计算机组成和设计》 与80486相比,Pentium芯片中的这个除法查找表减少了5个表项。Intel认为这5项显然是永远都不会被访问到的,因此,有关的可编程逻辑阵列中原来返回值为2的地方都相应地改成了返回0。 David A.Patterson《计算机组成和设计》 但是事实却并非如此,Intel因此而犯了一个大错。实际上,对于有效数位的高11位而言这种优化是正确的,但是,对第12~52位,这种优化有时候会发生错误。 有意思的是,Intel在处理这个问题的过程中的表现颇耐人寻味。 David A.Patterson《计算机组成和设计》 1994年7月:Intel自己就已经发现了Pentium处理器的这个浮点瑕疵。但要解决这个问题需要花费数亿美元的资金和好几个月的时间。因此,Intel决定1995年1月后再将修正后的设计投入生产。这样估计下来,一共将会有3百万~5百万有问题的Pentium芯片流入市场。 1994年9月:美国弗吉尼亚州Lynchburg学院的一位名叫Thomas Nicely的数学教授发现了Pentium芯片的这个问题。他随后拨通了Intel的技术支持电话,但却没有得到正式的说法。于是,Nicely教授将他的发现公布在了因特网上。网上很快就有人对此给与了关注。 更有人进一步指出,虽然这看起来只是一个小问题,但是在绝对值较小的浮点数与绝对值较大的数相乘时,小问题就有可能变成大问题。例如,人群中罹患某种罕见的疾病的机率是很小的,将这个机率与欧洲的人口数相乘,就可以估算出全欧洲这种病人的大概人数,但如果这一乘法是用有问题的Pentium处理器完成的,所得到的结果就会有问题。 1994年11月7日:Electronic Engineering Times在头版刊登了有关的报道,很快,其他报纸也转载了这则消息。 1994年11月22日:Intel发布了一篇新闻稿,称这不过是一个“小问题”,以下是该新闻稿的主要内容: “Pentium芯片只是在第9个有效数字以后才会出错,……但绝大多数工程师和财经分析人员只需要4到5位有效数字就足够了。电子表格以及字处理程序的用户们更不用为此担忧。……全世界可能只有几十个人会因此而受到影响。迄今为止,我们仅仅只听到一位……理论数学家(他在夏季以前就购买了一台Pentium计算机)受到了这个问题的影响。” 最让人感到气愤的是,Intel公司竟然要求顾客们将自己所使用的程序的情况告诉他们,然后,再由他们来判断顾客所使用的程序是否需要使用修改后的不再包含除法错误的新Pentium芯片。 1994年12月5日:Intel公司声称,对于一个普通的使用电子表格程序的用户而言,每27000年才会碰到一次出错的情况。这个数据基于这样一个假设,即每个用户每天做1000次除法运算,然后再将其与Pentium处理器出错的概率相乘(假设所有的浮点数都是随机出现的),所得的结果为900万分之一,也就是说,每900万天(即27000年)才会出一次错。 虽然Intel并没有解释为什么普通的用户所碰到的浮点数就一定是随机出现的,但风波好歹开始慢慢地平息下来。 1994年12月12日:IBM公司的研究部门对Intel公司计算出错概率的办法提出了异议。 IBM认为,一般的电子表格程序每天需要进行15分钟的计算,这样一来,每24天就会发生一次因Pentium处理器的缺陷而造成的错误。IBM的假定与Intel有所不同,首先,他们假设程序每秒钟要做5000次除法,每天15分钟就要进行420万次除法。 此外,IBM认为所访问的浮点数也不是随机分布的,而是每涉及到100万个浮点数就会有一个有可能出问题。这个结果出来以后,IBM决定立即停止发送所有基于Pentium芯片的个人计算机。这对于Intel来说,简直就是风波再起。 1994年12月21日:Intel公布了一则由董事长、首席执行官、首席运营官等高层管理人员共同签署的声明:“Intel公司在处理有关Pentium处理器瑕疵问题之时多有不妥之处,我们为此表示真诚的歉意。 Intel

文档评论(0)

love87421 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档