Transferencia de DMA PCIe a múltiples ranuras de RAM de PC desde FPGA

0

Un punto final de FPGA necesita transferir grandes cantidades de datos a la memoria RAM del procesador host a través de DMA. Por lo tanto, la asignación de memoria a una sola RAM podría no ser posible. Normalmente, las PC o servidores de gama alta tienen varias ranuras de RAM en lugar de una sola.

  1. ¿Puede la memoria FPGA transferir a las múltiples ranuras de RAM? Si una memoria RAM está llena, ¿Puede el FPGA transferir datos a la siguiente RAM? Si es así, ¿cómo es este cambio? hecho por el PC Root Complex?

  2. ¿El chipset conectado al procesador de la PC tiene múltiples controladores de memoria (o MCHs)? ¿Puede el procesador acceder a una memoria RAM y mantener uno para FPGA DMA?

Cualquier consejo sobre esto es apreciado. Gracias.

    
pregunta electro_sm11

1 respuesta

2

PCIe puede DMA en cualquier lugar dentro del espacio de dirección física del sistema, incluso fuera del nodo NUMA local, aunque habrá una penalización de rendimiento asociada con eso. Todo esto se maneja exactamente de la misma manera que la CPU puede leer o escribir donde quiera, sin necesidad de saber a qué dispositivo físico corresponden esas direcciones. Los accesos desde diferentes fuentes se intercalarán en el tiempo.

El 'llenado' de la memoria es un concepto de nivel superior, este debería ser gestionado apuntando el motor DMA en el dispositivo PCIe para liberar secciones de memoria. En general, esto se realiza desde una aplicación o un controlador de dispositivo.

    
respondido por el alex.forencich

Lea otras preguntas en las etiquetas