FR 2838209 A1 20031010 FR 0204162 A 20020403 processeur. ARCHITECTURE DE TRANSPORT DE DONNÉES EN ANNEAU COMPRENANT UN RÉSEAU DE RÉTROPROPAGATION La présente invention se rapporte au domaine de l'électronique programmable. Dans ce domaine, les objectifs sont multiples: gagner du temps en augmentant l'efficacité de l' architecture (réduction des temps d'attente, réduction du temps de reconfiguration), permettre la conception d' architectures comprenant un grand nombre d'unités logiques programmables afin de pouvoir simuler un circuit complexe, créer des architectures dynamiquement programmables, c'est-à-dire dont on peut reconfigurer une partie pendant qu'une autre partie de l' architecture continue de réaliser des calculs ou encore réduire la consommation d'énergie. Les composants programmables actuels, malgré leur haute densité d'intégration, ne permettent pas de répondre de manière optimale à toutes les contraintes (performance, capacité, coût, consommation dans le cadre des systèmes embarqués) imposées par le marché des nouvelles technologies. Pour répondre à ces contraintes de nouvelles architectures plus flexibles doivent émerger. Ces architectures alliant rapidité de fonctionnement (plusieurs centaines de Megahertz) et souplesse de programmation seront capables de s' adapter rapidement à l'environnement et au contexte d'utilisation. Elles serviront de co-processeurs programmables dédiés à la prise en charge des tâches coûteuses en temps. L'art antérieur connait déjà par le brevet américain US4870302 une architecture logique configurable comprenant une pluralité d'éléments logiques configurables interconnectés selon des signaux de contrôle destinés à réaliser une fonction logique définie. Chaque élément logique configurable est capable de réaliser une fonction parmi une pluralité de fonctions logiques selon l' information de contrôle placoe dans l'élément logique configurable. Ce document présente une architecte qui nécessite des instructions de configuration complexes pour assurer la séquentialité des flux de données. I1 est proposé, dans le brevet américain US 6219785, une architecture utilisant des moyens logiques programmables dans laquelle certaines unités logiques programmables sont configurées comme des contrôleurs système. Cette architecture utilise en particulier des bus pour gérer les dialogues entre les unités logiques. L'utilisation de bus dans une architecture comprenant beaucoup d'unités logiques pose des problèmes dattente. Les temps de latence deviennent alors importants par rapport aux temps de calcul. Enfin, un article intitulé " The Systolic Ring: A Dynamically Reconfigurable Architecture for Embedded Systems. " (Sassatelli et al., 2001, FPL 2001 Proceedings, p. 409-419) décrit un réseau de logique programmable en anneau, dans lequel les données sont transmises à sens unique de manière séquentielle et comprenant un réseau de rétropropagation permettant de faire remonter des résultats aval à des ensembles logiques amont. Ce document de l'art antérieur ne donne cependant pas de moyens techniques pour réaliser cette architecture. La présente invention entend remédier aux inconvénients de l' art antérieur en proposant une architecture en anneau, ledit anneau étant composé de commutateurs et d'ensemble logiques programmables (couches) en alternance. Les commutateurs sont reliés à un processeur central qui injecte et récupère des données dans le circuit. Cette architecture permet d'éviter les problèmes d'attente sur un bus car les données suivent toutes le même chemin. Eventuellement, les données traversent des unités logiques configurées pour ne faire aucune opération sur les données. De plus, cette architecture supporte une grande quantité d'unités logiques programmables car il est possible de rajouter des couches dans l'anneau ou bien d' augmenter le nombre d'éléments par couche sans altérer les performances de calcul. Enfin, cette architecture n'est pas beaucoup plus coûteuse en place qu'une architecture utilisant des FPGA (" Field Programmable Gate Array > ': Circuit intégré programmable) de l'art antérieur. Elle est en revanche plus économique en énergie. Pour ce faire, la présente invention est du type décrit ci-dessus et elle est remarquable, dans son acception la plus large, en ce quelle concerne une architecture de transport de flux de données composée de: - N cellules comprenant chacune: - un ensemble logique, chaque ensemble logique étant composé d'au moins une unité logique; - un commutateur; - une liaison unidirectionnelle dudit ensemble logique vers ledit commutateur; - N canaux de communication unidirectionnels transportant les données de manière séquentielle [pipeline]; - Un processeur central; dans laquelle: chaque cellule est reliée à une cellule dite suivante par une liaison unidirectionnelle dite liaison cellule cellule du commutateur de ladite cellule vers l'ensemble logique de ladite cellule suivante; - l'ensemble des cellules forme un anneau de telle sorte qu'il existe une liaison cellule-cellule entre la dernière cellule et la première cellule; - chaque cellule est reliée audit processeur central par au moins un canal de communication; - le commutateur de chaque cellule est relié à un desdits canaux de communication unidirectionnels en mode écriture, les données circulant sur lesdits canaux de communication unidirectionnels selon le sens giratoire opposé au sens de circulation des données dans lesdites liaisons cellule-cellule; - le commutateur de chaque cellule est relié aux autres canaux de communication unidirectionnels en mode ..... lecture. Avantageusement, ledit commutateur d'une cellule est connecté à toutes lesdites unités logiques de l 'ensemble logique de la cellule suivante. Selon un mode de réalisation particulier de l' invention, les dites unités logiques sont des unités logiques programmables. De préférence, larchitecture selon l' invention comprend en outre une liaison entre ledit processeur central et une structure extérieure pouvant envoyer et recevoir des données. De même, selon un mode de mise en _uvre de l' invention, chacun desdits commutateurs est connecté avec une structure extérieure pouvant envoyer et recevoir des donnéss. On comprendra mieux l' invention à l' aide de la description, faite ci-après à titre purement explicatif, d'un mode de réalisation de l' invention, en référence aux figures annexées: - la figure 1 illustre les communications entre une architecture programmable et un processeur; - la figure 2 illustre l' architecture spécifique à l' invention; - la figure 3 illustre les moyens mis en _uvre pour réaliser l 'invention; L' architecture selon l' invention est représentée dans un schéma général par la figure 1. On peut distinguer deux couches dans ladite architecture: - la couche opérative (1), constituée de l 'ensemble des unités de traitement; - la couche de configuration (2), qui est un plan mémoire regroupant l 'ensemble des bits de configuration du réseau à u instant donné. La configuration du réseau à un instant donné est stockée dans la couche de configuration (2), dont le contenu est géré par un contrôleur de configuration (3). Il autorise à modifier le contenu de cette mémoire en cours de traitement, et donc à changer la fonctionnalité de tout ou partie du réseau: c'est le principe de reconfiguration dynamique. La tache principale de ce contrôleur étant de gérer l'évolution de la fonctionnalité du réseau, celui-ci à été spécialement développé dans cette optique, et bénéficie donc d'un jeu d' instructions adapté. D'un point de vue fonctionnel, on distingue deux phases: - Dans une première phase, le processeur central (4) répond à une sollicitation extérieure: il charge l' application visée. Celle-ci, préalablement écrite pour une exécution mixte, comporte une partie de son code qui est destiné au contrôleur de configuration (3) du réseau reconfigurable; le processeur central (4) envoie donc directement cette portion de code objet dans la mémoire programme de celui-ci par le canal de communication (5). - Une fois le code objet dédié à la gestion dynamique de la configuration du réseau reconfigurable chargé, celui-ci s'exécute sur le contrôleur de configuration (3), le processeur central (4) peut alors commencer à envoyer les données -à traiter vers l' architecture par le canal de communication (6) r et récupérer celles-ci en fin de traitement. Ce procédé est classique dans les architectures programmables. L' invention concerne une architecture spécifique de la couche opérative (1). La couche opérative (1) selon l'invention, illustrée figure 2, est constituée par: - les couches de traitement (11): elles sont composées chacune d'au moins une unité logique programmable (appelées par la suite ULP). La présence de plus de deux unités dans une couche permet de paralléliser les calculs - les commutateurs (12), permettant de réaliser l'interconnexion entre les ULP de deux couches (11) successives et l'aiguillage des données au travers de la structure. - Le canal de communication (14), utilisé pour transporter le flot de données principal circulant dans un sens prédéfini et permettant la circulation des données au travers de l' architecture en assurant la séquentialité ( ) des opérations. Le canal (14) relie toutes le s couches et tous les commutateurs de te l le manière qu'un commutateur soit toujours entre deux couches et qu'une couche soit toujours entre deux commutateurs. De plus, chaque commutateur est relié à un processeur central qui envoie et reçoit des données de l' architecture. - Le canal de communication (15), utilisé pour transporter le flot de données secondaire (15) circulant dans le sens contraire du flot de données principal (14) et permettant de garder une trace des donnéss provenant des calculs précédents. La couche opérative est reliée à une couche de configuration constituée d'un contrôleur de configuration qui gère les configurations des commutateurs pour le routage des données vers les ULP de la couche de traitement suivante. La couche de configuration permet également de configurer les ULP. Les éléments techniques mis en _uvre sont illustrés figure 3. Les données à traiter sont transportées sur le canal de communication (13) dans un sens donné. Le commutateur (121) et l'ensemble logique (111) sont reliés au contrôleur de configuration (150) duquel ils reçoivent des informations de configuration. D'autre part, le commutateur (121) est relié à une structure extérieure par la liaison (160) qui véhicule les données traitées ou à traiter. Le commutateur (121) est relié à un canal de rétropropagation (141) dans lequel les données circulent dans le sens opposé des données circulant dans le canal (13). Lesdites données correspondent aux données calculées par l'ensemble logique (111) précédant le commutateur (121). Tous les autres commutateurs (122) disposent d'un point d'accès (222) sur le canal de rétropropagation (141) qui leur permet de récupérer les données émises par le commutateur (121) sur le canal (141). Ainsi, un commutateur (122) a accès aux résultats des calculs de l 'ensemble logique (111) sans avoir à reconfigurer les ensembles logiques disposés entre ledit commutateur (122) et le commutateur (121). En l' absence du canal de rétropropagation (141), il serait nécessaire de reconfigurer tous les ensembles logiques compris entre les commutateurs (121) et (122) selon le sens de circulation sur le canal de données (13) de manière à ce que lesdits ensembles logiques laisse passer les résultats de l 'ensemble logique (111) sans modifier lesdits résultats. De même, un canal de rétropropagation identique au canal (141) est affecté à chaque commutateur (122). Ainsi chaque commutateur du circuit a accès aux données émises par tous les autres commutateurs. L' invention est décrite dans ce qui précède à titre d'exemple. I1 est entendu que l'homme du métier est à même de réaliser différentes variantes de l' invention sans pour autant sortir du cadre du brevet. REVENDICATIONS 1. Architecture de transport de flux de données composée de: - N cellules comprenant chacune: - un ensemble logique, chaque ensemble logique étant composé d'au moins une unité logique; - un commutateur; - une liaison unidirectionnelle dudit ensemble logique vers ledit commutateur; - N canaux de communication unidirectionnels transportant les données de manière séquentielle [pipeline]; - Un processeur central; dans laquelle: chaque cellule est reliée à une cellule dite suivante par une liaison unidirectionnelle dite liaison cellule-cellule du commutateur de ladite cellule vers l'ensemble logique de ladite cellule suivante; - l'ensemble des cellules forme un anneau de telle sorte qu'il existe une liaison cellule-cellule entre la dernière cellule et la première cellule; - chaque cellule est reliée audit processeur central par au moins un canal de communication; caractérisée en ce que: - le commutateur de chaque cellule est relié à un desdits canaux de communication unidirectionnels en mode écriture, les données circulant sur lesdits canaux de communication unidirectionnels selon le sens giratoire opposé au sens de circulation des données dans lesdites liaisons cellule-cellule; - le commutateur de chaque cellule est relié aux autres canaux de communication unidirectionnels en mode lecture. 2. Architecture de transport de flux de données selon la revendication 1, caractérisée en ce que ledit commutateur d'une cellule est connecté à toutes lesdites unités logiques de l'ensemble logique de la cellule suivante. 3. Architecture de transport de flux de données selon l'une quelconque des revendications précédentes, caractérisée en ce que les dites unités logiques sont des unités logiques programmables. 4. Architecture de transport de flux de données selon l'une quelconque des revendications précédentes, caractérisée en ce qu'elle comprend en outre une liaison entre ledit processeur central et une structure extérieure pouvant envoyer et recevoir des données. 5. Architecture de transport de flux de données selon l'une quelconque des revendications précédentes, caractérisoe en ce que chacun desdits commutateurs est connecté avec une structure extérieure pouvant envoyer et