SlideShare una empresa de Scribd logo
1 de 5
Descargar para leer sin conexión
UNIVERSIDAD TÉCNICA
   PARTICULAR DE LOJA
     La Universidad Católica de Loja


     ELECTRÓNICA Y
  TELECOMUNICACIONES

CRISTIAN AGUIRRE ESPARZA

“ACCESO DIRECTO A MEMORIA
           DMA”


      CUARTO CICLO

                 2012
INTRODUCCION
La Entrada/Salida con interrupciones, aunque más eficiente que la Entrada/Salida
programada, también requiere la intervención del CPU para transferir datos entre la
memoria y el módulo de Entrada/Salida y cualquier transferencia de datos que debe
seguir 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 al
computador. Cuando el carácter es recibido por el controlador, éste interrumpe al CPU. El
CPU le da servicio a la interrupción y luego continua con el proceso que estaba
ejecutando. 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 el
momento que estemos trabajando con dispositivos de Entrada/Salida más veloces
tendríamos interrupciones muy seguidas y se estaría 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 gráficas, tarjetas de red, tarjetas de sonido y tarjetas aceleradoras. También es
utilizado para la transferencia de datos dentro del chip en procesadores con múltiples
núcleos. DMA es esencial en los sistemas integrados, además 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.

El acceso directo a memoria es una característica 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
tendrí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 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 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.

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 cómo ocurren las lecturas de disco cuando no se usa DMA. Primero
el controlador lee el bloque (uno o más sectores) de la unidad en serie, bit por bit, hasta
que todo el bloque está en el buffer interno del controlador. A continuación, el
controlador calcula la suma de verificación para comprobar que no ocurrieron errores de
lectura, y luego causa una interrupción. 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, leyéndose en cada iteración un byte o una
palabra de un registro del controlador y almacenándose 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 información,
además de la dirección en disco del bloque: la dirección de memoria donde debe
colocarse 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 su
buffer y ha calculado la suma de verificación, copia el primer byte o palabra en la
memoria 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 en
el número 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 interrupción. 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 más rápido 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 (rápido) no tiene otra cosa que hacer, obligarla a
esperar hasta que el controlador de DMA (lento) termine, no tiene sentido. Además, 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 transacción 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 características que se deseen primar en un
sistema.

    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.
 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.

Más contenido relacionado

La actualidad más candente

Arquitecturas del harvard y von neumann maria
Arquitecturas del harvard y von neumann mariaArquitecturas del harvard y von neumann maria
Arquitecturas del harvard y von neumann maria
mariagrau14
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
handresrm
 
Gestion de memoria
Gestion de memoriaGestion de memoria
Gestion de memoria
ALASBLANKS
 

La actualidad más candente (20)

ESTRUCTURA DE CAPAS DEL SISTEMA OPERATIVO
ESTRUCTURA DE CAPAS DEL SISTEMA OPERATIVOESTRUCTURA DE CAPAS DEL SISTEMA OPERATIVO
ESTRUCTURA DE CAPAS DEL SISTEMA OPERATIVO
 
Arquitectura harvard y von neumann
Arquitectura harvard y von neumannArquitectura harvard y von neumann
Arquitectura harvard y von neumann
 
Sistemas operativos por estructura
Sistemas operativos por estructuraSistemas operativos por estructura
Sistemas operativos por estructura
 
Arquitecturas del harvard y von neumann maria
Arquitecturas del harvard y von neumann mariaArquitecturas del harvard y von neumann maria
Arquitecturas del harvard y von neumann maria
 
INVESTIGACIÓN DE CHIPSET
INVESTIGACIÓN DE CHIPSET INVESTIGACIÓN DE CHIPSET
INVESTIGACIÓN DE CHIPSET
 
Tema manejo de la entrada
Tema manejo de la entradaTema manejo de la entrada
Tema manejo de la entrada
 
Arquitectura harvard
Arquitectura harvardArquitectura harvard
Arquitectura harvard
 
Administración de Memoria
Administración de MemoriaAdministración de Memoria
Administración de Memoria
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
ESPRESIONES REGULARES
ESPRESIONES REGULARESESPRESIONES REGULARES
ESPRESIONES REGULARES
 
Tecnicas de Administracion de Memoria
Tecnicas de Administracion de MemoriaTecnicas de Administracion de Memoria
Tecnicas de Administracion de Memoria
 
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADORUNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
Unidadi. lenguajes de interfaz
Unidadi.   lenguajes de interfazUnidadi.   lenguajes de interfaz
Unidadi. lenguajes de interfaz
 
Mecanismo de sincronización de procesos
Mecanismo de sincronización de procesosMecanismo de sincronización de procesos
Mecanismo de sincronización de procesos
 
Modos de direccionamiento y formatos
Modos de direccionamiento y formatosModos de direccionamiento y formatos
Modos de direccionamiento y formatos
 
Gestion de memoria
Gestion de memoriaGestion de memoria
Gestion de memoria
 
Gestión de Entrada y Salida
Gestión de Entrada y SalidaGestión de Entrada y Salida
Gestión de Entrada y Salida
 
Tema 4: Procesamiento paralelo.
Tema 4: Procesamiento paralelo.Tema 4: Procesamiento paralelo.
Tema 4: Procesamiento paralelo.
 
Control de Flujo [Telecomunicaciones]
Control de Flujo [Telecomunicaciones]Control de Flujo [Telecomunicaciones]
Control de Flujo [Telecomunicaciones]
 

Destacado (13)

Acceso directo a memoria
Acceso directo a memoriaAcceso directo a memoria
Acceso directo a memoria
 
Canales DMA
Canales DMACanales DMA
Canales DMA
 
Acceso Directo A Memoria
Acceso Directo A MemoriaAcceso Directo A Memoria
Acceso Directo A Memoria
 
ATA ultra DMA
ATA ultra DMAATA ultra DMA
ATA ultra DMA
 
Crear accesos directos
Crear accesos directosCrear accesos directos
Crear accesos directos
 
Estructura Del Sistema InformáTico Detalle
Estructura Del Sistema InformáTico   DetalleEstructura Del Sistema InformáTico   Detalle
Estructura Del Sistema InformáTico Detalle
 
Gestión de entrada salida
Gestión de entrada salida Gestión de entrada salida
Gestión de entrada salida
 
Propiedades del sistema
Propiedades del sistemaPropiedades del sistema
Propiedades del sistema
 
Nucleo del sistema operativo
Nucleo del sistema operativoNucleo del sistema operativo
Nucleo del sistema operativo
 
Estructura Y Funciones Del Sistema Operativo
Estructura Y Funciones Del Sistema OperativoEstructura Y Funciones Del Sistema Operativo
Estructura Y Funciones Del Sistema Operativo
 
El Teclado
El TecladoEl Teclado
El Teclado
 
El teclado y sus funciones
El teclado y sus funcionesEl teclado y sus funciones
El teclado y sus funciones
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 

Similar a Acceso Directo de Memoria

UNIDAD 5 Sistema Operativo .
UNIDAD 5 Sistema Operativo .UNIDAD 5 Sistema Operativo .
UNIDAD 5 Sistema Operativo .
TheBoops
 
Arquitectura de un computador
Arquitectura de un computadorArquitectura de un computador
Arquitectura de un computador
riodeoro
 
Arquitectura de un computador
Arquitectura de un computadorArquitectura de un computador
Arquitectura de un computador
riodeoro
 
Partes internas del computador
Partes internas del computadorPartes internas del computador
Partes internas del computador
Alexander Santafe
 
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PCENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
guestdb824f
 

Similar a Acceso Directo de Memoria (20)

Sistemas digitales 2 organizacion de es
Sistemas digitales 2   organizacion de esSistemas digitales 2   organizacion de es
Sistemas digitales 2 organizacion de es
 
ACCESO DIRECTO A MEMORIA.pptx
ACCESO DIRECTO A MEMORIA.pptxACCESO DIRECTO A MEMORIA.pptx
ACCESO DIRECTO A MEMORIA.pptx
 
Hardware
HardwareHardware
Hardware
 
Informe laboratorio n°3
Informe laboratorio n°3Informe laboratorio n°3
Informe laboratorio n°3
 
Cpu terminado[1]
Cpu terminado[1]Cpu terminado[1]
Cpu terminado[1]
 
Informatica
InformaticaInformatica
Informatica
 
UNIDAD 5 Sistema Operativo .
UNIDAD 5 Sistema Operativo .UNIDAD 5 Sistema Operativo .
UNIDAD 5 Sistema Operativo .
 
Arquitectura de un computador
Arquitectura de un computadorArquitectura de un computador
Arquitectura de un computador
 
Arquitectura de un computador
Arquitectura de un computadorArquitectura de un computador
Arquitectura de un computador
 
Partes internas del computador
Partes internas del computadorPartes internas del computador
Partes internas del computador
 
Que es el cpu
Que es el cpuQue es el cpu
Que es el cpu
 
Que es el cpu
Que es el cpuQue es el cpu
Que es el cpu
 
Cuestionario
Cuestionario Cuestionario
Cuestionario
 
ENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PCENTRADAS Y SALIDAS DE UN PC
ENTRADAS Y SALIDAS DE UN PC
 
Hhhh
HhhhHhhh
Hhhh
 
tic
tictic
tic
 
Tic
TicTic
Tic
 
Accesodirectoamemoria 100115111436-phpapp02
Accesodirectoamemoria 100115111436-phpapp02Accesodirectoamemoria 100115111436-phpapp02
Accesodirectoamemoria 100115111436-phpapp02
 
TEMA:5.1 PRINCIPIOS DE HARDWARE DE E/S.
TEMA:5.1 PRINCIPIOS DE HARDWARE DE E/S.TEMA:5.1 PRINCIPIOS DE HARDWARE DE E/S.
TEMA:5.1 PRINCIPIOS DE HARDWARE DE E/S.
 
Entrada salida
Entrada salidaEntrada salida
Entrada salida
 

Más de Cristian Aguirre Esparza

Más de Cristian Aguirre Esparza (20)

EJEMPLO
EJEMPLOEJEMPLO
EJEMPLO
 
AVL HARDWARE
AVL HARDWAREAVL HARDWARE
AVL HARDWARE
 
Funciones de Convolución
Funciones de ConvoluciónFunciones de Convolución
Funciones de Convolución
 
Amplificador con transistor BJT (Microondas)
Amplificador con transistor BJT (Microondas)Amplificador con transistor BJT (Microondas)
Amplificador con transistor BJT (Microondas)
 
Unidad de Control
Unidad de ControlUnidad de Control
Unidad de Control
 
Hpcs conf poster
Hpcs conf posterHpcs conf poster
Hpcs conf poster
 
FILTRO IRR MATLAB
FILTRO IRR MATLABFILTRO IRR MATLAB
FILTRO IRR MATLAB
 
Codificacion HUFFMAN en matlab
Codificacion HUFFMAN en matlabCodificacion HUFFMAN en matlab
Codificacion HUFFMAN en matlab
 
Que afecta a una comunicacion en hf
Que afecta a una comunicacion en hfQue afecta a una comunicacion en hf
Que afecta a una comunicacion en hf
 
AMPLIFICADOR DE AUDIO
AMPLIFICADOR DE AUDIOAMPLIFICADOR DE AUDIO
AMPLIFICADOR DE AUDIO
 
INVESTIGACIÓN CIELO DE LOJA
INVESTIGACIÓN CIELO DE LOJAINVESTIGACIÓN CIELO DE LOJA
INVESTIGACIÓN CIELO DE LOJA
 
Entorno Natural Del Cantón Loja
Entorno Natural Del Cantón LojaEntorno Natural Del Cantón Loja
Entorno Natural Del Cantón Loja
 
Generación de Computadores
Generación de ComputadoresGeneración de Computadores
Generación de Computadores
 
Funciones del Procesador
Funciones del ProcesadorFunciones del Procesador
Funciones del Procesador
 
BECHMAKING
BECHMAKINGBECHMAKING
BECHMAKING
 
Arquitectura RISC-CISC
Arquitectura RISC-CISCArquitectura RISC-CISC
Arquitectura RISC-CISC
 
Loja pionera de la generacion electrica
Loja pionera de la generacion electricaLoja pionera de la generacion electrica
Loja pionera de la generacion electrica
 
Motor electrico
Motor electricoMotor electrico
Motor electrico
 
Lcc cristian_aguirre_esparza
Lcc cristian_aguirre_esparzaLcc cristian_aguirre_esparza
Lcc cristian_aguirre_esparza
 
Cristian aguirre
Cristian aguirreCristian aguirre
Cristian aguirre
 

Último

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Último (11)

Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 

Acceso Directo de Memoria

  • 1. UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja ELECTRÓNICA Y TELECOMUNICACIONES CRISTIAN AGUIRRE ESPARZA “ACCESO DIRECTO A MEMORIA DMA” CUARTO CICLO 2012
  • 2. INTRODUCCION La Entrada/Salida con interrupciones, aunque más eficiente que la Entrada/Salida programada, también requiere la intervención del CPU para transferir datos entre la memoria y el módulo de Entrada/Salida y cualquier transferencia de datos que debe seguir 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 al computador. Cuando el carácter es recibido por el controlador, éste interrumpe al CPU. El CPU le da servicio a la interrupción y luego continua con el proceso que estaba ejecutando. 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 el momento que estemos trabajando con dispositivos de Entrada/Salida más veloces tendríamos interrupciones muy seguidas y se estaría 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 gráficas, tarjetas de red, tarjetas de sonido y tarjetas aceleradoras. También es utilizado para la transferencia de datos dentro del chip en procesadores con múltiples núcleos. DMA es esencial en los sistemas integrados, además 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. El acceso directo a memoria es una característica 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 tendrí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 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 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
  • 3. 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. 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 cómo ocurren las lecturas de disco cuando no se usa DMA. Primero el controlador lee el bloque (uno o más sectores) de la unidad en serie, bit por bit, hasta que todo el bloque está en el buffer interno del controlador. A continuación, el controlador calcula la suma de verificación para comprobar que no ocurrieron errores de lectura, y luego causa una interrupción. 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, leyéndose en cada iteración un byte o una palabra de un registro del controlador y almacenándose 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 información, además de la dirección en disco del bloque: la dirección de memoria donde debe colocarse 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 su buffer y ha calculado la suma de verificación, copia el primer byte o palabra en la memoria 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 en el número 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 interrupción. 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 más rápido 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 (rápido) no tiene otra cosa que hacer, obligarla a esperar hasta que el controlador de DMA (lento) termine, no tiene sentido. Además, si se omite el controlador de DMA y se deja que el CPU realice todo el trabajo, se ahorra algo de dinero.
  • 4. Cabe destacar que aunque no se necesite a la CPU para la transacción 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 características que se deseen primar en un sistema.  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.  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.