2010-10-08 19 views

Respuesta

3

En 86 hay dos espacios diferentes direcciones, una para la memoria, y otro para los puertos de E/S.

El espacio de direcciones de puerto se limita a 65536 puertos, y se accede utilizando las IN/OUT instrucciones.

Como ejemplo, se puede acceder a la funcionalidad VGA de una tarjeta de video usando algunos puertos de E/S, pero el framebuffer está mapeado en la memoria.

Otras arquitecturas de CPU sólo tienen un espacio de direcciones. En esas arquitecturas, todos los dispositivos tienen mapas de memoria.

7

Uhm, ... a menos que no he entendido bien, usted está hablando de dos cosas completamente diferentes. Le daré dos breves explicaciones para que pueda buscar en Google lo que necesita ahora.

E/S mapeadas en memoria significa mapear la memoria de los dispositivos de E/S en el mapa de la memoria principal. Es decir, habrá direcciones en la memoria de la computadora que en realidad no se corresponderán con su RAM, sino con los registros internos y la memoria de los dispositivos periféricos. Esta es la arquitectura de la máquina de la que hablaba Pointy.

También se asignó E/S, lo que significa tomar (por ejemplo) un archivo y que el SO cargue porciones de él en la memoria para un acceso más rápido más adelante. En Unix, esto se puede lograr a través de mmap().

Espero que haya sido de ayuda.

+0

Su respuesta es informativa pero no ha explicado IO asignado IO. – JagsVG

+0

* "habrá direcciones en la memoria de la computadora que en realidad no se corresponderán con su RAM, sino con los registros internos y la memoria de los dispositivos periféricos." * ¿Cada dispositivo tiene sus propios registros internos y memoria que asignan a la RAM (para ejemplo: ¿puede una impresora tener 4 registros mientras que una cámara web tiene 7 registros), o hay una cantidad estándar de registros y memoria que todos los dispositivos deben implementar? – John

+0

Cada dispositivo es diferente, tanto internamente como en la interfaz. Las asignaciones de memoria se pueden usar, o no. Es altamente dependiente del dispositivo – slezica

1

que tienen una más clara diferencia entre los dos. El dispositivo de E/S correlacionado de memoria es ese dispositivo de E/S que responde cuando IO/M es bajo. Mientras que un dispositivo de E/S asignado de E/S (o periférico) es el que responde cuando IO/M es alto.

4

Las E/S asignadas a la memoria se asignan al mismo espacio de direcciones que la memoria de programa y/o la memoria de usuario, y se accede de la misma manera.

La E/S asignada al puerto utiliza un espacio de direcciones dedicado y separado, y se accede a través de un conjunto dedicado de instrucciones del microprocesador.

Como los procesadores de 16 bits se vuelven obsoletos y reemplazados por 32 bits y 64 bits en general, reservar intervalos de espacio de direcciones de memoria para E/S es un problema menor, ya que el espacio de direcciones de memoria del el procesador suele ser mucho más grande que el espacio requerido para todas las memorias y dispositivos de E/S en un sistema.

Por lo tanto, se ha vuelto más frecuente práctica de tomar ventaja de los beneficios de la memoria de E/S mapeada.

La desventaja de este método es que todo el bus de dirección debe estar completamente decodificada para cada dispositivo. Por ejemplo, una máquina con un bus de direcciones de 32 bits requeriría puertas lógicas para resolver el estado de las 32 líneas de direcciones para decodificar apropiadamente la dirección específica de cualquier dispositivo. Esto aumenta el costo de agregar hardware a la máquina.

La ventaja del sistema IO Mapped IO es que se necesita menos lógica para decodificar una dirección discreta y, por lo tanto, cuesta menos agregar dispositivos de hardware a una máquina. Sin embargo, se podrían necesitar más instrucciones.

Ref: - Check This link