fbpx
Wikipedia

E/S mapeada en memoria

E/S mapeada en memoria y E/S independiente son dos métodos de implementar entradas/salidas entre los periféricos y la CPU en un computador. Otro método, no discutido en este artículo, es usar DMA.

La E/S mapeada en memoria usa el mismo bus de direcciones para memoria y dispositivos de E/S, y las instrucciones de la CPU usadas para acceder a la memoria son también usadas para acceder a los dispositivos.

Para tener espacio para los dispositivos de E/S, las áreas del espacio direccionable por la CPU deben ser reservadas para E/S más que para memoria. Esta reserva puede ser tempora(Commodorere 64 podía usar bank switingch entre dispositivos de E/S y memor) o permanente. Cada dispositivo de E/S monitoriza el bus de direcciones de la CPU y responde a cualquier acceso de esta al espacio de direcciones del dispositivo, conectando el bus de datos con la localización en memoria física del dispositivo deseado.

La E/S independiente usa un tipo especial de instrucciones de la CPU para implementar E/S. Principalmente en microprocesadores Intel encontramos las instrucciones IN y OUT que pueden leer y escribir un único byte en un dispositivo de E/S. Estos tienen un espacio de direcciones separadas de la memoria, llevado a cabo o bien por un "pin E/S” extra en la CPU o bien por un bus entero dedicado a E/S.

Un dispositivo de acceso directo a memoria (DMA) no se ve afectado por estos métodos de comunicación CPU-dispositivo, especialmente por la E/S mapeada en memoria. Esto es porque, por definición, DMA es un método de comunicación memoria-dispositivo que evita la CPU.

Una interrupción hardware es otro método de comunicación entre CPU y periféricos. No obstante, se trata siempre separadamente por múltiples razones. Es un iniciador de dispositivo, en oposición a los métodos iniciadores de CPU. Es también unidireccional, pues la información fluye solo del dispositivo a la CPU. Para terminar cada interrupción lleva consigo misma solo un bit de información con la única intención de notificar la interrupción.

Ventajas de ambos métodos de E/S

La principal ventaja de usar E/S independiente se aprecia en CPUs con limitada capacidad de direccionamiento. Debido a que la E/S independiente separa el acceso a E/S del acceso a memoria, el espacio de direcciones puede ser usado por completo para esta última.

Si los buses de datos y direcciones son compartidos, las operaciones de E/S pueden ralentizar los accesos a memoria. Esto se debe a que los accesos a E/S suelen ser mucho más lentos que los accesos a la memoria principal. En algunas arquitecturas, la E/S independiente opera con un bus dedicado, solventando así este inconveniente.

La ventaja de usar E/S mapeada en memoria es que, dejando a un lado la complejidad extra que conlleva la E/S independiente, la CPU requiere menos lógica interna y por ende más barata, rápida y fácil de construir; esto sigue los principios básicos de RISC, y es también ventajoso en sistemas embebidos. El hecho de que instrucciones regulares de memoria sean usadas para direccionar a E/S también significa que todos los modos de direccionamiento de la CPU que están disponibles para memoria lo estén también para E/S. Ya que los periféricos de 16 bits han quedado anticuados y han sido sustituidos por los de 32 y 64 bits, reservar rangos del espacio de direcciones para E/S no supone un gran problema.

Ejemplo

Considerar un sistema construido alrededor de un microprocesador de 8 bits. Dicha CPU tendrá un bus de direcciones de 16 bits, permitiendo direccionar 64 kilobytes (KB) de memoria. En este sistema, los primeros 32 KB del espacio de direcciones serían asignados a la memoria, otros 16 KB a la ROM y el espacio restante a dispositivos como temporizadores, contadores, chips de visualizadores de video, dispositivos generadores de sonido, etc. El hardware de este sistema está organizado de forma que los dispositivos únicamente responderán a direcciones particulares del bus de direcciones, las cuales serán previstas para ellos. Todas las demás direcciones serán ignoradas. Este es el trabajo del decodificador de direcciones, y será lo que establezca el mapa de memoria del sistema.

De esta forma tendríamos un mapa de memoria como el siguiente:


Dispositivo Rango de direcciones
(hexadecimal)
Tamaño
RAM 0000 - 7FFF 32 KiB
E/S de propósito general 8000 - 80FF 256 bytes
Controlador de sonido 9000 - 90FF 256 bytes
Controlador de video/text-mapped display RAM A000 - A7FF 2 KiB
ROM C000 - FFFF 16 KiB

Nótese que este mapa de memoria contiene lagunas, lo cual es bastante común.

Asumiendo que el cuarto registro del controlador de video establece el color de fondo de la pantalla, la CPU podrá establecer este color escribiendo un valor en la posición A003 usando su instrucción de escritura estándar. Usando el mismo método gráficos pueden ser visualizados en pantalla escribiendo valores de caracteres en una área especial de la RAM dentro del controlador de video. Debido a su bajo coste la RAM permitirá visualizadores de bits mapeados.

Tipos básicos de decodificación de direcciones

  • Exhaustivo – 1:1 – Una única dirección para acceder a una localización en memoria física.
  • Parcial – n: 1 – Un conjunto único de n direcciones para referenciar a una localización en memoria física. Esto tiene la ventaja de que simplifica el hardware de decodificación y los inconvenientes de, como ya hemos dicho antes, usar varias direcciones para una misma palabra, no detectar direcciones no implementadas y dificultar las modificaciones.
  • Lineal - Las líneas de direcciones son usadas directamente sin lógica de decodificación alguna.

Decodificación de direcciones incompleta

Las direcciones pueden ser decodificadas completa o incompletamente por un dispositivo.

  • La decodificación completa conlleva chequear cada línea del bus de direcciones, comunicando el bus de datos con la localización en memoria física correspondiente.
  • La decodificación incompleta o parcial usa lógica más simple y normalmente más barata que examina solo algunas líneas del bus de direcciones.Este simple circuito de decodificación permite a un dispositivo responder a varias direcciones diferentes, creando copias virtuales del dispositivo en lugares diferentes del mapa de memoria. Todas estas copias se refieren al mismo dispositivo real, así que no hay una principal ventaja haciendo esto, excepto la simplificación del decodificador. Comúnmente, la descodificación es programable, así el sistema puede reconfigurar su propio mapa de memoria como lo necesite.


  •   Datos: Q891094

mapeada, memoria, este, artículo, sección, necesita, referencias, aparezcan, publicación, acreditada, este, aviso, puesto, abril, 2009, independiente, métodos, implementar, entradas, salidas, entre, periféricos, computador, otro, método, discutido, este, artíc. Este articulo o seccion necesita referencias que aparezcan en una publicacion acreditada Este aviso fue puesto el 4 de abril de 2009 E S mapeada en memoria y E S independiente son dos metodos de implementar entradas salidas entre los perifericos y la CPU en un computador Otro metodo no discutido en este articulo es usar DMA La E S mapeada en memoria usa el mismo bus de direcciones para memoria y dispositivos de E S y las instrucciones de la CPU usadas para acceder a la memoria son tambien usadas para acceder a los dispositivos Para tener espacio para los dispositivos de E S las areas del espacio direccionable por la CPU deben ser reservadas para E S mas que para memoria Esta reserva puede ser tempora Commodorere 64 podia usar bank switingch entre dispositivos de E S y memor o permanente Cada dispositivo de E S monitoriza el bus de direcciones de la CPU y responde a cualquier acceso de esta al espacio de direcciones del dispositivo conectando el bus de datos con la localizacion en memoria fisica del dispositivo deseado La E S independiente usa un tipo especial de instrucciones de la CPU para implementar E S Principalmente en microprocesadores Intel encontramos las instrucciones IN y OUT que pueden leer y escribir un unico byte en un dispositivo de E S Estos tienen un espacio de direcciones separadas de la memoria llevado a cabo o bien por un pin E S extra en la CPU o bien por un bus entero dedicado a E S Un dispositivo de acceso directo a memoria DMA no se ve afectado por estos metodos de comunicacion CPU dispositivo especialmente por la E S mapeada en memoria Esto es porque por definicion DMA es un metodo de comunicacion memoria dispositivo que evita la CPU Una interrupcion hardware es otro metodo de comunicacion entre CPU y perifericos No obstante se trata siempre separadamente por multiples razones Es un iniciador de dispositivo en oposicion a los metodos iniciadores de CPU Es tambien unidireccional pues la informacion fluye solo del dispositivo a la CPU Para terminar cada interrupcion lleva consigo misma solo un bit de informacion con la unica intencion de notificar la interrupcion Indice 1 Ventajas de ambos metodos de E S 2 Ejemplo 3 Tipos basicos de decodificacion de direcciones 4 Decodificacion de direcciones incompletaVentajas de ambos metodos de E S EditarLa principal ventaja de usar E S independiente se aprecia en CPUs con limitada capacidad de direccionamiento Debido a que la E S independiente separa el acceso a E S del acceso a memoria el espacio de direcciones puede ser usado por completo para esta ultima Si los buses de datos y direcciones son compartidos las operaciones de E S pueden ralentizar los accesos a memoria Esto se debe a que los accesos a E S suelen ser mucho mas lentos que los accesos a la memoria principal En algunas arquitecturas la E S independiente opera con un bus dedicado solventando asi este inconveniente La ventaja de usar E S mapeada en memoria es que dejando a un lado la complejidad extra que conlleva la E S independiente la CPU requiere menos logica interna y por ende mas barata rapida y facil de construir esto sigue los principios basicos de RISC y es tambien ventajoso en sistemas embebidos El hecho de que instrucciones regulares de memoria sean usadas para direccionar a E S tambien significa que todos los modos de direccionamiento de la CPU que estan disponibles para memoria lo esten tambien para E S Ya que los perifericos de 16 bits han quedado anticuados y han sido sustituidos por los de 32 y 64 bits reservar rangos del espacio de direcciones para E S no supone un gran problema Ejemplo EditarConsiderar un sistema construido alrededor de un microprocesador de 8 bits Dicha CPU tendra un bus de direcciones de 16 bits permitiendo direccionar 64 kilobytes KB de memoria En este sistema los primeros 32 KB del espacio de direcciones serian asignados a la memoria otros 16 KB a la ROM y el espacio restante a dispositivos como temporizadores contadores chips de visualizadores de video dispositivos generadores de sonido etc El hardware de este sistema esta organizado de forma que los dispositivos unicamente responderan a direcciones particulares del bus de direcciones las cuales seran previstas para ellos Todas las demas direcciones seran ignoradas Este es el trabajo del decodificador de direcciones y sera lo que establezca el mapa de memoria del sistema De esta forma tendriamos un mapa de memoria como el siguiente Dispositivo Rango de direcciones hexadecimal TamanoRAM 0000 7FFF 32 KiBE S de proposito general 8000 80FF 256 bytesControlador de sonido 9000 90FF 256 bytesControlador de video text mapped display RAM A000 A7FF 2 KiBROM C000 FFFF 16 KiBNotese que este mapa de memoria contiene lagunas lo cual es bastante comun Asumiendo que el cuarto registro del controlador de video establece el color de fondo de la pantalla la CPU podra establecer este color escribiendo un valor en la posicion A003 usando su instruccion de escritura estandar Usando el mismo metodo graficos pueden ser visualizados en pantalla escribiendo valores de caracteres en una area especial de la RAM dentro del controlador de video Debido a su bajo coste la RAM permitira visualizadores de bits mapeados Tipos basicos de decodificacion de direcciones EditarExhaustivo 1 1 Una unica direccion para acceder a una localizacion en memoria fisica Parcial n 1 Un conjunto unico de n direcciones para referenciar a una localizacion en memoria fisica Esto tiene la ventaja de que simplifica el hardware de decodificacion y los inconvenientes de como ya hemos dicho antes usar varias direcciones para una misma palabra no detectar direcciones no implementadas y dificultar las modificaciones Lineal Las lineas de direcciones son usadas directamente sin logica de decodificacion alguna Decodificacion de direcciones incompleta EditarLas direcciones pueden ser decodificadas completa o incompletamente por un dispositivo La decodificacion completa conlleva chequear cada linea del bus de direcciones comunicando el bus de datos con la localizacion en memoria fisica correspondiente La decodificacion incompleta o parcial usa logica mas simple y normalmente mas barata que examina solo algunas lineas del bus de direcciones Este simple circuito de decodificacion permite a un dispositivo responder a varias direcciones diferentes creando copias virtuales del dispositivo en lugares diferentes del mapa de memoria Todas estas copias se refieren al mismo dispositivo real asi que no hay una principal ventaja haciendo esto excepto la simplificacion del decodificador Comunmente la descodificacion es programable asi el sistema puede reconfigurar su propio mapa de memoria como lo necesite Datos Q891094Obtenido de https es wikipedia org w index php title E S mapeada en memoria amp oldid 131780156, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos