QAbalgando por la historia (VII): Error de división del Intel Pentium, detectado por un profesor de Matemáticas
24 noviembre, 2022
Traemos al blog una nueva entrega de la serie que denominamos ‘QAbalgando por la historia’, que recoge errores o fallos relacionados con equipos y software que, con mejores procesos de calidad, quizá podrían haberse evitado. El caso de hoy es el relativo a una partida defectuosa de microprocesadores.
Tabla de contenidos
Verano 1994. Thomas Nicely, profesor de Matemáticas de la escuela Lynchburg College, descubrió que algunos de los nuevos microprocesadores de la empresa Intel eran defectuosos.
Todo comenzó cuando Thomas, haciendo una serie de divisiones en su computadora, observó que algunas operaciones con idénticos números arrojaban resultados diferentes. Para estar seguro, hizo las mismas operaciones en otro ordenador, viendo que estos sí coincidían. Más tarde, consiguió rastrear el error hasta el propio microprocesador, uno de los nuevos Pentium, no consiguiendo que Intel le diese una respuesta clara.
Al ver que no sacaría nada por parte del fabricante, decidió hablar con otros profesores para que estos comprobasen las operaciones. Más adelante, viendo que el error era cierto, decidió poner una demanda contra Intel.
Intel se negó al principio a quitar del mercado los microprocesadores defectuosos. Lo que hizo para tranquilizar al público fue, cambiar los procesadores defectuosos de aquellas personas que reclamaban. Declaró públicamente dos cosas: “solo es probable que ocurra un error una vez en nueve mil millones de divisiones aleatorias de coma flotante”, y que “un usuario promedio de hoja de cálculo podría encontrar esta falla sutil una vez cada 27,000 años de uso”. Pero al final, consiguieron demandar a Intel quién declaró finalmente que habría un Pentium nuevo y gratuito para cualquier persona que lo solicitase.
El hardware, la causa del problema
La causa final estaba en el hardware, aunque el error aparecía, o no, dependiendo del modo de acceso a las operaciones. El microprocesador Pentium era la CPU (unidad central de procesamiento) de Intel y la más utilizada en ordenadores en aquellos momentos. Las CPU de Intel anteriores hacían toda su aritmética usando números enteros.
A diferencia de las CPU anteriores de Intel, los chips 486DX y Pentium incluían una unidad (FPU) o coprocesador matemático que ya no usaba una aritmética de números enteros sino de punto flotante. El divisor incorporado en la unidad FPU (Floating Point Unit) usa un algoritmo que puede calcular dos dígitos por paso, en lugar de solo uno por paso como en las FPU de Intel anteriores, pero necesita almacenar una tabla de valores que señala al chip cómo dividir los números de punto flotante como números enteros. Esta tabla no se incluyó, por error, en 5 de cada 1000 FPU.
Fallos sin solución
Habría que ser muy atrevidos para asegurar que ciertos problemas de desarrollo e industrialización pueden ser atajados con una metodología cien por cien eficaz. Seguramente Intel aplicó los más severos métodos de gestión de pruebas y las herramientas de prueba más sofisticadas a lo largo del ciclo de vida de desarrollo del software y del hardware de sus nuevos componentes, pero las limitaciones de tiempo y coste ligadas en este caso a un posible enmascaramiento del error en los casos de prueba le llevaron a comercializar elementos defectuosos.
¿Solución de MTP?
En este caso, no habría ninguna solución técnicamente hablando. MTP, empresa de aseguramiento de negocios digitales, ha aprendido del problema que tuvo Intel y seguiría aplicando los procesos de calidad y de desarrollo. Este problema está dentro de lo que dice la normativa de la organización ISTQB (International Software Testing Qualifications Board): algunos fallos no tienen solución.
Fernando Rosique
DBA Hub
Otros post de Qabalgando por la historia:
QAbalgando por la historia (I): Grace Murray Hopper
QAbalgando por la historia (III): La destrucción del Mariner I (1962)
QAbalgando por la historia (IV): AT&T en 1990, el gran colapso de la red a larga distancia
QAbalgando por la historia (V): ¿Y si MTP hubiera trabajado en el Ariane 5 en 1996?
Categorías
Experiencia de Usuario para empresas (81)
Noticias MTP (240)
Seguridad Informática para empresas (72)
Sin categorizar (2)
Testing de Software (119)
Transformación digital para empresas (29)
Recomendados
Testing de Software 13 septiembre, 2018