• Aucun résultat trouvé

Dans le chapitre 1, nous avons pr´esent´e les r´eseaux sur puces comme un nouveau pa-radigme apportant une r´eponse aux probl´ematiques de conception des circuits [BDM02]. Plusieurs ´etudes ont ´et´e men´ees donnant lieu `a diff´erentes r´ealisations et descriptions. Les travaux de l’´equipe BONE4

ont fait l’objet d’impl´ementations de r´eseaux `a basse consommation et latence. Plusieurs applications multim´edia ont ´et´e implement´ees `a l’aide de leurs r´eseaux, [SJKSJHJ05],[KSJY+

08]. D’autres r´eseaux sur puces ont ´et´e con¸cus comme : Hermes [MCM+

04], Xpipes [BB04], SonicsMX, Nostrum [KJM+

02][Nil03], Spi-dergon [CLM+

04], et DSPIN [MPGS06]. Hermes, Faust [CVL05] [DBL05] et Nostrum ont ´et´e r´ealis´es sur FPGA et des mesures de performances ont ´et´e publi´ees. SonicsMX est une solution d’interconnexion industrielle propos´e par Sonics. D’autres r´eseaux ont ´et´e r´ealis´es en technologie ASIC comme Æthereal[RGR+

03], SPIN[And03], DSPIN. Des SoCs construits `a l’aide de NoCs existent d´ej`a comme l’architecture Faust. L’architecture Faust est une plateforme de t´el´ecommunications respectant les normes IEEE802.11a et le MC-CDMA impl´ement´ee avec les r´eseaux aSOC et DSPIN [MPCVG08].

Dans cette section, nous allons pr´esenter trois impl´ementations de r´eseaux sur puces qui ont ´et´e utilis´ees comme cas d’´etudes pour notre mod`ele : Hermes, Nostrum et Spidergon.

2.6 : R´ealisations de r´eseaux 23

2.6.1 Hermes

Hermes5

est d´evelopp´e `a l’universit´e catholique de Rio Grande do Sol (Br´esil) avec la collaboration du Laboratoire d’Informatique de Robotique et de Micro-´electronique de Montpellier (LIRMM). Ce r´eseau utilise la commutation par ver de terre dans une grille `a deux dimensions avec un routage XY sans contrˆole de flux. Un routeur contient cinq ports bidirectionnels :Nord, Sud, Est, Ouest, et Local. Chaque IP est coupl´e `a un rou-teur `a l’aide du port local (figure 2.12), l’interconnexion avec les voisins se fait `a travers les quatre autres ports.

Figure 2.12 – Routeur du r´eseau Hermes [MCM+ 04]

Chaque routeur contient principalement : la logique de contrˆole (compos´ee de la lo-gique de routage et d’arbitrage) et les ports de communications. Chaque port d’entr´ee m´emorise les donn´ees re¸cues dans une FIFO. La communication asynchrone entre les rou-teurs est faite `a l’aide d’un protocole de poign´ee de main, alors que dans les rourou-teurs les transactions sont synchrones (Globalement Asynchrone Localement Synchrone). Un code de correction d’erreur est utilis´e pour s’affranchir des erreurs ´eventuelles. Un arbi-trage `a priorit´e tournante (round robin) est utilis´e pour arbitrer l’acc`es aux ports. Les flits re¸cus ou bloqu´es sont stock´es dans le buffer dans un port de communication (ceci limite la chute des performances). Des buffers `a FIFO circulaire param´etrable sont utilis´es. La figure 2.13 d´ecrit l’interface entre deux routeurs. Quand un routeur a des donn´ees `a envoyer `a un de ses voisin il active le signalT xet attend l’acquittement de l’autre partie sur la ligneack tx. Suite `a cet ´echange, le routeur peut proc´eder `a l’envoi des donn´ees.

La logique de contrˆole est l’ensemble de la logique de routage et d’arbitrage. Lors de la pr´esence d’un flit `a envoyer sur un port d’entr´ee, ce dernier envoie une requˆete `a la logique d’arbitrage. Lorsque celle-ci termine l’arbitrage selon la politiqueround robin, elle transf´erera les donn´ees n´ecessaires `a la logique de routage. Cette derni`ere d´ecidera alors du port de sortie selon l’adresse et l’´etat du tableau du routage. Si le port est occup´e, les flits de ce paquet sont bloqu´es sur le port d’entr´ee et le signal de requˆete `a la logique

Figure 2.13 – Interface entre deux routeurs [MCM+ 04]

d’arbitrage reste actif. Au cycle suivant le processus recommencera jusqu’au moment o`u le message pourra obtenir le port de sortie.

2.6.2 Nostrum

Nostrum6

est une architecture de type GALS ayant une topologie de grille 2D, cou-pl´ee `a un algorithme de routage adaptatif non-minimal et une commutation par paquets et par circuits virtuels. Chaque routeur contient 5 ports bidirectionnels : Nord, Sud, Est, Ouest et Local (figure 2.14). Les besoins en m´emoire sont minimes, un paquet n’est jamais m´emoris´e ni bloqu´e dans un routeur.

Figure 2.14 – Routeur de Nostrum

L’utilisation de deux modes de commutation permet de d´efinir deux types de trafic : le trafic normal est achemin´e via commutation par paquet, et les circuits virtuels seront utilis´es pour satisfaire des besoins de QoS (guaranteed service). La taille des paquets est

2.6 : R´ealisations de r´eseaux 25

param´etrable. L’entˆete contient l’adresse de la destination sous forme d’adresse relative sur les deux dimensions (X et Y) ainsi qu’un compteur de saut (Hop Counter) qui est incr´ement´e lors du passage sur un routeur.

Le routage est un routage d´eflectif, dit “hot potato” : chaque paquet est imm´ediate-ment retransmis `a un routeur voisin, ce qui permet de n’avoir qu’un buffer `a une place sur chaque port d’entr´ee et de sortie. Pour d´ecider du voisin auquel le paquet sera transmis, les paquets sur les cinq ports d’entr´ee sont analys´es et selon les valeurs de la destination, une ou deux directions favorites sont choisies pour chaque message. Si les adresses relatives X et Y sont ´egales `a 0 la direction favorite est le port local. Sinon, si la coordonn´ee X est sup´erieure `a 0, l’est est parmi les directions favorites. Sinon, c’est la directionouest. Si la coordonn´ee Y est sup´erieure `a 0, lesud est parmi les directions favorites, autrement c’est la directionnord. Le table 2.1 r´esume le choix des directions favorites. Quand un message a deux directions favorites, l’algorithme sp´ecifie de suivre la direction qui lui permet de voyager le plus longtemps au long de la mˆeme dimension, e.g. si les adresses relatifs sont x=-3 ey y=2, le message aura comme directions favorites l’ouest et le sud. L’algorithme sp´ecifie dans ce cas de suivre la direction ouest puisque|x| >|y|. Avec l’adressage relatif utilis´e, il suffit de comparer le X et le Y, et suivre la direction ayant la composante la plus grande. X Y Direction(s) Favorite(s) 0 0 Locale 0 0< Sud 0 <0 Nord <0 0 Ouest <0 0< Sud et Ouest <0 <0 Nord et Ouest 0< 0 Est 0< 0< Sud et Est 0< <0 Nord et Est

Table 2.1 – Choix des directions favorites Exemple 2.3 Routage du r´eseau Nostrum.

La figure 2.15 montre un message au d´epart du nœud (1 1) avec une destination (2 3). L’adresse de la destination dans l’entˆete sera de (1 2) qui repr´esente la distance entre la position actuelle du message et la destination : un pas vers l’est et deux pas vers le sud. Cette adresse sera modifi´ee `a chaque pas du message pour refl´eter le d´eplacement en cal-culant la nouvelle adresse relative. Dans une situation id´eale (pas de conflit), le message suivra tout d’abord la direction sud (X <Y). L’adresse est modifi´ee pour devenir (1 1). A ce routeur, le message sortira par le port sud, l’adresse devient (1 0). Ensuite, le message sera transmis dans la direction de l’est pour arriver `a destination.

Il se peut que plusieurs messages aient les mˆemes pr´ef´erences de directions. Si l’un des deux appartient `a un circuit virtuel, il gagne l’arbitrage pour le port de sortie. Sinon, un syst`eme de priorit´e est utilis´e dans lequel le message le plus ancien (ayant lehop counter

Figure 2.15 – Exemple de routage de Nostrum

destination l’emporte. Ceci tend `a ´eviter des situations de livelock. Le message perdant empruntera l’autre direction favorite (dans le cas o`u il avait le luxe d’en avoir deux), ou sera transmis dans une direction non favorite.

Le choix des ports de sortie non d´esir´es pour un message se fait selon deux crit`eres : la charge du routeur dans chaque direction et la situation du routeur. Chaque routeur communique `a ses voisins la charge qu’il a eue durant les quatre derniers cycles. Le choix favorise toujours le routeur ayant la moindre charge. Le deuxi`eme crit`ere consiste `a ´eloigner les messages loin du centre du r´eseau dans le but de diminuer la congestion dans cette zone. Si un routeur est dans le sud-est du centre du r´eseau, la pr´ef´erence sera d’envoyer les messages qui perdent l’arbitrage dans la direction du sud ou de l’est.

2.6.3 Spidergon

D´evelopp´e par STMicroelectronics, le r´eseau Spidergon [CLM+

04] a une topologie en anneau dans laquelle chaque routeur est reli´e directement `a son correspondant dispos´e en diagonale. Cette connexion permet de minimiser le nombre de nœuds qu’un paquet traversera pour parvenir `a sa destination. Une commutation par ver de terre est utilis´ee, coupl´ee `a un algorithme de routage minimal. Le r´eseau est une extension du r´eseau Oc-tagon [KND02], permettant de construire des syst`emes avec un nombre de nœuds qui est multiple de quatre.

La figure 2.16 montre l’interconnexion dans le cas de 16 nœuds. Chaque nœud poss`ede quatre ports qui le connectent `a trois voisins, un dans le sens des aiguilles d’une montre (portclockwise), un dans le sens contraire des aiguilles d’une montre (portanticlockwise), et un en face (port across), ainsi qu’`a un IP (port local). L’algorithme de routage utilis´e d´ecrit ci-dessous permet aux paquets d’atteindre leur destination en un nombre de pas inf´erieur ou ´egal `a N odenum/4, o`u N odenum est le nombre de nœuds. Lors de l’arriv´ee d’un message sur un nœud, l’adresse relative de la destination (RelAd) est calcul´ee `a l’aide de l’adresse locale du nœud (LocAd) et l’adresse de la destination (DestAd). L’´equation 2.4 utilis´ee dans le calcul est le mˆeme que pour le r´eseau Octagon ; N vaut N odenum/4,

Documents relatifs