Core rope memory, la ROM de los Apollo
El AGC (por Apollo Guidance Computer) fue el ordenador utilizado en el módulo de mando y el módulo lunar de las misiones que hace unos 40 años llevaron hombres a la Luna. A pesar de que en esa época ya existían los circuitos integrados, estos eran lo suficientemente “modernos” como para que la NASA desconfiase de su fiabilidad y los dejase de lado. Así fue como los AGC terminaron utilizando memorias ROM “tejidas” con delgados cables y núcleos magnéticos, dispositivos conocidos como core rope memory. Tejidas a mano por anónimas obreras textiles de Massachusetts, contribuyeron al éxito de las primeras misiones espaciales.
A pesar de que algunos siguen discutiendo si realmente el hombre llegó o no a la Luna, parte de la tecnología que hoy utilizamos fue impulsada durante el desarrollo de las misiones Apollo. Todos conocemos las dificultades que presenta enviar un astronauta a la Luna, hacerlo alunizar, y luego despegar y volver a nuestro planeta. En la década de 1960 esto era aún más complejo, por que uno de los pilares sobre los que debe apoyarse cualquier misión de este tipo -la informática- aún estaba en pañales. Guiar una nave hasta nuestro satélite natural y hacerla posar suavemente sobre su superficie es algo que escapa a las posibilidades humanas. Demorar unas décimas de segundo el encendido o apagado de un motor puede representar la diferencia entre el éxito de la misión o el más estrepitoso y horrible fracaso. Sin embargo, un ordenador, aún sin poseer una gran potencia de cálculo, puede encargarse de esas tareas sin problemas. La NASA lo sabía, y decidió dotar a sus naves de un ordenador de a bordo. Así fue como nació el AGC (por Apollo Guidance Computer).
Obviamente, hace 40 o 50 años pensar en “un ordenador” era pensar en algo del tamaño de un departamento, pesado como una docena de elefantes y alimentado por miles de vatios de energía. Algo así no podía incluirse en los módulos que estaba diseñando la NASA. El gobierno de los Estados Unidos disponía de unos ordenadores más pequeños (y limitados) que habían sido diseñados para guiar los misiles balísticos Polaris, pero su potencia era bastante menor que la requerida por la NASA. El ordenador de los Apollo debería ser capaz de encargarse de las tareas de navegación y guiado autónomo de la nave, algo así como un “piloto automático” prácticamente independiente de los astronautas. La empresa North American había sido designada por la NASA como encargada del desarrollo del módulo de mando (CSM) de los Apolo, y sus directivos se dirigieron al Instituto de Tecnología de Massachusetts (MIT), sitio en el que se encontraban los mayores expertos en informática de la época, en busca de propuestas y soluciones. Luego de varias reuniones, llegaron a la conclusión de que podía construirse un ordenador como el que necesitaban, y que tendría un volumen aproximado de un pie cúbico, es decir, más o menos lo que ocupa un cubo de unos 30 centímetros de lado.
Si bien la -para entonces- novedosa tecnología de los circuitos integrados estaba disponible, y la NASA compró en aquella época cerca de un millón de chips que utilizó en diferentes proyectos, lo cierto es que a la hora de dotar al AGC de una memoria ROM no confiaron en el silicio. En lugar de utilizar chips, los programas del AGC se “cablearon” físicamente, un sistema similar a las memorias de núcleo de ferrita que se utilizaban en buena parte de los ordenadores de la época, y que era bien conocido. La core rope memory (algo así como núcleo de memoria de cuerda) del AGC tenia una capacidad equivalente a unos 36KB de 16 bits (la RAM era de solo 2KB), donde cada uno de sus bits estaba codificado (o “cableado”) con cables de cobre “tejidos” alrededor de pequeños toroides hechos de una aleación de acero y níquel. En estas memorias, los núcleos ferromagnéticos se utilizan como si fuesen un pequeño transformador, donde la señal de la “palabra” que pasaba a través de un núcleo dado y que se emparejaba con el cable de un bit determinado, se interpretaba como un «uno» binario. Si el cable correspondiente a la palabra pasaba por el exterior del núcleo se leía como un “cero” binario.
El sistema funciona, y es extremadamente robusto. De hecho, durante el despegue del Apolo XII varios rayos alcanzaron el vector Saturno V, provocando el “cuelgue” del ordenador de a bordo. Pero una vez en órbita, los astronautas lo resetearon y arrancó sin problemas. Muy pocos ordenadores modernos podrían sobrevivir a un evento de ese tipo. La empresa Raytheon había contratado a varias mujeres, algunas ex empleadas de empresas textiles, para cablear estas memorias. Tomaban los datos en sistema binario, y los “cosían” en los núcleos metálicos. Los diseñadores de la NASA llamaba a estas ROMs “LOL memory”, por “Little Old Ladies memory”, algo así como “memorias de las viejecitas”, en referencia a las mujeres que las ensamblaban. Cada ordenador tenía seis módulos de memoria LOL, y cada uno requería de más de un mes de trabajo para estar listo. Luego se verificaban para asegurarse de que los programas y parámetros orbitales incluidos fuesen correctos, y estaban listos para ser instalados en los AGC.
La NASA usó, por supuesto, chips y transistores en otros componentes de estos ordenadores, pero las memorias se basaron en esta tecnología más antigua, la única -para sus ingenieros- que les permitía el grado de seguridad que la misión necesitaba. Algunos afirman que la NASA y las misiones Apollo son las responsables de haber impulsado la miniaturización de los ordenadores, que pasaron de ser monstruos del tamaño de una habitación a pequeñas cajas de 30 centímetros de lado. Seguramente esto es exagerado, y posiblemente las aplicaciones militares de los ordenadores fue lo que más impulsó la reducción de su tamaño. Como sea, el esfuerzo de los ingenieros del MIT permitió crear ordenadores lo suficientemente pequeños como para llevar al hombre a la Luna, y eso no es poca cosa.