« Fonctionnement d'un ordinateur/Les périphériques et les cartes d'extension » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 118 :
===Switch fabric===
 
LesDans switchsle vus plus haut sont des switchs à partage de temps (saufcas le tout premier). Pour éviterplus celasimple, il suffit d'utiliser un bus par port d'entrée, chaque bus ayant ses propres filtres d'adresse : on obtient alors un '''switch totalement interconnecté'''. Ceux-ci sont essentiellement fabriqués avec des multiplexeurs. Avec ces switchs, il se peut que plusieurs paquets soient destinés à un seul port de sortie. Dans ce cas, ces paquets sont accumulés dans une mémoire tampon en sortie des filtres d'adresse : ces switchs utilisent l'output buffering. Les sorties des différents filtres d'adresse sont donc directement reliés à cette mémoire, et peuvent écrire dedans sans problème. Cela signifie que la mémoire tampon est multi-ports.
Le composant qui relie ports d'entrée et ports de sortie est appelé la '''switch fabric'''. Les switchs fabric peuvent s'implémenter de diverses manières :
 
[[File:Switch concu avec des multiplexeurs.png|thumb|centre|Switch concu avec des multiplexeurs]]
* un réseau d'interconnexions configurable selon les besoins ;
* une mémoire ;
* un bus.
 
Le '''switch crossbar''' utilise un réseau d'interconnexion dont les fils sont organisés en lignes et en colonnes. À l'intersection de chaque ligne et de colonne, on trouve soit un interrupteur qui relie la ligne et la colonne, soit des tampons FIFO d'arbitrage pour gérer l'Head-Of-Line Blocking. Le nombre d'interrupteurs/tampons FIFO est de N * M pour un switch à N ports d'entrée et M ports de sortie : pour les switchs qui ont un grand nombre de ports d'entrée et de sortie, cela devient rapidement impraticable. Pour éviter cela, les switchs à haute performance réduisent la taille des mémoires FIFO intégrées dans le crossbar, mais rajoutent de grosses mémoires FIFO sur les ports d'entrée : les simulations montrent que le rapport entre performance et nombre de portes logiques utilisées est meilleur avec cette technique. On peut utiliser plusieurs switchs crossbar pour former un switch plus gros, les différentes manières donnant respectivement un '''réseau CLOS''', un '''réseau de Benes''', un '''réseau de banyan''', les '''Switch Sunshine''', et bien d'autres.
Pour faciliter l'implémentation du multicast et du broadcast, certains switchs émulent les liaisons point à point entre ports à partir d'un bus ou d'un réseau en anneaux : ce sont les '''switchs à média partagés'''. Avec cette architecture, implémenter le multicast ou le broadcast est relativement complexe. Pour résoudre ce problème, il suffit de relier chaque port de sortie sur le bus interne directement, sans démultiplexeur. En faisant cela, chaque port de sortie doit filtrer les paquets qui ne lui sont pas destinés. Pour cela, on ajoute un filtre d'adresse pour comparer l'adresse MAC/IP associée au port (CAM table) et l'adresse MAC de destination : s'il y a égalité, alors on peut recopier la donnée sur le port de sortie.
 
Pour faciliter l'implémentation du multicast et du broadcast, certains switchs émulent les liaisons point à point entre ports à partir d'un bus ou d'un réseau en anneaux : ce sont les '''switchs à média partagés'''. Avec cette architecture, implémenter le multicast ou le broadcast est relativement complexe. Pour résoudre ce problème, il suffit de relier chaque port de sortie sur le bus interne directement, sans démultiplexeur. En faisant cela, chaque port de sortie doit filtrer les paquets qui ne lui sont pas destinés. Pour cela, on ajoute un filtre d'adresse pour comparer l'adresse MAC/IP associée au port (CAM table) et l'adresse MAC de destination : s'il y a égalité, alors on peut recopier la donnée sur le port de sortie. Ces switchs sont des switchs à partage de temps (sauf le tout premier).
 
<gallery widths=450px heights=200px>
Ligne 130 :
Switch à média partagé.png|Switch à média partagé
</gallery>
 
Les switchs vus plus haut sont des switchs à partage de temps (sauf le tout premier). Pour éviter cela, il suffit d'utiliser un bus par port d'entrée, chaque bus ayant ses propres filtres d'adresse : on obtient alors un '''switch totalement interconnecté'''. Ceux-ci sont essentiellement fabriqués avec des multiplexeurs. Avec ces switchs, il se peut que plusieurs paquets soient destinés à un seul port de sortie. Dans ce cas, ces paquets sont accumulés dans une mémoire tampon en sortie des filtres d'adresse : ces switchs utilisent l'output buffering. Les sorties des différents filtres d'adresse sont donc directement reliés à cette mémoire, et peuvent écrire dedans sans problème. Cela signifie que la mémoire tampon est multi-ports.
 
[[File:Switch concu avec des multiplexeurs.png|thumb|centre|Switch concu avec des multiplexeurs]]
 
Certains switchs remplacent le bus interne par une mémoire RAM : ce sont les '''switchs à mémoire partagée'''. Ces switchs permettent de gérer l'arbitrage directement dans la switch fabric : la mémoire centrale stocke les données des tampons FIFO d'arbitrage des ports d'entrée. Le switch présenté dans le schéma ci-dessous peut être transformé en switch sans partage de temps avec une mémoire multiport : il suffit d'avoir autant de ports d'écriture que de ports d'entrée, et d'adapter les circuits de gestion de la mémoire. Dans ce qui va suivre, mes schémas utiliseront un switch à partage de temps. Reste que ces tampons FIFO peuvent s'implémenter de différentes manières.
Ligne 145 ⟶ 141 :
FIFO switch.png|FIFO switch
</gallery>
 
Le '''switch crossbar''' utilise un réseau d'interconnexion dont les fils sont organisés en lignes et en colonnes. À l'intersection de chaque ligne et de colonne, on trouve soit un interrupteur qui relie la ligne et la colonne, soit des tampons FIFO d'arbitrage pour gérer l'Head-Of-Line Blocking. Le nombre d'interrupteurs/tampons FIFO est de N * M pour un switch à N ports d'entrée et M ports de sortie : pour les switchs qui ont un grand nombre de ports d'entrée et de sortie, cela devient rapidement impraticable. Pour éviter cela, les switchs à haute performance réduisent la taille des mémoires FIFO intégrées dans le crossbar, mais rajoutent de grosses mémoires FIFO sur les ports d'entrée : les simulations montrent que le rapport entre performance et nombre de portes logiques utilisées est meilleur avec cette technique. On peut utiliser plusieurs switchs crossbar pour former un switch plus gros, les différentes manières donnant respectivement un '''réseau CLOS''', un '''réseau de Benes''', un '''réseau de banyan''', les '''Switch Sunshine''', et bien d'autres.
 
===Arbitrage===