La historia del error de divisi¨®n de los primeros Pentium
Unos c¨¢lculos relacionados con primos gemelos fueron los responsables de destapar el error FDIV de los 586
Se conocen n¨²meros primos de m¨¢s de 20 millones de cifras (y se siguen buscando primos m¨¢s grandes) y se han calculado millones de decimales del n¨²mero Pi. ?Son ¡°necesarios¡± c¨¢lculos tan grandes? ?Nos sirven de algo los resultados obtenidos con ellos? S¨ª, con n¨²meros primos muy grandes podemos aumentar la seguridad de nuestras comunicaciones, y el gran atractivo del n¨²mero Pi podr¨ªa ser raz¨®n suficiente para que nos siga apeteciendo conocer m¨¢s sobre ¨¦l, pero estos c¨¢lculos monstruosos pueden ayudarnos a algo m¨¢s: testear procesadores y equipos inform¨¢ticos. Hoy os voy a hablar sobre uno de los casos m¨¢s sonados a este respecto: el famoso error FDIV de los procesadores Pentium.
Nos situamos en 1994. El matem¨¢tico estadounidense Thomas Nicely toma un trabajo anterior sobre la constante de Brun, relacionada con los primos gemelos (de los que hablamos hace unas semanas en Porque 70 millones ¡°no son nada¡±) e intenta ampliarlo. Dicho trabajo calculaba dicha constante para todas las parejas de primos gemelos hasta 100.000 millones (m¨¢s de 220 millones de parejas), y Nicely quer¨ªa alcanzar el bill¨®n para mejorar la estimaci¨®n de esta constante de Brun.
En aquella ¨¦poca, los microprocesadores Pentium acaban de hacer acto de presencia en el mercado como sucesores de los anteriores 486 (de hecho el nombre ¡°Pentium¡± en un gui?o al 5 que ten¨ªan esos 586, versi¨®n siguiente al 486). Nicely decide a?adir un Pentium a su cadena de microprocesadores para, entiendo, hacer el c¨¢lculo m¨¢s r¨¢pido y eficiente.
Y aqu¨ª es donde est¨¢ el turr¨®n. Nicely utiliza dos m¨¦todos para el c¨¢lculo de la constante de Brun, y se da cuenta de que los resultados obtenidos por ellos tienen una diferencia demasiado grande. Evidentemente algo iba mal, y Nicely intenta encontrar d¨®nde est¨¢ el error. Analiza su propio software por si el fallo ven¨ªa por ah¨ª, y despu¨¦s de localizar el punto exacto en el que se produc¨ªa esa diferencia an¨®mala decide realizar el c¨¢lculo de dicho punto con un 486 (esto es, prescinde del Pentium). Curiosamente, el error desaparece.
La cosa est¨¢ clara, ?verdad? Bueno, a medias. El error podr¨ªa venir de cualquier otro componente de hardware, pero Nicely acaba concluyendo que el problema est¨¢ en el microprocesador Pentium cuando consigue reproducir dicho fallo en otros equipos con un procesador del mismo tipo.
A finales de dicho a?o 1994, Nicely avisa v¨ªa correo electr¨®nico a Intel (fabricante de los Pentium) del error que ha encontrado¡ Pero no recibe una respuesta ¡°satisfactoria¡±. A la vista de esto, nuestro protagonista contacta con varias personas y les pide que intenten reproducir la situaci¨®n para ver si el error se sigue presentando. La respuesta es afirmativa: el error persiste.
Al darse a conocer el asunto, varias personas en Internet consiguen tambi¨¦n reproducir el error, con lo que el asunto explota: los microprocesadores Pentium fallan. M¨¢s concretamente, tienen un error al hacer divisiones en coma flotante (floating-point division, por lo que este fallo se conoce como error FDIV).
Algunas fuentes estiman que el error era del orden de 61 unidades por mill¨®n. Quiz¨¢s con pocas operaciones este error no ser¨ªa muy relevante, pero imaginad cu¨¢ntas operaciones hace un microprocesador a lo largo de un d¨ªa¡
El caso es que, al final, Intel tuvo que reconocer el error (de hecho, hasta reconoci¨® que conoc¨ªan su existencia antes incluso de que Nicely les avisara) y tuvieron que reemplazar todos los microprocesadores defectuosos, que eran los que trabajaban a una velocidad de reloj menor de 120 MHz. Esto cost¨® millones en p¨¦rdidas a la compa?¨ªa y, al menos, sirvi¨® para que de ah¨ª en adelante los controles de calidad de Intel pasaran a ser una parte mucho m¨¢s importante de su empresa.
Como curiosidad final, es interesante comentar que Intel acab¨® ¡°usando¡± a Nicely para testear los nuevos microprocesadores despu¨¦s de corregir el error.
Ten¨¦is m¨¢s informaci¨®n, tanto hist¨®rica como t¨¦cnica, sobre este caso en How Number Theory Got the Best of the Pentium Chip, de la revista Science, en Anatoym of the Pentium Bug y en The mathematics of the Pentium division bug. Tambi¨¦n ten¨¦is m¨¢s datos en la propia web de Thomas Nicely.
La conclusi¨®n que podemos sacar de todo esto es la que coment¨¢bamos al principio: aparte del propio placer matem¨¢tico que pueden provocar estos enormes c¨¢lculos, es importante la utilidad que pueden tener los mismos a la hora de probar equipos inform¨¢ticos y buscar errores de c¨¢lculo de los mismos. As¨ª que si de aqu¨ª en adelante veis por ah¨ª alg¨²n r¨¦cord de c¨¢lculo de d¨ªgitos de un n¨²mero o decimales de otro y pens¨¢is que es un tiempo consumido de manera in¨²til, recordad este caso.
Por cierto, ya que estamos creo que viene a cuento preguntar: ?conoc¨¦is alg¨²n otro caso que pueda asemejarse a este?
Tu suscripci¨®n se est¨¢ usando en otro dispositivo
?Quieres a?adir otro usuario a tu suscripci¨®n?
Si contin¨²as leyendo en este dispositivo, no se podr¨¢ leer en el otro.
FlechaTu suscripci¨®n se est¨¢ usando en otro dispositivo y solo puedes acceder a EL PA?S desde un dispositivo a la vez.
Si quieres compartir tu cuenta, cambia tu suscripci¨®n a la modalidad Premium, as¨ª podr¨¢s a?adir otro usuario. Cada uno acceder¨¢ con su propia cuenta de email, lo que os permitir¨¢ personalizar vuestra experiencia en EL PA?S.
En el caso de no saber qui¨¦n est¨¢ usando tu cuenta, te recomendamos cambiar tu contrase?a aqu¨ª.
Si decides continuar compartiendo tu cuenta, este mensaje se mostrar¨¢ en tu dispositivo y en el de la otra persona que est¨¢ usando tu cuenta de forma indefinida, afectando a tu experiencia de lectura. Puedes consultar aqu¨ª los t¨¦rminos y condiciones de la suscripci¨®n digital.