In my previous blog post I reprinted the Cleve's Corner article from the 1995 issues of MATLAB News and Notes and SIAM News about the Pentium division bug. In today's post I would like to describe some of the effects that affair had on the emerging Internet, the MathWorks, and the Intel Corporation,
In the fall of 1994 we did not have anything like the Web as we know it today. There was an Internet, but the connections and protocols were all text based. We did have email and file transfer. News groups, including comp.soft-sys.matlab and comp.sys.intel, existed. The Mosaic graphical browser had been available for just a few months, but most people, including me, had not yet started to use it. Internet Explorer was not yet on the scene and it would be four more years before we would hear of Google.
When I began to get email asking for information about the bug, I would start my reply with "If you have access to the Internet ..." and then give instructions on how to use the MathWorks FTP site. Imagine doing that today.
And, as far as I can remember, there was not yet any spam. All of the email, and all of the postings to the newsgroups, were legitimate. Maybe they weren't all worthwhile, but at least there wasn't yet any of the absolute junk we unfortunately see today.
Prof. Thomas Nicely started all the activity by sending a memo about an error in the calculation of the reciprocal of a twin prime to the CompuServe network on October 30, 1994. This soon found its way to Terje Mathisen in Norway who confirmed a bug in floating point division on the new Intel Pentium processor and posted an announcement, along with a test program, to the comp.sys.intel newsgroup on November 3.
A couple of MathWorks customers saw the news and called our tech support, asking how the bug might affect MATLAB. At nearly the same time I heard about the bug from a mailing list covering floating point arithmetic.
On November 14 Tim Coe posted what turned out to be an instance of the worst possible error. The next day I made my first posting, to both comp.soft-sys.matlab and comp.sys.intel, summarizing what was known up to then. I said that as far as I was concerned the worst aspect of the situation was that we didn't know how bad it was and so we had to be concerned about it.
Here is Intel's initial response, in the form of the FAXBACK document produced by their customer support system.
There has been a lot of communication recently on the Internet about a floating point flaw on the Pentium processor. For almost all users, this is not a problem.
Here are the facts. Intel detected a subtle flaw in the precision of the divide operation for the Pentium processor. For rare cases (one in nine billion divides), the precision of the result is reduced. Intel discovered this subtle flaw during on going testing after several trillions of floating point operations in our continuing testing of the Pentium processor. Intel immediately tested the most stringent technical applications that use the floating point unit over the course of months and we have been unable to detect any error. In fact, after extensive testing and shipping millions of Pentium processor-based systems there has only been one reported instance of this flaw affecting a user to our knowledge, In this case, a mathematician doing theoretical analysis of prime numbers and reciprocals saw reduced precision at the 9th place to the right of the decimal.
In fact, extensive engineering tests demonstrated that an average spreadsheet user could encounter this subtle flaw of reduced precision once in every 27,000 years of use. Based on these empirical observations and our extensive testing, the user of standard off-the-shelf software will not be impacted. If you have this kind of prime number generation or other complex mathematics, call 1 800 628-8686 (International) 916 356-3551). If you don't, you won't encounter any problems with your Pentium processor-based system. If ever in the life of the computer this becomes a problem, Intel will work with the customer to resolve the issue.
Needless to say, that kind of response did not satisfy activists on the net.
Intel had only recently begun to appeal directly to consumers with its "Intel Inside" campaign. Intel's traditional customers were computer manufacturers, and they were not concerned with "subtle flaws" that had already been fixed in the latest stepping of the part.
But now posts criticizing Intel started to appear on the net. A small, but important and vocal portion of the customer base was protesting.
On November 22, two engineers at the Jet Propulsion Laboratory suggested to their purchasing department that the laboratory stop ordering computers with Pentium chips. Steve Young, a reporter with CNN, heard about JPL's decision, found my posting on the newsgroup, and called me. After talking to me for a few minutes, he sent a video crew to MathWorks in Massachusetts and interviewed me over the phone from wherever he was in California. That evening, CNN's Moneyline used Young's news about JPL and his interview with me to make the Pentium Division Bug mainstream news. Two days later -- it happened to be Thanksgiving -- stories appeared in The New York Times, The Boston Globe, The San Jose Mercury News, and elsewhere. Hundreds of articles followed in the next several weeks.
On November 27, Andy Grove, CEO of Intel, tried to post his view of the situation on comp.sys.intel. But I'm afraid he only made matters worse. For one thing, he didn't even have his own logon, so he had a colleague, Richard Wirt, post the message on his behalf. Many netters were suspicious that it was a fake. The general tone was similar to the FAXBACK I reproduced above, aggressively defensive. And the posting was too long. I have included the entire posting in the collection of Pentium bug documents available from MATLAB Central.
In the three weeks from Mathisen's first posting until the end of November the traffic on comp.sys.intel increased from a trickle to hundreds messages a day. Most of it was rants about Intel and rants about the rants. I had to stop reading it. Some of it was cross posted to comp.soft-sys.matlab, so the traffic was heavy there too for a while.
The net had been heard. It had gone from being a plaything for a few academic geeks to something with economic clout. The Internet was beginning to grow up.
In the fall of 1994 the MathWorks was celebrating its 10th anniversary. We had not yet moved to Apple Hill. We were still located on Prime Parkway, off of Speen Street. We had less than 250 employees.
Our product name, MATLAB, was known to our customers, but our company name, MathWorks, was not widely known. On November 23, we announced that we were preparing a version of MATLAB that could detect and correct the division bug. Our public relations firm issued a press release with the headline,
THE MATHWORKS DEVELOPS FIX FOR THE INTEL PENTIUM(tm) FLOATING POINT ERROR
So on the day the story appears in The New York Times, this message showed up in the fax machines of media outlets all over the country. It turned out to be a very successful press campaign.
MathWorks has been at the forefront of companies using the Internet. We were 73rd company to register as a ".com" URL. So with the Mosaic browser becoming available about this time, we put up one of the first company Home pages.
I collected as many of the documents associated with this affair as I could and made them available in a .zip file from an FTP site. We put a notice about that collection on our home page, even though most people learned about it from newsgroups and email. Here is that first MathWorks Home Page.
On December 12, IBM issued a report entitled "Pentium Study" that claimed financial spreadsheet calculations did not produce floating point numbers with uniformly distributed random bit patterns, but rather frequently produced numbers with long strings of 1's in their binary representation. These are the numbers that are "at risk" for encountering the FDIV bug. As a result, they predicted division errors would be much more frequent than Intel claimed.
Citing their report, IBM announced they were halting shipment of Pentium-based personal computers. Intel's stock dropped 10 points within a few hours of the IBM press release.
A week after the IBM announcement, on December 20, Intel finally acknowledged the situation. They announced a no-questions-asked return policy. They would replace the Pentium chip for anyone that requested it. They set up a number of replacement centers around the country (and around the world, I assume). They set aside $475-million to pay for it all. Their announcement said:
Our previous policy was to talk with users to determine whether their needs required replacement of the processor. To some people, this policy seemed arrogant and uncaring. We apologize. We were motivated by a belief that replacement is simply unnecessary for most people. We still feel that way, but we are changing our policy because we want there to be no doubt that we stand behind this product.
When I first thought about writing a blog post recalling the Pentium affair, I ordered the recent biography of Andy Grove listed in the References. It reads like a ghost-written autobiography. There is a substantial chapter entitled "The Pentium Launch: Intel Meets the Internet" which provides Grove's view of these events and their consequences. He still doesn't quite get it -- he continues to refer to newsgroup traffic as email. But the chapter does reveal that the affair had a deep affect on him. I think his message is well summarized by this quote on a key chain containing a surplus defective Pentium.
Bad companies are destroyed by crises;
Good companies survive them;
Great companies are improved by them.;
--Andy Grove, December 1994
Pentium key chain. Image thanks to Thomas Johansson, email@example.com.
The entire affair fascinated the public. In addition to the key chains, there were necklaces, pendants, and other jewelry. There were cartoons in newspapers and popular magazines, and jokes in late-night TV monologues. The interest lasted for a couple of months. Some of the jokes, unfortunately some of the worst ones, are preserved in Web sites today. Just Google "Pentium Jokes".
One of my favorite stories is personal. My daughter came to visit for Christmas. She uses a Macintosh and I accidentally dropped it while unloading the car. I took it into a shop in Natick that I had never been in before to see about getting it repaired. My picture had recently been in the local newspaper and a guy behind the counter recognized me. He said, "Hey, you're Cleve Moler. I've got something to show you." He clicked on an icon on a nearby Mac. The icon said "Pentium Powered Calculator". Sure enough, the results of divisions had errors in the fifth decimal place. This is on a Mac! The splash screen said the program came from an outfit called "Sarcastic Software". Who are those guys? I'd love to meet them.
I'm not sure of the actual number, but I understand that relatively few people actually asked to replace their Pentiums after all. Intel did not have to spend very much of the $475-million they had allocated. Most people were satisfied just to be assured that they could get a replacement if they ever felt they really needed it.
Only a few dozen people requested the Pentium-aware version of MATLAB. And none of them reported setting off the floating point division warning message without deliberately trying to trigger it.
So, as far as I know, Thomas Nicely was the only person to ever actually encounter the FDIV bug without actually looking for it. We had other reports of suspected division error sightings, but they were all ultimately traced to arithmetic errors in other places. In fact, the probability of the occurrence of the FDIV error is extremely small. But we didn't know that at the beginning of this affair, so that was why we had to be concerned.
A collection of original documents associated with the Pentium division bug is available from MATLAB Central. Pentium Papers
Richard S. Tedlow, Andy Grove, The Life and Times of an American Business Icon, Portfolio, Penguin Books, 2006, 568 pp.
コメントを残すには、ここ をクリックして MathWorks アカウントにサインインするか新しい MathWorks アカウントを作成します。