• Aucun résultat trouvé

L’interface réseau

3.2 Architecture du NoC

3.2.4 L’interface réseau

L’interface réseau (NI) permet de relever le niveau dans les couches réseau pour passer au niveau adaptation réseau. Elle gère les messages. Nous utilisons des connections pour réaliser les communications.

Notre NI se distingue par sa capacité à permettre la réservation d’un slot par plusieurs communications. Ceci permet d’exploiter ce que nous appelons les commu-nications mutuellement exclusives. Ce point sera expliqué dans la section 3.3.3. De plus, notre NI n’est pas limitée à deux canaux virtuels.

Elle possède un seul port réseau dans notre implantation et possède un ou plusieurs ports supplémentaires appelés NIports. Un NIport est destiné à connecter la NI avec un wrapper ou une IP.

La figure 3.4 montre l’exemple d’une NI qui a deux ports NIports pour permettre la connexion avec deux wrappers ou deux IPs. Nous voyons qu’elle dispose de deux

3.2 architecture du noc 31 types de canaux (chanel) que nous appelons ExtraNIchannel et IntraNiChannels. Une connexion entre deux NIs se réalise par l’association d’un ExtraNIchannel de l’une avec un l’ExtraNIchannel de l’autre. Les IntraNIchannels permettent à deux NIports d’une même NI de communiquer directement entre eux sans passer par le réseau. Le nombre d’ExtraNiChannels et de IntraNiChannels de chaque NIport de la NI est paramétrable avant sa synthèse VHDL.

Le NIport utilise un simple protocole du type FIFO (vide, pleine, lecture, écriture) et une commande pour indiquer quelle FIFO est adressée.

L’ordonnanceur contrôle le déroulement des réservations dans le cas du trafic GT et arbitre l’accès des ExtraNiChannels au réseau en fonction de leur canal virtuel.

Fig. 3.4 – Une NI avec deux ports NIports

Notre NI peut manipuler un nombre générique de canaux virtuels. De plus, elle prend en charge le trafic GT par TDMA. Rappelons que la taille d’un slot de temps est de deux phits. Nous avons choisi cette valeur car elle correspond au temps de traversée de l’entête d’un paquet dans notre routeur. De plus, l’entête d’un paquet de trafic GT ne peut être envoyé que pendant le premier phit d’un slot réservé. C’est une taille plus petite que celle des slots de temps de Æthereal qui utilise des slots de 3 phits. Notre taille de slot plus petite nous permet d’avoir un découpage en slot plus fin et donc moins de slot sous utilisés (certains paquets peuvent ne pas occuper tous les mots du slot). De plus, cela permet d’avoir des tables dont la rotation est plus rapide, ce qui réduit le délai pour obtenir un slot réservé.

32 µspider : architecture du noc, flot de conception et outil

3.2.4.1 Les réservations des slots de temps dans les NIs

La technique de codage des slots réservés est la suivante. Nous disposons d’une table des réservations de slots, ainsi que d’une table des configurations des ExtraNIchannels. Le nombre désiré de réservations dans la table des réservations de slots est para-métrable et peut aller jusqu’au nombre de slots de la table TDMA. Nous avons fait le choix qu’une zone de réservation soit inséquable dans la mesure du possible. En effet, il est plus efficace de créer un grand paquet plutôt que plusieurs petits, car un paquet implique à chaque fois un entête qui occupe de la bande passante.

De plus, les zones de réservations sont contigues. Pour définir la zone de réserva-tion, seul le numéro du dernier slot inclus dans la zone réservée est indiqué. Ainsi, la zone débute juste après la fin de la zone de réservation précédente. Le champ « Extra-NIchannel ID » indique les ExtraExtra-NIchannels qui ont le droit d’émettre durant ces slots (le droit d’émission est codé par un bit à 1). Un bit est associé à chaque ExtraNIchannel (l’ ExtraNIchannel numéro 0 correspond au bit de poids faible).

Le tableau 3.3 montre un exemple de table de réservations. La table est de 16 slots. Il y a 8 zones de réservations. Ainsi, nous voyons sur l’exemple que la première réservation (0) inclut les slots 2 à 3 et autorise le ExtraNIchannel 0 à émettre. La seconde réservation (1) va des slots 4 à 6 et autorise les ExtraNIchannel 0 ou 1 à émettre. On note que la quatrième réservation (3) n’autorise aucune émission (tous les bits sont à 0).

Réservation Numéro du dernier slot réservé ExtraNIchannel ID

0 3 000001 1 6 000011 2 8 000010 3 11 000000 4 12 000100 5 14 100001 6 15 010001 7 1 001000

Tab. 3.3 – Les réservations des slots de temps dans la table TDMA

3.2.4.2 La table de configuration des ExtraNIchannels

Chaque ExtraNIchannel peut être configuré indépendamment. Le tableau 3.4 nous montre un exemple de table de configuration des ExtraNIchannels.

Chaque ExtraNIchannel possède les paramètres suivants :

– Le crédit d’émission initial dont il dispose pour le contrôle de flux de bout-en-bout (il indique la place disponible dans la FIFO de réception de l’ExtraNIchannel de la NI distante vers laquelle ce ExtraNIchannel envoie des données) ;

– Le seuil d’envoi des données. Il permet de ne pas envoyer les données si elles sont trop peu nombreuses pour justifier l’envoi d’un paquet. Au dessus de ce seuil elles peuvent être envoyées.

– Le seuil d’envoi des crédits. Au dessus de cette quantité de crédits il est justifié de transmettre ce crédit.

3.2 architecture du noc 33 – Le numéro de canal virtuel sur lequel ses communications évoluent.

– Les Instructions de chemin pour le routage au travers du NoC.

– L’ID du ExtraNiChannel de destination indique l’ExtraNIchannel de la NI dis-tante auquel il s’adresse.

ID du Crédit Seuil Seuil Numéro Instructions ID du

ExtraNIchannel d’émission d’envoi d’envoi de canal de chemin ExtraNiChannel

initial des données des crédits virtuel de destination

0 0 0 5 0 00101111110 1 1 0 0 5 1 00101010110 0 2 0 0 5 0 00101000010 1 3 0 0 3 2 00000101010 2 4 0 0 3 2 00101111110 1 5 0 0 3 0 10111010110 3

Tab. 3.4 – La configuration des ExtraNIchannels