• Aucun résultat trouvé

2.2 Les systèmes de télécommunication dans le contexte de la thèse

2.3.3 Intégration des unités de traitement

Le réseau FAUST est conçu comme une plate-forme de communication ouverte per- mettant d’intégrer différentes unités de traitement de nature hétérogène. L’intégration de ces unités est facilitée grâce à une architecture modulaire d’interface réseau. Le concept d’interface réseau (ou NI24) a été présenté aux paragraphes 1.2.2.3 et 1.4.2.

23

identification de la cible - target identity

24

Le réseau FAUST 63

Port d’

entrée (IP)

Port de sortie (OP)

ICC ICC Unité de traitement OCC FIFO FIFO FIFO NoC vers NI NI vers NoC Interface réseau crédits crédits crédits Configuration Manager (CFM) Go et init _ write

Read / Write Decoder (RWD)

Configuration

ITM

Fig. 2.12 – Architecture de l’interface réseau FAUST

2.3.3.1 Architecture de l’interface réseau

Dans FAUST, l’interface réseau a une double fonctionnalité. Elle gère à la fois les communications entre l’unité de traitement et le réseau mais également la configuration des traitements et leurs enchaînements.

L’architecture de l’interface est paramétrable. Elle est constituée de différents élé- ments qui peuvent être assemblés et configurés en fonction des besoins de l’unité de traitement. La Figure 2.12 présente un exemple d’architecture de l’interface FAUST. Nous allons détailler les différents éléments constitutifs de l’interface. On se focalise ici sur l’architecture. Les aspects fonctionnels seront repris aux paragraphes 2.4.2 et 2.4.3.

- Ports d’entrée et de sortie25

Les portes d’entrée et de sortie [IP03] [OP03] ont pour fonctions de gérer les com- munications aux niveaux flit et paquet : gestion des signaux Send et Accept pour les deux canaux virtuels, gestion des bits BOP et EOP. En réception, le port d’entrée reçoit les paquets. Il décode l’en-tête et dirige les données dans l’interface en fonction de la commande (CMD) et de la destination (TGTID). En émission, le port de sortie effectue l’arbitrage entre les différents modules qui veulent envoyer un paquet.

25

- Contrôleurs de communication d’entrée et de sortie26

L’émission et la réception des données entre l’unité de traitement et le reste du circuit s’effectue par l’intermédiaire de mémoires FIFO. Le traitement et les communications sont ainsi totalement découplés. A chaque mémoire FIFO est associée un contrôleur de communication [ICC04] [OCC04]. Le nombre de mémoires FIFO et donc le nombre de contrôleurs de communication dépend ainsi directement du nombre d’entrées et de sor- ties de l’unité de traitement. En réception les contrôleurs (ICC) assure l’envoi des crédits en fonction du contenu des mémoires FIFO pour le mécanismes de contrôle de flux. En émission les contrôleurs (OCC) envoie les paquets de données lorsque suffisamment de crédits en provenance de la ressource de destination ont été reçus.

- Gestionnaire de configuration 27

Le fonctionnement des contrôleurs de communication et de l’unité de traitement dépend d’un certains nombre de paramètres de configuration. Le chargement de ces paramètres est assuré par le gestionnaire de configuration. Nous détaillerons les méca- nismes de ce gestionnaire dans les paragraphes décrivant la gestion des flots de données (2.4.2) et le contrôle des traitement (2.4.3).

- Read/Write Decoder28

Le Read/Write Decoder (RWD) [RWD04] contient les registres de configurations des contrôleurs de communications et de l’unité de traitement. Le RWD est donc spécifique à chaque ressource. Il décode et exécute les ordres d’écriture des registres de configuration, en provenance du réseau. Ces registres sont ensuite accessibles à leurs destinataires respectifs.

- Gestionnaire d’interruption29

Le gestionnaire d’interruption [ITM04] génère des paquets permettant de signaler au processeur de contrôle (cf. paragraphe 2.4.3) certain événements au niveau de l’interface. Cela peut être pour indiquer la fin de l’exécution d’une configuration ou en cas d’erreur dans le chargement d’une configuration.

2.3.3.2 Configurations des contrôleurs de communication

Les contrôleurs de communication sont configurés par une série de paramètres qui sont stockés dans le RWD. Le CFM commande l’exécution de ces configurations et les

26

ICC pour Input Communication Controler et OCC pour Output Communication Controler

27

CFM pour Configuration Manager

28

RWD

29

Le réseau FAUST 65 contrôleurs signalent lorsqu’ils sont prêts à charger une nouvelle configuration. Dans la suite du paragraphe, nous allons détailler les paramètres de configuration de ces contrôleurs qui seront utilisés dans le système présenté au chapitre 4.

L’organisation des registres de configuration de l’ICC sont présentés Figure 2.13. l’ICC est configuré pour envoyer un certain nombre de crédit (Total Crédit). Les crédits sont envoyés si la place disponible dans la mémoire FIFO est supérieur auSeuil Crédit. La destination des crédits est fixée par leChemin de routage et le canal virtuel utilisé par le champ Prio. Le champ TGTID correspond au registre de stockage des crédits dans la ressource réceptrice (cf. Séléction crédit dans la configuration de l’OCC). Une interruption peut être envoyée en fin de configuration en fonction du Masque IT.

31 ,,, 28 27 26 25 24 ,,, 18 17 ,,, 0 15 ,,, 0

Masque IT 0 Prio Total Crédit

reg_icc_if1 reg_icc_lo1

Chemin de routage Seuil Crédit

TGTID

Fig. 2.13 – Registres de configuration du contrôleur de communication d’entrée (ICC)

Les registres de configuration des OCC sont présentés à la Figure 2.14. L’OCC est configuré pour envoyer un nombre de flit correspondant à Total donnée avec une Taille paquet fixée. La configuration peut être répétée en fonction du Nombre de boucle spécifié. La destination des données est paramétrée par leChemin de routage, le canal Prio et le numéro de la mémoire FIFO de destination TGTID. L’envoi des données est conditionné par la présence de crédits dans le compteurSélection crédit sauf si l’option Crédit infini est utilisée. L’utilité de plusieurs compteurs de crédits distincts est de gérer simultanément plusieurs destinataires sans mélanger leurs crédits. Les paquets sont envoyés avec une commande CMD et un Numéro de configuration. Nous expliquerons ces champs au paragraphe 2.4.3.

31 ,,, 28 27 ,,, 25 24 ,,, 18 17 0

15 ,,, 0

27 26 25 ,,, 19 18 17 16 15 ,,, 0 Prio Masque IT Crédit infini

Selection crédit Taille paquet Total donnée reg_occ_conf

Nombre de boucle reg_occ_header

reg_occ_n TGTID CMD Numéro configuration Chemin de routage

,,,

Fig. 2.14 – Registres de configuration du contrôleur de communication de sortie (OCC)