Nov
19
The problem was with the Pentium’s floating-point unit (FPU). An FPU speeds up the operations of software that does extensive calculations involving decimal-point math. Unlike previous Intel microprocessors, all new 58 … er … Pentiums integrated an FPU directly into the chip itself. Prior to this, if you wanted to obtain the benefits of an FPU, you often had to purchase a separate chip, usually called a math coprocessor, and install it inside your PC. Most people didn’t bother; only a handful of software packages made much use of FPU math operations. But people who were concerned about math operations did buy them or bought chips that had FPU capabilities and, being math types, they tended to be quite picky about the answers the chips provided.
One of these picky people was Thomas Nicely, a math professor at Virginia’s Lynchburg College. In the summer of 1994, while checking the sum of the reciprocals of a large collection of prime numbers on his Pentium-based computer, Nicely noticed the answers differed significantly from the projected correct values. He tracked the error down to the Pentium by running his calculations on an older system that used a previous generation 486 chip. This unit spit out the right answers.
Confirmation in hand, Nicely promptly sent off some inquiries to Intel about his results. Intel, wrapped up in the care and feeding of its Bunny People, ignored him. Nicely thereupon posted a general notice on the Internet asking for others to confirm his findings. Intel, after realizing Nicely was not going away, talked of hiring the professor as a “consultant,” and Nicely signed a non-disclosure agreement that basically said he wouldn’t discuss further developments on the issue. The cat, however, was out of the bag—to Nicely, and Intel’s, great surprise.
What was actually happening inside the Pentium was fairly obscure (except to picky math people). The Pentium contains what are called lookup tables, rows of values embedded in the chip that speed up math calculations. When creating these tables, someone had put a zero in one of the columns. What should have looked something like this:
123456789
looked something like this instead:
123456089
The real-world results of that misplaced zero were that the Pentium would give incorrect answers on numbers that went past four decimals. What should have read
5505001/294911 = 18.666651973 (486 with FPU)
instead came out as
5505001/294911 = 18.66600093 (Pentium)
Making matters worse for Intel was that as the investigation into the Pentium’s problems continued, other, even more obscure problems surfaced with the chip’s math processing.
As Intel was quick to tell everyone, a bug in a microprocessor’s embedded code or data isn’t a new phenomenon. An errata sheet, a document listing known problems with a chip, accompanies practically every major CPU released by Intel, Motorola, AMD, and so forth. Engineers are used to dealing with these problems and devising workarounds. Usually, the chip’s maker issues a software patch to deal with any programming or application issues, the fabrication plant makes an inline change to its manufacturing process, and that’s that. After all, these things happen and Intel had never promised you a rose garden.
Um, well, yes it had. Somehow, as the Bunny People had leaped and cavorted on the screens of America’s TVs, they had failed to mention errata sheets. Software patches. Workarounds. They hadn’t mentioned those at all! Millions of computer buyers were confused and amazed.
Intel’s actions subsequent to the disclosure of the Pentium’s FPU faux pas epitomized techno-geek stupidity at its worst. As news about the problem spread, Intel announced that
“… an error is only likely to occur [about] once in nine billion random floating point divides … an average spreadsheet user could encounter this subtle flaw once in every 27,000 years of use.”
Critics responded by noting that although it might be unlikely you’d get a wrong answer, if your calculation met the right conditions you could be sure of getting a wrong answer. And worse, there was no way of knowing if you’d gotten a wrong answer. In the meantime, IBM halted shipment of Pentium-based computers (which wasn’t that big a deal because they were still selling more of the older 486 units) and told everyone that “Common spreadsheet programs, recalculating for 15 minutes a day, could produce Pentium-related errors as often as once every 24 days.” Wow! That sure sounded more often than 27,000 years!
Then it was disclosed that Intel had known that the Pentium flunked math before it shipped and hadn’t bothered to tell the public. OK, it would have been odd to have the Bunny People dancing around with signs on their chests that proclaimed “1 + 1 = 3,” but still! We the people expected our Intels inside to be able to count, for God’s sake.
Not content to leave bad enough alone, Intel then compounded what was a rapidly growing PR nightmare by having Intel CEO Andrew Grove issue an apology over the Internet while the company was simultaneously telling everyone it wasn’t planning a mass recall of the Pentium and intended to sell its existing inventory of math-challenged chips until it was exhausted. After which you could presumably buy a computer that counted correctly. At this point the Bunny People were leaping about to the point of cardiac infarct, but not many people were watching them anymore. People were starting to get really angry or were telling mean jokes about the Pentium.
Comments
Leave a Reply