• Aucun résultat trouvé

Techniques d’aiguillage - Switching techniques

4.2 Réseaux sur puce

4.2.3 Techniques d’aiguillage - Switching techniques

Les techniques d’aiguillage (switching techniques) déterminent la manière dont les paquets

de données traversent les routeurs à travers le réseau [DYN02]. Ces techniques définissent

éga-lement la granularité du transfert de données. Les nœuds (PE) génèrent les messages que l’on fractionne en plusieurs paquets de donnée possibles. Chaque paquet est ensuite partitionné en plus petites unités de contrôle que l’on appelle flits (flow control unit). Un flit représente un pa-quet élémentaire qui peut être également subdivisé en phits (physical units). Généralement, un

FIG. 4.5 – Exemples d’une topologie irrégulière des réseaux sur puce basée sur la structure de type mesh 2D.

routeurs en un seul cycle d’horloge. La taille d’un phit est souvent la taille du canal de données

en bits reliant les routeurs du réseau. La figure4.6 illustre la structuration et la décomposition

d’un message en paquets, flits et phits. Les différentes architectures NoC utilisent différents types de phits, de flits, de paquets et de messages. En effet, le choix judicieux de la taille de ces unités a un impact considérable sur les performances, le coût et la consommation lors de la conception d’une architecture NoC.

Les deux principales techniques d’aiguillage dans un NoC sont les techniques dites de «

cir-cuit switching » et « packet switching ». La technique d’aiguillage circir-cuit switching repose sur

deux étapes. Dans une première étape, un chemin entre la source et la destination est établi. C’est le rôle de l’entête (header) flit de « réserver » au cours de son cheminement ce chemin de transmission. Si le header flit arrive jusqu’à sa destination sans avoir des collisions avec d’autres demandes en cours, un acquittement positif est envoyé à la source. Une fois que cet acquitte-ment est reçu, la deuxième étape de transmission débute. Dans cette seconde étape, les messages sont entièrement transmis vers la cible selon le cheminement réservé au cours de l’étape précé-dente. Par contre, si le header flit n’arrive pas jusqu’à la destination dû à d’autres demandes de transmission en cours, un acquittement négatif est envoyé vers la source pour lui indiquer que

Tail flit Head flit Message Paquet Flit Flit Paquet Phit

4.2. Réseaux sur puce

la transmission ne peut s’effectuer à cet instant et donc n’aura pas lieu. Les principaux avan-tages de cette technique d’aiguillage sont une large bande passante et une faible latence entre les sources et destinations lorsque le chemin entre elles est établi. Un exemple de NoC utilisant

cette technique d’aiguillage est l’architecture NoC SOCBUS [WSRS05]. Le principal

inconvé-nient de ce type de technique d’aiguillage est qu’il n’est pas très « extensible ». En effet, en augmentant la taille du réseau, la durée d’occupation des canaux de transmission devient trop importante. En particulier au cours de la phase de réservation du chemin de transmission. Des solutions pour y remédier à cet inconvénient ont été proposées. Une solution consiste à exten-sion par des canaux de transmisexten-sion supplémentaires en parallèle à ceux de base. Ces canaux supplémentaires sont appelés canaux virtuels (virtual channels). L’architecture NoC utilisant ce type de technique avec un seul buffer par un canal virtuel est l’architecture NoC MANGO [Bje05]. Une autre variante de la technique circuit switching à canaux virtuels est l’utilisation

d’un seul buffer par un canal physique [GDR05,KJS+02].

Contrairement à la technique d’aiguillage packet switching, dans la technique circuit

swit-ching il n’y a pas de réservation de chemin entre un nœud source et un nœud destinataire du

réseau sur puce. Les paquets, transmis dans le réseau par une source, établissent leur chemin vers la cible au fur et à mesure de transmission à travers le réseau. Cette technique ne nécessite pas une durée d’établissement de connexion entre les communicants (start-up time). Cependant, elle est caractérisée par un temps de latence plus élevé par rapport à une technique d’aiguillage

circuit switching. En effet, les situations d’encombrements de paquets dans un routeur arrivent

plus fréquemment et augmente donc la latence de transmission des paquets.

Nous distinguons trois types de technique d’aiguillage de type packets switching :

store-and-forward (SAF) , virtual cut trough (VCT) et wormhole switching (WS) . Dans la technique

SAF, un paquet est transmis d’un routeur à autre (routeur voisin) seulement si ce dernier a la

capacité de stocker entièrement un paquet à transmettre [KJS+02]. Dans ce type d’aiguillage, la

taille des buffers des routeurs utilisés doit être au moins égale à la taille d’un paquet de données. Il s’agit alors de définir un dimensionnement judicieux des tailles des buffers routeurs. En effet, l’utilisation des buffers de grande taille présente un grand inconvénient de cette technique en terme de consommation de ressources matérielles. La technique VCT est caractérisée par un temps de latence plus faible que la technique SAF. Dans cette technique, un paquet peut ne pas être transmis dans son intégrité d’un routeur à un autre. La transmission des paquets d’un routeur à un autre repose sur la capacité de stockage par les routeurs des flits de paquets. Ainsi, dès qu’un routeur voisin peut stocker un flit, ce dernier est transmis vers ce routeur. Les autres

flits suivent le premier sans délais supplémentaires. Par contre, dans le cas où le premier flit

ne peut pas être transféré vers le routeur voisin (espace de stockage du buffer routeur voisin insuffisant), le flit demeure en attente avec d’autres flits dans le routeur initial, le temps de libérer l’espace buffer du routeur voisin. Comme pour la technique d’aiguillage SAF, la technique VCT

a également l’inconvénient de nécessité des routeurs utilisant des buffers de grande taille. La technique d’aiguillage la plus couramment utilisée dans les NoC est la technique

worm-hole switching (WS). Pour cette technique d’aiguillage, les besoins en terme de taille de buffers

des routeurs se réduisent au stockage d’un seul flit. Le flit est transféré depuis un routeur cou-rant vers un routeur voisin si ce dernier dispose d’un espace suffisant pour stocker le flit. Dans le cas contraire, ce dernier demeure dans le routeur courant. Ainsi, un paquet peut être distribué à travers ses flits dans plusieurs routeurs avant d’être finalement complètement acheminé vers la cible. Étant cette distribution autorisée dans cette technique, les situations d’embouteillage ou de blocage (deadlock) apparaissent plus fréquemment par rapport aux techniques SAF et VCT. Parmi les architectures NoC utilisant la technique WS, nous pouvons citer l’architecture NoC

SPIN [AG03]. D’autres architectures NoC reposent sur une combinaison des techniques WS et

VCF [Bje05,GDR05].