¿Cuál es la diferencia entre la E / S mapeada en memoria y la E / S asignada periférica?

¿Ha encontrado solución de Distinguir entre las E / S periféricas de E / S asignadas por las memorias?

Memoria E / S asignada

– Dirección del dispositivo de 16 bits
– Transferencia de datos entre cualquier registro de propósito general y puerto de E / S.
– El mapa de memoria (64K) se comparte entre el dispositivo de E / S y la memoria del sistema.
– Se necesita más hardware para decodificar direcciones de 16 bits
– La operación aritmética o lógica se puede realizar directamente con datos de E / S

-Las señales de control utilizadas son como MEMR (barra), MEMW (barra)

-Las instrucciones utilizadas son como STA, STAX, LDA, LDAX

Peripheral MappedI / O

– Dirección del dispositivo de 8 bits
– Los datos solo se transfieren entre el acumulador y el puerto IO
– El mapa de E / S es independiente del mapa de memoria; 256 dispositivo de entrada y 256. dispositivo de salida se pueden conectar
– Se requiere menos hardware para decodificar la dirección de 8 bits
– La operación aritmética o lógica no se puede realizar directamente con datos de E / S

-Las señales de control utilizadas son como IOR (bar), IOW (bar)

-Las instrucciones utilizadas son como IN, OUT

PS- Esa barra dentro del soporte significa señal baja activa.

No sé nada sobre esa cosa de E / S pero recibí una notificación sobre su consulta, así que espero que esto sea el comienzo de su búsqueda.

E / S mapeada en memoria – Wikipedia

Las E / S asignadas en memoria ( MMIO ) y las E / S asignadas por puerto ( PMIO ) (que también se llaman E / S aisladas ) son dos métodos complementarios para realizar entradas / salidas (E / S) entre la CPU y los dispositivos periféricos en un ordenador. Un enfoque alternativo es usar procesadores de E / S dedicados, comúnmente conocidos como canales en computadoras mainframe, que ejecutan sus propias instrucciones.

E / S asignadas en memoria (que no debe confundirse con E / S de archivos mapeados en memoria) utiliza el mismo bus de direcciones para direccionar tanto la memoria como los dispositivos de E / S: la memoria y los registros de los dispositivos de E / S están mapeados (asociados) con) valores de dirección. Entonces, cuando la CPU accede a una dirección, puede referirse a una parte de la RAM física, pero también puede referirse a la memoria del dispositivo de E / S. Por lo tanto, las instrucciones de la CPU utilizadas para acceder a la memoria también se pueden usar para acceder a los dispositivos. Cada dispositivo de E / S supervisa el bus de direcciones de la CPU y responde a cualquier acceso de la CPU de una dirección asignada a ese dispositivo, conectando el bus de datos al registro de hardware del dispositivo deseado. Para acomodar los dispositivos de E / S, las áreas de las direcciones utilizadas por la CPU deben reservarse para E / S y no deben estar disponibles para la memoria física normal. La reserva puede ser permanente o temporal; un ejemplo para este último es el Commodore 64 que usa la conmutación bancaria entre sus dispositivos de E / S y la memoria normal.

Las E / S asignadas al puerto a menudo usan una clase especial de instrucciones de CPU diseñadas específicamente para realizar E / S, como las instrucciones de out y out que se encuentran en los microprocesadores basadas en las arquitecturas x86 y x86-64. Diferentes formas de estas dos instrucciones pueden copiar uno, dos o cuatro bytes ( outw , outw y outl , respectivamente) entre el registro EAX o una de las subdivisiones de ese registro en la CPU y un puerto de E / S especificado que está asignado a un I / O dispositivo. Los dispositivos de E / S tienen un espacio de direcciones separado de la memoria general, ya sea mediante un pin adicional de “E / S” en la interfaz física de la CPU o un bus completo dedicado a E / S. Como el espacio de direcciones para E / S está aislado del de la memoria principal, a veces se lo denomina E / S aislada.

Este enlace ilustra el concepto de alguna manera:

¿Distingue entre las memorias I / O periféricas asignadas de E / S?

Pero no llega lo suficientemente lejos. En un sistema de E / S mapeado en memoria, no hay instrucciones de la máquina que sean específicas para leer o escribir datos en un dispositivo. En cambio, los rangos de direcciones específicos del espacio de memoria están “conectados” a los dispositivos de manera que la obtención de datos desde cualquiera de esas áreas provoca una operación de lectura en el dispositivo asociado, y el almacenamiento de datos en ellos provoca una escritura. En un sistema mapeado periférico hay instrucciones específicas de la máquina solo para las operaciones de E / S que se utilizan para seleccionar el dispositivo, describir la operación que se realizará y designar la ubicación de datos / memoria asociada involucrada. Algunos sistemas solo pueden mover datos a / desde una dirección específica o registro / acumulador y, por lo tanto, imponer una longitud fija para las operaciones, otros pueden usar cualquier ubicación y longitud de la memoria.

Si escribe en una dirección de memoria específica (como se indica en la hoja de especificaciones de un uC) y un LED en la E / S parpadea, entonces se asigna IO a la memoria. Para usar el IO, escriba en las ubicaciones de memoria.

Si, por otro lado, los puertos IO tienen registros especiales en los que el código debe escribir para que el LED parpadee. Luego tienes IO asignado a Periférico.

Espero que haya ayudado.

He respondido esto antes.

Lea aquí: la respuesta de Nikhil Magdum a ¿Cuál es la diferencia entre una E / S asignada de E / S y una E / S asignada de memoria en la interfaz del microprocesador?

Diferencia b / n Memory E / S mapeada y Periphral Mapped I / O se dan a continuación.

Memoria E / S mapeada: –

– Dirección del dispositivo de 16 bits
– Transferencia de datos entre cualquier registro de propósito general y puerto de E / S.
– El mapa de memoria (64K) se comparte entre el dispositivo de E / S y la memoria del sistema.
– Se necesita más hardware para decodificar direcciones de 16 bits
– La operación aritmética o lógica se puede realizar directamente con datos de E / S

Periferia de E / S asignada: –

– Dirección del dispositivo de 8 bits
– Los datos solo se transfieren entre el acumulador y el puerto IO
– El mapa de E / S es independiente del mapa de memoria; 256 dispositivo de entrada y 256. dispositivo de salida se pueden conectar
– Se requiere menos hardware para decodificar la dirección de 8 bits
– La operación aritmética o lógica no se puede realizar directamente con datos de E / S

Hay diferentes arquitecturas para E / S.

En las PC, el hardware tiene puertos de E / S e instrucciones especiales que mueven los datos hacia y desde estos puertos. Una modificación de este esquema permite DMA para dispositivos de gran volumen como discos.

Algunas arquitecturas tratan los puertos de E / S como direcciones de memoria. Recuerdo DEC PDPs y algunos otros miniordenadores y microcomputadores de esta manera.

Los mainframes utilizan arquitecturas de E / S de muy alto rendimiento en las que los canales de E / S independientes, los controladores y los dispositivos manejan las E / S de forma autónoma después de recibir instrucciones (programas de canal). A menudo, solo hay una instrucción de máquina única para E / S.