La mejor manera de emular el cambio de red en PCB

0

Estoy interesado en conectar algunos módulos de cálculo de Raspberry Pi juntos en una placa PCB personalizada con interfaces de conector DDR2 SODIMM.

enlace

Quiero usar los módulos de cómputo juntos en una simulación de tipo N-cuerpo donde cada módulo actúa como un planeta o algo e interactúa con todos los demás módulos a través de MPI. Idealmente, cada módulo debería poder comunicarse de forma asíncrona con cualquier otro módulo de la placa sin interrumpir el procesamiento en los otros módulos.

¿Cuál es una buena solución de hardware para la conmutación de alto ancho de banda para los componentes de PCB conectados de esta manera? Normalmente, con Raspberry Pis estándar usaría un conmutador Ethernet para enrutar paquetes entre los nodos, pero no estoy tan seguro aquí. ¿Sería factible construir procesadores de lógica de conmutación + directamente en la placa (o hacer que varios de los módulos de cómputo sirvan como lógica de conmutación)?

Algunas investigaciones parecen indicar que las tarjetas de nodo Blue Gene (tiene un diseño similar al de la bandeja que propongo anteriormente) están conectadas a través de fibras ópticas de 12 canales tx + rx, pero no estoy seguro de si eso es lo que hago. Necesito, ya que parece faltarle algún tipo de capacidad de conmutación.

¡Gracias!

    
pregunta ejang

1 respuesta

1

¿De cuántos módulos estamos hablando aquí? 10? 10,000?

Hay un par de posibilidades, según el tipo de capacidad de E / S que tengan las placas y la cantidad de placas que desee conectar. Sin embargo, no estoy al tanto de ninguna solución obvia.

Un método es proporcionar a cada módulo uno o más chips Ethernet PHY, y luego usar algunos chips de conmutador Ethernet para conectarlos entre sí, suponiendo que los módulos de cómputo puedan interactuar bien con un chip PHY. Esto podría funcionar bien si una red no de malla está bien (no creo que los switches ethernet de cheapo puedan manejar bucles). Si desea hacer algo un poco más complicado, puede hacer un montón de tableros pequeños con un puñado de módulos informáticos, chips PHY y un conmutador integrado, y luego conectar los tableros con un conmutador Ethernet más grande disponible en el mercado. Sin embargo, probablemente estarías limitado a usar Gigabit Ethernet.

Otra posibilidad es usar algunos FPGAs. Dentro de un FPGA hay un número decente de RAM de bloque que se pueden configurar como RAM de puerto dual o FIFOs. Si tiene un número relativamente pequeño de módulos de cómputo, puede conectarlos a un solo FPGA grande con suficientes pines, luego poner una configuración de FPGA con toda la lógica de la interfaz, así como un montón de RAM de bloques de interconexión y / o FIFOs. Si tiene una gran cantidad de módulos, entonces lo que puede hacer es usar los FPGA para construir una red de malla con una pequeña cantidad de módulos informáticos conectados a cada FPGA. De esta manera usted tiene control completo sobre el enrutamiento de datos entre módulos. Recomendaría el uso de interconexiones paralelas entre los FPGA o posiblemente LVDS serializados para obtener más ancho de banda, dependiendo de si los FPGA tienen transceptores y de lo loco que se siente con el diseño de la placa.

    
respondido por el alex.forencich

Lea otras preguntas en las etiquetas