Types de topologie pour la communication interne sur CPU et GPU

Types de topologie pour la communication interne sur CPU et GPU

Toute architecture multicœur nécessite une communication interne pour communiquer ses différents composants entre eux, cependant il existe différents types de topologies d'interconnexion avec des résultats différents pour la communication interne d'un Processeurun GPU ou tout autre type de processeur composé de plusieurs éléments devant communiquer entre eux. Quel est le type de topologie le plus couramment utilisé ?

La plupart des processeurs d'aujourd'hui sont des pièces extrêmement complexes composées d'autres, mais en général, ils ont tous tendance à avoir une communication centrale chargée de communiquer les différents éléments qui font partie du processeur. Cependant, il existe différentes topologies dans ce que nous appelons Northbridge et c'est pourquoi nous allons les lister et expliquer les plus utilisées dans les différents processeurs de notre système, qu'il s'agisse de CPU, d'APU et même de GPU.

Infrastructure de bus partagée

Tissu de bus partagé

Le premier type de topologie que nous devons considérer est ce que l'on appelle l'infrastructure de bus partagé ou Shared Bus Fabric. Ces types d'interfaces ont une grande vitesse et sont utilisées pour communiquer les différents cœurs entre eux et leurs caches. Mais il est aussi chargé de donner accès à l'extérieur aux cœurs du CPU et donc de permettre l'accès à la mémoire et aux périphériques de manière cohérente.

Cela signifie que l'infrastructure de bus partagé doit avoir une série de mécanismes intégrés afin d'assurer la cohérence avec la mémoire des composants au sein du processeur. Ici, nous devons préciser que nous pouvons constater qu'un CPU et un GPU ne partagent pas le même adressage, ils ne seront donc pas cohérents entre eux, mais en interne du même processeur il est normal que tous les composants soient cohérents ou au maximum cohérence possible. Bien que dans les APU, cela ne soit généralement pas atteint.

Cache

L'infrastructure de bus partagé est donc ce que nous appelons le Northbridge ou le pont nord, qui ont différents types de topologies. Cela doit être compris comme la manière dont les différents composants communiquent entre eux, ce qui affectera la latence, le coût de mise en œuvre, la consommation d'énergie et d'autres facteurs.

Souvent, il existe des conceptions qui n'ont pas le meilleur type d'infrastructure pour tirer le meilleur parti de leurs processeurs, mais elle a été choisie pour des raisons de coût associé, soit en raison du nombre de transistors nécessaires à sa mise en œuvre et en raison de la des coûts tels que l'énergie transmise pour communiquer ou émise sous forme de température.

Le commutateur de barre transversale

Commutateur de barre transversale

Un commutateur crossbar est le type de topologie le plus simple à visualiser. C'est un type d'interface maillée où chacun des composants a une connexion directe avec le reste des composants du système. Par exemple, si nous avons un processeur avec 4 composants à l'intérieur, nous aurons un Crossbar Switch de 4 x 4 unités.

C'est le type de topologie le plus utilisé et le plus grand avantage est qu'il permet d'effectuer plusieurs communications en parallèle. Son plus gros inconvénient ? Comme nous avons de plus en plus de composants connectés au Crossbar Switch, de plus en plus de taille prend cela à l'intérieur de la puce, ce qui fait que l'infrastructure de communication centrale se développe de plus en plus et le moment est atteint où le mouvement des données finit par prendre plus de place que le traitement de l'information.

C'est pourquoi les Crossbar Switches bien qu'étant les plus utilisés ne sont pas le seul type de topologie que l'on puisse trouver au sein d'un processeur, leur énorme complexité oblige les concepteurs à adopter d'autres types de topologies.

Topologie en anneau

Topologie Anillo

Le deuxième type de topologie sont les anneaux, pour comprendre comment ils fonctionnent, nous devons faire une comparaison avec la réalité, comme les autoroutes radiales dans certaines villes. Chaque sortie vers un quartier ou un district de l'autoroute radiale dans notre processeur est une entrée et une sortie de données vers un composant dans le processeur et les véhicules qui circulent sont des demandes de données depuis et vers ces mêmes composants.

Dans l'infrastructure en anneau, les données circulent autour de l'anneau central. La communication n'est donc pas directe et les données ne quittent l'anneau que lorsqu'elles passent devant le composant déterminé. Un système automatisé dans l'anneau extrait les paquets de données et d'instructions vers ledit composant et fait circuler le reste. Le problème avec ce type de topologie est la vitesse à laquelle les données voyagent. En règle générale, pour chaque cycle de l'infrastructure de bus partagé, une sous-section de l'anneau est avancée, de sorte que le nombre de sous-sections d'un anneau correspondra au nombre de composants, ce qui rend difficile la mise à l'échelle pour créer des conceptions avec plus ou plus. moins de composants.

Les anneaux sont le type d'infrastructure le plus simple à mettre en œuvre sur un processeur et aussi le moins cher à mettre en œuvre au niveau des coûts. Mais dans une infrastructure de ce type, chaque nœud n'est connecté qu'à ses 2 plus proches voisins, un par adresse. Cela signifie que la communication avec des composants plus distants aura une latence plus élevée.

Topologie toroïdale

Topologie Toroide

Les infrastructures toroïdales sont largement utilisées dans le monde du supercalcul pour connecter de la manière la plus rapide et la plus efficace les différents processeurs répartis dans les différentes lames autour de l'infrastructure de la manière la plus efficace possible. Bien qu'ils aient atteint leur plus grande popularité ces dernières années, c'est face aux processeurs conçus pour accélérer les algorithmes d'intelligence artificielle. Soit au niveau de la communication de plusieurs ALU entre elles ou de différents processeurs.

A première vue cela peut faire penser à un Crossbar Switch, mais dans le cas d'un tore en 2 dimensions un composant peut communiquer avec 4 autres composants en même temps au lieu de 2 par rapport à un anneau et si on parle d'un 3 dimensions tore alors nous avons que chaque composant aura une communication avec 6 autres composants. Pour le visualiser, il faut garder à l'esprit que chaque dimension d'une topologie toroïdale permet la communication avec un composant différent, un pour chaque dimension. Ainsi, de manière simplifiée, un anneau est une infrastructure toroïdale unidimensionnelle.

Topologie arborescente

Topologie Arbol

La topologie arborescente communique les composants dans une infrastructure hiérarchique organisée, de telle sorte que pour accéder à un composant il est nécessaire de communiquer avec celui qui se trouve en amont de la hiérarchie. C'est un concept très similaire à celui de la topologie toroïdale et comme cela il a une très faible latence lorsque les composants sont proches les uns des autres. Par conséquent, la latence dépendra du nombre de niveaux qu'un composant se trouve par rapport à un autre au sein de la hiérarchie.

L'organisation d'une topologie arborescente n'a pas besoin d'avoir un nombre fixe de nœuds dans chacun de ses niveaux et peut être totalement irrégulière sur cet aspect d'un niveau de la hiérarchie à l'autre. Ainsi, dans cet aspect, il a une plus grande polyvalence que la topologie toroïdale que nous avons discutée dans la section précédente.