El término NoC quizás no le suene a muchos s, pero lo cierto es que cada vez está cobrando mayor importancia en los nuevos procesadores y que influye mucho en su rendimiento, y que se une a términos ya analizados en este blog como MCM, interposer, etc. Por eso, merece la pena analizar a fondo qué es y cuál es su influencia.
Índice de contenidos
Un Network-on-Chip (NoC) es una arquitectura de interconexión basada en principios de redes de comunicación utilizada para interconectar módulos (procesadores, memorias, controladores, etc.) dentro de un sistema en chip (SoC).
Se considera la evolución natural de los esquemas tradicionales de comunicación como buses compartidos o crossbars, y su objetivo es escalar el rendimiento, eficiencia energética y modularidad en sistemas altamente integrados y heterogéneos.
Criterio | SoC Monolítico / Bus | NoC |
---|---|---|
Escalabilidad | Limitada a pocos núcleos | Altamente escalable |
Consumo energético | Alto y centralizado | Distribuido y optimizable |
Latencia de comunicación | Creciente con módulos | Predecible y configurable |
Modularidad | Pobre | Alta (IPs plug-and-play) |
QoS / Control de tráfico | Inexistente | Soportado (prioridad, garantía) |
Tolerancia a fallos | Nula | Posible mediante rutas alternativas |
Los NoCs se basan en características similares a las redes que todos conocemos, con links y elementos de switching, además de topologías conocidas, protocolos de paquetes para la transmisión de datos, etc. Así se puede conseguir mayor escalabilidad en los elementos integrados, mejores rendimientos, menor consumo que las líneas de bus largas con alta capacitancia, mejor sincronización, flexibilidad arquitectónica, etc.
Además, en los sistemas de conexión tradicionales tienen un problema, y es que es difícil mantener sincronía en diseños grandes por la dispersión del reloj (clock skew). Esto limita la velocidad a la que trabajan, pero con los NoCs se puede solventar ese problema…
También deberías leer nuestra guía sobre los mejores procesadores
Una Network-on-Chip se compone de los siguientes bloques fundamentales:
Por supuesto, para que todo esto funcione adecuadamente, también es necesario disponer de protocolos adecuados.
Existen muchos protocolos de red diferentes, que seguro que has escuchado ya cuando se trata el tema de redes. Entre las más utilizadas en los NoCs actuales tenemos:
Los protocolos de comunicación y control regulan cómo los datos se transmiten eficientemente entre nodos. Estos protocolos involucran técnicas clave como el arbitraje, que decide qué flujo accede al router o enlace compartido cuando hay contención. Entre las técnicas comunes están round-robin, prioridad fija y TDM (time-division multiplexing), las cuales balancean equidad, rendimiento y soporte a QoS.
Las políticas de enrutamiento determinan la trayectoria que sigue un paquete desde origen a destino. Enrutamientos deterministas (como XY-routing en mallas) siguen un camino fijo y predecible, mientras que los adaptativos reaccionan dinámicamente ante congestión o fallos, eligiendo rutas alternativas.
Finalmente, el control de flujo gestiona cómo los paquetes se transmiten entre routers. En store-and-forward, se recibe el paquete completo antes de reenviarlo. En virtual cut-through, se comienza a reenviar tan pronto llega el encabezado. Y en wormhole, los flits del paquete se propagan por la red ocupando solo buffers pequeños, lo que reduce latencia y uso de memoria, pero puede generar bloqueo si no se maneja bien.
En el diseño e implementación de la NoC interfieren multitud de variables, desde su área, hasta el patrón de tráfico empleado (uniforme, burst, …), pasando por tener que garantizar la latencia y el timming para que nada falle en las conexiones…
QoS (Quality of Service) en NoC no solo trata de velocidad, sino también de asegurar que ciertas aplicaciones o flujos de datos reciban tratamiento prioritario o garantizado según sus requisitos. Esto es crítico en sistemas modernos con múltiples núcleos y componentes heterogéneos (U, GPU, DSP, aceleradores de IA, etc.), donde algunos módulos requieren baja latencia, alto ancho de banda o baja variabilidad temporal (jitter).
En definitiva, es esencial para garantizar que distintos módulos con necesidades variadas, como Us, GPUs, aceleradores de IA o controladores de E/S, puedan comunicarse con tiempos de respuesta adecuados. En sistemas heterogéneos, algunos componentes requieren baja latencia, alto ancho de banda o jitter mínimo, especialmente en aplicaciones como visión en tiempo real, redes neuronales o control embebido.
Para cumplir con estos requerimientos, las NoC implementan técnicas de priorización, donde el tráfico crítico recibe preferente a los recursos de red. Además, se aplican mecanismos de partición que aíslan flujos sensibles para evitar interferencias…
El diseño de la NoC implica no solo trabajar a nivel de hardware, también a nivel de software para que todo funcione de forma correcta. De esa forma, una vez implementado el NoC físico, se necesita código para gestionar la coordinación entre los procesos o hilos ejecutados y los núcleos o aceleradores que se interconectan.
En cuanto a la implementación física, se puede insertar tanto dentro de un chip monolítico como también utilizar técnicas como TSV e interposers para las interconexiones 3D.
Las NoC reconfigurables permiten modificar su topología, rutas o asignaciones funcionales en tiempo de ejecución sin detener el sistema completo. Esto se logra mediante el uso de routers programables, switching tables reconfigurables, y elementos como FPGAs embebidos. Además, también se pueden crear NoCs adaptativos para sistemas de cargas variables como los multimedia, IA, etc., modificando sus características de forma dinámica, ya sea DVFS, Thermal-aware routing para evitar hotspots, etc.
Me gustaría también agregar que una NoC compartida por múltiples dominios de seguridad es vulnerable a canales encubiertos (covert channels) y canales laterales (side-channel attacks). Estos ataques permiten extraer información sensible (como claves de cifrado), por este motivo, es importante blindar estas estructuras de red con técnicas como time-division isolation, router privatization y randomización de rutas, etc. También mediante el cifrado de los paquetes…
Para finalizar, agregar que los NoCs han aparecido hace poco, relativamente, y que aún queda mucho camino que explotar en este sentido para futuros diseños. Por ejemplo, ya se están estudiando diseños arquitectónicos neuromórficos que imitan a las redes neuronales del cerebro humano con las neuronas y sinapsis para IA, hasta otros basados en tecnología inalámbrica para conexión entre elementos sin o, pasando por los basados en medios ópticos, o NoC fotónica. En éste último caso, en vez de usar señales eléctricas se emplea luz, lo cual es más rápido, permite comunicarse a mayor distancia, con más ancho de banda (hasta Tbps), etc.
No olvides dejar tus comentarios…
AMD está a punto de lanzar un nuevo procesador dentro de la familia Zen 5:…
Si buscas las mejores aplicaciones para dibujar gratis, has llegado al lugar indicado. En esta…
Intel roma la decisión de incluir sus primeras tarjetas gráficas Arc Alchemist en la lista…