UNIVERSIDAD TÉCNICA   PARTICULAR DE LOJA     La Universidad Católica de Loja     ELECTRÓNICA Y  TELECOMUNICACIONESCRISTIAN...
INTRODUCCIONLa Entrada/Salida con interrupciones, aunque más eficiente que la Entrada/Salidaprogramada, también requiere l...
placa madre. En computadoras sin DMA, el CPU generalmente se ocupa completo durantetoda la operación de lectura o escritur...
Cabe destacar que aunque no se necesite a la CPU para la transacción de datos, sí que senecesita el bus del sistema (tanto...
 Las transferencias DMA son esenciales para aumentar el rendimiento de    aplicaciones que requieran muchos recursos.   ...
Próxima SlideShare
Cargando en…5
×

Acceso Directo de Memoria

1.709 visualizaciones

Publicado el

Publicado en: Tecnología
0 comentarios
1 recomendación
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
1.709
En SlideShare
0
De insertados
0
Número de insertados
4
Acciones
Compartido
0
Descargas
64
Comentarios
0
Recomendaciones
1
Insertados 0
No insertados

No hay notas en la diapositiva.

Acceso Directo de Memoria

  1. 1. UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja ELECTRÓNICA Y TELECOMUNICACIONESCRISTIAN AGUIRRE ESPARZA“ACCESO DIRECTO A MEMORIA DMA” CUARTO CICLO 2012
  2. 2. INTRODUCCIONLa Entrada/Salida con interrupciones, aunque más eficiente que la Entrada/Salidaprogramada, también requiere la intervención del CPU para transferir datos entre lamemoria y el módulo de Entrada/Salida y cualquier transferencia de datos que debeseguir un camino a través del procesador.Cuando se va a leer una línea desde un terminal, el primer carácter escrito es enviado alcomputador. Cuando el carácter es recibido por el controlador, éste interrumpe al CPU. ElCPU le da servicio a la interrupción y luego continua con el proceso que estabaejecutando. Esto es posible cuando el dispositivo es muy lento comparado con el CPU.Entre un carácter y otro el CPU lleva a cabo gran cantidad de procesamiento. Pero en elmomento que estemos trabajando con dispositivos de Entrada/Salida más velocestendríamos interrupciones muy seguidas y se estaría desperdiciando mucho tiempo.El acceso directo a memoria permite a cierto tipo de componentes de ordenador accedera 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 gráficas, tarjetas de red, tarjetas de sonido y tarjetas aceleradoras. También esutilizado para la transferencia de datos dentro del chip en procesadores con múltiplesnúcleos. DMA es esencial en los sistemas integrados, además es una característica esencialen todos los ordenadores modernos, ya que permite a dispositivos de diferentesvelocidades comunicarse sin someter a la CPU a una carga masiva de interrupciones.El acceso directo a memoria es una característica de las computadoras ymicroprocesadores modernos que permite que ciertos subsistemas de hardware dentrode 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 CPUtendría que copiar cada porción 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 undispositivo a otro.ACCESO DIRECTO A MEMORIA (DMA)Aquellas computadoras que tienen canales DMA o (Direct Memory Access) puedentransferir datos desde y hacia los dispositivos con menos utilización de CPU que aquellascomputadoras sin canales DMA. Básicamente una transferencia DMA consiste en copiarun bloque de memoria de un dispositivo a otro. Esa transferencia se lleva a cabo por elcontrolador DMA, en lugar del CPU. El controlador DMA es generalmente un chipset de la
  3. 3. placa madre. En computadoras sin DMA, el CPU generalmente se ocupa completo durantetoda la operación de lectura o escritura de la memoria y, por lo tanto, no está disponiblepara realizar otras tareas. Con DMA, el CPU puede iniciar la transferencia, luego realizarotras operaciones mientras la transferencia está en progreso y luego recibir unainterrupción 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 datosMuchos controladores, sobre todo los de dispositivos por bloques, manejan el accesodirecto a memoria o DMA. Para explicar el funcionamiento del DMA, primeramentedebemos comprender cómo ocurren las lecturas de disco cuando no se usa DMA. Primeroel controlador lee el bloque (uno o más sectores) de la unidad en serie, bit por bit, hastaque todo el bloque está en el buffer interno del controlador. A continuación, elcontrolador calcula la suma de verificación para comprobar que no ocurrieron errores delectura, y luego causa una interrupción. Cuando el sistema operativo comienza aejecutarse, puede leer el bloque del disco del buffer del controlador byte por byte opalabra por palabra, ejecutando un ciclo, leyéndose en cada iteración un byte o unapalabra de un registro del controlador y almacenándose en la memoria.Naturalmente, un ciclo del CPU programado para leer los bytes del controlador uno poruno 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 información,además de la dirección en disco del bloque: la dirección de memoria donde debecolocarse el bloque y el número de bytes que deben transferirse.Una vez que el controlador ha leído todo el bloque del dispositivo, lo ha colocado en subuffer y ha calculado la suma de verificación, copia el primer byte o palabra en lamemoria principal en la dirección especificada por la dirección de memoria de DMA.Luego, el controlador incrementa la dirección de DMA y decrementa la cuenta de DMA enel número de bytes que se acaban de transferir. Este proceso se repite hasta que la cuentade DMA es cero, y en ese momento el controlador causa una interrupción. Cuando elsistema 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 casosel CPU principal es mucho más rápido que el controlador de DMA y puede realizar eltrabajo en mucho menos tiempo (cuando el factor limitante no es la rapidez deldispositivo de Entrada/Salida). Si el CPU (rápido) no tiene otra cosa que hacer, obligarla aesperar hasta que el controlador de DMA (lento) termine, no tiene sentido. Además, si seomite el controlador de DMA y se deja que el CPU realice todo el trabajo, se ahorra algode dinero.
  4. 4. Cabe destacar que aunque no se necesite a la CPU para la transacción de datos, sí que senecesita el bus del sistema (tanto bus de datos como bus de direcciones), por lo queexisten diferentes estrategias para regular su uso, permitiendo así que no quedetotalmente acaparado por el controlador DMATipos de transferencia DMAEl uso de cada una de ellas dependerá de las características que se deseen primar en unsistema.  DMA por robo de ciclo: se basa en usar uno o más ciclos de CPU por cada instrucción 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 método es el que se usa habitualmente ya que la interferencia con la CPU es muy baja.  DMA por ráfagas: consiste en enviar el bloque de datos solicitado mediante una ráfaga, ocupando el bus del sistema hasta finalizar la transmisión. Así se consigue la máxima velocidad, sin embargo la CPU no podrá usar el bus durante todo ese tiempo, por lo que permanecería 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 relación CPU-bus del sistema. Como desventaja, la velocidad de transferencia es la más baja posible.  DMA Scatter-gather: permite la transferencia de datos a varias áreas de memoria en una transacción DMA simple. Es equivalente al encadenamiento de múltiples peticiones DMA simples. El objetivo es liberar a la CPU de las tareas de copia de datos e interrupciones de entrada/salida múltiples.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 utilización de CPU.  Básicamente 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 operación 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.
  5. 5.  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 Educación, 2003.  SANTAMARIA Eduardo. “Electrónica Digital y Microprocesadores”, Editorial: Universidad Pontifica de Comillas, 1993.  MANO Morris. “Lógica digital y diseño de computadores”. Editorial: Pearson Educación, 1982.  STALLINGS William. “Organización y Arquitectura de Computación”. Editorial: Pearson Educación, S.A 2006. Séptima edición  PILAR María “Sistemas Operativos Monopuesto”. Editorial: Paraninfo, 2010.  ORTIZ Héctor, “Sistemas Operativos Modernos”. Editorial: Universidad de Medellin, 2005.

×