EE Times November 7, 1994 Issue 822, page 1 Copyright 1994 by CMP Publications. All rights reserved. INTEL FIXES A PENTIUM FPU GLITCH 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 (FPU) in the Pentium microprocessor. The company said that the glitch was discovered midyear and was fixed with a mask change in recent silicon. ''This was a very rare condition that happened once every 9 to 10 billion operand pairs,'' said Steve Smith, a Pentium engineering manager at Intel. A spot check last week indicated the problem is present in at least one recently made Pentium-based PC. Intel said it could not quantify how many such systems were in the field. Said an Intel spokesman: ''This doesn't even qualify as an errata. We fixed it in a subsequent stepping.'' Erroneous division 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. ''The Pentium floating-point unit is returning erroneous values for certain division operations,'' he wrote. ''For example, 1/824633702441 is calculated incorrectly (all digits beyond the eighth significant digit are in error). This can be verified . . . by computing (824633702441.0) ¯ (1/824633702441.0), which should equal 1 exactly (within some extremely small rounding error; in general, coprocessor results should contain 19 significant decimal digits). However, the Pentiums tested return 0.999999996274709702 for this calculation.'' ''The bug has been observed on all Pentiums I have tested or had tested to date, including a Dell P90, a Gateway P90, a Micron P60, an Insight P60 and a Packard-Bell P60. It has not been observed on any 486 or earlier system, even those with a PCI bus. If the floating-point unit is locked out (not always possible), the error disappears.'' Intel's Smith emphasized that the anomaly would not affect the average user. Speaking of Nicely, Smith said: ''He's the most extreme user. He spends round-the-clock time calculating reciprocals. What he observed after running this for months is an instance where we have eight decimal points correct, and the ninth not showing up correctly. So you get an error in the ninth decimal digit to the right of the mantissa. I think even if you're an engineer, you're not going to see this.'' Nicely said he pointed out the problem to Intel, because ''it has a major effect in mathematics, because we have to have absolute precision. I suspect that, to the majority of people, it will be irrelevant. But engineers may have a different outlook.'' A spot check conducted at EE Times last week tested out Nicely's expression on an AcerPower Minitower Pentium/60 machine, which was just received from Acer America. The result was 0.999999996247. Intel said it discovered the anomaly through its own random testing. The fix involved a mask change to the Pentium's floating-point unit. Specifically, according to Intel's Smith, the correction entailed an update to the programmable-logic array (PLA) on the Pentium. ''This is related to the state machine in the floating-point unit. There are certain cases where, way out in the operation, we didn't handle the precision correctly,'' he said. ''It's an iterative calculation, and at each point, you have to go through a lookup process that says what your next approximation should be. For these rare cases, we made an incorrect approximation for the bits further out in the mantissa, [which equates to the digits] further to the right of the decimal point.'' Better results The fix entailed adding terms, or additional gate-sequences, to the PLA. That corrected the erroneous results returned from the problematic lookup table accesses. Intel said there are no part-number designations or other markings on the updated microprocessors-which became available in the last few months-to differentiate them from the earlier anomalous parts. However, an Intel spokesman said, ''If customers are concerned, they can call and we'll replace'' any of the parts that contained the bug.