From: MX%"rms@pharlap.com" 27-DEC-1994 11:57:32.41 To: MX%"nicely@acavax.lynchburg.edu" CC: Subj: FYI Date: Tue, 27 Dec 94 11:57:01 EST From: rms@pharlap.com (Richard M. Smith) Message-ID: <9412271657.AA17103@pharlap.pharlap.com> To: nicely@acavax.lynchburg.edu Subject: FYI Dr. Nicely, We have never met, but I thought that you might find the attached message interesting. Yours truly, Richard Smith Richard M. Smith (rms@pharlap.com) Dec. 27, 1994 President, Phar Lap Software, Inc. Cambridge, Mass. ============================================================= How Dr. Nicely's Pentium FDIV bug report reached the Internet ============================================================= The general impression of how Dr. Nicely's discover of the Pentium FDIV bug made it to the Internet is a bit hazy. I have put together this narrative that describes what happened from October 30 to November 3 to clear things up. I hope that people find it interesting. Dr. Nicely's now famous message that first described the Pentium FDIV bug is dated Oct. 30, 1994. One of the first people Dr. Nicely sent the message to was Andrew Schulman. Andrew received the message on Oct. 30 via Email. Andrew is the author of the book "Unauthorized Windows 95" and coauthor of the books "Undocumented Windows" and "Undocumented DOS". The 2nd edition of "Undocumented DOS" has a brief "Undocumented Pentium" section, and in the "Undocumented Corner" column he edits in Dr. Dobb's Journal, Andrew has solicited information from readers on undocumented aspects of the Pentium, such as the infamous Appendix H. Andrew publishes his Email address in his books and he periodically gets tips from readers about interesting hardware and software issues. These tips sometime get turned into magazine articles and chapters in his books. Dr. Nicely's message was one such tip. On November 1, Andrew sent me (Richard Smith) a copy of Dr. Nicely's message via Email. He asked me if I knew anything about the bug. Andrew was looking for someone to run the test because he doesn't own a Pentium system himself. Also he knew that Phar Lap would be interested in knowing about the bug since many of our DOS-Extender customers write just the sort of number-crunching applications that would be most affected by the FDIV bug. At Phar Lap we quickly confirmed the bug with the Windows calculator and a short C test program. Realizing the significance of the bug, I immediately Emailed Dr. Nicely's message to Intel, a number of compiler companies (Microsoft, Metaware, Watcom, etc.) and a few important Phar Lap customers. Later in the day, I also posted Dr. Nicely's message to the Canopus forum of Compuserve with a short note asking people to run Dr. Nicely's test and report back their results. My goal was to see how widespread the bug was. Within about 24 hours I got about 10 confirmations of the bug on a variety of Pentium systems. To my knowledge, my post on the Canopus forum was the first public disclosure of Dr. Nicely's discovery of the Pentium FDIV bug. Alex Wolfe, a reporter for Electronic Engineering Times magazine, saw my post of Dr. Nicely's message on the Canopus forum and also realized the significance of the bug. He immediately started doing research for an article on the bug for EE Times. His article ran on the front page of the November 7th issue of EE Times. Alex's article was the first magazine article to report the FDIV bug. As part of his research for his article, Alex Emailed a description of the FDIV bug to Terje Mathisen of Hydro Data in Norway on November 2nd. (Terje had early posted a message in the comp.sys.intel newsgroup about Pentium transcendental instructions.) Terje also quickly confirmed the FDIV bug and then posted his findings on the comp.sys.intel newsgroup of the Internet on November 3rd. Terje's message started the extensive discussions in the comp.sys.intel newsgroup about the FDIV bug. These discussions became a integral part of the Pentium story. Attached to this message are the various Emails and message posts which show how Dr. Nicely's message traveled through Cyberspace to the comp.sys.intel newsgroup. My comments are marked by my initials, RMS. ======== Oct. 30 - Dr. Nicely's Email to Andrew Schulman =============== 2351 S0/CompuServe Mail [MAIL] 30-Oct-94 15:25 EST Sb: Pentium FPU Bug Fm: INTERNET:nicely@ACAVAX.LYNCHBURG.EDU Sender: nicely@acavax.lynchburg.edu Received: from ACAVAX.LYNCHBURG.EDU by arl-img-2.compuserve.com (8.6.4/5.940406sam) id PAA15607; Sun, 30 Oct 1994 15:21:00 -0500 From:Received: by ACAVAX.LYNCHBURG.EDU (MX V4.0 VAX) id 29; Sun, 30 Oct 1994 15:20:50 EST Date: Sun, 30 Oct 1994 15:20:49 EST To: 76320.302@COMPUSERVE.COM [[RMS: Andrew Schulman]] Message-ID: <00986B92.4921C4D0.29@ACAVAX.LYNCHBURG.EDU> Subject: Pentium FPU Bug FROM: Dr. Thomas R. Nicely Professor of Mathematics Lynchburg College 1501 Lakeside Drive Lynchburg, Virginia 24501-3199 Phone: 804-522-8374 Fax: 804-522-8499 Internet: nicely@acavax.lynchburg.edu TO: Whom it may concern RE: Bug in the Pentium FPU DATE: 30 October 1994 It appears that there is a bug in the floating point unit (numeric coprocessor) of many, and perhaps all, Pentium processors. [[RMS: The rest of Dr. Nicely's message follows]] ======= Nov. 1 - Andrew Schulman's Email to Richard Smith ============== From uunet!compuserve.com!76320.302 Tue Nov 1 09:44:32 1994 Date: 01 Nov 94 09:27:48 EST From: Andrew Schulman To: Subject: Bug in Pentium? Status: RO Richard, Have you heard anything about this? Andrew --- Forwarded Message --- #: 2351 S0/CompuServe Mail [MAIL] 30-Oct-94 15:25 EST Sb: Pentium FPU Bug Fm: INTERNET:nicely@ACAVAX.LYNCHBURG.EDU [[RMS: The rest of Dr. Nicely's message follows]] ======= Nov. 1 - Richard Smith's post to the Canopus froum on CIS ====== 263767 S1/General Information 01-Nov-94 22:40:54 Sb: Bug in Pentium Chip?!?!? Fm: Richard Smith [Phar Lap] 75070,2253 To: All A friend of mine sent the attached message to me today. It seems that a Dr. Nicely at Lynchburg College has apparently found a bug in the Pentium floating point unit. The message provides the details. For certain values, it appears the Pentium processor gets the wrong answer for the floating point divide operation. The interesting thing is that the problem can be easily duplicated by running the Windows calculator. I was wondering if folks reading this message could try duplicating the problem on any Pentium systems that they own and post the results here on Canopus. Please provide details of the machine configuration that you are running on. A few people that I know have already have gotten the same incorrect results as Dr. Nicely. Richard Smith [[RMS: Dr. Nicely's message follows]] ======= Nov. 2 - Alex Wolfe's Email to Terje Mathisen ================== Date: Wed, 2 Nov 1994 19:52:39 GMT From: "AWOLFE@DELPHI.COM" Message-Id: <199411021952.TAA12343@news.delphi.com> To: Terje.Mathisen@hda.hydro.com Subject: Re: Pentium fails x87 test Newsgroups: comp.sys.intel References: <38o0uc$42h@styx.uwa.edu.au> <3903d7$s4i@vkhdsu01.hda.hydro.com> Reply-To: AWOLFE@delphi.com Mr. Mathisen: I'm a reporter for Electronic Engineering Times. I'm doing a storing on floating-point and transcendental-function performance in Pentium. Can I quote your post (below)? Also, do you have any comments you'd like to add? Thanks. P.S. It's interested this thread [[RMS: the thread is about differences in the 486/Pentium FPUs, not about the FDIV bug]] should come up on comp.sys.intel this week. On the Canopus forum in Compuserve, someone yesterday posted a message saying that evaluating the expression: (1/824633702441) * 824633702441 on a 486 machine yields 1. But on a Pentium, he claims, the result is 0.99999999627470902. (the evaluation was done using the calculator in the Windows accessories group, in scientific mode. Any comments? thanks again for any assistance you can provide! Regards, Alex Wolfe EETimes Manhasset, NY 516-562-7204 awolfe@delphi.com ======= Nov. 3 - Terje Mathisen post to the comp.sys.intel ============= Article: 21673 of comp.sys.intel From: Terje.Mathisen@hda.hydro.com (Terje Mathisen) Newsgroups: comp.sys.intel Subject: Glaring FDIV bug in Pentium! Date: 3 Nov 1994 09:02:09 GMT After my post yesterday about how Intel improved the precision of trancendental functions on the Pentium, I got an interesting email from Alex Wolfe, who works for EETimes. It seems someone reported on Compuserve that the Windows calculator gave wrong results when used on a Pentium machine, but correct on a 486! I wrote a tiny test program, p87.pas, in Borland Pascal, using Extended real precision (80 bit) for all fp operations to verify this. It looks to me like the Pentium, both the 60 and the 90MHz models, only carry fp divisions to single precision. The tested expression is (1/824633702441)*824633702441: Pentium (60 & 90) 8.24633702441000E+0011 = 4026BFFFFFB829000000 824633702441 1.00000000000000E+0000 = 3FFF8000000000000000 1 1.21265962489116E-0012 = 3FD7AAAAAADFDB8E4CCB 1/824... 9.99999996274710E-0001 = 3FFEFFFFFFF000000001 (1/824..)*824... 486DX 8.24633702441000E+0011 = 4026BFFFFFB829000000 1.00000000000000E+0000 = 3FFF8000000000000000 1.21265962940867E-0012 = 3FD7AAAAAAEA8638FB73 1.00000000000000E+0000 = 3FFF8000000000000000 Since the program is so tiny, I'll include it here (source and exe), so you can verify if/that the bug exists in all your Pentium PCs. I've reported these results directly to Intel and Compaq as well. -Terje Mathisen (include std disclaimer) "almost all programming can be viewed as an exercise in caching" ======= Nov. 7 - Alex Wolfe's article in EE Times ====================== FROM ELECTRONIC ENGINEERING TIMES, November 7, 1994. page 1 Copyright 1994, CMP Publications Inc. All Rights Reserved By Alexander Wolfe Santa Clara, Calif. -- To correct an anomaly that caused inaccurate results on some high-precision calculations, Intel Corp. last week confirmed that it had updated the floating-point unit in the Pentium microprocessor. [[RMS ...]] The issue came to light last week in a message, on Compuserve's ``Canopus'' forum, which was a reposting of a private e-mail communication from Lynchburg College (Lynchburg, Va.) mathematics professor Thomas Nicely. [[RMS The rest of Alex's article follows]]