Você está na página 1de 5

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

ELECTRNICA Y TELECOMUNICACIONES CRISTIAN AGUIRRE ESPARZA ACCESO DIRECTO A MEMORIA DMA CUARTO CICLO 2012

INTRODUCCION
La Entrada/Salida con interrupciones, aunque ms eficiente que la Entrada/Salida programada, tambin requiere la intervencin del CPU para transferir datos entre la memoria y el mdulo de Entrada/Salida y cualquier transferencia de datos que debe seguir un camino a travs del procesador. Cuando se va a leer una lnea desde un terminal, el primer carcter escrito es enviado al computador. Cuando el carcter es recibido por el controlador, ste interrumpe al CPU. El CPU le da servicio a la interrupcin y luego continua con el proceso que estaba ejecutando. Esto es posible cuando el dispositivo es muy lento comparado con el CPU. Entre un carcter y otro el CPU lleva a cabo gran cantidad de procesamiento. Pero en el momento que estemos trabajando con dispositivos de Entrada/Salida ms veloces tendramos interrupciones muy seguidas y se estara desperdiciando mucho tiempo. El acceso directo a memoria permite a cierto tipo de componentes de ordenador acceder a la memoria del sistema para leer o escribir independientemente de la CPU principal. Muchos sistemas hardware utilizan DMA, incluyendo controladores de unidades de disco, tarjetas grficas, tarjetas de red, tarjetas de sonido y tarjetas aceleradoras. Tambin es utilizado para la transferencia de datos dentro del chip en procesadores con mltiples ncleos. DMA es esencial en los sistemas integrados, adems es una caracterstica 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. El acceso directo a memoria es una caracterstica de las computadoras y microprocesadores modernos que permite que ciertos subsistemas de hardware dentro de la computadora puedan acceder a la memoria del sistema para la lectura y/o escritura, independientemente de la unidad central de procesamiento CPU. De lo contrario, la CPU tendra que copiar cada porcin de dato desde el origen hacia el destino, haciendo que sta no est disponible para otras tareas. Una transferencia DMA consiste principalmente en copiar un bloque de memoria de un dispositivo a otro.

ACCESO DIRECTO A MEMORIA (DMA)


Aquellas computadoras que tienen canales DMA o (Direct Memory Access) pueden transferir datos desde y hacia los dispositivos con menos utilizacin de CPU que aquellas computadoras sin canales DMA. Bsicamente 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 operacin 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 interrupcin del controlador de DMA una vez que la transferencia termina. DMA es til en aplicaciones en tiempo real y en el procesamiento de flujos de datos Muchos controladores, sobre todo los de dispositivos por bloques, manejan el acceso directo a memoria o DMA. Para explicar el funcionamiento del DMA, primeramente debemos comprender cmo ocurren las lecturas de disco cuando no se usa DMA. Primero el controlador lee el bloque (uno o ms sectores) de la unidad en serie, bit por bit, hasta que todo el bloque est en el buffer interno del controlador. A continuacin, el controlador calcula la suma de verificacin para comprobar que no ocurrieron errores de lectura, y luego causa una interrupcin. Cuando el sistema operativo comienza a ejecutarse, puede leer el bloque del disco del buffer del controlador byte por byte o palabra por palabra, ejecutando un ciclo, leyndose en cada iteracin un byte o una palabra de un registro del controlador y almacenndose en la memoria. Naturalmente, un ciclo del CPU programado para leer los bytes del controlador uno por uno desperdicia tiempo de CPU. Por lo anterior el DMA se invent, para liberar al CPU de este trabajo de bajo nivel. Cuando se usa DMA, el CPU proporciona al controlador dos elementos de informacin, adems de la direccin en disco del bloque: la direccin de memoria donde debe colocarse el bloque y el nmero de bytes que deben transferirse. Una vez que el controlador ha ledo todo el bloque del dispositivo, lo ha colocado en su buffer y ha calculado la suma de verificacin, copia el primer byte o palabra en la memoria principal en la direccin especificada por la direccin de memoria de DMA. Luego, el controlador incrementa la direccin de DMA y decrementa la cuenta de DMA en el nmero de bytes que se acaban de transferir. Este proceso se repite hasta que la cuenta de DMA es cero, y en ese momento el controlador causa una interrupcin. Cuando el sistema operativo inicia, no tiene que copiar el bloque en la memoria; ya est ah. No todas las computadoras usan DMA. El argumento en su contra es que en muchos casos el CPU principal es mucho ms rpido que el controlador de DMA y puede realizar el trabajo en mucho menos tiempo (cuando el factor limitante no es la rapidez del dispositivo de Entrada/Salida). Si el CPU (rpido) no tiene otra cosa que hacer, obligarla a esperar hasta que el controlador de DMA (lento) termine, no tiene sentido. Adems, si se omite el controlador de DMA y se deja que el CPU realice todo el trabajo, se ahorra algo de dinero.

Cabe destacar que aunque no se necesite a la CPU para la transaccin de datos, s que se necesita el bus del sistema (tanto bus de datos como bus de direcciones), por lo que existen diferentes estrategias para regular su uso, permitiendo as que no quede totalmente acaparado por el controlador DMA Tipos de transferencia DMA El uso de cada una de ellas depender de las caractersticas que se deseen primar en un sistema. DMA por robo de ciclo: se basa en usar uno o ms ciclos de CPU por cada instruccin que se ejecuta. De esta forma se consigue una alta disponibilidad del bus del sistema para la CPU, aunque, en consecuencia, la transferencia de los datos ser considerablemente lenta. Este mtodo es el que se usa habitualmente ya que la interferencia con la CPU es muy baja. DMA por rfagas: consiste en enviar el bloque de datos solicitado mediante una rfaga, ocupando el bus del sistema hasta finalizar la transmisin. As se consigue la mxima velocidad, sin embargo la CPU no podr usar el bus durante todo ese tiempo, por lo que permanecera inactiva. DMA transparente: se trata de usar el bus del sistema cuando se tiene certeza de que la CPU no lo necesita. De esta manera, como su nombre indica, la DMA permanecer transparente para la CPU y la transferencia se har sin obstaculizar la relacin CPU-bus del sistema. Como desventaja, la velocidad de transferencia es la ms baja posible. DMA Scatter-gather: permite la transferencia de datos a varias reas de memoria en una transaccin DMA simple. Es equivalente al encadenamiento de mltiples peticiones DMA simples. El objetivo es liberar a la CPU de las tareas de copia de datos e interrupciones de entrada/salida mltiples.

CONCLUSIONES
Un computador sin DMA somete a la CPU a una carga masiva de interrupciones. Aquellas computadoras que tienen canales DMA pueden transferir datos desde y hacia los dispositivos con menos utilizacin de CPU. Bsicamente una transferencia DMA consiste en copiar un bloque de memoria de un dispositivo a otro. El controlador DMA es generalmente un chipset de la placa madre. En computadoras sin DMA, el CPU generalmente se ocupa completo durante toda la operacin de lectura o escritura de la memoria. En lugar de que la CPU inicie la transferencia, la transferencia se lleva a cabo por el controlador DMA.

Las transferencias DMA son esenciales para aumentar el rendimiento de aplicaciones que requieran muchos recursos. La DMA libera al CPU de este trabajo de bajo nivel.

BIBLIOGRAFIA
MORERA Juan Conceptos de Sistemas Operativos, Editorial: Universidad Pontifica de Comillas, 2002. TANENBAUM Andrew. Sistemas Operativos Modernos, Editorial: Pearson Educacin, 2003. SANTAMARIA Eduardo. Electrnica Digital y Microprocesadores, Editorial: Universidad Pontifica de Comillas, 1993. MANO Morris. Lgica digital y diseo de computadores. Editorial: Pearson Educacin, 1982. STALLINGS William. Organizacin y Arquitectura de Computacin. Editorial: Pearson Educacin, S.A 2006. Sptima edicin PILAR Mara Sistemas Operativos Monopuesto. Editorial: Paraninfo, 2010. ORTIZ Hctor, Sistemas Operativos Modernos. Editorial: Universidad de Medellin, 2005.

Você também pode gostar