Hace más de 50 años, los Estados Unidos se habían propuesto un enorme reto, el de llevar hombres a caminar en la superficie de la Luna. Para poder realizar aquella tarea hizo falta del esfuerzo combinado de muchas personas que lograron aprovechar de la mejor manera la limitada tecnología de la era. Aquí una explicación de como la computadora logró llevar hombres a la Luna.
Características físicas y técnicas
En la década de los 60 las computadoras podían llegar a ser igual de grandes que habitaciones enteras, sin embargo, MIT logró conseguir desarrollar una lo suficiente pequeña y liviana como para poder ser realmente útil en una nave espacial. De tamaño semejante a una caja de zapatos y pesando apenas 32 kilogramos, contaba con una memoria borrable/editable (RAM) de 4 kilobytes, una memoria fija/solo lectura (ROM) de 70 kilobytes y capacidad de realizar entre 50 000 y 85 000 cálculos por segundo.
Dentro de la memoria RAM o memoria editable se almacenaban datos recolectados y que podrían cambiar a lo largo de la misión, tal como eran mediciones de aceleración, altura por radar u orientación de la nave, además de guardar los resultados de operaciones matemáticas, como velocidades y elementos orbitales derivados de la posición y rapidez de la nave. A su vez, la memoria ROM; memoria de solo lectura por sus siglas en inglés, era donde se encontraban todos los programas, algoritmos y procesos necesarios para toda la misión.
Si bien hoy en día un celular tiene varios órdenes de magnitud más capacidad de procesamiento y almacenamiento, y siendo la potencia de la computadora más semejante a la RAM de la llave de un carro,es una falacia el tratar de poner ambos dispositivos en la misma escala. Se había logrado construir un dispositivo cuyo objetivo era el de seguir un plan muy preciso y para el cual se diseñaron algoritmos altamente optimizados y enfocados a realizar tareas en concreto, opuesto a los celulares u ordenadores actuales que buscan poder correr cualquier variedad de programas.
Diseño y arquitectura
Los ingenieros del MIT se encontraban frente a un enorme desafío, el de llevar la computación a un nuevo nivel y demostrarla como segura y confiable para misiones tripuladas. Es por lo que el funcionamiento y método de trabajo de las computadoras fueron construidas tomando en cuenta los siguientes principios:
Lenguaje de alto nivel
Entre las tareas de la computadora del módulo lunar estaba la de calcular trayectorias; sujetas a variación en el empuje, masa y gravedad y estimar elementos orbitales; solucionar numéricamente problemas de tres cuerpos (Sol, Tierra y Luna). Para poder realizar todas estas tareas se requerían de complejos algoritmos, poder programarlos era igual o inclusive más difícil. Se usaba un lenguaje de alto nivel, es decir, acercar la programación más a nuestra forma de pensar que a la manera en que la máquina entiende, a través de un intérprete que pasaba el código de una a otra.
El de alto nivel tenía ciertas ventajas, como la ya mencionada mayor facilidad para programar complejos y altamente optimizados algoritmos, pero a su vez implicaba un mayor tiempo de cómputo. Para tareas menos complejas, pero que requerían de la mayor velocidad posible, se usaba otro lenguaje de bajo nivel, por ejemplo, dar la instrucción a los motores de control de activarse y orientar la nave.
Dividir los procesos en trabajos
Dada la gran cantidad de tareas que se debían realizar en cada momento se tomó la decisión de organizarlas por trabajos, cada uno de ellos se encargaba de una serie de procesos específicos. Dado que todo el proceso del alunizaje estaba planeado con gran antelación, se asignaba un espacio específico para funcionar una vez era llamado el programa.
Se tenía un límite de hasta 7 trabajos, y combinados; durante el alunizaje, la parte que más consumía recursos computacionales, se usaba alrededor del 85% de la capacidad máxima, esto permitía tener un margen de error del 15% en caso de algún problema con algún proceso que requiera más de lo normal.
Reinicio
En caso de entrar en una sobrecarga; como ocurrió durante el descenso del Apolo 11, o si aparecía algún fallo de programación, se tenía la capacidad de reiniciar por completo todos los procesos de manera automática. En caso de ser necesario el reinicio, algo novedoso para la época, podía tardar fracciones de segundo antes de volver a estar completamente operativa.
Puntos de guardado
Dado que en cualquier momento podría activarse un reinicio, era necesario el poder crear puntos de guardado o copias de seguridadque podrían ser restablecidas posteriormente, aunque también serían útiles en caso de encontrar un fallo del tipo one-in-a-million (uno en un millón) que estuviera causando una divergencia en los datos.
Transmisión de datos
Las misiones Apolo tenían un gran riesgo de perder por completo a la tripulación durante la fase de descenso o ascenso lunar, si algo así ocurría se deseaba tener tanta información de cualquier problema que haya surgido para investigar. Cada cierto tiempo la computadora transmitía telemetría sobre sus datos al centro de control.
Tras varios años de trabajo y esfuerzo, al final consiguieron un resultado increíblemente exitoso que permitió no solo a 24 hombres alcanzar la Luna; y a 12 de ellos caminar sobre ella, sino el de dejar una enorme herencia tecnológica a todo el mundo, gracias al cual tenemos hoy en día ordenadores funcionales que podemos cargar incluso en un bolsillo.