Diferencia entre revisiones de «Acceso directo a memoria»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
Sin resumen de edición
Mel 23 (discusión · contribs.)
m Revertidos los cambios de 190.247.131.245 (disc.) a la última edición de Alexbot
Línea 2: Línea 2:


El '''acceso directo a memoria''' ('''DMA''', del inglés '''D'''irect '''M'''emory '''A'''ccess) 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, [[tarjeta gráfica|tarjetas gráficas]] y [[tarjeta de sonido|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.
El '''acceso directo a memoria''' ('''DMA''', del inglés '''D'''irect '''M'''emory '''A'''ccess) 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, [[tarjeta gráfica|tarjetas gráficas]] y [[tarjeta de sonido|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.

Por aca pasó Barma.


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 el procesador y como resultado puede ser planificado para efectuar otras tareas. Las transferencias DMA son esenciales para aumentar el rendimiento de [[Aplicación (informática)|aplicaciones]] que requieran muchos recursos.
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 el procesador y como resultado puede ser planificado para efectuar otras tareas. Las transferencias DMA son esenciales para aumentar el rendimiento de [[Aplicación (informática)|aplicaciones]] que requieran muchos recursos.
Línea 11: Línea 9:
== Estrategias de transferencia por DMA ==
== Estrategias de transferencia por DMA ==
A continuación se exponen diferentes técnicas para realizar la transferencia de datos. El uso de cada una de ellas dependerá de las características que se deseen primar en un sistema.
A continuación se exponen diferentes técnicas para realizar la transferencia de datos. El uso de cada una de ellas dependerá de las características que se deseen primar en un sistema.

Por aca tambien. Fuente:radiopulmon


*'''DMA por robo de ciclo''': se basa en usar uno o más [[ciclo de CPU|ciclos de CPU]] por cada instrucción que se ejecuta (de ahí el nombre). 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 robo de ciclo''': se basa en usar uno o más [[ciclo de CPU|ciclos de CPU]] por cada instrucción que se ejecuta (de ahí el nombre). 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.

Revisión del 13:43 27 oct 2009

Para DMA en reología véase Análisis mecánico diferencial.

El acceso directo a memoria (DMA, del inglés Direct Memory Access) 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 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 el procesador y como resultado puede ser planificado para efectuar otras tareas. Las transferencias DMA son esenciales para aumentar el rendimiento de aplicaciones que requieran muchos recursos.

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.

Estrategias de transferencia por DMA

A continuación se exponen diferentes técnicas para realizar la transferencia de datos. 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 ahí el nombre). 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, como por ejemplo en aquellas fases del proceso de ejecución de las instrucciones donde nunca se usa ya que la CPU realiza tareas internas (v. g. fase de decodificación de la instrucción). 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. De nuevo, el objetivo es liberar a la CPU de las tareas de copia de datos e interrupciones de entrada/salida múltiples.