¿Cómo se implementaron los registros en la computadora de guía Apollo?

Me está costando encontrar información sobre la composición de los registros de la AGC. ¿Eran también memoria de núcleo magnético o algo más?

Respuestas (2)

Arquitectura de la CPU (Registros) Todos los registros de la CPU están mapeados en memoria (consulte la siguiente sección). Los registros en las direcciones 00-23 (octal) son fundamentales para las operaciones de la CPU, desde el punto de vista del conjunto de instrucciones. Los registros de las direcciones 00-07 son flip-flops (bueno, excepto 07) internos del procesador; todos los demás registros son ubicaciones de memoria borrables especialmente manejadas. Cada vez que se accede a estos registros flip-flop, su contenido se copia en sus correspondientes ubicaciones de memoria borrables. Este enlace es unidireccional; Las ubicaciones de memoria borrables 00-07 nunca se pueden leer, ya que todos los intentos de hacerlo se redirigirán a los flip-flops correspondientes.

Los registros en las direcciones 24-61 se denominan genéricamente "contadores". Si bien los registros del contador se pueden modificar bajo el control del programa, generalmente solo los configura el programa y luego se incrementan o disminuyen automáticamente por eventos tales como pulsos eléctricos. Los registros TIME1-TIME6 son aún más especializados, en el sentido de que los "pulsos" que los incrementan en realidad los proporciona un oscilador, de modo que estos contadores actúan como temporizadores. Muchos de los contadores se pueden usar para activar interrupciones en caso de desbordamiento, de modo que la CPU pueda usarlos para detectar varias condiciones o eventos de hardware sin tener que sondear continuamente el hardware.

Solo los registros 0 a 7 fueron registros de hardware construidos a partir de flip-flops usando puertas NOR. Los registros 10 a 60 (números octales) se crearon con mapas de memoria con núcleos magnéticos.

Para ahorrar muchas puertas lógicas, se ubicaron tantos registros como sea posible en la memoria central.

Para obtener más información, consulte el mapa de memoria .

¡Muchas gracias!

Se puede encontrar una gran cantidad de información sobre el AGC hurgando aquí .

Para responder a su pregunta directamente, de las Características generales de diseño de la computadora de guía Apollo disponibles en esa página, tenemos (énfasis agregado)

El AGC utiliza tres tipos de circuitos de memoria; uno es para un almacenamiento permanente de instrucciones y constantes y contiene unas 24.000 palabras. El segundo tipo es para el almacenamiento temporal de resultados intermedios, instrucciones modificadas y datos de entrada. Tiene alrededor de 1024 palabras. Ambos tipos de memoria son relativamente económicos y densos en términos del número de palabras por unidad de volumen. Pero también requieren un tiempo comparativamente largo para leer y escribir (alrededor de 12 µseg). El tercer tipo de memoria, que consta de 16 registros, tiene un tiempo de lectura y escritura de unos 2 µs y tiene un volumen unas 1000 veces mayor que los otros dos tipos de memoria. Este grupo contiene registros de entrada y salida que se comunican entre la computadora y el resto del sistema Apollo. Los registros centrales participan en las instrucciones y hacen que se efectúen las transformaciones matemáticas deseadas. ...Los registros centrales y los registros de entrada-salida se realizan mediante redes de semiconductores (compuertas NOR micrológicas).

Los registros IO se asignaron a la memoria utilizando la memoria central.
El mapeo de memoria solo significa que es accesible a través de una dirección de memoria. No dice nada sobre el hardware que realmente se usa para almacenar y recuperar el valor. La página 19 de este enlace de la página vinculada anteriormente: klabs.org/history/history_docs/mit_docs/1717.pdf dice explícitamente que los registros de entrada se basaron en flip-flop. Su respuesta anterior también señala que, aunque el mapeo de la memoria dio como resultado que los datos se copiaran en la memoria central, esa era efectivamente una memoria de solo escritura, y solo se usaron los flip-flops para esas direcciones.
Había una memoria central de solo lectura utilizada para el programa y las constantes y también una memoria central de lectura/escritura para datos variables.
Gran parte de la información entrante consiste en trenes de pulsos que deben contarse y el total acumulado debe estar disponible para el programa. El incremento de los contadores se hizo con lógica, los estados de los contadores se almacenaron en la memoria central. Entonces, este tipo de entrada pasó por la memoria central.