• Aucun résultat trouvé

Bloc « Logique de sortie » d’un routeur Q-switch

Le buffer de sortie est composé de trois registres de taille identique et égale à la taille des paquets. Les registres sont utilisés pour stocker temporairement les paquets avant leur transfert. Dans les situations où plusieurs paquets arrivent aux entrées d’un bloc « Logique de sortie », le paquet qui a la priorité la plus élevée sera directement transféré vers la sortie du routeur si le routeur voisin est disponible au moment du transfert. Les disponibilités des routeurs voisins

sont indiquées au routeur considéré à travers les signaux de contrôleoccin. Les autres paquets

de priorités moins élevées sont stockés temporairement dans le buffer de sortie pour ensuite être transférés individuellement et successivement après le transfert du premier paquet. Le buf-fer de sortie est également utilisé pour stocker provisoirement des paquets (au maximum 3) arrivant depuis une même direction et ne pouvant pas être directement transférés pour cause d’indisponibilité du routeur voisin de réception.

L’ensemble des fonctions d’un bloc « Logique de sortie » est pilotée par une machine d’état. Cette machine génère tous les signaux de contrôle et assure une gestion du routeur permettant d’éviter toute sorte de collision entre les paquets. Cette machine d’état est reliée à la logique

de contrôle centrale du routeur à travers un signal de contrôle (signalwait) pour l’informer des

indisponibilités éventuelles des routeurs voisins (voir figure4.39).

4.3.3.4 Logique de contrôle centrale

Les sorties du Q-switch sont pilotées par les logiques de contrôle des sorties. Ces blocs de logique de contrôle sont suffisants pour organiser les transferts des paquets, mais seulement dans les situations où les routeurs voisins ne sont pas occupés. Dans le cas contraire, un bloc de contrôle supplémentaire est nécessaire pour gérer ce genre de situations.

Le Q-switch a à chaque port des signaux de contrôle d’entrée qui lui donnent les informa-tions sur l’occupation de ses voisins directs, et de sortie avec lesquels il indique à ses routeurs voisins son état d’occupation. Les situations d’occupation se produisent dans les cas où

plu-sieurs paquets arrivent simultanément aux entrées d’une logique de sortie. Dans ces situations, le transfert de plusieurs paquets n’est pas possible dans un cycle d’horloge. La logique de con-trôle centrale gère ces signaux d’occupation de sortie. En effet, elle positionne les signaux d’occupation de sortie à ’1’ vers les routeurs voisins depuis lesquels les paquets sont arrivés, pour les informer que le Q-switch considéré est temporairement indisponible et qu’il ne peut plus accepter d’autres paquets venant de ces directions. Après avoir transféré tous les paquets, la logique de contrôle centrale remet à zéro ces signaux d’occupation de sortie et le Q-switch est de nouveau disponible pour recevoir des paquets de ces directions.

La logique de contrôle centrale gère également le stockage des paquets qui, faute d’occu-pation des routeurs voisins, restent bloqués dans le routeur. Ces paquets sont, soit stockés dans les registres d’entrée, soit dans les buffers de sortie. Dans les deux cas, la logique de contrôle centrale positionne à ’1’ les signaux d’occupation de sortie vers les routeurs voisins correspon-dant et leur indique l’indisponibilité provisoire. Une fois tous les paquets sont transférés du routeur vers ses voisins, le routeur redevient disponible pour la réception d’autres paquets de ces directions. Ceci est indiqué par la remise à zéro des signaux d’occupation de sortie.

4.3.3.5 Algorithme de routage

Un réseau QNoC utilise un algorithme de routage basé sur un algorithme XY modifié. En effet, l’algorithme XY ne peut pas être utilisé pour le routage des paquets dans sa version initiale pour un réseau reconfigurable, car il n’est pas adapté à des structures irrégulières du réseau qui peuvent se produire lors d’un placement dynamique des modules de calcul au sein du réseau. En effet, pour certaine structure irrégulière des routeurs d’un réseau reconfigurable, le routage de paquets de données basé sur l’algorithme XY est impossible.

Comme pour l’algorithme XY classique [DYN02], avec l’algorithme de routage développé

pour un réseau CuNoC et QNoC, les paquets de données sont premièrement acheminés selon l’axe X de direction du réseau (réseau maillé 2D). Ensuite, ces paquets sont acheminés vers leurs destinations finales selon l’axe Y du réseau. Si au cours du processus de routage selon les axes X et Y du réseau, un paquet rencontre des modules dynamiques de calcul obstruant son chemine-ment dans le réseau, l’algorithme de routage utilisé permet leurs contournechemine-ments. Pour cela, une

logique de contrôle locale à chaque routeur permet la distinction du type d’entité (routeur ou

module de calcul) connectée à un routeur. Ainsi, si un routeur est connecté directement à un mo-dule de calcul ou à un autre routeur Q-switch, le routeur Q-switch considéré analyse ses signaux de contrôle d’entrée permettant de lui indiquer la nature de ses entités voisines (routeur ou mo-dule). Ces signaux de contrôle contribuent et facilitent le routage au sein d’un réseau QNoC. En fonction des résultats de cette analyse locale de chaque routeur, l’algorithme proposé permet le contournement de module dynamique dans le réseau à partir d’une approche de routage de type XY. De plus, pour éviter des situations de blocage pouvant arriver dans les réseaux NoC,

4.3. Réseaux sur puce reconfigurables

certaines conditions de direction de transmission de paquets à partir d’une direction d’entrée dans un routeur (sens direction - turn) ne sont pas autorisées (algorithme de type turn). Contrai-rement à l’algorithme développé pour le réseau CuNoC, l’algorithme de routage proposé pour le réseau QNoC résout également l’inconvénient de l’ordre d’arrivée des paquets à un nœud du réseau. En effet, si au cours du fonctionnement du réseau, il n’y a pas de placements dyna-miques entre deux modules de calcul, les chemins empruntés par les paquets envoyés à partir d’un module vers un autre module destinataire, seront identiques et de même longueur (même situation que l’algorithme XY), conservant alors l’ordre d’émission et de réception des paquets transmis. Par contre, les paquets d’un message envoyés par d’un module de calcul, peuvent être imbriqués à la destination avec les paquets d’autres messages envoyés par d’autres modules de calcul du réseau.

4.3.3.6 Conditions de placement des modules dynamiques de calcul dans un réseau QNoC

La construction d’un réseau QNoC est identique à celle d’un réseau CuNoC, présenté pré-cédemment. Les éléments du réseau sont instanciés dans une surface reconfigurable. Dans une première étape, les routeurs du réseau QNoC sont placés dans la zone reconfigurable. Ensuite, des modules de calcul sont localement placés au sein du réseau par substitution de routeurs ini-tialement placés. Si le placement d’un module nécessite la substitution de plusieurs routeurs du réseau, alors le module nouvellement placé hérite de toutes les adresses des routeurs substitués. Les règles de placement définies au sein d’un réseau CuNoC sont conservées pour un réseau

QNoC.

La procédure de placement dynamique des modules de calcul dans un réseau QNoC est

également identique à celle décrite dans un réseau CuNoC (voir section4.3.2.5). Ainsi, avant le

placement dynamique d’un module de calcul, le ou les routeurs Q-switch de substitution vident leurs buffers et se mettent en mode « module », afin de ne plus accepter de paquets de données par leurs routeurs voisins. D’autre part, ces derniers prennent en compte le nouveau statut du ou des routeurs de substitution pour le routage de leurs paquets de données suivants en considérant la zone des routeurs substitués comme une zone obstacle à contourner dans le réseau.

Un réseau QNoC permet également une structuration hétérogène de son réseau à travers les placement multiples et possibles de modules de calcul au sein du réseau. Les règles de placement de modules ainsi que le nombre maximal de modules de calcul pouvant être placés dans un réseau QNoC sont similaires à celles d’un réseau CuNoC.

4.3.3.7 Implantation et résultats de synthèse d’un réseau QNoC

Une synthèse et implantation des routeurs Q-switch pour de différents formats de paquets de données dans les technologies FPGA Xilinx Virtex II, IV et V ont été réalisées. Ces résultats sont

donnés dans le tableau 4.5 en termes des ressources logiques (blocs logiques CLB) et de fré-quence de fonctionnement (fréfré-quence maximale en MHz). Les résultats d’implantation obtenus s’expriment uniquement en termes de blocs CLB utilisés car les ressources annexes et dispo-nibles dans un FPGA (blocs mémoires BRAM, etc) ne sont pas exploitées lors de la synthèse. L’implantation d’un routeur Q-switch de taille de données de 8 bits nécessite des ressources logiques de 309 CLB et permet une fréquence de fonctionnement maximale sur un FPGA

Vir-tex IV de 257.2 MHz. Par comparaison avec un routeur CU d’un réseau CuNoC pour la même

taille de format de données, un routeur Q-switch nécessite 6 fois plus de ressources logiques (309/50) et une fréquence maximale de fonctionnement deux fois inférieure (549.3/257.2). Une comparaison plus détaillée en terme de performance entre un réseau CuNoC et QNoC de même dimension est présentée dans les sections suivantes.

TAB. 4.5 – Résultats de synthèse de routeurs Q-switch de formats de données différents sur les

technologies FPGA Xilinx Virtex II, Virtex IV et Virtex V.

Q-switch

format de données Virtex II Virtex IV Virtex V f [MHz] CLB Slices f [MHz] CLB Slices f [MHz] CLB Slices

8 bit 227.4 299 257.2 309 304.3 129

16 bit 207.8 394 234.9 473 294.1 203

24 bit 204.0 512 233.3 640 293.1 276

32 bit 200.8 638 232.0 808 261.1 349

Une synthèse et implantation de réseaux QNoC de différente taille sur les technologies

FPGA Xilinx Virtex IV et Virtex V ont également été réalisées. Ces résultats sont présentés dans

le tableau4.6pour chaque taille de réseau en termes de blocs logiques (CLB) et de performance

en termes de fréquences maximales de fonctionnement. Pour un réseau QNoC de dimension

3×3 utilisant un format de données de 32 bits, son implantation nécessite des ressources

lo-giques FPGA d’environ 3119 CLB et à une fréquence maximale de fonctionnement de l’ordre de 260 MHz pour un FPGA de la famille Virtex V. L’ensemble des résultats de synthèse et

d’implantation présentés ont été obtenus à l’aide de l’outil Precision RTL Synthesis [PRE].

TAB. 4.6 – Résultats de synthèse de réseaux QNoC de taille et de formats de données différents

sur les technologies FPGA Xilinx Virtex II, Virtex IV et Virtex V

QNoC 2x2 QNoC 3x3

data width Virtex II Virtex IV Virtex V Virtex II Virtex IV Virtex V f [MHz] CLB f [MHz] CLB f [MHz] CLB f [MHz] CLB f [MHz] CLB f [MHz] CLB 8 bit 182.0 1217 218.1 1243 270.6 496 182.4 2747 218.7 2833 244.0 1128 16 bit 177.9 1544 196.9 1904 261.2 796 181.1 3472 212.3 4310 255.0 1796 24 bit 156.7 1953 203.9 2579 260.2 1087 178.3 4392 203.9 5824 254.3 2461 32 bit 155.5 2384 199.2 3241 255.8 1311 173.6 5362 205.2 7317 258.7 3119

4.3. Réseaux sur puce reconfigurables

4.3.3.8 Évaluation des performances d’un réseau QNoC

La bande passante (throughput) maximale d’un routeur Q-switch de format de données den

bits, fonctionnant à une fréquencef et permettant une communication simultanée d’un nombre

de modules de calcul maximal (4 modules situés à chaque direction d’un routeur Q-switch) est définie par les expressions suivantes :

T hroughputmax[Gbps] = 4∗n∗f (4.6)

T hroughputmax[paquet / clk] = 4 (4.7) Par exemple, dans le cas d’un routeur Q-switch de format de données 8 bits, connecté à 4 modules de calcul et ayant une fréquence de fonctionnement de 100 MHz, la bande passante du routeur est de 3.2 Gbps.

Pour d’autres formats de données (jusqu’à 32 bits), les résultats d’évaluation de la bande

passante d’un routeur Q-switch sont présentés dans la figure4.43. Ces résultats sont obtenus en

prenant en compte les fréquences de fonctionnement maximales dans les technologies FPGA

Virtex II, IV et V, des routeurs pour différents formats de données (voir tableau 4.5). Ainsi, l’implantation d’un routeur de format de données 32 bits dans un FPGA Virtex V de fréquence de fonctionnement maximale de 261.1 MHz, fournit une bande passante évaluée à 33 Gbps.

La figure4.44illustre les performances d’un routeur Q-switch pour plusieurs conditions de

trafic de paquets de données. Ces performances sont données à la fois en termes de latences moyenne et maximale, et de bande passante maximale. Ces conditions d’évaluation sont iden-tiques à celles d’un réseau CuNoC : un trafic aléatoire, où chaque PE envoie aléatoirement un paquet de données vers un autre PE du réseau QNoC ; un trafic défini, où chaque PE connecté

8 16 24 32 0 5 10 15 20 25 30 35 40

Q−switch : Bande passante maximale d’un Q−switch

Taille de données [ bits ]

Bande passante [ Gbps ] 100 MHz 150 MHz 200 MHz Virtex II max Virtex IV max Virtex V max