• Aucun résultat trouvé

1.3 ANOC : un r´ eseau sur puce asynchrone dans un syst` eme sur puce

1.3.2 M´ ecanismes de communication

Le m´ecanisme de communication utilis´e pour le r´eseau ANOC est de type paquet et le mode de routage est de type Wormhole (cf. section 1.1.2.2). Les donn´ees sont encapsul´ees en paquets avant d’ˆetre envoy´ees dans le r´eseau. Un paquet est toujours compos´e d’un flit d’en-tˆete et ´eventuellement d’un ou plusieurs flits de donn´ees. Un flit est une unit´e de donn´ee qui se compose de 34 bits (32 bits de donn´ee et 2 bits de contrˆole). Les formats de ces flits sont d´ecrits dans la figure 1.16.

(a) Flit d’en-tˆete (b) Flit de donn´ee

Fig. 1.16 : Les formats des flits.

Les deux bits de poids fort de chaque flit, BoP (Begin-of-Packet) et EoP (End- of-Packet ) sp´ecifient le type du flit. Le flit d’en-tˆete est identifi´e par le bit BoP `a l’´etat 1. Le dernier flit est rep´er´e par le bit EoP `a ´etat 1. Si les deux bits BoP et EoP sont `a 1, le paquet n’a qu’un flit. Si les deux bits BoP et EoP sont `a 0, c’est un flit au milieu du paquet. Le champ path-to-target dans le flit d’en-tˆete sp´ecifie le chemin de routage du paquet dans le r´eseau. C’est un vecteur qui contient des directions successives. Chaque direction est cod´ee sur deux bits : 00 pour le Nord, 01 pour l’Est, 10 pour le Sud, et 11 pour l’Ouest. On note qu’un paquet n’est pas autoris´e `a faire demi-tour. La ressource est adress´ee en renvoyant le paquet dans la direction dont il provient. Par exemple, si le paquet venant sur l’entr´ee Ouest contient une information de routage ´egale `a 11, il sera rout´e vers la ressource de traitement. La longueur actuelle du champ path-to-target correspond `a 9 travers´ees de routeur, soit 18 bits.

L’algorithme de routage est d´eterministe et de type source (cf. section 1.1.2.4). Les chemins de routage sont pr´e-calcul´es par un algorithme de routage « Turn Mo- del » [Glas94T] qui permet d’´eviter les interblocages.

La strat´egie de stockage utilis´ee dans le r´eseau ANOC est une strat´egie de file d’attente avec deux canaux virtuels afin d’am´eliorer la latence et le d´ebit du r´eseau (cf. section 1.1.2.3). Ces canaux virtuels sont utilis´es pour d´efinir deux niveaux de priorit´e diff´erents. Le canal virtuel 0 (VC0) poss`ede une priorit´e plus haute que le canal virtuel 1 (VC1) et les paquets envoy´es sur ce canal sont donc autoris´es par

l’arbitre `a passer avant les paquets envoy´es sur le canal virtuel 1 quand ils sont concurrents.

Le r´eseau ANOC est mis en œuvre en logique asynchrone de type quasi-insensible aux d´elais (cf. section 2.2.1.4). Il n’y a alors plus de signal d’horloge, les routeurs se synchronisent mutuellement entre eux par un m´ecanisme de poign´ee de main (handshake protocol ). L’architecture est bien adapt´ee aux syst`emes de type GALS5. Dans un syst`eme GALS, un certain nombre d’ˆıles synchrones communiquent de fa¸con asynchrone entre elles. C’est-`a-dire qu’il n’existe pas de signaux globaux et l’ensemble des informations est transmis par le r´eseau entre les diff´erents ˆılots syn- chrones form´es par les ressources.

1.3.3

Protocole de communication

Le protocole de communication du r´eseau ANOC est hi´erarchis´e en six niveaux [Thon06N] :

– La couche physique : Elle correspond au niveau bit et elle d´ecrit les condi- tions mat´erielles du transfert de donn´ees sur un lien. A ce niveau, le protocole asynchrone 4-phase RTZ est utilis´e avec le sch´ema de codage de donn´ees « m- of-n »(cf. section 2.2.1.1). Le codage « 1-of-4 » (cf. section 2.2.1.3) est utilis´e pour r´ealiser les flots donn´ees de 34 bits, les signaux de synchronisation sont r´ealis´es par d’autres codages tels que le codage double-rail, single-rail.

– La couche lien de donn´ees : Correspondant au niveau flit, elle est le ni- veau d’´echange local entre deux routeurs ou d’´echange entre un routeur et une ressource d’un flit de donn´ee. Cet ´echange est g´er´e par un m´ecanisme de syn- chronisation bas´e sur des signaux d’interface : send et accept, cf. figure1.17(a). Ce m´ecanisme est donc appel´e le protocole « send-accept ». Pour mettre en œuvre ce protocole pour deux canaux virtuels, il est n´ecessaire d’utiliser deux signaux send et deux signaux accept. L’exp´editeur peut envoyer un nouveau flit sur le canal virtuel i avec send hii = 1 si le r´ecepteur a indiqu´e accept hii = 1 au cycle pr´ec´edent, cf. figure 1.17(b). Avec ce protocole, les transactions de flit sont r´ealis´ees dans plusieurs canaux virtuels avec l’assurance qu’un canal physique est libre.

– La couche r´eseau : Cette couche correspond au niveau paquet. Elle est le niveau d’´echange des paquets `a travers le r´eseau. Les paquets sont des messages coh´erents, constitu´es d’une s´erie de flits contigus. Dans cette couche, on d´efinit toutes les informations n´ecessaires au bon acheminement du message `a travers le r´eseau, dans le premier flit du paquet, appel´e flit d’en-tˆete (header flit ), cf.

(a) Interface « send-accept ».

(b) Chronogrammes de l’´echange des donn´ees sur canal virtuel i.

Fig. 1.17 : Echange des donn´ees entre deux routeurs ou entre un routeur et une ressource

section 1.3.2. Ce flit contient ´egalement des informations utiles aux couches sup´erieures.

– La couche transport : C’est le niveau d’´echange entre deux ressources. Les blocs de donn´ees sont d´ecoup´es en paquets de taille raisonnable pour le r´eseau. Ce niveau permet aussi de garantir que le r´eseau ne se bloquera pas `a cause d’un engorgement. Une communication est d´efinie entre une ressource ´

emettrice et une ressource r´eceptrice. Les deux ressources s’´echangent des pa- quets de service pour r´eguler la communication. La gestion de flux est faite en utilisant la technique de cr´edit (cf. section1.1.2.7).

– La couche session : Elle synchronise les ressources au niveau des tˆaches `

a ex´ecuter. Elle correspond au niveau bloc de donn´ees. Ce niveau assure la coh´erence des traitements entre les ressources d’une mˆeme chaˆıne fonctionnelle, et permet de faire tourner simultan´ement plusieurs tˆaches sur le r´eseau. – La couche application : C’est le niveau de d´efinition des donn´ees utilisa-

teur. A ce niveau, les ressources s’´echangent des messages de diff´erents types, permettant le transfert de flux de donn´ees, le contrˆole des ressources de trai- tement.

Dans le r´eseau ANOC, toutes les couches basses jusqu’`a la couche session sont mat´erielles. Le processeur vient configurer les couches transport et session `a travers

la couche application