PCIe: ¿Quién está a cargo aquí?

1

Quiero construir una matriz de tarjetas inteligentes que reciban paquetes de Ethernet, descodificarlos y colocar los resultados descodificados en una "matriz" de memoria para que otras tarjetas las procesen y retransmitan. Dadas las tecnologías disponibles, sospecho que PCIe es el camino a seguir. Tengo un par de preguntas para todos ustedes:

1) ¿Quién controla el bus PCIe? Sospecho que es el procesador de la placa base (PC) a un nivel alto y el controlador PCIe a un nivel inferior, pero no está claro.

2) ¿Está diseñado PCIe para muchas transferencias pequeñas, o un número menor o transferencias más grandes? Sospecho lo último, ya que el primero mataría a la CPU de la placa base ...

¿Qué piensas?

    
pregunta Brooks

3 respuestas

2

Esto suena a lot como la forma en que se diseñan los enrutadores de alto rendimiento. Uno de los principales problemas en el diseño del enrutador es exactamente la "matriz de memoria" o el "backplane de barra cruzada" que describe. Las grandes empresas en el espacio (Juniper, Cisco, F5, etc.) no usan PCIe para este propósito.

Creo que una mejor interconexión podría ser HyperTransport (que es la solución de AMD para el mismo problema que Intel desarrolló más adelante como QuickConnect para)

Tenga en cuenta que en una PC, el bus PCIe se sienta "después" de un bus HyperTransport, y por lo tanto HT tiene una latencia más baja y un rendimiento más alto que el que el PCIe puede obtener en la RAM (que a su vez se encuentra en el otro extremo de la CPU en estos días). )

    
respondido por el Jon Watte
3
  1. Sí, el procesador principal es el procesador de la placa base. Específicamente, la CPU o el "Puente Norte" es el maestro del bus PCIe. Esto es lo mismo que PCI. Sin embargo, un dispositivo PCIe puede acceder a la memoria, pero primero debe solicitar el bus al maestro PCIe.
  2. Algunos chips PCIe pueden hacer DMA donde manejan las transferencias por sí mismos. Esto es común para las tarjetas de red. Sin embargo, hay gastos generales, por lo que proporcionará más rendimiento con transferencias más grandes.

EDITAR: PCIe alcanza un máximo de 5 Gb / s / línea para PCIe Rev 3. Tiene un máximo de 16 líneas. Eso es un total de 80 Gb / s para una sola tarjeta. Eso no se acerca a 1 Tb / s, por no hablar de > 1 TB / s. Tu objetivo va a ser difícil. Pero entonces no creo que quieras usar PCIe para un > Conmutador Ethernet 1 TB / s. Eso es > 800 puertos Ethernet de 10 gigabits.

    
respondido por el Brian Carlton
1
  1. El "North Bridge" (a. k.a. conjunto de chips de la placa madre) está finalmente en control del bus PCIe, con mucha interacción con la CPU principal y el BIOS / OS. Una vez configurados, el northbridge y cualquier otro conmutador PCIe puede hacer la mayoría de las cosas sin tener que involucrar a la CPU.
  2. PCIe está realmente diseñado para transferir gran cantidad de datos a la vez utilizando DMA. Puede hacer transferencias de una sola palabra, pero se ralentiza mucho al hacer eso. Además, la latencia de lectura es enorme (~ 2 uS), por lo tanto, si no puede aceptar eso con paquetes de gran tamaño y DMA, el rendimiento total del sistema puede verse afectado.

Si el rendimiento es incluso un problema menor, entonces realmente necesitas planear usar DMA para mover todo tu audio.

    
respondido por el user3624

Lea otras preguntas en las etiquetas