El microprocesador 8086 puede direccionar hasta 1 MB de memoria (bus de direcciones de 20 bits). La mayoría de los libros muestran un diagrama de esta memoria de 1 MB que, a su vez, muestra tablas de vectores de interrupción, funciones de DOS, rutinas de BIOS que ocupan espacio en la memoria, etc.
MI PREGUNTA:
Cuando se hace referencia a 1 MB de memoria, los libros se refieren a la ROM y RAM de la computadora. ¿Está interconectada la ROM + RAM = 1 MB de memoria? En caso afirmativo, cuando la E/S asignada a la memoria se muestra como un segmento de memoria en este espacio de memoria de 1 MB... ¿significan que los puertos de E/S están ocupando parte de la memoria RAM?
Cuando se hace referencia a 1 MB de memoria, los libros se refieren a la ROM y RAM de la computadora. ¿Está interconectada la ROM + RAM = 1 MB de memoria?
Correcto. La CPU no distingue entre RAM y ROM; el espacio de direcciones de 1 MB se comparte entre ambos.
En caso afirmativo, cuando la E/S asignada a la memoria se muestra como un segmento de memoria en este espacio de memoria de 1 MB... ¿significan que los puertos de E/S están ocupando parte de la memoria RAM?
Algo así como. Los puertos de E/S (como los usan las instrucciones IN
y OUT
) son técnicamente un espacio de direcciones separado en x86 y no ocupan espacio de direcciones de memoria.
Sin embargo, se accede a los periféricos mapeados en memoria como si fueran memoria y ocupan espacio de direcciones de memoria (que comparten con la RAM y la ROM).
Primero, descargue la hoja de datos 8086 como referencia.
Cuando se hace referencia a 1 MB de memoria, los libros se refieren a la ROM y RAM de la computadora.
Se refieren al espacio direccionable del microprocesador. Mire la hoja de datos, muestra las líneas A19: A16 y AD15: AD0 que se utilizan para abordar el espacio exterior durante el ciclo T1. A la CPU no le importa lo que hay en el espacio exterior, solo le dice que quiere contenidos de la dirección específica.
¿Está interconectada la ROM + RAM = 1 MB de memoria?
Puede tener ROM, RAM y cualquier cosa que responda en el bus de datos a la CPU cuando solicita una dirección específica. La ROM y la RAM son solo los tipos más comunes de dispositivos que responderán.
cuando la E/S asignada a la memoria se muestra como un segmento de memoria en este espacio de memoria de 1 MB
Mira aquí . La CPU usa un pin para identificar en su mundo exterior el tipo de comando que usa para acceder (leer [RD] o escribir [WR]), su nombre es M/IO. Si este pin es alto, el comando que se ejecuta en la CPU es una instrucción MOV y se esperan contenidos del espacio de la memoria . Cuando este pin es bajo, la CPU está ejecutando la instrucción IN/OUT y se esperan contenidos del dispositivo de entrada/salida .
Sin embargo , nada prohíbe que el posible dispositivo de E/S responda cuando este pin M/IO esté alto y sea como una memoria .
En general, estos tipos ( espacio de memoria y espacio de E/S) se diseñaron en los viejos tiempos cuando la memoria RAM era escasa y la lógica costosa; tener un circuito de E/S separado liberará espacio direccionable de memoria y era más pequeño que el espacio direccionable de memoria (por ejemplo, 16 bits, o incluso 8 bits en lugar de 20/16 bits). Era conveniente y comprensible.
Sin embargo, algunos diseñadores de los dispositivos decidieron que querrían que sus posibles dispositivos de E/S respondieran a lecturas y escrituras de celdas de RAM, en lugar de lecturas/escrituras de puertos; las razones podrían ser que la E/S de RAM es más rápida, ocupa menos bytes de instrucción, etc.
¿Significan que los puertos de E/S están tomando parte de la memoria RAM?
Sí: el dispositivo de E/S asignado a la memoria , que responde a la solicitud de lectura/escritura en el espacio direccionable de la memoria , quita ese espacio del espacio útil de la RAM. Por ejemplo, en las computadoras más antiguas de 8 bits con RAM ranurada, los diseñadores a menudo implementaban registros de E/S del controlador de disquete (que es entrada/salida en lugar de dispositivo de memoria) para que fueran direccionables a través de ubicaciones especiales de RAM.
broma