Sei sulla pagina 1di 0

Arquitectura de Computadoras

2011
Unidad 7: Acceso Directo a Memoria (DMA)U
2011
Acceso directo a memoria (DMA)
Las operaciones de E/S mediante interrupciones
son ms efectivas que las programadas.
Pero ambas necesitan la intervencin directa de
la CPU.
La velocidad de transferencia es limitada.
La CPU permanece ocupada mucho tiempo durante la
operacin.
Si el volumen a transferir es grande la tcnica
de DMA es la ms eficiente.
Notas de Arquitectura de Computadoras - Clase 4 2 2011
Ejemplo E/S con perifrico lento
Procesador a 200 MHz (tiempo ciclo reloj = 5 ns;
Ciclos por instruccin CPI = 2 , en promedio)
Una instruccin tarda en promedio 2 x 5 ns = 10 ns =>
la computadora puede ejecutar ~100 Mips
Queremos imprimir un archivo de 10 Kbytes en una
impresora lser de 20 pginas por minuto
1 pgina 3.000 caracteres (1 carcter = 1 byte)
La impresora imprime 60.000 caracteres por minuto = 1
Kbyte/s
Notas de Arquitectura de Computadoras - Clase 4 3 2011
Ej. con perifrico lento (2)
a) E/S con espera de respuesta
La CPU entra en un bucle y enva un nuevo byte
cada vez que la impresora est preparada para
recibirlo
La impresora tarda 10 seg en imprimir 10 Kbytes
La CPU est ocupada con la operacin de E/S
durante 10 seg.
(en ese tiempo la CPU podra haber ejecutado 1000
millones de instrucciones)
Notas de Arquitectura de Computadoras - Clase 4 4 2011
Ej. con perifrico lento (3)
b) E/S por interrupciones
La impresora genera una interrupcin cada vez que
est preparada para recibir un nuevo byte.
Si la gestin de interrupcin (ATI) tiene 10 instrucciones
(salvar contexto, comprobar estado, transferir byte,
restaurar contexto, rti)
Para transferir 10 Kbytes tenemos que ejecutar 10.000
veces la ATI
ejecutar 100.000 instrucciones para atender al perifrico la
CPU tarda 0,001 seg
La CPU est ocupada con la operacin de E/S
durante 0,001 seg.
Notas de Arquitectura de Computadoras - Clase 4 5 2011
Conclusin con perifrico lento
La E/S por interrupciones reduce en
10.000 veces el tiempo que la CPU
est ocupada gestionando la
impresora.
Notas de Arquitectura de Computadoras - Clase 4 6 2011
Ejemplo E/S con perifrico rpido
Procesador a 200 MHz (tiempo ciclo reloj = 5 ns;
Ciclos por instruccin CPI = 2 ciclos, en promedio)
Una instruccin tarda en promedio 2 x 5 ns = 10 ns la
computadora puede ejecutar ~100 Mips
Queremos transferir un archivo de memoria a disco
de 10 Mbytes.
El disco posee una velocidad de transferencia de 10 MB/s
(1 byte cada 10-7 seg 100 nanoseg)
Notas de Arquitectura de Computadoras - Clase 4 7 2011
Ej. con perifrico rpido (2)
a) E/S con espera de respuesta
La CPU entra en un bucle y enva un nuevo byte
cada vez que el disco est preparado para recibirlo
El disco tarda 1 seg. en recibir un archivo de 10 Mbytes
La CPU est ocupada con la operacin de E/S
durante 1 seg.
(en ese tiempo la CPU podra haber ejecutado 100 millones
de instrucciones)
Notas de Arquitectura de Computadoras - Clase 4 8 2011
Ej. con perifrico rpido (3)
b) E/S por interrupciones
El disco genera una interrupcin cada vez que est
preparado para recibir un nuevo byte
Si la gestin de interrupcin (ATI) tiene 10 instrucciones
(salvar contexto, comprobar estado, transferir byte,
restaurar contexto, rti)
Para transferir 10 Mbytes tenemos que ejecutar 107
veces la ATI
ejecutar 100 millones de instrucciones para atender al
perifrico la CPU tarda 1 seg.
La CPU est ocupada con la operacin de E/S
durante 1 seg.
Notas de Arquitectura de Computadoras - Clase 4 9 2011
Conclusin con perifrico rpido
La E/S por interrupciones no mejora el
tiempo que la CPU est ocupada en
atender al perifrico.
Notas de Arquitectura de Computadoras - Clase 4 10 2011
Acceso directo a memoria (DMA)
El controlador de DMA es un dispositivo capaz de
controlar una transferencia de datos entre un
perifrico y memoria sin intervencin de la CPU.
Notas de Arquitectura de Computadoras - Clase 4 11 2011
Controlador de DMA
El Controlador de DMA (DMAC) debe actuar como
maestro del bus durante la transferencia DMA y
debe ser capaz de
Solicitar el uso del bus mediante las seales y la lgica
de arbitraje necesarias
Especificar la direccin de memoria sobre la que se
realiza la transferencia
Generar las seales de control del bus
Tipo de operacin (lectura/escritura)
Seales de sincronizacin de la transferencia
Notas de Arquitectura de Computadoras - Clase 4 12 2011
Etapas de una transferencia DMA
Inicializacin de la transferencia
La CPU debe enviar al interfaz del perifrico y al DMAC los
parmetros de la transferencia
Inicializacin del interfaz (Bus master: CPU-Bus slave: Interfaz)
N de bytes a transferir
Tipo de transferencia (lectura/escritura)
Otra informacin de control (pista, sector, etc.)
Inicializacin controlador DMA(Bus master: CPU-Bus slave: DMAC)
N de bytes o palabras a transferir
Tipo de transferencia (lectura/escritura)
Direccin de memoria inicial para la transferencia
N de canal (para DMAs con varios canales)
Despus de la inicializacin la CPU retorna a sus tareas y ya
no se preocupa ms de la evolucin de la transferencia.
Notas de Arquitectura de Computadoras - Clase 4 13 2011
Etapas de una transf. DMA (2)
Realizacin de la transferencia
Cuando el perifrico est listo para realizar la
transferencia se lo indica al DMAC
El DMAC pide el control del bus y se realiza la
transferencia entre el perifrico y la memoria
Bus master: DMAC + Perifrico - Bus slave: Memoria
Despus de la transferencia de cada palabra se
actualizan los registros del DMAC
N de bytes o palabras a transferir
Direccin de memoria
Notas de Arquitectura de Computadoras - Clase 4 14 2011
Etapas de una transf. DMA (3)
Finalizacin de la transferencia
El DMAC libera el bus y devuelve el control a la CPU
El DMAC suele activar una seal de interrupcin
para indicar a la CPU la finalizacin de la operacin
de E/S solicitada
Notas de Arquitectura de Computadoras - Clase 4 15 2011
Bus del sistema y DMA
Notas de Arquitectura de Computadoras - Clase 4 16 2011
Problema que puede haber
Se puede degradar el rendimiento de la CPU si el
DMAC hace uso intensivo del bus
Si el bus est ocupado en una transferencia DMA, la CPU
no puede acceder a memoria para leer instrucc. / datos
El problema se reduce con el uso de memoria cache
La mayor parte del tiempo, la CPU lee instruc. de la cache,
por lo que no necesita usar el bus de memoria.
El DMAC puede aprovechar estos intervalos en los que la
CPU est leyendo instrucciones de la cache (y por tanto
no usa el bus de memoria) para realizar las transferencias.
Notas de Arquitectura de Computadoras - Clase 4 17 2011
Problema que puede haber (2)
En caso de computadores sin cache
El procesador no utiliza el bus en todas las fases de la
ejecucin de una instruccin.
El DMAC puede aprovechar las fases de ejecucin de
una instruccin en las que la CPU no utiliza el bus para
realizar sus transferencias.
Notas de Arquitectura de Computadoras - Clase 4 18 2011
Tipos de transferencias
Si el DMAC slo toma el control del bus durante
los intervalos de tiempo en los que la CPU no
hace uso del mismo el rendimiento del
sistema no sufrir degradacin alguna
Se distinguen dos tipos de transferencias:
Por rfagas (burst)
Por robo de ciclo (cycle-stealing)
Notas de Arquitectura de Computadoras - Clase 4 19 2011
DMA modo rfaga
El DMAC solicita el control del bus a la CPU
Cuando la CPU concede el bus, el DMAC no lo libera
hasta haber finalizado la transferencia de todo el
bloque de datos completo.
VENTAJAS:
La transferencia se realiza de forma rpida.
DESVENTAJAS:
Durante el tiempo que dura la transferencia la CPU no
puede utilizar el bus con memoria, lo que puede degradar
el rendimiento del sistema.
Notas de Arquitectura de Computadoras - Clase 4 20 2011
DMA modo robo de ciclo
El DMAC solicita el control del bus a la CPU.
Cuando la CPU concede el bus al DMAC, se realiza
la transferencia de una nica palabra y despus el
DMAC libera el bus.
El DMAC solicita el control del bus tantas veces
como sea necesario hasta finalizar la transferencia
del bloque completo
VENTAJAS:
No se degrada el rendimiento del sistema.
DESVENTAJAS:
La transferencia tarda ms tiempo en llevarse a cabo.
Notas de Arquitectura de Computadoras - Clase 4 21 2011
DMA modo robo de ciclo (2)
Para la CPU no es una interrupcin.
El procesador no debe guardar el contexto.
Si bien el trabajo de la CPU es lento, no ser tanto
como si ella realizara la transferencia.
Por lo tanto, para transferencia de E/S de mltiples
palabras, es la tcnica ms eficiente.
Notas de Arquitectura de Computadoras - Clase 4 22 2011
Estructura de un DMAC
Notas de Arquitectura de Computadoras - Clase 4 23 2011
Configuraciones del DMA (1)
CPU
Mdulo de
DMA
E/S E/S Memoria
Bus nico, mdulo de DMA independiente.
El DMA utiliza E/S programadas para transferir
entre la memoria y los mdulos de E/S.
Cada transferencia utiliza dos veces el bus.
Desde el mdulo de E/S al DMA y desde el DMA a la
memoria.
La CPU debe esperar dos veces.
Notas de Arquitectura de Computadoras - Clase 4 24 2011
Configuraciones del DMA (2)
CPU
Mdulo de
DMA
Mdulo de
DMA
Memoria
E/S
E/S E/S
Bus nico, DMA integrado al mdulo de E/S conectado
a varios mdulos de E/S.
El mdulo de E/S puede controlar varios dispositivos.
Cada transferencia usa el bus una vez.
Del DMA a la memoria.
La CPU se detiene slo una vez
comunicacin de la finalizacin de la tarea.
Notas de Arquitectura de Computadoras - Clase 4 25 2011
Controlador DMA de varios
canales
Notas de Arquitectura de Computadoras - Clase 4 26 2011
Configuraciones del DMA (3)
CPU
Mdulo de
DMA
Memoria
E/S E/S E/S E/S
Bus de E/S separado del bus del sistema.
Derivado de la configuracin anterior.
Cada transferencia usa el bus del sistema una
sola vez.
Del DMA a la memoria.
Notas de Arquitectura de Computadoras - Clase 4 27 2011
Configuraciones del DMA (3) (cont.)
A la CPU se la interrumpe slo una vez.
Configuracin fcilmente expandible.
Como en el caso anterior la transferencia de
datos entre el DMA y los mdulos de E/S se
realizan fuera del bus del sistema.
Notas de Arquitectura de Computadoras - Clase 4 28 2011

Potrebbero piacerti anche