Direccionamiento de la ROM de la computadora de guía Apollo usando el registro del banco ROM, ¿cuál es el tamaño del registro del banco?

La computadora de guía Apollo tenía 36 K palabras de ROM de cuerda central. Para direccionar 36864 palabras, una dirección de memoria de 15 bits para hasta 32768 palabras no es suficiente, se necesitan 16 bits.

Este artículo de Wikipedia describe el direccionamiento de la ROM. Los 10 bits inferiores del campo de dirección de una instrucción seleccionan la palabra dentro de 1024 palabras.

Hay un registro Fbank de 4 bits para seleccionar el banco de ROM y una extensión Sbank de 1 bit para direccionar las últimas 4 kilopalabras.

Pero falta un bit, 10+4+1 es solo 15 y necesitamos 16 bits. Por lo tanto, el registro Fbank debería ser de 5 bits, no de 4.

¿Tengo razón sobre el tamaño del registro Fbank?

Respuestas (1)

Esa parece ser la descripción del Bloque 1. El Bloque 2 es el que tiene 36 kilopalabras de memoria. Además, parece estar equivocado sobre la cantidad de bits en el registro bancario.

https://www.ibiblio.org/apollo/Block1.html#CPU_Architecture_Registers tiene los detalles del Bloque 1 y establece que se utilizan los 5 bits altos del registro bancario.

https://www.ibiblio.org/apollo/assembly_language_manual.html#Memory_Map tiene detalles del Bloque 2: el registro FB nuevamente tiene 5 bits de índice de banco, y el bit SB es el bit 16 necesario para acceder a los últimos 4 bancos.