Modos de transferencia DMA

En este artículo, intentaremos comprender los detalles asociados con DMA (Acceso directo a la memoria), como qué es exactamente DMA o cómo funciona, y también veremos varios modos de transferencia DMA (como el modo Burst y otros modos). Antes de saltar directamente a los detalles asociados con los modos de transferencia de DMA, primero intentemos comprender qué es exactamente DMA y cómo funciona realmente este DMA.

Acceso directo a la memoria (DMA):
DMA básicamente significa Acceso directo a la memoria. Es un proceso que permite la transferencia de datos entre la memoria y el dispositivo IO (entrada/salida) sin necesidad de, o puede decirse sin, la participación de la CPU durante la transferencia de datos.

Funcionamiento de DMA: La
siguiente lista de puntos describirá brevemente sobre DMA y su funcionamiento de la siguiente manera.

  • Para DMA, básicamente necesita un hardware llamado DMAC (Controlador de acceso directo a la memoria) que lo ayudará en todo el proceso de transferencia de datos entre la memoria y el dispositivo IO directamente.
  • Primero, lo que sucede es que el dispositivo IO envía la solicitud DMA al controlador DMA, luego, el dispositivo DMAC envía una señal HOLD a la CPU mediante la cual le solicita a la CPU información que se necesita durante la transferencia de datos.
  • Luego, la CPU comparte dos datos básicos con DMAC antes de la transferencia de datos, que son: dirección de inicio (dirección de memoria desde donde se debe realizar la transferencia de datos) y recuento de datos (cantidad de bytes o palabras que se transferirán).
  • Luego, la CPU envía HLDACK (confirmación de retención) de regreso a DMAC, lo que ilustra que ahora DMAC puede transmitir la información con éxito.
  • Luego, DMAC comparte el DMA ACK (reconocimiento de DMA) con el dispositivo IO, lo que eventualmente permitiría que el dispositivo IO acceda o transfiera los datos de la memoria de manera directa y eficiente.

Modos de transferencia DMA:
ahora, después de obtener una breve idea sobre DMA y su funcionamiento, es el momento de analizar los modos de transferencia DMA.

  • Durante la transferencia de DMA, la CPU solo puede realizar aquellas operaciones en las que no requiere el acceso del bus del sistema, lo que significa que la mayoría de las CPU estarán en estado bloqueado.
  • El tiempo que la CPU permanece en el estado bloqueado o podemos decir cuánto tiempo la CPU le dará el control de DMAC de los buses del sistema dependerá en realidad de los siguientes modos de transferencia de DMA y después de eso, la CPU recuperará el control de los buses del sistema de DMAC.

Modo-1: 
Modo de ráfaga –

  • En este modo, la ráfaga de datos (datos completos o ráfagas de bloques que contienen datos) se transfiere antes de que la CPU tome el control de los buses de regreso de DMAC.
  • Este es el modo más rápido de transferencia DMA ya que se transfiere una gran cantidad de datos a la vez.
  • Dado que a la vez solo se transfiere la gran cantidad de datos, se ahorrará una gran cantidad de tiempo.

Porcentaje de tiempo que la CPU permanece bloqueada:
Sea Tx el tiempo necesario para preparar los datos y Ty el tiempo necesario para transferir los datos. Luego, el porcentaje de tiempo que la CPU permanece bloqueada debido a DMA es el siguiente.

Percentage of time CPU remains in blocked state = Ty * 100% / Tx + Ty

Modo-2: 
Modo de robo de ciclo –

  • El dispositivo de E/S lento tardará algún tiempo en preparar los datos (o la palabra) y, dentro de ese tiempo, la CPU mantiene el control de los buses.
  • Una vez que los datos o la palabra están listos, la CPU devuelve el control de los buses del sistema a DMAC durante 1 ciclo en el que la palabra preparada se transfiere a la memoria.
  • En comparación con el modo Burst, este modo es un poco más lento, ya que requiere un poco de tiempo, que en realidad consume el dispositivo IO mientras prepara los datos.

Porcentaje de tiempo que la CPU permanece bloqueada:
Sea Tx el tiempo necesario para preparar los datos y Ty el tiempo necesario para transferir los datos. Luego, el porcentaje de tiempo que la CPU permanece bloqueada debido a DMA es el siguiente.

Percentage of time CPU remains in blocked state = Ty * 100% / Tx

Modo-3: 
Modo entrelazado –

  • Siempre que la CPU no requiera los buses del sistema, DMAC solo tendrá el control de los buses.
  • En este modo, la CPU no se bloqueará en absoluto debido a DMA.
  • Este es el modo más lento de transferencia DMA, ya que DMAC tiene que esperar tanto tiempo para obtener acceso a los buses del sistema desde la propia CPU.
  • Por lo tanto, debido a que se transferirá menos cantidad de datos.

Ejemplo: 
considere un dispositivo que funciona a una velocidad de 2 MBP y la transferencia de datos a la memoria se realiza mediante el modo Robo de ciclo. Se necesitan 2 microsegundos para transferir 16 bytes de datos a la memoria cuando está lista o preparada. Entonces, ¿durante qué porcentaje de tiempo la CPU está bloqueada debido a la transferencia DMA?

Explicación – 

Internal data preparation speed given =          2 MBPs. 
So for preparing 2 MB it takes   ------>           1 second
For preparing 1B it takes           ------->          1 second / 2MB

So now for 16B data preparation it takes ------->1 second  * 16B / 2MB
(after reciprocating Mega will be become micro 

(that is 10^6 will become 10^-6 after reciprocating))
therefore for preparation 16B it takes -------> 8 microseconds

Therefore percentage of time CPU remains blocked in case of 
Cycle Stealing mode = 2 * 100% / 8 = 25% 

Publicación traducida automáticamente

Artículo escrito por amansingla y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *