14
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 más efectivas que las programadas. Pero ambas necesitan la intervención directa de la CPU. La velocidad de transferencia es limitada. La CPU permanece ocupada mucho tiempo durante la operación. Si el volumen a transferir es grande la técnica de DMA es la más eficiente. Notas de Arquitectura de Computadoras - Clase 4 2 2011

Arquitectura de Computadoras 2011 - UNNEexa.unne.edu.ar/informatica/arquitectura/archivos/unidad... · 2015-03-20 · Ejemplo E/S con periférico lento •Procesador a 200 MHz (tiempo

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Arquitectura de Computadoras 2011 - UNNEexa.unne.edu.ar/informatica/arquitectura/archivos/unidad... · 2015-03-20 · Ejemplo E/S con periférico lento •Procesador a 200 MHz (tiempo

Arquitectura de Computadoras2011

Unidad 7: Acceso Directo a Memoria (DMA)U

2011

Acceso directo a memoria (DMA)

• Las operaciones de E/S mediante interrupciones

son más efectivas que las programadas.

• Pero ambas necesitan la intervención directa de

la CPU.• La velocidad de transferencia es limitada.

• La CPU permanece ocupada mucho tiempo durante laoperación.

• Si el volumen a transferir es grande la técnica

de DMA es la más eficiente.

Notas de Arquitectura de Computadoras - Clase 4 22011

Page 2: Arquitectura de Computadoras 2011 - UNNEexa.unne.edu.ar/informatica/arquitectura/archivos/unidad... · 2015-03-20 · Ejemplo E/S con periférico lento •Procesador a 200 MHz (tiempo

Ejemplo E/S con periférico lento

• Procesador a 200 MHz (tiempo ciclo reloj = 5 ns;Ciclos por instrucción CPI = 2 , en promedio)• Una instrucción 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 láser de 20 páginas por minuto• 1 página ≅ 3.000 caracteres (1 carácter = 1 byte)• La impresora imprime 60.000 caracteres por minuto = 1Kbyte/s

Notas de Arquitectura de Computadoras - Clase 4 32011

Ej. con periférico lento (2)

a) E/S con espera de respuesta• La CPU entra en un bucle y envía un nuevo byte

cada vez que la impresora está preparada pararecibirlo• La impresora tarda 10 seg en imprimir 10 Kbytes

• La CPU está ocupada con la operación de E/Sdurante 10 seg.

(en ese tiempo la CPU podría haber ejecutado 1000millones de instrucciones)

Notas de Arquitectura de Computadoras - Clase 4 42011

Page 3: Arquitectura de Computadoras 2011 - UNNEexa.unne.edu.ar/informatica/arquitectura/archivos/unidad... · 2015-03-20 · Ejemplo E/S con periférico lento •Procesador a 200 MHz (tiempo

Ej. con periférico lento (3)

b) E/S por interrupciones• La impresora genera una interrupción cada vez queestá preparada para recibir un nuevo byte.• Si la gestión de interrupción (ATI) tiene 10 instrucciones(salvar contexto, comprobar estado, transferir byte,restaurar contexto, rti)

• Para transferir 10 Kbytes tenemos que ejecutar 10.000veces la ATI⇒ ejecutar 100.000 instrucciones para atender al periférico ⇒ laCPU tarda 0,001 seg

• La CPU está ocupada con la operación de E/Sdurante 0,001 seg.

Notas de Arquitectura de Computadoras - Clase 4 52011

Conclusión con periférico lento

• La E/S por interrupciones reduce en10.000 veces el tiempo que la CPUestá ocupada gestionando laimpresora.

Notas de Arquitectura de Computadoras - Clase 4 62011

Page 4: Arquitectura de Computadoras 2011 - UNNEexa.unne.edu.ar/informatica/arquitectura/archivos/unidad... · 2015-03-20 · Ejemplo E/S con periférico lento •Procesador a 200 MHz (tiempo

Ejemplo E/S con periférico rápido

• Procesador a 200 MHz (tiempo ciclo reloj = 5 ns;

Ciclos por instrucción CPI = 2 ciclos, en promedio)• Una instrucción tarda en promedio 2 x 5 ns = 10 ns ⇒ lacomputadora 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 72011

Ej. con periférico rápido (2)

a) E/S con espera de respuesta• La CPU entra en un bucle y envía 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 operación de E/Sdurante 1 seg.

(en ese tiempo la CPU podría haber ejecutado 100 millonesde instrucciones)

Notas de Arquitectura de Computadoras - Clase 4 82011

Page 5: Arquitectura de Computadoras 2011 - UNNEexa.unne.edu.ar/informatica/arquitectura/archivos/unidad... · 2015-03-20 · Ejemplo E/S con periférico lento •Procesador a 200 MHz (tiempo

Ej. con periférico rápido (3)

b) E/S por interrupciones• El disco genera una interrupción cada vez que estápreparado para recibir un nuevo byte• Si la gestión de interrupción (ATI) tiene 10 instrucciones(salvar contexto, comprobar estado, transferir byte,restaurar contexto, rti)

• Para transferir 10 Mbytes tenemos que ejecutar 107veces la ATI⇒ ejecutar 100 millones de instrucciones para atender alperiférico ⇒ la CPU tarda 1 seg.

• La CPU está ocupada con la operación de E/Sdurante 1 seg.

Notas de Arquitectura de Computadoras - Clase 4 92011

Conclusión con periférico rápido

• La E/S por interrupciones no mejora eltiempo que la CPU está ocupada enatender al periférico.

Notas de Arquitectura de Computadoras - Clase 4 102011

Page 6: Arquitectura de Computadoras 2011 - UNNEexa.unne.edu.ar/informatica/arquitectura/archivos/unidad... · 2015-03-20 · Ejemplo E/S con periférico lento •Procesador a 200 MHz (tiempo

Acceso directo a memoria (DMA)

El controlador de DMA es un dispositivo capaz de

controlar una transferencia de datos entre unperiférico y memoria sin intervención de la CPU.

Notas de Arquitectura de Computadoras - Clase 4 112011

Controlador de DMA

El Controlador de DMA (DMAC) debe actuar como

maestro del bus durante la transferencia DMA ydebe ser capaz de

• Solicitar el uso del bus mediante las señales y la lógicade arbitraje necesarias

• Especificar la dirección de memoria sobre la que serealiza la transferencia

• Generar las señales de control del bus• Tipo de operación (lectura/escritura)

• Señales de sincronización de la transferencia

Notas de Arquitectura de Computadoras - Clase 4 122011

Page 7: Arquitectura de Computadoras 2011 - UNNEexa.unne.edu.ar/informatica/arquitectura/archivos/unidad... · 2015-03-20 · Ejemplo E/S con periférico lento •Procesador a 200 MHz (tiempo

Etapas de una transferencia DMA

Inicialización de la transferencia• La CPU debe enviar al interfaz del periférico y al DMAC los

parámetros de la transferenciaInicialización del interfaz (Bus master: CPU-Bus slave: Interfaz)

• Nº de bytes a transferir• Tipo de transferencia (lectura/escritura)• Otra información de control (pista, sector, etc.)

Inicialización controlador DMA(Bus master: CPU-Bus slave: DMAC)• Nº de bytes o palabras a transferir• Tipo de transferencia (lectura/escritura)• Dirección de memoria inicial para la transferencia• Nº de canal (para DMAs con varios canales)

• Después de la inicialización la CPU retorna a sus tareas y yano se preocupa más de la evolución de la transferencia.

Notas de Arquitectura de Computadoras - Clase 4 132011

Etapas de una transf. DMA (2)

Realización de la transferencia• Cuando el periférico está listo para realizar latransferencia se lo indica al DMAC

• El DMAC pide el control del bus y se realiza latransferencia entre el periférico y la memoria• Bus master: DMAC + Periférico - Bus slave: Memoria

• Después de la transferencia de cada palabra seactualizan los registros del DMAC• Nº de bytes o palabras a transferir

• Dirección de memoria

Notas de Arquitectura de Computadoras - Clase 4 142011

Page 8: Arquitectura de Computadoras 2011 - UNNEexa.unne.edu.ar/informatica/arquitectura/archivos/unidad... · 2015-03-20 · Ejemplo E/S con periférico lento •Procesador a 200 MHz (tiempo

Etapas de una transf. DMA (3)

Finalización de la transferencia• El DMAC libera el bus y devuelve el control a la CPU

• El DMAC suele activar una señal de interrupción

para indicar a la CPU la finalización de la operaciónde E/S solicitada

Notas de Arquitectura de Computadoras - Clase 4 152011

Bus del sistema y DMA

Notas de Arquitectura de Computadoras - Clase 4 162011

Page 9: Arquitectura de Computadoras 2011 - UNNEexa.unne.edu.ar/informatica/arquitectura/archivos/unidad... · 2015-03-20 · Ejemplo E/S con periférico lento •Procesador a 200 MHz (tiempo

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 CPUno 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 laCPU está leyendo instrucciones de la cache (y por tantono usa el bus de memoria) para realizar las transferencias.

Notas de Arquitectura de Computadoras - Clase 4 172011

Problema que puede haber (2)

• En caso de computadores sin cache

• El procesador no utiliza el bus en todas las fases de laejecución de una instrucción.

• El DMAC puede aprovechar las fases de ejecución deuna instrucción en las que la CPU no utiliza el bus pararealizar sus transferencias.

Notas de Arquitectura de Computadoras - Clase 4 182011

Page 10: Arquitectura de Computadoras 2011 - UNNEexa.unne.edu.ar/informatica/arquitectura/archivos/unidad... · 2015-03-20 · Ejemplo E/S con periférico lento •Procesador a 200 MHz (tiempo

Tipos de transferencias

• Si el DMAC sólo toma el control del bus durante

los intervalos de tiempo en los que la CPU nohace uso del mismo el rendimiento delsistema no sufrirá degradación alguna

• Se distinguen dos tipos de transferencias:

• Por ráfagas (burst)

• Por robo de ciclo (cycle-stealing)

Notas de Arquitectura de Computadoras - Clase 4 192011

DMA modo ráfaga

• El DMAC solicita el control del bus a la CPU

• Cuando la CPU concede el bus, el DMAC no lo liberahasta haber finalizado la transferencia de todo elbloque de datos completo.

• VENTAJAS:• La transferencia se realiza de forma rápida.

• DESVENTAJAS:• Durante el tiempo que dura la transferencia la CPU nopuede utilizar el bus con memoria, lo que puede degradarel rendimiento del sistema.

Notas de Arquitectura de Computadoras - Clase 4 202011

Page 11: Arquitectura de Computadoras 2011 - UNNEexa.unne.edu.ar/informatica/arquitectura/archivos/unidad... · 2015-03-20 · Ejemplo E/S con periférico lento •Procesador a 200 MHz (tiempo

DMA modo robo de ciclo

• El DMAC solicita el control del bus a la CPU.

• Cuando la CPU concede el bus al DMAC, se realizala transferencia de una única palabra y después elDMAC libera el bus.

• El DMAC solicita el control del bus tantas vecescomo sea necesario hasta finalizar la transferenciadel bloque completo

• VENTAJAS:• No se degrada el rendimiento del sistema.

• DESVENTAJAS:• La transferencia tarda más tiempo en llevarse a cabo.

Notas de Arquitectura de Computadoras - Clase 4 212011

DMA modo robo de ciclo (2)

• Para la CPU no es una interrupción.

• 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 múltiples

palabras, es la técnica más eficiente.

Notas de Arquitectura de Computadoras - Clase 4 222011

Page 12: Arquitectura de Computadoras 2011 - UNNEexa.unne.edu.ar/informatica/arquitectura/archivos/unidad... · 2015-03-20 · Ejemplo E/S con periférico lento •Procesador a 200 MHz (tiempo

Estructura de un DMAC

Notas de Arquitectura de Computadoras - Clase 4 232011

Configuraciones del DMA (1)

CPU Módulo deDMA

E/S E/S Memoria

Bus único, módulo de DMA independiente.

• El DMA utiliza E/S programadas para transferirentre la memoria y los módulos de E/S.

• Cada transferencia utiliza dos veces el bus.• Desde el módulo de E/S al DMA y desde el DMA a lamemoria.

• La CPU debe “esperar” dos veces.

Notas de Arquitectura de Computadoras - Clase 4 242011

Page 13: Arquitectura de Computadoras 2011 - UNNEexa.unne.edu.ar/informatica/arquitectura/archivos/unidad... · 2015-03-20 · Ejemplo E/S con periférico lento •Procesador a 200 MHz (tiempo

Configuraciones del DMA (2)

CPU Módulo deDMA

Módulo deDMA

Memoria

E/SE/S E/S

Bus único, DMA integrado al módulo de E/S ó conectadoa varios módulos de E/S.

• El módulo de E/S puede controlar varios dispositivos.

• Cada transferencia usa el bus una vez.• Del DMA a la memoria.

• La CPU se detiene sólo una vez• comunicación de la finalización de la tarea.

Notas de Arquitectura de Computadoras - Clase 4 252011

Controlador DMA de varioscanales

Notas de Arquitectura de Computadoras - Clase 4 262011

Page 14: Arquitectura de Computadoras 2011 - UNNEexa.unne.edu.ar/informatica/arquitectura/archivos/unidad... · 2015-03-20 · Ejemplo E/S con periférico lento •Procesador a 200 MHz (tiempo

Configuraciones del DMA (3)

CPU Módulo deDMA

Memoria

E/S E/S E/S E/S

Bus de E/S separado del bus del sistema.

• Derivado de la configuración anterior.

• Cada transferencia usa el bus del sistema una

sola vez.• Del DMA a la memoria.

Notas de Arquitectura de Computadoras - Clase 4 272011

Configuraciones del DMA (3) (cont.)

• A la CPU se la interrumpe sólo una vez.

• Configuración fácilmente expandible.

• Como en el caso anterior la transferencia de

datos entre el DMA y los módulos de E/S serealizan fuera del bus del sistema.

Notas de Arquitectura de Computadoras - Clase 4 282011