[2] Este ordenador destaca por haber sido uno de los primeros computadores basados en circuitos integrados.
El AGC y su interfaz DSKY se desarrollaron a principios de los 1960 por el MIT Instrumentation Laboratory para el programa Apolo.
Además, cada misión contaba con otros dos ordenadores adicionales: El AGC se diseñó en el MIT Instrumentation Laboratory bajo la dirección de Charles Stark Draper, con el diseño hardware a cargo de Eldon C.
Mientras que la versión Block I usaba 4100 CIs, conteniendo cada uno una sencilla puerta NOR de 3 entradas, la versión posterior Block II (usada en los vuelos tripulados) empleó 2800 CIs, cada uno con dos puertas NOR de 3 entradas.
[1]: 34 Los CIs, de Fairchild Semiconductor, se implementaron usando lógica resistencia-transistor (RTL) en un flat-pack.
Fueron conectados mediante enrollamiento, y luego el cableado se incorporó en un molde plástico de epoxy.
La interfaz de usuario con la que se accedía al AGC era la DSKY (del inglés display and keyboard, en español teclado y pantalla), pronunciado comúnmente como dis-key.
Poseía un vector de indicadores luminosos, varios visualizadores numéricos y un teclado tipo calculadora.
En ellos se podían visualizar tres números de 5 dígitos con signo en base octal o decimal, y se usaban típicamente para mostrar vectores tales como la actitud del vehículo espacial o un cambio de velocidad necesario (delta-V).
Unos indicadores de actitud (FDAI), controlados por el AGC, se situaban sobre la DSKY en la consola del comandante y en el LM.
A su vez, la frecuencia maestra primero se dividía mediante un escalador por cinco, usando un contador en anillo para producir una señal de 102,4 kHz.
La etapa F10 (100 Hz) era retroalimentada hacia el AGC para incrementar el reloj en tiempo real y otros contadores involuntarios usando la instrucción Pinc.
La memoria del AGC Block I estaba organizada en bancos de 1K palabras (KP).
Originalmente, el AGC Block I tenía 12KP de memoria fija, pero se incrementó posteriormente a 24 KP.
La palabra recuperada de la memoria quedaba disponible en el registro G para el acceso del AGC durante los TP7 a TP10.
Para compensarlo, una de las funciones ejecutadas por el AGC cada vez que se despertaba era actualizar el reloj en tiempo real en 1,28 segundos.
Este OR se usó para implementar la instrucción MASK que era una operación AND lógica.
Existía un simple sistema operativo de tiempo real que consistía en el Exec, un sistema de ordenamiento de procesos que podía ejecutar hasta ocho 'tareas' a la vez usando una arquitectura cooperativa multitarea (cada tarea debía periódicamente devolver el control al Exec, que entonces comprobaba si había alguna tarea pendiente con mayor prioridad).
La tarea de menor prioridad, llamada dummy job, se encontraba siempre presente.
Realizaba chequeos de diagnóstico y controlaba una luz verde relacionada con la actividad del ordenador en el DSKY: si la aplicación dummy estaba en marcha, significaba que el ordenador no tenía ninguna aplicación más prioritaria, por lo que la luz se encontraba apagada.
El código interpretado, que permitía trigonometría de doble precisión, aritmética escalar y vectorial (16 y 24 bits), e incluso instrucciones MXV (matriz × vector), podía mezclarse con código AGC nativo.
La mayor parte del software se encontraba en memoria de solo lectura y por tanto no podía ser cambiado en ejecución, pero algunas partes determinadas del software estaban almacenadas en memoria de núcleos magnéticos editables, por lo que podían ser sobreescritos por los astronautas utilizando la interfaz DSKY, como de hecho ocurrió durante el vuelo del Apolo 14.
Mantenía la misma arquitectura básica del bloque I, pero incrementaba la memoria volátil de 1000 a 2000 palabras.
Los 6.400 ciclos extras por segundo añadieron el equivalente a un 13% de carga, dejando justo la necesaria para que todas las tareas pudieran ejecutarse.
A los cinco minutos de iniciar el descenso, Buzz Aldrin programó el ordenador con el comando 1668 que daba instrucciones de calcular y mostrar DELTAH (la diferencia entre la altitud medida con el radar y la calculada por el ordenador).
Esto añadió un 10% adicional a la carga de trabajo del procesador, causando un desbordamiento y la alarma 1202.
Cuando informó de la segunda alarma, Aldrin comentó "Parece que aparece cuando tenemos la tarea 1668 en ejecución".
Afortunadamente para el Apolo 11, el software del AGC había sido diseñado con control de prioridad.
[18] Sin embargo, como el problema había ocurrido una sola vez durante las pruebas, determinaron que era más seguro operar con el hardware existente ya probado, que volar con un sistema de radar más nuevo pero no probado.