Cualquier arquitectura multinúcleo requiere de una comunicación interna para comunicar sus diferentes componentes entre sí, no obstante hay diferentes tipos de topologías de interconexión con diferentes resultados para la comunicación interna de una CPU, una GPU o cualquier otro tipo de procesador compuesto por varios elementos que necesitan comunicarse entre sí. ¿Cuál es el tipo de topología más utilizada?
La mayoría de los procesadores a día de hoy son piezas sumamente complejas compuestas por otras, pero en general todas ellas suelen tener una comunicación central que se encarga de comunicar los diferentes elementos que forman parte del procesador. No obstante existen diferentes topologías en lo que conocemos como Northbridge y es por ello que os las vamos a enumerar y explicar las más utilizadas en los diferentes procesadores de nuestro sistema, ya sean CPUs, APUs e incluso GPUs.
Infraestructura de bus compartido
El primer tipo de topología que hemos de tener en cuenta es la llamada infraestructura de bus compartido o Shared Bus Fabric. Este tipo de interfaces tienen una gran velocidad y se utilizan para comunicar los diferentes núcleos entre sí y sus cachés. Pero también se encarga de darle acceso al exterior a los núcleos de la CPU y por tanto de permitir el acceso a la memoria y los periféricos de manera coherente.
Esto supone que la infraestructura de bus compartido tiene que tener integrada una serie de mecanismos de cara a la coherencia con la memoria de los componentes dentro del procesador. Aquí tenemos que aclarar que nos podemos encontrar que una CPU y una GPU no compartan el mismo direccionamiento, por lo que no serán coherentes entre sí, pero a nivel interno de un mismo procesador lo normal es que todos los componentes sean coherentes o se busque la máxima coherencia posible. Aunque en las APUs esto no se suele conseguir.
La infraestructura de bus compartido es por tanto lo que conocemos como el Northbridge o puente norte, los cuales tienen diferentes tipos de topologías. Esta se tiene que entender como la forma en la que los diferentes componentes se encuentran intercomunicados entre sí , lo que afectará a la latencia, el coste de implementación, el consumo energético y demás factores.
Muchas veces hay diseños que no tienen el mejor tipo de infraestructura para sacar el máximo rendimiento a sus procesadores, pero se ha escogido por motivos de coste asociado, ya sea por la cantidad de transistores necesarios para su implementación como por los costes físicos como es la energía transmitida para comunicar o la emitida en forma de temperatura.
El Crossbar Switch
Un Crossbar Switch es el tipo de topología más fácil de visualizar. Se trata de un tipo de interfaz en malla donde cada uno de los componentes tiene una conexión directa con el resto de componentes del sistema. Por ejemplo si tenemos un procesador con 4 componentes en su interior entonces tendremos un Crossbar Switch de 4 x 4 unidades.
Se trata del tipo de topología más utilizado y la mayor ventaja es que permite realizar varias comunicaciones en paralelo. ¿Su mayor desventaja? A medida que tenemos más y más componentes conectados al Crossbar Switch más y más tamaño toma este dentro del chip, haciendo que la infraestructura de comunicación central crezca cada vez más y se llegue al momento en que el movimiento de datos acaba ocupando más espacio que el procesamiento de datos.
Es por ello que los Crossbar Switch pese a ser los más utilizados no son el único tipo de topología que nos podemos encontrar dentro de un procesador, su enorme complejidad hace que los diseñadores tomen otro tipo de topologías.
Topología en anillo
El segundo tipo de topología son los anillos, para entender su funcionamiento hemos de hacer un símil con la realidad como son las autopistas radiales que hay en algunas ciudades. Cada salida a un barrio o distrito desde la autopista radial en nuestro procesador es una entrada y salida de datos a un componente dentro del procesador y los vehículos que circulan son peticiones de datos desde y hacia esos mismos componentes.
En la infraestructura en anillo, los datos circulan dando vueltas por el anillo central. Por lo que la comunicación no es directa y los datos solamente salen del anillo cuando estos pasan delante del componente determinado. Un sistema automatizado en el anillo extrae los paquetes de datos e instrucciones hacía dicho componente y deja circular al resto. El problema de este tipo de topología es la velocidad a la que viajan los dato. Lo habitual es que por cada ciclo de la infraestructura de bus compartido se avance una subsección del anillo, por lo que la cantidad de subsecciones de un anillo corresponderá a la cantidad de componentes, lo que la hace difícil de escalar para crear diseños con más o menos componentes.
Los anillos son el tipo de infraestructura más simple a la hora de implementarse en un procesador y también la más barata de implementar a nivel de costes. Pero en una infraestructura de este tipo cada nodo se encuentra conectado solo a sus 2 vecinos más cercanos, uno por dirección. Esto se traduce en que la comunicación con componentes más lejanos tendrá una mayor latencia.
Topología toroidal
Las infraestructuras toroidales son ampliamente utilizadas en el mundo de la supercomputación para conectar de la manera más rápida y eficiente los diferentes procesadores repartidos en los diferentes blades alrededor de la infraestructura de la manera más eficiente posible. Aunque donde han conseguido su mayor popularidad en los últimos años ha sido de cara a los procesadores diseñados para acelerar algoritmos de inteligencia artificial. Ya sea a nivel de comunicar varias ALUs entre sí o diferentes procesadores.
A simple vista puede recordar a un Crossbar Switch, pero en el caso de un toro de 2 dimensiones un componente se puede comunicar con otros 4 componentes al mismo tiempo en vez de 2 en comparación un anillo y si hablamos de un toro de 3 dimensiones entonces tenemos que cada componente tendrá una comunicación con otros 6 componentes. Para visualizarlo hemos de tener en cuenta que cada dimensión de una topología toroidal permite la comunicación con un componente distinto, uno para cada dimensión. Por lo que de manera simplificada, un anillo es una infraestructura toroide de una sola dimensión.
Topología en árbol
La topología en árbol comunica los componentes en una infraestructura jerárquica organizada, de tal manera que para acceder a un componente es necesario comunicarse con el que se encuentra antes en la jerarquía. Es un concepto muy parecido al de la topología toroidal y al igual que esta tiene una latencia muy baja cuando los componentes se encuentran cercanos. Por lo que la latencia dependerá de la cantidad de niveles que se encuentre un componente respecto a otro dentro de la jerarquía.
La organización de una topología en árbol no tiene que tener una cantidad fija de nodos en cada uno de sus niveles y puede ser totalmente irregular en ese aspecto de un nivel de la jerarquía a otro. Por lo que en ese aspecto tiene una mayor versatilidad que la topología toroidal que hemos tratado en la sección anterior.
The post ¿Cómo se conectan los elementos de una CPU? Análisis de su topología appeared first on HardZone.