Acceso Directo a Memoria
Acceso directo a Memoria
Página 2
EL - 4311 Estructura de Microprocesadores
Ing. José Alberto Díaz García
Acceso Directo a Memoria
Manejo de periféricos
• El 8088 y 8086 emplean dos formas diferentes para el manejo de entrada/salida:
– Entrada/salida aislada
– Entrada/salida mapeada (en memoria)
• Estos métodos para el manejo de
entrada/salida difieren en como los puertos se
mapean en los dos espacios de direcciones del
8088/8086.
Acceso Directo a Memoria
Espacios de direcciones del 8088/86
FFFF
0001H 0000H
Espacio de I/O Puerto 1 Puerto 0 FFFFF
00001H
Espacio memoria de
Puerto 1
Página 4
EL - 4311 Estructura de Microprocesadores
Ing. José Alberto Díaz García
Acceso Directo a Memoria
¿Cuáles son las ventajas y desventajas de aislar los puertos de entrada/salida?
• Ventajas:
– El Mega Byte de espacio de memoria se puede
utilizar para cualquier cosa excepto para el manejo de dispositivos periféricos.
– Se cuenta con instrucciones especiales para las operaciones de entrada y salida.
• Desventajas:
– Todas las transferencias de datos se realizan
utilizando los registros AL y AX y los puertos de
entrada/salida.
Acceso Directo a Memoria
mapeados?
• Ventajas:
– Se cuenta con muchas instrucciones y modos de direccionamiento para realizar las operaciones de entrada/salida.
– Las transferencias entre los dispositivos se pueden realizar utilizando cualquier registro de trabajo.
• Desventajas:
– Las instrucciones de memoria son más lentas en ejecutarse que las diseñadas para el manejo de entrada/salida.
– Se pierde parte de la memoria.
Página 6
EL - 4311 Estructura de Microprocesadores
Ing. José Alberto Díaz García
Acceso Directo a Memoria
¿Qué es DMA?
• Es un proceso para transferir datos entre la memoria y otros dispositivos sin que intervenga el procesador. En otras palabras el dispositivo externo toma control
sobre los buses del sistema.
• Es una transferencia de datos a alta velocidad entre los periféricos que almacenan datos, por ejemplo, discos duros, cintas magnéticas, CD-ROM, y algunas veces los controladores de video.
• Por ejemplo, en un disco duro la tasa de transferencia es de 5 MBytes por segundo, se transfiere un Byte cada 200 ns.
• La transferencia normal de un Byte toma 29 ciclos de reloj. Mientras que con un DMA las transferencias requieren de solo 5 ciclos de reloj.
• Los DMAs actuales pueden operar a tasas de
transferencia de 60 MBytes por segundo. La tasa de
transferencia esta limitada por el tiempo de acceso de
la memoria y los dispositivos periféricos.
Acceso Directo a Memoria
Antes de DMA
• PIO (I/O programada).
– CPU controla la transferencia de datos.
– El procesador controla todas la
transferencias, y se producen cuellos de botella.
– Solamente se aplica en donde la
transferencia de datos es muy baja y son
pocas las tareas.
Página 8
EL - 4311 Estructura de Microprocesadores
Ing. José Alberto Díaz García
Acceso Directo a Memoria
Como trabaja el DMA
1. El CPU carga los registros del controlador: Direcciones, cantidad de bytes a transferir, dispositivo.
2. Dispositivo envia DRQ (solicitud de datos) al controlador de DMA; el controlador envia la señal de HOLD al CPU
(solicitando los buses)
3. El CPU envía al controlador HOLDA indicando que en el próximo ciclo se liberan los buses.
4. El controlador envía al dispositivo un DACK: para que inicie la transferencia.
5. Una vez finalizado, el controlador interrumpe el CPU,
restablece el HOLD, y el CPU restablece HOLDA. A partir
de este momento el CPU toma control nuevamente de los
buses.
Acceso Directo a Memoria
• Observe que la entrada HOLD tiene una prioridad mayor que las entradas de
interrupción INTR o NMI.
• La interrupción tiene efecto al final de una
instrucción, mientras que HOLD tiene efecto a la mitad de la misma.
• La única señal del microprocesador que tiene una prioridad mayor que HOLD es reset.
• La entrada HOLD no debe estar activa durante
el RESET o no se garantiza la restauración.
Página 10
EL - 4311 Estructura de Microprocesadores
Ing. José Alberto Díaz García
Acceso Directo a Memoria
Controlador de memoria
El controlador de DMA interconecta diferentes dispositivos que solicitan acceso a la memoria.
El controlador “decide” la prioridad cuando se solicita el acceso simultáneo por medio de dos periféricos distintos, se comunica con los periféricos y provee direccionamiento de memoria para que se realicen las transferencias.
El controlador DMA más comúnmente utilizado con la familia 86/88 es el 8237.
El 8237 de hecho es un microprocesador con funciones
dedicadas. Normalmente aparece como una parte funcional de un chip set.
El 8237 es un dispositivo con cuatro canales para la
transferencia de datos. Cada canal se dedica a un dispositivo
periférico y es capaz de direccionar bloques de hasta 64 K
Bytes de memoria.
Acceso Directo a Memoria
A2
A11 A7 A1
A9 A10 A0
A6
A15 8282
1 2 3 4 5 6 7 8 9
19 18 17 16 15 14 13 12 I0
I1 I2 I3 I4 I5 I6 I7
O0 O1 O2 O3 O4 O5 O6 O7
A8
A12 A3 A5
A14 8237
5 6 12 13 11 7 19 18 17 16 36 1 2
32 33 34 35 37 38 39 40 30 29 28 27 26 23 22 21 25 VX
READY CLK RESET CS HLDA DRQ0 DRQ1 DRQ2 DRQ3 EOP IOR IOW
A0 A1 A2 A3 A4 A5 A6 A7 DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7
A4
A13