Este sitio es solo una puerta de entrada

Todo lo que hay aquí viene de cosas que otras personas investigaron, pensaron y construyeron de verdad: libros, artículos, registros históricos y la gente detrás de ellos. Si algo te llama la atención, ve a las fuentes originales que aparecen al final de la página. Tienen mucha más profundidad de la que una página como esta puede ofrecer.

¿Por qué la computadora del Apolo 11 siguió aterrizando en la Luna aunque sonaron 5 alarmas?

Categoría: Tecnología

Durante el descenso del módulo lunar del Apolo 11, la computadora lanzó 5 alarmas. En una situación normal, esto habría hecho sospechar de una falla grave. Sin embargo, el aterrizaje continuó y, durante los últimos 2 minutos y 20 segundos en modo semimanual (P66), en el que los astronautas indicaban la velocidad de descenso y la computadora controlaba el empuje, no sonó ninguna alarma más.

El aterrizaje fue posible porque, tras las alarmas, la computadora se reinició y retomó solo las tareas críticas, como el control del motor de descenso y las pantallas, descartando el procesamiento de datos de radar que se había añadido por error. A continuación, veremos qué calculaba durante los 12 minutos de descenso, cómo se tejía la memoria con cables y por qué la Tierra autorizó continuar.

1. ¿Qué calculaba la computadora del Apolo 11 durante los 12 minutos de descenso a la Luna?

Durante los aproximadamente 12 minutos de descenso, la computadora de guía calculaba cómo reducir la velocidad orbital (unos 6.100 km/h) hasta la velocidad de aterrizaje (unos 3 km/h). También integraba las mediciones del radar de aterrizaje en la navegación, ajustaba continuamente la potencia de los motores, indicaba la orientación de la nave y actualizaba las pantallas [3].

En la primera fase del descenso (P63), el objetivo principal era reducir la velocidad horizontal. Para determinar la potencia del motor, la computadora primero calculaba la masa de la nave. Con la masa conocida, se calculaba la corrección de empuje necesaria para alcanzar la aceleración requerida por las ecuaciones de guía, basándose en la aceleración medida por los acelerómetros [2].

La comunicación con los astronautas se realizaba a través del DSKY (Display and Keyboard), que permitía dar instrucciones o ver números introduciendo códigos de dos dígitos: un "verbo" y un "nombre" [4]. Las ecuaciones de guía fueron escritas en el programa por Don Eyles y Alan Klump del MIT, en un trabajo de equipo que les llevó 3 años [3].

2. La memoria reescribible de la computadora del Apolo 11 tenía solo 2048 palabras

La memoria del Computadora de Guía de la Nave (AGC) se dividía en dos tipos. La memoria de núcleo (core memory) reescribible tenía 2048 palabras, mientras que la memoria de cuerda de núcleo (core rope) de solo lectura tenía 36.864 palabras. Cada palabra consistía en 15 bits más 1 bit de paridad para comprobación [1][5].

Si excluimos los bits de comprobación, la memoria reescribible contenía unos 30.720 bits (2048 x 15), y la de solo lectura unos 552.960 bits (36.864 x 15). En términos de palabras, la memoria de solo lectura era 18 veces mayor que la reescribible. Como la conversión a los términos actuales de smartphones o computadoras varía según la fuente, aquí nos basamos en palabras y bits.

Según los archivos de la NASA, el AGC pesaba 70,1 libras (unos 32 kg) y su reloj funcionaba a aproximadamente 1 megahertz [4]. Que la memoria reescribible tuviera solo 2048 palabras significa que había poca memoria disponible para guardar datos cambiantes. Los programas grandes se guardaban en la memoria de solo lectura, y solo los números que cambiaban se almacenaban en la poca memoria reescribible. Esta restricción se relaciona directamente con el diseño posterior que permitía "descartar trabajo" [1].

Nota: Las conversiones modernas a bytes o KB varían según la fuente, por lo que es más seguro usar palabras y bits.

3. Cómo se guardaban los programas de la computadora del Apolo 11: tejidos con cables

En la memoria de cuerda de núcleo, pasar un cable a través de un pequeño núcleo magnético representaba un 1, y rodearlo sin atravesarlo representaba un 0. Cada núcleo podía tener hasta 192 cables de detección, y un solo núcleo contenía datos equivalentes a 12 palabras, lo que permitía almacenar mucha información en poco peso. Una vez fabricada, esta memoria no se podía reescribir [6].

La memoria de cuerda de núcleo se fabricó en la empresa Raytheon en Waltham, Massachusetts. Las tejedoras fueron mujeres locales reclutadas por su habilidad en la costura, adquirida en la industria textil de la zona [7]. El proceso consistía en pasar cables con una aguja entre personas sentadas a ambos lados de una placa para crear patrones específicos [7]. Se documenta que el cableado de un solo módulo tardaba unas 8 semanas [6].

Dado que los programas se tejían físicamente con cables, no se podían cambiar. Por eso, el software debía estar terminado antes de comenzar a tejer.

4. Las 5 alarmas de la computadora que sonaron en 4 minutos y medio durante el descenso

Durante el descenso del Apolo 11, hubo 5 alarmas en el tiempo de misión: 102h38m22s, 102h39m02s, 102h42m18s (esta fue la alarma 1201), 102h42m43s y 102h42m58s. Desde la primera hasta la última pasaron unos 4 minutos y 36 segundos [10].

Según la explicación de quienes diseñaron y programaron la computadora, la posición del interruptor del radar de acoplamiento (diferente del radar de aterrizaje) provocó que se programara repetidamente el procesamiento de datos de radar que no existían. Cuando el procesamiento alcanzaba su velocidad máxima, esto consumía aproximadamente el 15% del tiempo de cálculo disponible [1]. Las estimaciones conservadoras de la época eran del 13%, por lo que es seguro leerlo como "un poco más del 10%".

Después, entraron datos del radar y los astronautas añadieron una pantalla de monitoreo (V16N68), lo que redujo el margen de cálculo al 10% o menos [1]. Con tan poco margen, faltaba tiempo de cálculo para completar nuevas tareas. El Diario de la Superficie Lunar del Apolo de la NASA describe la alarma 1201 como "sin área VAC libre" y la 1202 como "sin conjunto de núcleo libre", y explica que el programa pasaba entonces a una rutina de alarma o aborto. Como en algunos pasajes las asignaciones de 1201 y 1202 aparecen intercambiadas, importa más lo que hacía el sistema que el nombre. ¿Qué hizo la computadora después?

5. Tras las alarmas, la computadora retomó solo las tareas importantes

Según el Diario de la Superficie Lunar del Apolo 11 de la NASA, tras reiniciarse por las alarmas, la computadora retomó tareas críticas como el control del motor de descenso y las pantallas del DSKY. No retomó el procesamiento de radar adicional que se había programado por error [8].

El programador Don Eyles explica que el reinicio reconstruía solo la versión más reciente de la tarea llamada SERVICER y descartaba los "fragmentos" incompletos. Originalmente, este mecanismo era para fallos temporales de hardware, pero también sirvió para aliviar la carga cuando el software se saturaba [2].

Según el recuerdo de Margaret Hamilton del MIT, el software estaba diseñado para que las tareas de alta prioridad interrumpieran a las de baja prioridad, y cada proceso tenía una prioridad única. Las alarmas 1201/1202 interrumpían las pantallas normales, instando a los astronautas a poner el interruptor del radar en la posición correcta e informando a la Tierra [9]. Es importante notar que el texto de Hamilton es un recuerdo personal y parte de un trabajo donde participaron muchos ingenieros; no se puede leer como que "ella sola salvó la misión".

6. ¿Por qué la sala de control en la Tierra dijo "continuar" (GO) pese a las alarmas?

Se cuenta que los ingenieros del MIT habían probado suficientemente la función de reinicio, y la sala de control en la Tierra lo sabía [11]. Steve Bales, responsable de guía, dio la señal de "GO", y Charlie Duke en la Tierra le dijo a Armstrong en la nave: "Esas alarmas son GO" [10].

A una altura de unos 500 pies (unos 150 metros), Armstrong pasó a un modo casi manual llamado P66. En el modo P66, la carga de cálculo era aún menor. Desde que entró en P66 hasta el aterrizaje, unos 2 minutos y 20 segundos, la nave fue pilotada sin más alarmas y aterrizó [2]. La altura se basa en cifras aproximadas descritas por MIT News [3].

7. Actividad: decide el orden de las tareas de tu noche con tarjetas, como la computadora

Escribe 5 "tareas" de la noche en papel y numéralas de la más importante a la menos importante. Por ejemplo: deberes, bañarse, lavarse los dientes, preparar el día siguiente, leer un cuento. En un día con poco tiempo, deja para después las tareas con los números más altos. Decide los números junto con tu familia. Al pensar qué problema causa soltarlas, entendemos un poco por qué el AGC daba prioridad a las tareas. Las tareas pueden ser inventadas en tu mente.

Quedan preguntas abiertas: ¿cómo decidieron los diseñadores el orden de prioridad? El mecanismo de reinicio se creó para fallos temporales del equipo, entonces ¿por qué también sirvió para soltar carga? Y entre las tareas que se soltaron podía haber alguna que se necesitara después: ¿cómo se estimó ese riesgo? Vale la pena comprobarlo en las fuentes originales.

Fuentes

  1. Don Eyles, "Tales from the Lunar Module Guidance Computer" (2004) https://klabs.org/history/apollo_11_alarms/eyles_2004/eyles_2004_z.htm (Capacidad de memoria, causa de las alarmas y cifras de tiempo de cálculo. Fuente primaria.)
  2. Don Eyles, "Tales from the Lunar Module Guidance Computer" https://www.doneyles.com/LM/Tales.html (Explicación de P63, P66, control del acelerador y reinicio. Fuente primaria.)
  3. MIT News, "Apollo 11's guidance computer" (2009) https://news.mit.edu/2009/apollo-eyles-0717 (Contenido de los cálculos durante los 12 minutos de descenso y sobre los desarrolladores.)
  4. NASA History, "Computers in Spaceflight", Capítulos 2-5 https://www.nasa.gov/wp-content/uploads/static/history/computers/Ch2-5.html (Sobre peso, reloj, DSKY y cantidad de unidades fabricadas.)
  5. Ken Shirriff, "Inside the Apollo Guidance Computer's core memory" (righto.com, 2019) https://www.righto.com/2019/01/inside-apollo-guidance-computers-core.html (Verificación de la capacidad de memoria. Fuente secundaria.)
  6. Ken Shirriff, "Software woven into wire" (righto.com, 2019) https://www.righto.com/2019/07/software-woven-into-wire-core-rope-and.html (Sobre el principio de la cuerda de núcleo y la duración del trabajo. Fuente secundaria.)
  7. Science News, Artículo sobre la memoria de núcleo tejida con cables y las tejedoras https://www.sciencenews.org/article/core-memory-weavers-navajo-apollo-raytheon-computer-nasa (Sobre las tejedoras y el proceso de trabajo. Reportaje.)
  8. NASA, "Apollo 11 Lunar Surface Journal", Alarmas de programa 1201/1202 https://www.nasa.gov/wp-content/uploads/static/history/alsj/a11/a11.1201-pa.html (Sobre las alarmas 1201/1202 y el comportamiento tras el reinicio. Fuente primaria.)
  9. Margaret Hamilton, "What the Errors Tell Us", IEEE Software (2018) https://wehackthemoon.com/sites/default/files/2019-07/what-the-errors-tell-us-3%20%281%29.pdf (Sobre el diseño asíncrono con prioridades. Recuerdo personal.)
  10. Discover, "Apollo 11's 1202 Alarm Explained" https://www.discovermagazine.com/the-sciences/apollo-11s-1202-alarm-explained (Sobre las horas de las alarmas y la respuesta de la Tierra. Reportaje.)
  11. Space.com, Artículo obituario de Jack Garman https://www.space.com/34135-jack-garman-apollo-11-obituary.html (Sobre la decisión desde la Tierra. Reportaje.)