Dma
Dma
Dma
Cátedra:
Arquitectura de Computadoras
Catedrático:
Ing. Edson Barrios
Ciclo:
VIII
Tema:
DMA: Acceso Directo a Memoria
(Investigación)
Alumno: Carné:
Lugar y Fecha:
San Luis, Petén, 29 de agosto de 2018
Índice
OBJETIVOS .............................................................................................................................................................. 3
OBJETIVO GENERAL:........................................................................................................................................................ 3
OBJETIVOS ESPECÍFICOS: .................................................................................................................................................. 3
INTRODUCCIÓN ...................................................................................................................................................... 4
CONCLUSIONES ..................................................................................................................................................... 10
Objetivos
Objetivo General:
Objetivos Específicos:
La DMA puede llevar a problemas de coherencia de caché. Imagine una CPU equipada con una
memoria caché y una memoria externa que se pueda acceder directamente por los dispositivos que
utilizan DMA. Cuando la CPU accede a X lugar en la memoria, el valor actual se almacena en la
caché. Si se realizan operaciones posteriores en X, se actualizará la copia en caché de X, pero no
la versión de memoria externa de X. Si la caché no se vacía en la memoria antes de que otro
dispositivo intente acceder a X, el dispositivo recibirá un valor caducado de X.
Los sistemas no-coherente dejan este software, donde el sistema operativo debe asegurarse
de que las líneas de caché se vacían antes de que una transferencia de salida de DMA sea
iniciada y anulada antes de que una parte de la memoria sea afectada por una transferencia
entrante de DMA que se haya requerido. El sistema operativo debe asegurarse de que esa
parte de memoria no es accedida por cualquier subproceso que se ejecute en ese instante.
Este último enfoque introduce cierta sobrecarga a la operación de DMA, ya que la mayoría
de hardware requiere un bucle para invalidar cada línea de caché de forma individual.
Los híbridos también existen, donde en la caché secundaria L2 es coherente, mientras que en la
caché L1 (generalmente la CPU) es gestionado por el software.
Una operación de E/S por DMA se establece ejecutando una corta rutina de inicialización. Consiste
en varias instrucciones de salida para asignar valores iniciales a:
Una vez inicializado, el DMA procede a transferir datos entre IOBUF y el dispositivo de E/S. Se
realiza una transferencia cuando el dispositivo de E/S solicite una operación de DMA a través de
la línea de petición del DMAC.}
Además de la interacción de hardware, el acceso directo a memoria puede ser utilizado para
descargar costosas operaciones de memoria, tales como copias de gran tamaño u operaciones de
dispersión-reunión, desde la CPU a un motor de acceso directo a memoria dedicada. Intel incluye
estos motores en los servidores de gama alta, llamado I/O Acceleration Technology (IOAT).
1.4. Transferencias
Durante las operaciones del DMA, el rendimiento del sistema puede verse afectado debido a que
este dispositivo hace un uso intensivo del bus y por lo tanto la cpu no puede leer datos de memoria,
por ejemplo, para leer la siguiente instrucción a ejecutar. Esto provoca que mientras el DMA está
operando, la CPU deba esperar a que finalice dicha tarea sin ejecutar ninguna instrucción. Para
solventar esto, existe una memoria cache dentro de la CPU que permite a ésta seguir trabajando
mientras el DMA mantiene ocupado el bus.
En computadores que no disponen de memoria cache,el DMA debe realizar su tarea evitando
ocupar el bus de datos mientras la CPU realiza la fase de captación de la instrucción. A partir de
estas dos posibilidades, existen dos tipos de transferencias de datos del DMA:
Transferencias modo ráfaga: una vez que la CPU concede el bus al DMA, este no
lo libera hasta que finaliza su tarea completamente. Este tipo de transferencia se usa
en sistemas que disponen de una memoria cache en la unidad de procesamiento, ya
que mientras la CPU puede seguir trabajando utilizando la cache.
Transferencias modo robo de ciclo: una vez que la CPU concede el bus al DMA,
este lo vuelve a liberar al finalizar de transferir cada palabra. Teniendo que solicitar
de nuevo el permiso de uso del bus a la CPU. Esta operación se repite hasta que el
DMA finaliza la tarea. Este tipo de transferencia se suele usar en sistema que no
disponen de memoria cache en la unidad de procesamiento, ya que de este modo,
aunque la transferencia de datos tarda más en realizarse, la CPU puede seguir
ejecutando instrucciones.