This Article 
 Bibliographic References 
 Add to: 
Reflections on the Pentium Division Bug
April 1996 (vol. 45 no. 4)
pp. 385-393

Abstract—We review the field of result-checking and suggest that it be extended to a methodology for enforcing hardware/software reliability. We thereby formulate a vision for "self-monitoring" hardware/software whose reliability is augmented through embedded suites of run-time correctness checkers. In particular, we suggest that embedded checkers and correctors may be employed to safeguard against arithmetic errors such as that which has bedeviled the Intel Pentium Microprocessor. We specify checkers and correctors suitable for monitoring the multiplication and division functionalities of an arbitrary arithmetic processor and seamlessly correcting erroneous output which may occur for any reason during the lifetime of the chip.

[1] S. Ar,M. Blum,B. Codenotti, and P. Gemmell,"Checking Approximate Computations Over the Reals," Proc. 25th Symp. Theory of Computing, pp. 786-795, 1993.
[2] M. Blum,"Designing Programs to Check Their Work," Int'l Computer Science Inst. Tech. Report TR-88-009, Dec. 1988.
[3] M. Blum and S. Kannan,"Designing Programs that Check Their Work," Proc. 21st Symp. Theory of Computing, pp. 86-97, 1989.
[4] M. Blum,M. Luby, and R. Rubinfeld,"Self-Testing/Correcting with Applications to Numerical Problems," J. Computer and System Sciences, vol. 47, pp. 549-95, Dec. 1993.
[5] M. Blum,W. Evans,P. Gemmell,S. Kannan, and M. Naor,"Checking the Correctness of Memories," Algorithmica, vol. 12, pp. 225-244, Aug.-Sept. 1994.
[6] M. Blum and H. Wasserman,"Software Reliability Via Run-Time Result-Checking," (current as of Apr. 8,1996). Also printed as "Program Result-Checking: A Theory of Testing Meets a Test of Theory," Proc. 35th Symp. Foundations of Computer Science, pp. 382-392, 1994.
[7] C. Boettcher and D.J. Mellema,"Program Checkers: Practical Applications to Real-Time Software," Test Facility Working Group Conf., 1995.
[8] R.W. Butler and G.B. Finelli,“The infeasibility of quantifying the reliability of life-critical real-timesoftware,” IEEE Trans. Software Engineering, vol. 19, no. 1, pp. 3-12, 1993.
[9] R. Freivald,"Fast Probabilistic Algorithms," Lecture Notes in Computer Science, vol. 74: Mathematical Foundations of Computer Science, pp. 57-69. Springer-Verlag, 1979.
[10] R. Freivald,"Fast Probabilistic Verification of Number Multiplication," Automatic Control and Computer Sciences, vol. 13, no. 1, pp. 37-39, 1979.
[11] P. Gemmell,R. Lipton,R. Rubinfeld,M. Sudan, and A. Wigderson,"Self-Testing/Correcting for Polynomials and for Approximate Functions," Proc. 23rd Symp. Theory of Computing, pp. 32-42, 1991.
[12] R. Rubinfeld,"On the Robustness of Functional Equations," Proc. 35th Symp. Foundations of Computer Science, pp. 288-299, 1994.
[13] F. Vainstein,"Error Detection and Correction in Numerical Computations by Algebraic Methods," Proc. Ninth Int'l Symp. Applied Algebra, Algebraic Algorithms and Error-Detecting Codes, pp. 456-464, 1991.

Index Terms:
Built-in testing, concurrent error detection, fault tolerance, Pentium, reliability, result-checking, verification.
Manuel Blum, Hal Wasserman, "Reflections on the Pentium Division Bug," IEEE Transactions on Computers, vol. 45, no. 4, pp. 385-393, April 1996, doi:10.1109/12.494097
Usage of this product signifies your acceptance of the Terms of Use.