Está en la página 1de 28

Arquitectura de Computadoras 2011

Clase 4 Acceso Directo a Memoria (DMA) Canales de E/S

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.


2011

Notas de Arquitectura de Computadoras - Clase 4

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

2011

Notas de Arquitectura de Computadoras - Clase 4

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)
2011

Notas de Arquitectura de Computadoras - Clase 4

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.


2011

Notas de Arquitectura de Computadoras - Clase 4

Conclusin con perifrico lento La E/S por interrupciones reduce en 10.000 veces el tiempo que la CPU est ocupada gestionando la impresora.

2011

Notas de Arquitectura de Computadoras - Clase 4

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)

2011

Notas de Arquitectura de Computadoras - Clase 4

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)

2011

Notas de Arquitectura de Computadoras - Clase 4

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.


2011

Notas de Arquitectura de Computadoras - Clase 4

Conclusin con perifrico rpido La E/S por interrupciones no mejora el tiempo que la CPU est ocupada en atender al perifrico.

2011

Notas de Arquitectura de Computadoras - Clase 4

10

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.

2011

Notas de Arquitectura de Computadoras - Clase 4

11

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

2011

Notas de Arquitectura de Computadoras - Clase 4

12

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.


2011

Notas de Arquitectura de Computadoras - Clase 4

13

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

2011

Notas de Arquitectura de Computadoras - Clase 4

14

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

2011

Notas de Arquitectura de Computadoras - Clase 4

15

Bus del sistema y DMA

2011

Notas de Arquitectura de Computadoras - Clase 4

16

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.
2011

Notas de Arquitectura de Computadoras - Clase 4

17

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.

2011

Notas de Arquitectura de Computadoras - Clase 4

18

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)

2011

Notas de Arquitectura de Computadoras - Clase 4

19

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.
2011

Notas de Arquitectura de Computadoras - Clase 4

20

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.
2011

Notas de Arquitectura de Computadoras - Clase 4

21

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.

2011

Notas de Arquitectura de Computadoras - Clase 4

22

Estructura de un DMAC

2011

Notas de Arquitectura de Computadoras - Clase 4

23

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.


2011

Notas de Arquitectura de Computadoras - Clase 4

24

Configuraciones del DMA (2)


CPU Mdulo de DMA Mdulo de DMA E/S E/S E/S Memoria

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.
2011

Notas de Arquitectura de Computadoras - Clase 4

25

Controlador DMA de varios canales

2011

Notas de Arquitectura de Computadoras - Clase 4

26

Configuraciones del DMA (3)


CPU Mdulo de DMA E/S E/S E/S Memoria

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.
2011

Notas de Arquitectura de Computadoras - Clase 4

27

Configuraciones del DMA (3)


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.

(cont.)

2011

Notas de Arquitectura de Computadoras - Clase 4

28

También podría gustarte