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

Contenu supprimé Contenu ajouté
Ligne 134 :
 
[[File:Switch concu avec des multiplexeurs.png|thumb|centre|Switch concu avec des multiplexeurs]]
 
Utiliser une mémoire multi-ports reliée à autant de filtres d'adresse est clairement un challenge quand le nombre de ports de sortie est trop grand. De plus, ce n'est utile que quand tous les paquets reçus sur les ports d'entrée doivent être routés sur un seul port de sortie. Dans la majorité des cas, seule une faible quantité de ports d'entrée veulent router un paquet sur le même port de sortie. Dans ces conditions, certains switchs ne permettent de router qu'un nombre limité de paquets sur le même port en même temps pour économiser du circuit. On obtient alors un '''Knockout switch'''. Le principe est très simple : les filtres d'adresse associés à un port de sortie sont suivis par un concentrateur, qui sélectionne L paquets parmi les N filtres d'adresse. Seuls ces N paquets sont envoyés dans les tampons FIFO du port de sortie. Si jamais le nombre de paquets destinés au port de sortie dépasse la limite L, seuls L paquets seront conservés et les autres seront perdus.
 
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 148 ⟶ 146 :
</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.
 
[[File:Switch Crossbar avec arbitrage intégré.png|centre|thumb|Switch Crossbar avec arbitrage intégré]]
 
On peut utiliser plusieurs switchs crossbar pour former un switch plus gros. Cette méthode donne ce que l'on appelle un '''réseau CLOS'''. Un réseau CLOS est conçu à partir de trois couches de réseaux crossbar : une couche d'entrée, une couche intermédiaire et une couche de sortie. Il est aussi possible d'utiliser plus de trois couches. Par exemple, on peut créer un switch CLOS à partir de plusieurs couches de crossbar 2 - 2 : on parle alors d'un '''réseau de Benes'''. On pourrait aussi citer les '''réseaux de banyan''', les '''Switch Sunshine''', et bien d'autres.
 
===Arbitrage===