You are on page 1of 11

Instituto Tecnológico de la Laguna

Ingeniería en Sistemas Computacionales

Arquitectura de computadoras

ENERO-JUNIO 2018

Acceso Directo a memoria, Tipos y


Funcionamiento

13131250 Luis Raul Perez Marín

Claudia Elena Carrillo Reyes


Torreón, Coah. 22 de febrero 2018
Acceso Directo a Memoria
Introducción........................................................................................................................................ 1
Funcionamiento .............................................................................................................................. 2
Etapas del DMA ........................................................................................................................... 3
Configuraciones del DMA ................................................................................................................ 4
Características del DMA .................................................................................................................. 6
Tipos del DMA ................................................................................................................................. 7

Conclusión ....................................................................................................................................... 8
DMA
Introducción

El acceso directo a memoria (DMA, del inglés direct memory access) permite a cierto tipo
de componentes de una computadora acceder a la memoria del sistema para leer o escribir
independientemente de la unidad central de procesamiento (CPU). Muchos sistemas
hardware utilizan DMA, incluyendo controladores de unidades de disco, tarjetas gráficas y
tarjetas de sonido. DMA es una característica esencial en todos los ordenadores modernos,
ya que permite a dispositivos de diferentes velocidades comunicarse sin someter a la CPU
a una carga masiva de interrupciones.

Una transferencia DMA consiste principalmente en copiar un bloque de memoria de un


dispositivo a otro. En lugar de que la CPU inicie la transferencia, la transferencia se lleva a
cabo por el controlador DMA. Un ejemplo típico es mover un bloque de memoria desde una
memoria externa a una interna más rápida. Tal operación no ocupa al procesador y, por
ende, éste puede efectuar otras tareas. Las transferencias DMA son esenciales para
aumentar el rendimiento de aplicaciones que requieran muchos recursos.

El DMA es un procesador dedicado para la transferencia de datos (con una razón de


transferencia de 6:1 más rápido con respecto al CPU). Aún que el DMA sea más rápido,
esta sigue dependiendo del CPU ya que toda la operación está controlada por este mismo
con instrucciones adecuadas para la programación del controlador del DMA = (DMAC)

1|Página
Funcionamiento

Funcionamiento del DMA Fig.1

El DMA le solicita al CPU que libere los buses por medio de la línea HOLD. Cuando el
CPU libera los buses, le avisa al controlador de DMA que puede utilizar los buses, por
medio de la línea HLDA (handshaking).
El DMA hace la transferencia entre la unidad de disco y la memoria.
Etapas de una transferencia
Inicialización de la transferencia

 La CPU debe enviar a la interfase del periférico y al DMAC los parámetros de la


transferencia.

Inicialización del interfaz (Bus Maestro: CPU - Bus Esclavo: Interfaz)

 N.º de bytes a transferir


 Tipo de transferencia (lectura/escritura)
 Otra información de control (pista, sector, etc.)

Inicialización del controlador DMA (Bus Maestro: CPU - Bus Esclavo: 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)

2|Página
Después de la inicialización la CPU retorna a sus tareas y ya no se preocupa más de la evolución
de la transferencia.

 Realización de la transferencia
 Cuando el periférico 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 periférico y la
memoria.

Bus máster: DMAC + Periférico - Bus Esclavo: Memoria

 Después de la transferencia de cada palabra se actualizan los registros del DMA


 N.º de bytes o palabras a transferir
 Dirección de memoria

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ón de E/S solicitada

3|Página
CONFIGURACIONES DEL DMAC
Bus único DMA independiente

Bus único Fig.2


 Un Bus, Controlador DMA separado.
 Cada transferencia usa el bus dos veces;
 I/O a DMA luego DMA a memoria
 La CPU es suspendida dos veces

Bus único, DMA Integrada

Un Bus, DMA integrado Fig.3

 El controlador puede manejar más de un dispositivo


 Cada transferencia usa el bus una vez

4|Página
 DMA a memoria
 La CPU es suspendida una vez

Bus Separado de Entrada y Salida

Bus separado de entrada y salida Fig.4

 El bus soporta todos los dispositivos habilitados para DMA


 Cada transferencia usa el bus una vez
 La CPU es suspendida una vez

5|Página
Características generales del DMA

Aquellas computadoras que tienen canales DMA pueden transferir datos desde y hacia
los dispositivos con menos utilización de CPU que aquellas computadoras sin canales
DMA. Básicamente una transferencia DMA consiste en copiar un bloque de memoria de
un dispositivo a otro. Esa transferencia se lleva a cabo por el controlador DMA, en lugar
del CPU. El controlador DMA es generalmente un chipset de la placa madre.

En computadoras sin DMA, el CPU generalmente se ocupa completo durante toda la


operación de lectura o escritura de la memoria y, por lo tanto, no está disponible para
realizar otras tareas. Con DMA, el CPU puede iniciar la transferencia, luego realizar otras
operaciones mientras la transferencia está en progreso y luego recibir una interrupción del
controlador de DMA una vez que la transferencia termina.

Desventajas del DMA

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.
Del mismo modo, si la copia en caché de X no es invalidada cuando un dispositivo escribe
un nuevo valor en la memoria, entonces la CPU funcionará con un valor caducado de X.

 Los sistemas de caché coherente implementan un método en el hardware


externo mediante el cual se escribe una señal en el controlador de caché, la cual
realiza una invalidación de la caché para escritura de DMA o caché de descarga
para lectura de DMA.
 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.

6|Página
TIPOS DE DMA

DMA POR ROBO DE CICLO

Requiere poca utilización del CPU. Esta estrategia utiliza uno o más ciclos de CPU para cada
instrucción que se ejecuta. Esto permite alta disponibilidad del bus del sistema para la CPU,
aunque la transferencia de datos se hará más lentamente.

VENTAJAS:

 No se degrada el rendimiento del sistema

DESVENTAJAS:

 La transferencia tarda más tiempo en llevarse a cabo

DMA POR ROBO DE CICLO FIG.5

Si la unidad de disco es muy lenta, entonces el DMA devuelve el control al CPU y cada
vez que la unidad de disco está lista, el DMA le “roba” un ciclo al CPU. Obsérvese que el
DMA puede “congelar” al CPU en diferentes puntos dentro de un Ciclo de Instrucción.
Cosa que el sistema de interrupciones no puede hacer.

DMA POR RÁFAGAS Consiste en enviar el bloque de datos solicitado utilizando una ráfaga
empleando el bus del sistema hasta finalizar la transferencia. Por lo tanto, tiene una altísima
velocidad, pero la CPU no podrá utilizar el bus de sistema durante el tiempo de transferencia, por
lo que permanece inactiva.

7|Página
VENTAJAS:

 La transferencia se realiza más rápido.

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.

DMA POR RAFAGA FIG.6

La CPU no podrá utilizar el bus de sistema durante el tiempo de transferencia

DMA TRANSPARENTE Esta estrategia consiste en emplear el bus del sistema cuando la CPU no lo
necesita. Esto permite que la transferencia no impida que la CPU utilice el bus del sistema; pero la
velocidad de transferencia es la más baja posible.

DMA TRANSPARENTE FIG.7


El DMA accede al bus sólo en los ciclos en los que la CPU no lo utiliza.

8|Página
Conclusión
La DMA tiene una gran importancia en los pc actuales ya que vendría siendo como un asistente del
CPU que se encarga de ayudarle a realizar ciertas tareas y así evitar que el CPU se ocupe en ellas,
ya que sin ella creo que tendría que copiar cada dato desde su comienzo hasta que finaliza y esto
lo ocuparía además de que no estaría disponible para hacer otras tareas.

Bibliografías
https://conceptosarquitecturadecomputadoras.wordpress.com/acceso-directo-a-memoria-dma/

http://tareasuniversitarias.com/estructura-y-funcionamiento-de-un-controlador-de-dma.html

http://www.alegsa.com.ar/Dic/acceso_directo_a_memoria.php

https://es.wikipedia.org/wiki/Acceso_directo_a_memoria#Motor_de_acceso_directo_a_memoria

9|Página

You might also like