Saltar al contenido

¿Cómo funciona DMA con dispositivos PCI Express?

Esta es la respuesta más acertada que encomtrarás brindar, sin embargo mírala detenidamente y analiza si se adapta a tu trabajo.

Solución:

En la fase de enumeración de PCIe, se determina el tamaño de carga útil máximo permitido (puede ser menor que el tamaño de carga útil máximo del dispositivo: por ejemplo, un conmutador PCIe intermedio tiene un tamaño de carga útil máximo más bajo).

La mayoría de los dispositivos PCIe son maestros DMA, por lo que el controlador transfiere el comando al dispositivo. El dispositivo enviará varios paquetes de escritura para transmitir 4 MiB en xx fragmentos TLP de tamaño máximo.

Editar 1 en respuesta al comentario 1:

Un bus basado en PCI no tiene un “controlador DMA” en forma de chip o subcircuito en el conjunto de chips. Cada dispositivo en el bus puede convertirse en un bus maestro. La memoria principal es siempre una esclava.

Supongamos que ha construido su propia tarjeta de dispositivo PCIe, que puede actuar como un maestro PCI y su programa (que se ejecuta en la CPU) desea enviar datos desde esa tarjeta a la memoria principal (4 MiB).

El controlador del dispositivo conoce el mapeo de memoria para esa región de memoria en particular del sistema operativo (algunas palabras clave: E/S mapeadas en memoria, enumeración de bus PCI, PCI BAR).

El controlador transfiere el comando (escritura), la dirección de origen, la dirección de destino y la longitud al dispositivo. Esto se puede hacer enviando bytes a una dirección especial dentro de una BAR predefinida o escribiendo en el espacio de configuración PCI. El maestro DMA de las tarjetas comprueba estas regiones especiales en busca de nuevas tareas (listas de dispersión y recopilación). Si es así, estas tareas se ponen en cola.

Ahora el maestro DMA sabe dónde enviar, cuántos datos. Él leerá los datos de la memoria local y los envolverá en TLP de 512 bytes de tamaño máximo de carga útil (el tamaño máximo de carga útil en el dispositivo de ruta <---> la memoria principal se conoce por enumeración) y enviarlo a la dirección de destino. Los mecanismos de enrutamiento basados ​​en direcciones PCI dirigen estos TLP a la memoria principal.

Reseñas y calificaciones

Tienes la opción de añadir valor a nuestro contenido informacional tributando tu veteranía en las notas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

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