El primer procesador de Intel fue una CPU de solo 4 bits que funcionaba a 750 KHz de velocidad y solo acceder hasta a 4 KB de memoria RAM. Por lo que sus especificaciones son microscópicas en comparación con lo que hay hoy en día hasta en el PC más modesto. Pues bien, a alguien se le ha ocurrido calcular el número Pi con un 4004 de Intel. ¿Cuáles han sido los resultados?
Una forma de medir el rendimiento de un procesador es a través de una tarea recurrente y de dificultad creciente. Un ejemplo son los algoritmos de criptografía, pero hay otras más clásicas y muy conocidos, como es la búsqueda de números primeros o los diferentes decimales de π. Recordemos que se trata de un número que tiene una cantidad infinita de decimales y la búsqueda de los mismos es, por tanto, un pequeño desafío para cualquier procesador. Sin embargo, hasta el momento, nadie se había puesto a hacer calcular el número pí (π) a un Intel 4004.
Para conseguirlo han montado al veterano procesador sobre un STM32 que han utilizado para simular los periféricos y poder programarlo. No olvidemos que el 4004 de Intel es más parecido en funcionamiento a un microcontrolador que no la CPU de un PC. Honor que le corresponde al Intel 8080 como el primero, al usarse este sobre el legendario Altair 8800 del MITS.
¿Cuánto tarda el Intel 4004 en calcular el número pi (π)?
Bueno, la respuesta a la pregunta es obvia, tarda lo mismo que cualquier otro procesador, ya que estamos una cifra irracional de decimales infinitos. Por lo que la prueba de rendimiento o benchmark consiste en medir la velocidad que este tarda en saber el valor del siguiente decimal de la eterna e inacabable lista.
El desafío de hacerlo con algo tan simple como un Intel 4004 significa tener que superar una serie de limitaciones clave:
- El hecho de que el set de instrucciones es muy limitado.
- No dispone de unidad de coma flotante, por no tener, no tiene ni la capacidad de multiplicar números.
- Sus programas no pueden ser de más de 4 KB por su direccionamiento de 4 KB, pero para ello hace falta multiplexor externo, de otra manera se queda en 1280 bytes.
- La unidad encargada del cálculo matemático no usa las puertas lógicas más eficientes, lo que le lleva a ser mucho más lento.
- Su velocidad de reloj es de 750 KHz, es decir, 750.000 ciclos por segundo. ¿Un Intel Core o un AMD Ryzen de hoy en día?
- No es un procesador que soporte ejecución segmentada, por lo que no realiza varias etapas en diferentes partes del mismo.
Aunque la pregunta clave es la que hemos puesto como título de esta sección y la respuesta a ello es: 3 horas con 31 minutos y 13 segundos para obtener los primeros 255 dígitos el número pi (π) con Intel 4004. Para ello han utilizado el algoritmo Double-Stan, el cual se basa en usar división por enteros y evita el uso de decimales con tal de facilitarle la tarea el extremadamente limitado primer procesador de Intel. Como comparación, la misma persona que ha ejecutado la prueba ha obtenido 25 millones de dígitos en un segundo con un Xeon.