FR 2525787 A1 19831028 FR 8306768 A 19830425 La présente invention concerne un système à multimicropro- cesseurs du type à flux unique d'instructions et flux multiplesde données (SIMD) ainsi qu'un système à multimicroprocesseurs du type à systèmes SIMD multiples (MSIMD) qui trouve des applica- tions dans le traitement parallèle d'informations pour diverses classes spécifiques de problèmes tels que la transformation de Fourier à haute vitesse, les calculs de vecteurs et de matrices, le traitement simultané en temps réel de signaux provenant de sources différentes, le traitement de données provenant d'expé- riences en physique ou autre, le contrôle simultané d'un certain nombre d'objets reliés entre eux, la solution rapide de systèmes d'équations différentielles et linéaires Les dispositifs de calcul électronique et les ordinateurs de ce type réalisent le programme avec tous leurs groupes SIMD ou MSIMD d'unités à mi- croprocesseur exécutant une même instruction à la fois sur des opérandes différentes Lors de l'exécution de plusieurs instruc- tions, un échange d'informations s'effectue entre les unités. Des systèmes à microprocesseurs SIMD et MSIMD sont connus ( 1), qui comprennent une unité de contrôle et des unités à micro- processeurs directeurs reliés de manière déterminée entre eux, toutes les unités directrices étant reliées à l'unité de contrôle par une ligne d'instructions unique Un dispositif de commutation commandé par l'unité de contrôle assure la liaison entre lesdites unités par l'intermédiaire de lignes de contrôle d'échange de données Toutes les unités sont reliées par le dispositif de commutation à une mémoire commune ainsi qu'à des circuits communs d'entrée/sortie de données ( 2) Les unités à microprocesseur comprend un microprocesseur, une mémoire vive et une interface entrée/sortie. Un système à plusieurs microprocesseurs à structure hiérar- chique ( 3) est connu, dans lequel les unités sont disposés selon un arbre. Un inconvénient des systèmes à plusieurs microprocesseurs SIMD et MSIMD réside dans le fait qu'ils ne sont pas réalisables à partir d'éléments de microprocesseur arbitraireguniverse L En outre, le contrôle de ces systèmes est très sophistiqué, ce qui se répercute sur la complexité de l'unité de commande, laquelle à l'opposé des autres unités, ne permet pas de charger ladite unité de fonction directrice La liaison inlermodulaire nécessite des circuits spécifiques complexes L'échange de données entre les unités se base sur un principe séquentiel plutôt que sur un prin- cipe parallèle, réduisant ainsi les performances du système dans son ensemble Ces systèmes ne présentent pas non plus la souples- se nécessaire à leur extension (reconfiguration) par l'adjonction d'unités, ni la possibilité de transformation d'un système du type SIMD en système de ^D 5 e l IS Il MD et inversement. Le but de la présente inventicn est de réaliser un système multimicroprocesseurs de type SIMD ct MSIMD présentant à la fois une structure simple et une conh'olabilité indépendant du type d'éléments de microprocesseur utilises, assurant simultanément un échange parallèle rapide de données entre des unités individuel- les et une grande souplesse permettant La reconfiguration, avec la simplicité d'une liaison intermodulaire, de façon à rendre inutile les circuits et dispositifs d'interface sophistiqués. Pour ce faire, la présente invention a pour objet un système à plusieurs microprocesseurs ou multimicroprocesseur réalisés à partir d'unités à microprocesseur, comprenant chacune un micro- processeur, une mémoire vive et des circuits d'interface, une entrée/sortie pour l'échange intermodulaire des données et une entrée d'instructions, cette entrée d'instructions étant reliée à un bus de "données" interne par un circuit tampon, et les lignes d'adresses et les lignes de commande du microprocesseur sont re- liées aux autres éléments de l'unité Le système multiprocesseurs comprend un nombre N d'unités avec les entrées d'instructions reliées à un bus "d'instructions" commun et les entrées/sorties d'échange de données sont reliées à un dispositif de commuta- tion Selon ce système multimicroprocesseur, les lignes d'adres- ses du microprocesseur en vue de la sélection des éléments de l'unité sont reliées au tampon qui a pour rôle de déconnecter la liaison entre le bus de "données" interne et l'entrée d'instruc- tions de ladite unité, ce système étant caractérisé par le fait qu'une mémoire morte, une mémoire vive communes et des disposi- tifs d'entrée/sortie communs sont reliés par leurs lignes de données au bus d'instructions du système multimicroprocesseur et en ce que les lignes d'adresses de la première unité à micro- processeur, qui apparaît en outre comme l'unité de contrôle, sont reliées à la fois à la mémoire commune et aux dispositifs d'entrée/sortie communs ainsi qu'aux entrées "HALT" des micropro- cesseurs des unités à microprocesseur par un circuit logique, qui a pour rôle de mettre les unités à microprocesseur hors tension ainsi qu'au dispositif de commutation, qui est désigné comme cir- cuit d'échange de données à registres 1 Le but de l'invention est en outre réalisé lorsque le cir- cuit à registres-d'échanges parallèles de données comprend un nombre N de registres et un circuit logique à combinaisons, qui branche les signaux d'entrées de commande sur les entrées/sorties des re- gistres en vue d'un échange de données entre lesdits registres, ce circuit logique à combinaisonsétant caractérisé par (log (N+ 1) entrées d'introduction du code d'échange, la première sortie du circuit à combinaisonsétant reliée à des circuits de validation autorisant la liaison entre la sortie du premier registre et l'entrée du second registre; la seconde ligne de sortie du cir- cuit à combinaisonsétant relié aux circuits de validation autori- sant la liaison entre la sortie du troisième registre et l'entrée du deuxième registre; la troisième ligne de sortie étant reliée aux circuits de validation autorisant la liaison entre la sortie du premier registre et l'entrée du troisième registre; la qua- trième ligne de sortie étant reliée aux circuits de validation autorisant la liaison entre la sortie du quatrième registre et l'entrée du troisième registre; etc; la (N-2)ème ligne de sortie étant reliée aux circuits de validation autorisant la liaison entre le premier registre et le (N-1) ième registre, tandis que la dernière ligne de sortie est reliée aux circuits de validation autorisant la liaison entre la sortie du premier re- gistre et l'entrée du dernier registre, chaque registre compre- nant une entrée/sortie permettant sa liaison avec une unité à microprocesseur donnée, tandis que le premier registre comporte une entrée/sortie supplémentaire. Le but de l'invention est également atteint du fait que le système multimicroprocesseur comprend un certain nombre de systè- mes multimicroprocesseurs SIMD reliés de manière hiérarchique par un certain nombre de circuits d'échanges de données entre regis- tres comme ceux évoqués ci-dessus, les entrées/sorties supplémen- taires des premiers registres des circuits d'échange de données à registres de certains systèmes h plusieurs microprocesseurs SIMD étant reliées aux circuits de registres d'échange de données du premier niveau hiérarchique, tandis que les entrées de contrô- le des circuits d'échange de données à registres sont reliées aux lignes d'adresses de la première unité à microprocesseur du premier système SIMD compris dans le groupe de systèmes; les entrées/sorties supplémentaires des circuits à registres d'échange du premier niveau étant reliées par groupesaux circuits de registres d'échange de données du second niveau tandis que les entrées de contrôle des registres d'échange de données du second niveau sont reliées aux lignes d'adresses de l'unité à micropro- cesseur dont les lignes d'adresses sont reliées aux circuits d'échange de données du premier registre du groupe de registres d'échange de données de premier niveau, etc Au dernier niveau de liaison hiérarchique, entre les unités à microprocesseur, il y a un seul circuit d'échange de données entre registres du même type que celui déjà évoqué, ses entrées de contrôle d'échange étant reliées aux lignes d'adresses de la première unité du système. Les avantages du système h microprocesseurs résident dans la possibilité de le réaliser à partir d'éléments de microproces- seur arbitraires, c'est-h-dire des microprocesseurs et des cir- cuits monolithiques et TTL L'avantage principal réside dans sa structure simple et dans la simplicité de liaison entre les unités à microprocesseur, ce qui permet de supprimer les circuits et les unités d'interface sophistiquées Les unités directrices et les unités de contrôle sont toutes deux de même type, et l'unité de contrôle exécute en outre des fonctions directrices, augmen- tant de ce fait les performances du système dans son ensemble par opposition aux autres systèmes h plusieurs microprocesseurs ou l'entrée de contrôle est sophistiquée et n'effectue que des fonc- tions de contrôle Le circuit à registres assurant les échanges parallèles de données permet un échange de données rapide entre les unités à microprocesseur par rapport aux systèmes d'échange de données séquentiels disponibles Le système à plusieurs micro- processeurs et son organisation hiérarchique des liaisons entre les unités individuelles présente des avantages importants par rapport aux systèmes connus et notamment en ce qui concerne certaines classes de problèmes tels que des calculs de matrice, le traitement et le tri de signaux, etc Un avantage important du système multimicroprocesseur réside dans le fait qu'il présente une grande souplesse non seulement en ce qui concerne sa concep- tion mais aussi en ce qui concerne sa reconfiguration d'un type à un autre. Une forme d'exécution de la présente invention est décrite ci-après à titre d'exemple, en référence aux dessins annexés dans lesquels: la figure 1 est un schéma synoptique d'une unité h micro- processeur; la figure 2 est un diagramme de la structure du système multimicroprocesseur SIMD; la figure 3 est un schéma synoptique du circuit d'échange de données à registres; la figure 4 est un diagramme de la structure hiérarchique d'un système multimicroprocesseur; la figure 5 est un diagramme de la structure d'un système à 64 multimicroprocesseurs réalisés à partir de 16 systè- mes multimicroprocesseurs SIMD, chaque système comprenant quatre unités à microprocesseur. L'unité à microprocesseur (figure 1) comprend un micropro- cesseur 1, une mémoire vive 2, un organe d'entrées/sorties paral- lèles 3 comprenant un organe d'entrées/sorties de données exter- nes 4 et un organe d'entrées/sorties d'échange de données avec les autres unités 5; un circuit d'entrées/sorties séquentiels 6 avec les lignes d'entrées/sorties et de contôle correspondantes 7; une entrée d'instructions 8 reliée au bus de "données" inter- ne 9 par l'intermédiaire du tampon 10, les lignes d'adresses 11 et les lignes de contrôle 12 étant reliées aux autres circuits de l'unité tandis que des entrées sont prévues pour introduire des impulsions de synchronisation 13 et des impulsions d'arrêt (cou- pure} (HALT) 14 dans le microprocesseur 1 Une caractéristique de l'unieé à microprocesseur de l'invention réside dans le fait que les lignes d'adresses 15 permettant de sélectionner le reste des circuits de l'unité scnt reliées au tampon 10 qui interrompt la liaison entre le bus interne 9 et l'entree d'instructions 8. Le systèmes mul;ri:rroprocesseurs (figure 2) comprend un nombre N d'unités a n:irrpecesseur 16 ayant les entrées d'ins- truetions 8 reliées à u: bus "-J'inrstructions" commun 17 et leurs entrées,'sorties d'échange,: utnnéen 5 reliées à un dispositif de commutation 18, une mémoire mor 1 a: comrmucu 20, une mémoire vive commune 21 et des dispositifs d'entrées/sorties communs 22 qui sont reliés par leurs lignes de d Connées 19 au bus d'instructions 17 Les lignes d'adresses 11 de la premiere unité 16, qui assure aussi une fonction de contrôle, sont reliàes h la fois aux mémoi- res communes 20, 21, 22 et aux entrées AILT 14 des unités à mi- croprocesseur 16 par un circuit logique 25 qui sert à couper les unité h microprocesseur 16, ainsi qu'au dispositif de commuta- tion 18, qui est réalisé sous forme de circuits d'échange de données à registres Les connexions internes des lignes d'adresses des unités h microprocesseur et les connexions entre les lignes d'adresses de la première unité et les dispositifs communs sont sélectionnés pour que tous les microprocesseurs possèdent la même affectation de leurs domaines d'adresses, ces domaines contenant les adresses suivantes: les adresses de la mémoire vive 2 et des dispositifs d'entrées/sorties 3 et 6 de l'unité; les adresses de coupure de chacun des microprocesseurs par l'intermédiaire de la logique 23 ainsi qu'une adresse de cou- pure de toutes les unités sauf la première; une adresse de sé- lection du circuit d'échange de données registres 18; les adresses qui représentent les codes d'échange du dispositif de commutation 18; les adresses de stockage des adresses d'inter- ruption; d'autres adresses la logique 23 peut être réalisée à partir de bascules bistables de type "T", chaque entrée 14 de coupure d'une unité à microprocesseur comprenant une bascule Un signal est transmis à la bascule dans le cas o une adresse dé- terminée est présente sur les lignes d'adresses 11 de la première unité à microprocesseur 16 En outre, une adresse déterminée dé- bloque le dispositif de commutation 18 Dans ce cas, certaines des adresses directement adressables peuvent être recouvertes par les adresses d'échange dans le dispositif de commutation 18. Le circuit à registres permettant des échanges de données parallèles (figure 3) comprend un nombre N de registres 25 et un circuit logique à combinaisons 26 par lequel le (log 2 (N+ 1)) nombre d'entrées de contrôle 26 est relié par l'intermédiaire des Yi' Y 2 ' * y YN-1, sorties du circuit 26 aux entrées et sorties, respectivement des registres 25, la première sortie y, du circuit 26 étant reliée à un circuit de validation 28 autorisant la liai- son entre les sorties du premier registre 25 et du second regis- tre 25; la seconde sortie Y 2 étant reliée à un circuit de vali- dation 29 autorisant la liaison entre la sortie du troisième re- gistre et l'entrée du second registre 25, etc, la N-3 ième ligne de sortie YN-3 étant reliée à des circuits de validation 30 auto- risant la liaison entre le premier registre 25 et le registre pén- ultième 25; la sortie YN-2 étant reliée à des circuits de vali- dation 31 autorisant la liaison entre le Nième et le (N-1)ième registres tandis que la sortie YN-1 est reliée h des circuits de validation 32 autorisant la liaison entre le premier et le dernier registres 25, tous les registres 25 comprenant une entrée/sortie 33 permettant la liaison à une unité à microproces- seur 16 par son entrée 5, le premier registre 25 comprenant en outre une entrée/sortie supplémentaire 34. Le système multimicroprocesseur à structure hiérarchique (figure 4) comprend plusieurs systèmes à multimicroprocesseurs SIMD 35 reliés entre eux par plusieurs circuits à registres d'échange de données 18, l'entrée/sortie supplémentaire 34 des premiers registres 25 d'unnombre déterminé de systèmes 35 étant reliés aux circuits d'échange à registres de premier niveau 36, dont les entrées de contrôle 27 sont reliées aux lignes d'adresses 11 des premières unités à microprocesseur du premier système du groupe 35; l'entrée/sortie supplémentaire 35 des premiers registres 25 des circuits d'échange à registres de pre- mier niveau 36 étant reliée par groupe aux circuits à registres d'échange de second niveau, dont les entrées de contrôle sont reliées aux lignes d'adresses de l'unité à microprocesseur dont les lignes d'adresses sont reliées aux premiers circuits à regis- tres pour un échange de données de premier niveau 36, etc tandis qu'au dernier niveau hiérarchique de liaison entre les unités 16, il y a un seul circuit d'échange de données à registres 37 dont les entrées de contrôle sont reliées aux lignes d'adresses de la première unité 16 du premier système SIMD 35 Dans ce cas, le domaine d'adresses du premier microprocesseur doit en outre contenir les adresses pour contrôler l'échange s'effectuant dans les circuits d'échange à chaque niveau à partir de zéro jusqu'au dernier niveau, tandis que les autres unités de contrôle 16 doivent contenir-un nombre inférieur de ces adresses. La figure 5 représente un système MSIMD è structure hiérar- chique comprenant 16 systèmes à multimicroprocesseurs SIMD 35, chaque système 35 comprend 4 unités 16 désignées MO, M 63, chaque circuit d'échange de données à registres des zéro, premier ( 36) et second ( 37) niveaux comprend quatre registres 25 désignés RO, R 4, R 60, leurs numéros correspondant aux numéros des unités comprises dans le système Les circuits à registres 36 et 37 sont commandés par les lignes d'adresses des premiers micro- processeurs du groupe Des systèmes de ce type peuvent être réa- lisés avec un nombre différent d'unités dans le système SIMD 35 et un nombre différent de registres peuvent être utilisés dans les circuits à registres Le nombre minimum d'unités dans un sys- tème SIMD est deux Une structure régulière est réalisée lorsque tous les systèmes SIMD comprennent deux modules (unités) et que chaque circuit à registres comprend deux registres Dans ce cas, le nombre de niveaux est égal à log 2 N Les liaisons dans un tel système ressemblent à la structure d'un arbre. Le système multimicroprocesseur (figure 2) fonctionne comme suit Tous les microprocesseurs démarrent sur la même adresse initiale contenue dans leurs compteurs de programme, c'est-à-dire l'adresse de la première instruction du programme stockée dans la mémoire morte commune 20 Une même instruction est adressée par chaque microprocesseur, mais ladite instruction n'est en fait extraite de la mémoire 20 que par le premier microprocesseur et, les tampons 10 étant ouverts, le code d'instruction est introduit par le bus 17 dans tous les microprocesseurs Lorsque ladite instruction contient une adresse d'une opérande d'une mémoire vive locale 2, chaque microprocesseur exécute l'instruction avec les données contenues dans ladite adresse dans sa propre mémoire vive 2 A ce stade, le tampon 10 est fermé et la liaison entre le bus 17 et le bus interne 9 est interrompue Chaque unité exécute l'instruction en tant que microprocesseur isolé Lorsqu'un nom- bre déterminé d'instructions a été exécuté, un échange de données entre les unités 16 peut s'avérer nécessaire Cela se fait comme suit: chaque microprocesseur envoie ses données par la sortie 5 en vue d'effectuer un échange dans son registre respectif 25 faisant partie du circuit d'échange de données à registres 18, l'opération s'effectuant en parallèle en utilisant une même série d'instructions (sous-programme); ensuite, une instruction ficti- ve est exécutée (par exemple, une sorte de comparaison sans aucu- ne variation du contenu des cellules de mémoire) La logique 23 décode l'adresse de l'instruction fictive et un signal "HALT" est envoyé sur les entrées pour couper les microprocesseurs 14 De manière analogue, une adresse est envoyée qui sert, encore par l'intermédiaire de la logique 23, à valider le circuit d'échange 18 Ensuite, le premier microprocesseur commence h lire et "exé- cuter" des instructions fictives dont I Pq P Hr Psses sont des codes d'échange vers le circuit 18, jusqu'h l'obtention du déca- lage désiré de données dans les registres 25 Il est nécessaire ou d'assurer que les instructions fictives ne provoquent pas un échange de données contenues dans le premier microprocesseur ou, si cela s'avère impossible, de stocker le préliminaire du code d'état d'explo Sitation Les instructions fictives devraient être assez courtes pour réduire le temps d'échange nécessaire Ensui- te, tous les microprocesseurs sont mis sous tension (éventuelle- ment avec l'adresse avec laquelle ils ont été coupés par les bascules "T" de la logique 23, ou d'une autre façon) et commen- cent l'exécution d'un sous-programme pour extraire des données d'une longueur d'un mot de leurs registres par l'intermédiaire de l'entrée 5 du circuit d'entrées/sorties parallèles 3 Ensuite, l'exécution de l'instruction suivante ou un vrai échange peut être réalisée Les données contenues dans la mémoire vive de chaque unité peuveni âtre introduites en parallèle par les entrées A 4 ou trarif Arées depuis la mêitoire vive commune 21 par i'inlermédiaire du u d'instructions, les autres unités du sys- tèmes devront ëtre co,=-e -n avance lors du transfert vers une unit A déterminée En nui -, les données peuvent être introduites séquentieilement dans les unités Air les entrées 7 du circuit d'entrée/sortie séquentiel 6 an srnereur d'impulsioo d'horloge envoie des signaux de synchrorîsa-o:n = les entrées respectives 13 des microprocesseurs. Le circuit d'échange de données registres 18 fonctionne comme suit Lorsqu'un code détermin 4 gst introduit sur les lignes d'entrée 27, une des transformations sui antes est effectuée sous réserve d'un échange entre des registres 25: 1 2 N 1 2 3 N 1 2 3 4 N 1 2 N-1 N bo=, b 1 =, b, b =, 1 2 N 2 1 3 N 2 3 1 4 N 2 3 N 1 1 2 3 N-1 N b N= 2 3 4 N N La série ci-dessus comprenant des numéros de série des registres qui reçoivent le contenu de la rangée inférieure respective de registres Il existe des algorithmes et des programmes d'expan- sion d'une transformation arbitraire pour effectuer un échange de tous les N registres selon une série de bh, b 1, b N transfor- mations de base Par exemple, si l'unité 4 envoie un contenu dé- terminé dans les autres unités 1, 2 et 3 tout en recevant des données de l'unité 1, et si les adresses permettant d'effectuer les b 0, b,, b 2, b 3, b 4 transformations sont respectivement 80, 81, 82, 83, 84 et si l'adresse A 73 sert b couper les microproces- seurs (toutes les adresses sont hexadécimales), la série suivante d'instructions devant être exécutée par la première unité (N = 4; les contenus des unités sujets à l'échange se trouvent dans leurs registres respectifs) est nécessaire: DI 81, DI 84, D 183 parce que l'échange nécessaire peut être représenté par la transformation 1234 qui se développe en la série b 3, B 4, bl. 4441 qu déeopb Bb. L'instruction DIA 73 est introduite en avance, DI étant un code d'instructionsfictives(c'est-à-dire une instruction qui existe mais qui ne déclenche pas d'action raisonnable en vue du résultat final) Si la transformation représente une permutation, son expansion n'est pas plus longue que N-1 et des formules ana- lytiques simples avec programme correspondant sont disponibles à cet effet. Le système à multimicroprocesseurs MSIMD fonctionne comme suit Chaque système SIMD 35 exécute son propre programme, qui peut coïncider en particulier avec le programme d'un autre systè- me 35 Eventuellement, toutes les unités 16 du système peuvent échanger des données entre elles, c'est-à-dire en quelque sorte par une transformation arbitraire de toutes les unités élémentai- res, cet échange étant effectué comme suit: la transformation requise (disons une permutation P) est développée en un produit de cycles' ( 12), ( 123), ( 12 N), o N représente le nombre global-d'unités dans le système Ensuite, les cycles sont exécu- tés en séquence par des permutations de bases parallèles dans les circuits à registres en vue d'un échange sur chaque niveau hiérarchique Par exemple, si la permutation désirée pour les systèmes de la figure 5 est p = ( O 2 4 24 26 1 3 25 27 28 29 53 54) (établis dans un seul cycle et non pas selon une notation à deux rangées), ladite permutation peut être développée par un procédé standard pour obtenir le produit ( O 1 2 25 26) ( O 1 2 53 54) La première permutation est complétée en trois étapes (une permutation de base en une étape) Pendant la première étape, les permutations (O 1 2 3), ( 4 5 6 7), ( 8 9 10 11), ( 12, 13, 14, 15), ( 16 17 18 19), ( 20 21 22 23), ( 24 25 26) sont exécutées en parallèle dans les systèmes SIMD, c'est-à-dire les circuits à registres du niveau zéro Pendant la seconde étape, les permutations ( O 4 8 12), ( 16 20 24) sont exécutées en parallèle dans les structures à registres du premier niveau. Pendant la troisième étape, la permutation de second niveau (O 16) est exécutée, o les chiffres désignent les numéros des re- gistres des circuits des divers niveaux, lesdits numéros étant équivalents aux numéros des unités du système La seconde permu- tation est exécutée également en trois étapes, o, pendant la première étape, tous les cycles complets depuis (O 1 2 3) jusqu'à ( 48 49 50 51) et le cycle ( 52 53 54) sont exécutés Les cycles (O 4 8 12), ( 16 20 24 28), ( 32 36 40 44), ( 48 52) sont exécutés en parallèle dans la seconde étape et leur permutation (O 16 32 48) est exécutée dans la troisième étape La permutation complète, p, est exécutée en six étapes. Des systèmes multimicroprocesseurs peuvent être réalisés à partir de familles différentes de microprocesseurs tout en conser- vant ladite organisation Dans un mode de réalilsation de la pré- sente invention, on a réalisé divers systèmes à microprocesseurs à partir des familles de microprocesseurs INTEL et MOTOROLA, ces familles n'étant mentionnées qu'à titre illustratif et ne consti- tuent aucune limitation de l'invention Des procédés, des algo- rithmes et des programmes pour la solution parallèle de diverses classes de problèmes ont été réalisés pour ces systèmes. Lorsque l'unité à microprocesseur 16 comprend une mémoire morte 38, le système multimicroprocesseur de la figure 2 devient un système SIMD/MIMD, c'est-à-dire un système qui permet une re- configuration d'un type en un autre seulement en fonction de l'adresse contenue dans le compteur de programme du microproces- seur 1 de ladite unité Si le compteur de programme adresse un programme, qui a été stocké dans la mémoire locale 38, l'unité fonctionne alors individuellement (c'est-à-dire le système est du type MIMD) Il est possible qu'à un moment donné certaines des unités 16 représentées sur la figure 2 fonctionnent selon leur propre programme, tandis que le reste des unités 16 fonctionne selon le programme commun stocké dans la mémoiremorte commune Une unité peut être aiguillée de son propre programme sur le programme commun par un appel automatique à une adresse, laquelle est en dehors du domaine d'adresses locales de ladite unité et qui contient un "commun" pour l'instruction d'un certain nombre d'unités Cette reconfiguration de fonctions, qui s'effectue automatiquement, représente un avantage essentiel de la présente invention, notamment grâce à sa mise en oeuvre simple Cette option permet d'étendre l'applicabilité de la présente invention à divers problèmes, augmente ses performances et permet une éco- nomie de mémoire pour l'ensemble du système. La présence d'une mémoire morte 38 dans l'unité à micropro- cesseur 16 assure la possibilité d'une reconfiguration automati- que des fonctions du système multimicroprocesseur à structure hiérarchique pour passer d'un système MSIMD à un système M-SIMD/ MIND, SIMD ou MIMD Cette reconfiguration augmente l'efficacité parce que la mise en parallèle possible pour résoudre certains problèmes ne risque pas de charger toutes les unités à micropro- cesseur Dans un tel cas, une partie des unités fonctionnerait sur leur propre programme Un mode de fonctionnement multipro- gramme du système est possible, c'est-à-dire un système réalisé à partir d'un nombre N d'unités peut traiter en parallèle N sortes différentes de problèmes distribués aux N unités de traitement. REVENDICATIONS 1 Système multimicroprocesseur réalisé à partir de structu- res h plusieurs microprocesseurs, chacune de ces structures com- prenant un nombre N d'unités à microprocesseur reliées à des unités de mémoire commune et à une entrée/sortie commune du sys- tème, les unités h microprocesseur étant uniforme et comprenant un microprocesseur, une mémoire de données, une interface entrée/sortie parallèle, une entrée/sortie séquentielle et une mémoire de programme, c arctérisée en ce que lesdites structures à plusieurs microproce 7 e zs sont reliées h des circuits à regis- tres d'échangesparalibles ie donrnes ( 18), des entrées/sorties supplémentaires ( 34), des rec Lstre '(Z 5) étant reliés ' des cir- cuits à registres d'échange de do:un;es de premier niveau ( 36) dont les entrées de contrôle '27) sont reliées aux lignes d'adresses ( 11) de la première unité ' microprocesseur ( 16) de la première structure à microprocesseur ( 35, tandis que les entrées/sorties supplémentaires ( 34) des registres ( 25) des cir- cuits à registres d'échange de données de premier niveau ( 136) sont connectées par groupes aux circuits a registres d'échange de données de second niveau dont les entrées de contrôle sont re- liées aux lignes d'adresses de l'unité à microprocesseur ( 16), les lignes d'adresses étant reliées au premier circuit des cir- cuits à registres d'échange de données de premier niveau ( 36), en ce que, au dernier niveau hiérarchique de liaison entre les structures à microprocesseur ( 35), il y a un circuit à registres d'échange de données ( 37) dont les entrées de contrôle ( 27) sont reliées aux lignes d'adresses( 11) de la première unité ( 16) de la première structure à microprocesseur ( 35), lesdites unités à microprocesseur ( 16) comprenant un tampon bidirectionnel ( 10) qui sert à connecter le bus de données interne ( 9) au bus d'instruc- tions commun ( 17) de la structure et en ce que lçs entrées de va- lidation du tampon ( 10) sont reliées aux bus inversés pour la sé- lection de circuits de l'unité à microprocesseur ( 16) par les lignes d'adresses ( 11) du microprocesseur ( 1), les lignes d'adresses ( 11) de la première unité h microprocesseur ( 16) étant reliées également aux mémoires communes ( 20, 21), à l'unité d'entrée/sortie ( 22) ainsi qu'aux circuits h registres d'échanges parallèles de données ( 18) et aux entrées "HALT" ( 14) des micro- processeurs ( 1) des unités ( 16) par l'intermédiaire d'un circuit logique ( 23) qui sert à couper les unités à microprocesseur. 2 Système multimicroprocesseur selon la revendication 1, dans lequel le circuit à registres d'échangesparallèles de données ( 18) comprend un nombre N de registres interconnectés, un circuit à combinaisons ( 26) et des bus directionnels ( 33) pour permettre l'entrée/sortie de données dans les registres ( 25), caractérisé en ce que le circuit à combinaisons comprend un nombre (log 2 (N+ 1)) d'entréesde contrôle ( 27), les sorties de ce circuit à combinaisons( 26) étant reliées à des circuits de vali- dation permettant des liaisons parallèles entre les registres ( 25), la première sortie (Y,) étant reliée à un circuit de vali- dation ( 28) autorisant la liaison entre la sortie du premier re- gistre ( 25) et l'entrée du second registre ( 25), la seconde (Y 2) étant reliée à un circuit de validation ( 29) autorisant la liai- son entre la sortie du premier registre ( 25) et l'entrée du second registre ( 25), tandis que la (N-3)ième ligne de sortie (YN-3) est reliée à un circuit de validation ( 30) autorisant la liaison entre le premier registre ( 25) et le dernier registre ( 25), la (N-2)ième sortie (YN-2) étant reliée h un circuit de va- lidation ( 31) autorisant la liaison entre le dernier et l'avant dernier registre ( 25), la (N-1)ième sortie (YN-1) étant reliée à un circuit de validation ( 32) permettant la liaison entre les premier et dernier registres ( 25) tandis que la Nième sortie (YN) est reliée de façon à autoriser la liaison entre les second et premier registres ( 25), le premier registre ( 25) comprenant en outre une entrée/sortie supplémentaire ( 34).