Anatomy of the Pentium bug

41Citations
Citations of this article
28Readers
Mendeley users who have this article in their library.
Get full text

Abstract

The Pentium computer chip's division algorithm relies on a table from which five entries were inadvertently omitted, with the result that 1738 single precision dividend-divisor pairs yield relative errors whose most significant bit is uniformly distributed from the 14th to the 23rd (least significant) bit. This corresponds to a rate of one error every 40 billion random single precision divisions. The same general pattern appears at double precision, with an error rate of one in every 9 billion divisions or 75 minutes of division time. These rates assume randomly distributed data. The distribution of the faulty pairs themselves however is far from random, with the effect that if the data is so nonrandom as to be just the constant 1, then random calculations started from that constant produce a division error once every few minutes, and these errors will sometimes propagate many more steps. A much higher rate yet is obtained when dividing small (<100) integers “bruised” by subtracting one millionth, where every 400 divisions will see a relative error of at least one in a million. The software engineering implications of the bug include the observations that the method of exercising reachable components cannot detect reachable components mistakenly believed unreachable, and that hand-checked proofs build false confidence.

Cite

CITATION STYLE

APA

Pratt, V. (1995). Anatomy of the Pentium bug. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 915, pp. 97–107). Springer Verlag. https://doi.org/10.1007/3-540-59293-8_189

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free