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]]