Diseñando un ASIC de conmutador Ethernet: el primer chip de red de código abierto

Fuentes: Designing an Ethernet Switch ASIC

Un desarrollador afirma haber construido el primer ASIC de conmutador (switch) Ethernet completamente de código abierto, actualmente en fabricación y previsto para regresar de la foundry a mediados de noviembre. El proyecto nace en un contexto marcado por decisiones recientes de la FCC sobre equipos de red y por la escasez de hardware abierto en el ámbito del networking: aunque existen CPUs RISC-V y SoC de silicio abierto, casi no hay chips abiertos para equipos de red, ya que la mayoría de routers y conmutadores de código abierto ejecutan su software sobre ASIC propietarios.

El autor justifica el enfoque en un conmutador y no en un router por ser un primer paso más abordable: requiere combinar cómputo para la pila de red, hardware de conmutación y frontends analógicos, pero puede abordarse de forma incremental. Antes de fijar el diseño, repasa los conceptos clave: la capa física Ethernet (IEEE 802.3) define cómo se transmiten los bits sobre el medio; los conmutadores gestionados permiten configuración (VLAN, etc.), mientras que los no gestionados funcionan de forma plug-and-play; y existen dos arquitecturas de reenvío, cut-through (menor latencia) y store-and-forward (mayor integridad).

El diseño está fuertemente condicionado por las limitaciones del shuttle Tiny Tapeout: 24 pines digitales (8 entradas, 8 salidas y 8 bidireccionales) a 50 MHz, sin frontends analógicos, y un área de die reducida para mantener los costes asumidos por el propio desarrollador. Para sortear la falta de capa física analógica se opta por un PHY externo (Microchip LAN8720A) conectado mediante el bus RMII, lo que permite Ethernet 100BASE-TX consumiendo 7 pines por interfaz. La elección de un esquema cut-through se impone por motivos de área: store-and-forward exigiría memorias SRAM on-chip capaces de almacenar tramas Ethernet (hasta 1,5 kB, o más de 9 kB en jumbo frames), un coste de silicio inasumible en este primer tape-out.