Brevet FR2865290A1 — publié le 20050722

La présente invention se rapporte à un procédé de gestion de données dans un processeur matriciel et à un processeur matriciel mettant en oeuvre ce procédé, notamment pour accélérer la transmission de données au sein de ce processeur matriciel. II est connu d'augmenter la puissance de calcul des équipements électroniques en utilisant une pluralité de processeurs opérant en parallèle, c'est-à-dire simultanément, pour gérer des tâches de calculs complexes. Ainsi, plusieurs processeurs d'un système électronique se répartissent une partie des opérations à effectuer par ce système pour améliorer le temps global d'opération du système, une telle répartition étant particulièrement importante pour les systèmes électroniques gérant en temps réel des flux importants de données comme, par exemple, des données multimédia (images, vidéo, etc). Les processeurs matriciels sont des processeurs comprenant un ensemble de processeurs, appelés processeurs élémentaires ou PE, réalisant des opérations de traitement de données en parallèle. Ces processeurs élémentaires sont disposés physiquement sous forme de matrice qui peut avoir une dimension, par exemple sous la forme d'un alignement en ligne de processeurs élémentaires, ou deux dimensions, par exemple lorsque les processeurs élémentaires se présentent sous la forme d'une matrice rectangulaire dans laquelle les PE sont localisés de façon régulière. Dans ce dernier cas, chaque processeur élémentaire peut envoyer et recevoir des données par cycle d'opération - un cycle étant déterminé par l'horloge qui cadence le système vis-à-vis d'un de ses processeurs élémentaires voisins selon quatre directions Nord, Sud, Est et Ouest détaillées ultérieurement, via un réseau de communication maillé reliant les processeurs élémentaires dans la matrice. Par ailleurs, quand un processeur élémentaire est à un bord de la matrice selon une direction donnée, il est dit aussi voisin "par contournement' selon cette direction donnée au processeur élémentaire situé au bord de la matrice à l'opposé de cette direction, auquel il est donc connecté. Il convient aussi de rappeler que chaque processeur élémentaire a une unité élémentaire de mémoire dans laquelle il enregistre les données en cours de traitement qui peuvent être ou non transmises à un processeur élémentaire voisin au prochain cycle. Les processeurs matriciels contiennent aussi des moyens de contrôle chargés, entre autres, de: - gérer les instructions des programmes exécutés par le processeur matriciel, - transmettre des instructions aux processeurs élémentaires pour que les opérations correspondantes soient exécutées par ces processeurs élémentaires, - exécuter des instructions pour transférer des données à l'intérieur du processeur matriciel, par exemple entre les processeurs élémentaires. Un cas particulier de processeur matriciel est un processeur matriciel du type SIMD (acronyme anglais pour 'Single Instruction Multiple Data' équivalent à 'Unique Instruction Plusieurs Données'), dans lequel tous les processeurs élémentaires réalisent la même fonction de traitement des données sur les données différentes qu'ils ont en mémoire. En d'autres termes, il y a une homogénéité fonctionnelle des processeurs élémentaires qui ne se différencient que par leur place dans la matrice et les données enregistrées dans leur mémoire. La figure 1 est un schéma illustrant quelques éléments d'un processeur matriciel 100 comme une matrice de processeurs élémentaires. Dans cet exemple, la matrice 103 est à deux dimensions 4*4 avec 16 processeurs élémentaires 104 (i,j)) tels que i et j soient compris entre 0 et 3. Chaque processeur élémentaire PE est relié à des moyens de contrôle 102 par des liens 108 de communication, bien que par soucis de clarté, seul le lien entre le PE 104(0,0) et les moyens de contrôle 102 ait été représenté sur la figure 1. Ces moyens de contrôle exécutent, entre autres fonctions, un ou des programmes mémorisé(s) dans la mémoire de programmes 101. La figure 2 représente schématiquement un exemple d'une matrice 200 de processeurs élémentaires 202(ij), i et j étant compris entre 0 et 3, de dimension 4*4 qui sont connectés entre eux par un réseau de communication maillé entre les différents processeurs élémentaires. Chaque processeur élémentaire 202(i,j) a un registre 204(ij) interne de communication dans lequel sont enregistrées les données à transmettre par ce processeur à chaque cycle d'opérations. Par ailleurs, ces processeurs élémentaires PE 202(i,j) sont reliés entre eux par des liens de communications 206 {(i,j)(n,m)}, i, j, n et m étant compris entre 0 et 3, d'un réseau maillé reliant le processeur élémentaire 202(ij) au processeur élémentaire 202(n,m) voisin physique ou par contournement tel que défini ci-dessus. Pour des raisons de clarté, seul est référencé dans la figure 2 le lien 206 {(0,0) (0,1)}. Chaque processeur élémentaire est ainsi relié à 4 autres processeurs 35 élémentaires par le réseau de communication maillé dans les 4 directions possibles (Nord 210, Sud 212, Ouest 214 et Est 216). Par exemple, le processeur élémentaire 202(0,0) est relié au: - processeur élémentaire 202(1,0) selon la direction Sud 212, - processeur élémentaire 202 (0,1) selon la direction Est 216, - processeur élémentaire 204(0,3), voisin par contournement, selon la direction Ouest 214, - processeur élémentaire 204(3,0), voisin par contournement, selon la direction Nord 210. Un tel processeur matriciel est spécialement adapté pour déplacer des données entre les processeurs élémentaires à chaque cycle d'horloge dans le cadre d'algorithmes qui imposent des mouvements de données uniformes, notamment pour les algorithmes de traitement d'images vidéo. De fait, il présente de nombreux avantages tels que: - Une simplicité dans la commande des transmissions de données dans la matrice (déplacement vers le Nord, Sud, Est ou Ouest) étant donné que, selon une même commande, l'ensemble des processeurs élémentaires transmettent les données selon une même direction, et - Des connections courtes entre les processeurs élémentaires, qui permettent de prédire par exemple les temps associés aux signaux électriques, ces 20 temps étant également courts par conséquent. La présente invention résulte toutefois de la constatation qu'un processeur matriciel selon l'art antérieur présente des problèmes de gestion des communications entre les processeurs élémentaires. Ainsi, il n'est pas possible aux moyens de contrôle de commander des déplacements non uniformes de données, c'est-à-dire distincts entre deux processeurs élémentaires, puisque les instructions doivent être uniformes vis-à-vis des mouvements de données pour tous les processeurs élémentaires. Par ailleurs, de nombreux cycles peuvent être requis pour transmettre des données lorsque ces dernières sont requises ou transmises à partir des processeurs élémentaires situés aux bords de la matrice par "effet de bord", cet effet étant d'autant plus important que le nombre de processeurs élémentaires aux bords de la matrice est élevé par rapport au nombre total de processeurs élémentaires. Par exemple, l'effet de bord est plus important sur une matrice 4*4 que sur une matrice 128*128. La présente invention vise à remédier à au moins un des problèmes 35 précédemment décrits. L'invention concerne un procédé de gestion de données dans un processeur matriciel comprenant des processeurs élémentaires, formant une matrice de n axes telle qu'un processeur élémentaire est relié à un processeur élémentaire voisin selon chacune des 2n directions de la matrice, et commandés au moyen de cycles d'instructions identiques déterminant le processeur élémentaire voisin devant transmettre les données au processeur élémentaire pour un cycle ultérieur, caractérisé en ce qu'on associe à ce processeur élémentaire des registres de communications dédiés à l'échange de données selon chaque axe de la matrice et en ce qu'on intègre dans l'instruction une condition de localisation du processeur élémentaire dans la matrice pour déterminer le processeur élémentaire voisin transmettant les données prises en compte à un cyde ultérieur. Grâce à l'invention, on améliore considérablement le rendement d'exécution d'algorithmes par des processeurs matriciels du type SIMD, par exemple dans le cadre du traitement d'images vidéo. En effet, l'invention permet d'obtenir des exécutions différentes pour chaque processeur élémentaire en fonction de leur place dans la matrice à partir d'une même instruction de communication uniforme envoyée par les moyens de contrôle du processeur matriciel SIMD. Ainsi, un procédé selon l'invention permet d'optimiser le transfert de données d'un premier processeur élémentaire vers un second processeur élémentaire via le parcours optimal dans le réseau interne du processeur matriciel, et notamment sans "effet de bords". Dans une réalisation, on associe au processeur élémentaire une série de bits identifiant sa position dans la matrice de telle sorte que l'on détermine la localisation du processeur élémentaire en comparant cette série de bits avec une série de bits transmise dans les instructions. Selon une réalisation, la série de bits identifiant la position d'un processeur élémentaire dans la matrice est une série de 2n bits indiquant pour chaque processeur élémentaire si ce processeur élémentaire est à un bord de la matrice. Dans une réalisation, on utilise une matrice comprenant deux axes (n égal 2). Selon une réalisation, on associe à chaque processeur élémentaire quatre éléments électriques dont la tension est fixée lors de la mise sous tension du processeur élémentaire et reste fixe tant que ce processeur élémentaire est maintenu sous tension, la tension de ces quatre éléments donnant la série de bits indiquant la position du processeur élémentaire dans la matrice. Dans une réalisation, l'instruction émise par les moyens de commande comprend une première identité de processeur élémentaire dont les données doivent être copiées dans un registre de communications des processeurs élémentaires si la condition de localisation est validée, et une seconde identité de processeur élémentaire dont les données doivent être copiées si la condition de localisation n'est pas validée. Selon une réalisation, les ensembles de registres sont indépendants. Dans une réalisation, on associe à différents processeurs élémentaires au moins deux registres de communications selon un axe de la matrice de telle sorte que, selon cet axe, ces processeurs élémentaires sont reliés par au moins deux réseaux de communications de données. Selon une réalisation, on associe à chaque processeur élémentaire comprenant au moins deux registres de communications un multiplexeur lié aux processeurs élémentaires voisins selon chacun des axes de communication de la matrice, ce multiplexeur comprenant des moyens pour sélectionner des données transmises par un de ces processeurs élémentaires voisins. Dans une réalisation, chaque registre d'un processeur élémentaire peut copier les données suivantes à chaque cycle d'opération: - les données d'un registre interne de ce processeur élémentaire, - les données d'un registre de même axe d'un processeur élémentaire voisin, - les données d'un registre d'un autre axe d'un processeur élémentaire voisin, - les données contenues dans ce même registre avant le cycle. Selon une réalisation, le processeur élémentaire étant situé à un bord de la matrice, un processeur voisin est situé à un autre bord de la matrice. L'invention concerne aussi un processeur matriciel comprenant des processeurs élémentaires, formant une matrice de n axes telle qu'un processeur élémentaire est relié à un processeur élémentaire voisin selon chacune des 2n directions de la matrice, et commandés au moyen de cycles d'instructions identiques déterminant le processeur élémentaire voisin devant transmettre les données au processeur élémentaire pour un cycle ultérieur, ce processeur étant caractérisé en ce qu'il comprend des moyens pour associer à ce processeur élémentaire des registres de communications dédiés à l'échange de données selon chaque axe de la matrice et en ce qu'il comprend des moyens pour intégrer dans les instructions une condition de localisation du processeur élémentaire dans la matrice pour déterminer le processeur élémentaire voisin transmettant les données à un cycle ultérieur en fonction de cette localisation selon un procédé conforme à l'une des réalisations précédentes. D'autres caractéristiques et avantages de l'invention apparaîtront avec la description effectuée ci-dessous à titre d'exemple non limitatif en se référant aux figures ci-jointes sur lesquelles: - La figure 1, déjà décrite, représente schématiquement un processeur matriciel selon l'art antérieur, - La figure 2, déjà décrite, représente schématiquement une matrice de processeurs élémentaires et son réseau maillé de transmission de données selon l'art antérieur, - La figure 3 représente schématiquement une matrice de processeurs élémentaires conforme à l'invention, et - La figure 4 est un schéma des moyens de communication d'un processeur élémentaire selon l'invention. Dans la réalisation de l'invention décrite ci-dessous (Figure 3), chaque processeur élémentaire a un premier ensemble de registres X1 et X2 de communications permettant de communiquer selon les directions Ouest 314 et Est 316 ainsi qu'un second ensemble de registres de communications Y1 et Y2 pour communiquer selon la direction Nord 310 et Sud 312. L'ensemble des registres de communication de chaque processeur élémentaire est donc composé de 4 registres X1, X2, Y1 et Y2. Le processeur matriciel dispose ainsi d'un double réseau de communication dans l'axe horizontal (Ouest 314/ Est 316) et dans l'axe vertical (Nord 310/ Sud 312). Dans une variante de cette réalisation, chaque processeur élémentaire comprend 2*n registres de communication destinés à la communication selon les n axes de la matrice, n étant un entier positif. Dans chaque ensemble des registres de communications d'un processeur élémentaire donné, le registre interne d'un processeur élémentaire peut prendre les données suivantes à chaque cycle d'horloge: - la donnée d'un second registre interne de ce processeur élémentaire, - la donnée d'un registre X1 ou X2 d'un processeur élémentaire voisin physiquement ou par contournement situé à l'Est 316, - la donnée d'un registre X1 ou X2 d'un processeur élémentaire voisin physiquement ou par contournement situé à l'Ouest 314, - la donnée d'un registre Y1 ou Y2 d'un processeur élémentaire voisin 35 physiquement ou par contournement situé au Nord 310, - la donnée d'un registre Y1 ou Y2 d'un processeur élémentaire voisin physiquement ou par contournement situé au Sud 312, - Pas de changement par rapport au contenu du registre avant le cycle d'horloge. A chaque cycle d'horloge, les moyens de contrôle (non représentés} du processeur matriciel envoient une instruction de communication conditionnelle pour indiquer quelles données doivent être placées dans chaque registre de communication. A cet effet, chaque instruction de communication envoyée par les moyens de contrôle a un premier champ "de condition", un second champ "première source" et un troisième champ "deuxième source" détaillés ci-dessous. Le champ de condition est constitué de quatre bits, à savoir un bit pour le bord Nord, un bit pour le bord Sud, un bit pour le bord Est et un bit pour le bord Ouest. La condition contenue dans le champ de condition est validée par un processeur élémentaire si ce processeur élémentaire est placé sur un des bords qui sont signalés par les bits activés de la condition. Si plus d'un bit de la condition est activé, une fonction 'OU' est réalisée entre les deux comparaisons avec la position du processeur élémentaire pour valider ou non la condition. Si la condition présente dans le champ de condition est validée par un processeur élémentaire donné, alors le champ première source' identifie un second processeur élémentaire dont les données doivent être copiées dans le registre concerné du premier processeur élémentaire. Si la condition présente dans le champ de condition n'est pas validée par un processeur élémentaire donné, alors le champ deuxième source' identifie la source qui doit être copiée dans le registre concerné du processeur élémentaire. La figure 3 représente un schéma d'un exemple d'une matrice 300 de 16 processeurs élémentaires 302 (i,j), tels que i et j sont compris entre 0 et 3, conforme à l'invention. Chaque processeur 302(i,j) a deux registres X1 et X2 pour les communications sur l'axe Ouest 314- Est 316 et deux registres Y1 et Y2 sur l'axe Nord 30 310-Sud 312. En outre chaque registre peut importer ou exporter des données via le réseau maillé de communication représenté par les flèches 304 horizontales et les flèches 306 verticales. Chaque processeur élémentaire est ainsi en communication avec 4 processeurs élémentaires voisins (avec ou sans contournement) : 1 au Nord, 1 au Sud, 1 à l'Est et 1 à l'Ouest. Par exemple, le processeur élémentaire 302(0,0) peut communiquer: - avec ses registres de communications X1 et X2 en lecture et écriture avec le processeur élémentaire 302(0,3) et le processeur élémentaire 302(0,1), avec ses registres de communications Y1 et Y2 en lecture et écriture avec le processeur élémentaire 302(3,0)- et le processeur élémentaire 302(1,0). A chaque processeur élémentaire est associé un mot de 4 bits de localisation. Dans la figure 3, tous les mots de 4 bits associés à chaque processeur élémentaire sont indiqués (seul le mot 302(0,0)L est référencé par souci de clarté) de tel façon que: - le premier bit est égal à 1 si le processeur élémentaire donné est sur le bord Nord et 0 sinon, - le deuxième bit est égal à 1 si le processeur élémentaire donné est sur le bord Sud et 0 sinon, - le troisième bit est égal à 1 si le processeur élémentaire donné est sur le bord Est et 0 sinon, - le quatrième bit est égal à 1 si le processeur élémentaire donné est sur le bord Ouest et 0 sinon. Cette association du mot de quatre bits à chaque processeur élémentaire peut se faire par quatre fils qui sont mis sous tension ou pas selon la localisation du processeur élémentaire à la mise sous tension du processeur matriciel SIMD, et dont la tension ne varie plus jusqu'à la mise hors tension du processeur matriciel SIMD. - Les processeurs élémentaires remplissant la condition Nord 310, situés au bord de la matrice, sont les processeurs élémentaires 302(0,0), 302(0, 1), 302(0,2), 302(0,3), - Les processeurs élémentaires remplissant la condition Sud 312, situés au bord de la matrice, sont les processeurs élémentaires 302(3,0), 302(3, 1), 302(3,2), 302(3,3), - Les processeurs élémentaires remplissant la condition Est 316, situés au bord de la matrice, sont les processeurs élémentaires 302(0,3), 302(1, 3), 302(2,3), 30 302(3,3) et - Les processeurs élémentaires remplissant la condition Ouest 314, situés au bord de la matrice sont les processeurs élémentaires 302(0,0), 302(1,0) , 302(2,0), 302(3,0). Les conditions peuvent être combinées avec la fonction logique OU'. Par 35 exemple, les processeurs élémentaires remplissant la condition Nord et Ouest (comprendre Nord ou Ouest) sont les processeurs élémentaires 302(0,0), 302(0,1), 302(0,2), 302(0,3), 302(1,0), 302(2,0), 302(3,0). Sur la figure 4 est représenté un détail d'un des processeurs élémentaires 302(i,j) décrit à la figure 3, dont les modes de communications associés à ses registres X1, X2, Y1 et Y2 sont tels que chacun de ces registres peut prendre transmettre ou recevoir des données vis-à-vis de tout autre registre X1', X2', Y1' et Y2' d'un processeur élémentaire 302'(i,j) voisin. Pour cela, en considérant par exemple le registre X1, ce dernier utilise un multiplexeur 400xi comprenant deux sous-registres X1 XCOM et X1 YCOM dans lesquels sont enregistrées les données éventuellement transmises par un processeur élémentaire 302'(i,j) voisin via, soit le réseau de communications des registres X1 ou X2, soit le réseau de communications des registres Y1 ou Y2. Ainsi, le sous-registre X1 XCOM comprend des liaisons 402 propres aux données du réseau X1, Est (E) ou Ouest (W) et X2, Est (E) ou Ouest (W), de telle sorte qu'il peut mémoriser les données provenant de chacune de ces liaisons avec les processeurs élémentaires voisins. De façon analogue, le sous-registre X1 YCOM comprend des liaisons 404 propres aux données du réseau Y1, Nord (N) ou Sud (S), et Y2, Nord (N) ou Sud (S), de telle sorte qu'il peut mémoriser les données provenant de chacune de ces liaisons avec les processeurs élémentaires voisins. Finalement, un troisième sous-registre X1_SRC permet de garder en mémoire, pour utiliser dans un nouveau cycle, les données déjà comprises dans le registre X1 du processeur élémentaire 302(i,j) lui-même. Ainsi, il apparaît que, en considérant la condition de localisation (représentée par X1_OP) transmise par les moyens de commande (non représentés) de la matrice, le multiplexeur 400xi peut prendre en compte des données provenant du réseau X1, X2, Y1, Y2 ou déjà comprises dans le processeur élémentaire par une simple sélection. Par la suite, les données prises en compte dans le registre Xl pour le cycle de calculs sont transmises au réseau Xl par des moyens 406 associés à ce dernier. A cet effet, il convient de noter que ces moyens 406 permettent la transmission des données dans les directions Est ou Ouest. De façon analogue, le détail des moyens de communication associés au registre Y1 est représenté, ce dernier utilisant un multiplexeur 400yi comprenant deux sous-registres Y1 XCOM et Y1 YCOM dans lesquels sont enregistrées les données éventuellement transmises par un processeur élémentaire 302'(i,j) voisin via, soit le réseau de communications des registres X1 ou X2, soit le réseau de communications des registres Y1 ou Y2. Le fonctionnement de ces sous-registres est analogues au fonctionnement des sous-registres précédemment décrits, le sous-registre Y1 XCOM comprenant des liaisons 402' propres aux données du réseau X1, Est (E) ou Ouest (W) et X2, Est (E) ou Ouest (W), et le sous-registre Y1 YCOM comprenant des liaisons 404' propres aux données du réseau Y1, Nord (N) ou Sud (S), et Y2, Nord (N) ou Sud (S), tandis qu'un troisième sous- registre Y1_SRC permet de garder en mémoire, pour utiliser dans un nouveau cycle, les données déjà comprises dans le registre Y1 du processeur élémentaire 302(i,j) lui-même. Dès lors, en fonction de la condition de localisation (représentée par Y1_OP) transmise par les moyens de commande (non représentés) de la matrice, le multiplexeur 400yl peut prendre en compte des données provenant du réseau X1, X2, Y1, Y2 ou déjà comprises dans le processeur élémentaire par une simple sélection. Par la suite, les données prises en compte dans le registre Y1 pour le cycle de calculs sont transmises au réseau XI par des moyens 406' associés à ce dernier, ces moyens 406' permettant la transmission des données dans les directions Nord et Sud. Les registres X2 et Y2 comportent les mêmes moyens de communication à base de multiplexeurs que ceux qui viennent d'être décrits pour les registres X1 et Y1 mais ils ne sont pas représentés sur la figure 4 dans un souci de simplification. REVENDICATIONS 1. Procédé de gestion de données dans un processeur matriciel comprenant des processeurs élémentaires (302 (i,j), (302 (i',j')) formant une matrice (300) de n axes telle qu'un processeur élémentaire (302 (i,j)) est relié à un processeur élémentaire voisin (302 (i',j')) selon chacune des 2n directions (310, 312, 314, 316) de la matrice (300), et commandés au moyen de cycles d'instructions identiques déterminant le processeur élémentaire voisin (302 (i',j')) devant transmettre les données au processeur élémentaire (302 (i,j)) pour un cycle ultérieur, caractérisé en ce qu'on associe à ce processeur élémentaire (302 (ii)) des registres (X1, X2, Y1, Y2) de communications dédiés à l'échange de données selon chaque axe de la matrice (300) et en ce qu'on intègre dans les instructions une condition de localisation du processeur élémentaire (302 (i,j)) dans la matrice (300) pour déterminer le processeur élémentaire voisin (302 (i',j')) transmettant les données prises en compte à un cycle ultérieur. 2. Procédé selon la revendication 1 caractérisé en ce qu'on associe au processeur élémentaire (302 (i,j)) une série (302 (i,j)L) de bits identifiant sa position dans la matrice (300) de telle sorte que l'on détermine la localisation du processeur élémentaire (302 (i,j)) en comparant cette série (302 (i,j)L) de bits avec une série de bits transmise dans les instructions. 3. Procédé selon la revendication 2 caractérisé en ce que la série (302 (i,j)L) de bits identifiant la position d'un processeur élémentaire (302 (i,j)) dans la matrice (300) est une série de 2n bits indiquant pour chaque processeur élémentaire (302 (i,j)) si ce processeur élémentaire (302 (ii)) est à un bord de la matrice (300). 4. Procédé selon l'une des revendications 1, 2 ou 3 caractérisé en ce qu'on utilise une matrice comprenant deux axes (n égal 2) et quatre directions (310, 312, 314, 316). 5. Procédé selon l'une des revendications 1 à 4 caractérisé en ce qu'on associe à chaque processeur élémentaire (302 (i,j)) quatre éléments électriques dont la tension est fixée lors de la mise sous tension du processeur élémentaire (302 (i,j)) et reste fixe tant que ce processeur élémentaire (302 (i,j)) est maintenu sous tension, la tension de ces quatre éléments donnant la série (302 (i,j)L) de bits indiquant la position du processeur élémentaire (302 (i,j)) dans la matrice (300). 6. Procédé selon l'une des revendications précédentes caractérisé en ce que l'instruction émise par les moyens de commande comprend une première identité de processeur élémentaire dont les données doivent être copiées dans un registre de communications des processeurs élémentaires si la condition de localisation est validée, et une seconde identité de processeur élémentaire dont les données doivent être copiées si la condition de localisation n'est pas validée. 7. Procédé selon l'une des revendications précédentes caractérisé en 10 ce que les ensembles de registres (XI, X2, Y1, Y2) sont indépendants. 8. Procédé selon l'une des revendications précédentes caractérisé en ce qu'on associe à différents processeurs élémentaires (302 (i,j), (302 (i', j')) au moins deux registres ((X1, X2); (Y1, Y2)) de communications selon un axe de la matrice de telle sorte que, selon cet axe, ces processeurs élémentaires (302 (i,j), (302 (i',j')) sont reliés par au moins deux réseaux de communications de données. 9. Procédé selon la revendications 8 caractérisé en ce qu'on associe à chaque processeur élémentaire (302 (i,j)) comprenant au moins deux registres ((X1, X2); (Y1, Y2)) de communications un multiplexeur (400xi) lié aux processeurs élémentaires voisins (302 (i',j')) selon chacun des axes de communication de la matrice (300), ce multiplexeur (400xi) comprenant des moyens, tels que des sous-registres (Y1 SRC, Y1 XCOM, Y1 YCOM, X1 SRC, X1 XCOM, X1 YCOM), pour sélectionner des données transmises par un de ces processeurs élémentaires voisins (302 (i',j')). 10. Procédé selon l'une des revendications précédentes caractérisé en ce que chaque registre (X1, X2, Y1, Y2) d'un processeur élémentaire peut copier les données suivantes à chaque cycle d'opération: - les données d'un registre interne de ce processeur élémentaire, - les données d'un registre de même axe d'un processeur élémentaire voisin, - les données d'un registre d'un autre axe d'un processeur élémentaire voisin, - les données contenues dans ce même registre avant le cycle. 11. Procédé selon l'une des revendications précédentes caractérisé en ce que, le processeur élémentaire (302 (i,j)étant situé à un bord de la matrice, un processeur voisin (302 (i',j'))est situé à un autre bord de la matrice. 12. Processeur matriciel (300) comprenant des processeurs élémentaires (302 (i,j), (302 (i',j')), formant une matrice (300) de n axes telle qu'un processeur élémentaire (302 (i,j)) est relié à un processeur élémentaire voisin (302 (i',j')) selon chacune des 2n directions (310, 312, 314, 316) de la matrice (300), et commandés au moyen de cycles d'instructions identiques déterminant le processeur élémentaire voisin devant transmettre les données au processeur élémentaire (302 (i,j)) pour un cycle ultérieur, caractérisé en ce qu'il comprend des moyens pour associer à ce processeur élémentaire (302 (i,j)) des registres (X1, X2, Y1, Y2) de communications dédiés à l'échange de données selon chaque axe de la matrice (300) et en ce qu'il comprend des moyens pour intégrer dans l'instruction une condition de localisation du processeur élémentaire (302 (i,j)) dans la matrice (300) pour déterminer le processeur élémentaire voisin (302 (i',j')) transmettant les données à prendre en compte pour un cycle ultérieur.