El procesador que no sabía dividir

Como sociedad estamos muy acostumbrados a los fallos de software. De hecho, el “reinicia el ordenador” como solución mágica a cualquier problema ya forma parte de la cultura popular. Sin embargo, en lo que se refiere al hardware, tenemos expectativas muy diferentes: como todas las cosas “físicas” funciona siempre, y cuando se estropea se substituye por otro nuevo y todo vuelve a funcionar mágicamente. Pero no siempre es así…. Retrocedamos un poco en el tiempo. En 1993 Intel, uno de los principales fabricantes de procesadores del mundo, lanza una nueva gama de procesadores. Sus procesadores anteriores (80286, 80386 y 80406) habían tenido mucho éxito, hasta el punto que compañías rivales como AMD habían buscado nombres similares a sus procesadores compatibles (como Am386 o Am486). Intel ya había lanzado una campaña muy agresiva de márqueting para diferenciarse (“Intel Inside“), que busca continuar creando una marca registrada para sus procesadores que no pudiera utilizar la competencia. Se decidió llamar a esta nueva gama de procesadores Pentium, como guiño al “5” en 80586. En 1994, el profesor de matemáticas Thomas Nicely estaba escribiendo un programa para un proyecto de investigación. El programa estudiaba propiedades de números primos muy grandes, buscando por ejemplos números primos gemelos. Se trataba de un proyecto de cálculo intensivo, que llevaba 13 años ejecutándose en diversos sistemas y al que se añadió un ordenador con un procesador Pentium en marzo de 1994. El 13 de junio detectó algunas inconsistencias en los resultados, que atribuyó a un problema en el código generado por el compilador. En septiembre se volvió a ejecutar el código corregido, sólo para detectar un mes más tarde que un nuevo error estaba apareciendo: una discrepancia en el...