FR 2638260 A1 19900427 FR 8813969 A 19881026 Dispositifs de commutation et réseaux de communication de données pour systèmes multiprocesseurs L'invention concerne d'une manière générale les réseaux de communication pour la transmission simultanée de messages de données entre une pluralité de dispositifs sources et une pluralité de dispositifs destinataires. Elle concerne plus particulièrement un réseau de communication mettant en oeuvre un dispositif de commutation spécialisé dans le transfert des messages de données, appelé processeur de communication, et destiné à être utilisé dans les systèmes informatiques multiprocesseurs, par exemple pour le traitement parallèle de l'information. Dans les systèmes multiprocesseurs de traitement parallèle de l'information, les processeurs qui exécutent des programmes, ou processus, à leur rythme propre et d'une façon partiellement asynchrone les uns par rapport aux autres ont besoin, par intermittence, de communiquer entre eux et/ou avec un ensemble de mémoires. Les transferts des messages de données entre les processeurs et mémoires concernés doivent s'effectuer dans des conditions optimales de rapidité, en évitant des conflits d'accès au niveau des moyens de communication. Pour accro!tre leur puissance, on demande à ces systèmes d'ître aptes à exécuter en parallèle un nombre de processus de plus en plus important. Dans ces conditions, il est essentiel de résoudre efficacement: - les problèmes liés à la communication des messages de données, et - le problème de la répartition du travail entre les différents processeurs et mémoires du système multiprocesseur. Un 'moyen bien connu d'interconnecter plusieurs processeurs consiste à les relier tous à un mime bus de communication et à faire appel à une unité de contr8le pour gérer de manière centralisée et hiérarchisée les échanges de messages de données entre processeurs. Ce moyen de communication par bus unique présente l'inconvénient majeur de ne pouvoir établir à un instant donné qu'une communication d'un processeur à un autre et est donc -2d'autant plus pénalisant que le nombre de processeurs à interconnecter est élevé. De plus, cet inconvénient n'est que très partiellement corrigé en multipliant le nombre de bus de communication. Pour résoudre ces inconvénients, il a été proposé d'échanger les messages de données à travers des réseaux de communication. Différentes structures pour ces réseaux et notamment une structure "Oméga" présentant certains avantages sont décrites par HWANG et BRIGGS dans leur ouvrage intitulé "Computer Architecture and Parallel Processing", Edition Mc GRAW HILL, 1984. Un réseau de communication du type dit "Oméga" décrit par HWANG et BRIGGS permet une amélioration très sensible de la rapidité des transferts d'informations entre processeurs. Toutefois, un tel réseau n'échappe pas à la nécessité de mettre en oeuvre une unité de contrôle centralisée, chargée de déterminer les chemins d'acheminement et de résoudre les conflits d'accès au niveau des dispositifs de commutation. La nécessité de cette unité de contr8le centralisée limite la taille du réseau du fait d'une difficulté de programmation d'autant plus grande que la taille du réseau est importante. Par ailleurs, le problème de la répartition du travail dans ce réseau est traité distinctement de l'acheminement par une autre unité de contrôle présentant également une difficulté de programmation croissant avec la taille du réseau. La présente invention vise essentiellement à fournir un dispositif de commutation pour réseau de communication concu pour acheminer les messages de manière à assurer une régulation automatique et optimale des charges de travail entre les différents processeurs d'un système multiprocesseur et résoudre les conflits d'accès de manière totalement décentralisée. A cette fin, le dispositif de commutation de messages de données selon l'invention comprend des premier et second moyens d'entrée reliés respectivement à des premier et second dispositifs sources pour recevoir et traiter des messages transmis par les dispositifs sources, des premier et second moyens de sortie reliés respectivement à des premier et second dispositifs destinataires pour recevoir des messages commutés par les premier et second moyens d'entrée et les transmettre vers les premier et second -3. dispositifs destinataires, et est caractérisé en ce qu'il comprend, en outre, des moyens de régulation de charges pour établir d'une part des consignes de commutation, destinées aux premier et second moyens d'entrée, en fonction de premières et secondes informations externes de charges transmises respectivement par les premier et second dispositifs destinataires et d'informations internes de charges produites dans le dispositif en fonction des commutations de messages effectuées, et, d'autre part, d'autres premières et secondes informations de charges, destinées respectivement aux premier et second dispositifs sources et calculées à partir des premières et secondes informations externes de charges transmises par les premier et second dispositifs destinataires et des informations internes de charges, et des moyens de commande répartis dans les premiers et seconds moyens d'entrée et de sortie, pour commander la commutation des messages en fonction d'informations d'acheminement inclus dans les messages, des consignes de commutation délivrées par les moyens de régulation de charges, et de priorités respectivement affectées aux premier et second dispositifs sources, et pour produire lesdites informations internes de charges. Selon une caractéristicue de l'invention, chacun des premier et second moyens d'entrée comprend une file tampon pour stocker temporairement les messages reçus, des moyens pour contrôler mot par mot des écritures et des lectures des messages dans la file tampon, des moyens pour sélectionner le circuit de sortie vers lequel un message lu dans la file tampon est à commuter par décodage des informations d'acheminement contenues dans le message et en fonction des consignes de commutation fournies par les moyens de régulation de charges, des moyens pour produire les informations internes de charges en fonction des informations d'acheminement détectées dans le message lu, et des moyens pour commander la lecture du message dans la file tampon, le transfert du message lu et des informations internes de -4- charges respectivement vers le circuit de sortie sélectionné et les moyens de régulation de charges, ainsi que le fonctionnement des moyens pour sélectionner et des moyens pour produire. Selon une autre caractéristique de l'invention, chacun des premier et second moyens de sortie comprend des moyens pour sélectionner, en fonction de priorités prédéterminées affectées aux dispositifs:ources et aux circuits d'entrée correspondants, l'un des circuits d'entrée, lorsque les deux circuits d'entrée demandent simultanément chacun au circuit de sortie l'autorisation de transmettre un message, des moyens pour informer le circuit d'entrée sélectionné que le circuit de sortie est prêt pour le transfert du message, et des moyens ayant des premières entrées reliées respectivement aux premier et second circuits d'entrée et une sortie reliée au dispositif destinataire correspondant, pour aiguiller le message transmis par le circuit d'entrée sélectionné vers le dispositif destinataire. Selon encore une autre caractéristique de l'invention, les moyens de régulation de charges comprennent des moyens pour mémoriser différents différentiels de comptes de charges correspondant à différents types de charges, chacun des différentiels ayant une valeur représentative de la différence entre un nombre de premières informations de charges correspondantes et un nombre de secondes informations de charges correspondantes, ou inversement, transmises par les premier et second dispositifs destinataires, des moyens pour incrémenter et décrémenter les différentiels de comptes de charges en fonction des premières et secondes informations de charges transmises par les dispositifs destinataires et des informations internes de charges délivrées par les circuits d'entrée, et des moyens pour déterminer les consignes de commutation à fournir aux circuits d'entrée et pour établir et transmettre les premières et secondes informations de charges destinées aux dispositifs sources à partir des valeurs et variations des différentiels de comptes de charges. -5- Un autre objectif de l'invention est également de fournir un réseau de communication notamment pour système multiprocesseur mettant en oeuvre des dispositifs de commutation selon l'invention. Un tel réseau est caractérisé en ce qu'il comprend une pluralité de dispositifs de commutation selon l'invention interconnectés entre eux pour former une structure de réseau prédéterminée, et en ce que chacun des dispositifs de commutation comprend des moyens d'initialisation pour se programmer en fonction de sa localisation dans le réseau, grâce à des informations délivrées par ledit système lors de la mise en route du système ou d'opérations ultérieures d'initialisation permettant de changer logiquement la structure du réseau. L'invention est applicable, par exemple, à la réalisation de machines informatiques parallèles de traitement symbolique qui mettent en oeuvre des langages formels de traitement de l'information, tel que le langage LISP, particulièrement bien adaptés à la résolution des problèmes complexes qui se posent dans le domaine de l'intelligence artificielle. Elle est utilisable également dans les systèmes informatiques classiques. Par ailleurs, un réseau de commutation selon l'invention est réalisable sous forme modulaire en technologie VLSI. D'autres avantages et caractéristiques de l'invention apparaîtront plus clairement à la lecture de la description suivante de plusieurs réalisations préférées du dispositif de commutation et du réseau de communication selon l'invention en référence aux dessins annexés correspondants dans lesquels: - la Fig. I montre schématiquement la structure générale d'un système multiprocesseur incluant deux réseaux de communication selon l'invention; - la Fig. 2 est un bloc-diagramme général du dispositif de commutation selon l'invention; - la Fig. 3 est un bloc-diagramme de l'un de deux circuits d'entrée inclus dans le dispositif de commutation; - la Fig. 4 montre les structures de deux types différents de messages commutables par le dispositif de commutation; - la Fig. 5 est un bloc-diagramme de l'un de deux circuits de sortie inclus dans le dispositif de commutation; - 6- - la Fig. 6 est une table de vérité relative au fonctionnement d'un codeur de priorité inclus dans chacun des deux circuits de sortie; - la Fig. 7 est un bloc-diagramme d'une unité de gestion de différentiels de charges incluse dans un circuit de régulation de charges du dispositif de commutation; et - la Fig. 8 est un bloc-diagramme de l'un de deux circuits de transmission de charges inclus également dans le circuit de régulation de charges. En référence à la Fig. 1, un système informatique multiprocesseurs est généralement constitué de plusieurs types de processeurs spécialisés pour différentes tâches. Le système montré à la Fig. i comprend quatre processeurs de mémoire PM1, PM3, PM4 et P}6, deux processeurs d'entrée/sortie PE/S2 et PE/S5, six processeurs d'exécution de processus PEF PEP, et un réseau de proessursd'ecuionde rocssu PE! APE 6, et un réseau de communication à processeurs RE. Les processeurs de mémoire PM ont pour fonction de stocker des programmes en cours de traitement représentant, par exemple, des combinaisons de symboles d'un langage formel d'application tel que le LISP. En cours d'exécution de programmes, les informations circulent sous la forme de messages entre les processeurs de mémoire PM et les processeurs d'exécution de processus PEP à travers le réseau de communication RE. Les processeurs d'entrée/sortie PE/S sont destinés à connecter le système informatique avec l'extérieur, par exemple avec des terminaux de dialogue ou avec d'autres systèmes informatiques. Les processeurs d'exécution de processus PEP exécutent sur les messages reçus en provenance des processeurs PM et PE/S des processus de traitement, par exemple de réduction symbolique. Les messages traités par les processeurs d'exécution de processus PEP sont ensuite éventuellement réacheminés vers les processeurs de mémoire PM à travers le réseau RE afin d'y être stockées ou vers des processeurs d'entrée/sortie PE/S. Le réseau de communication RE est du type Oméga. Le réseau RE est constitué de deux sous-réseaux RE1 et RE2 convoyant des messages respectivement selon deux sens de transmission entre les processeurs PM et PE/S et les processeurs PEP. -7- Les sous-réseaux RE et RE comprennent chacun vingt-quatre 1 2 processeurs de communication PCll à PC64 spécialisés dans la commutation et le transfert des messages. Le sous-réseau RE1 convole des messages incluant des données à traiter dans le sens de transmission des processeurs PM et PE/S vers les processeurs PEP. Le sous-réseau RE2 convoie des messages incluant des données traitées dans le sens de transmission des processeurs PEP vers les processeurs Pli et PE/S. Dans le sens inverse au sens de transmission des messages et sur des lignes distinctes, les sous-réseaux RE1 et RE2 transmettent des informations de charges de travail relatives à des charges d'exécution incombant aux processeurs PEP et des charges de mémorisation incombant aux processeurs PM. Ces informations des charges permettent au réseau RE de répartir équitablement les charges de travail entre les différents processeurs de mémoire PM et d'exécution de processus PEP. Chaque processeur de communication PC comprend des premier et second ports d'entrée et des premier et second ports de sortie de messages auxquels sont associés respectivement des premier et second ports de sortie et des premier et second ports d'entrée de charges. Les processeurs de communication sont reliés entre eux par des liaisons de transmission LR de type asynchrone. Les transferts des messages et informations de charges à travers les liaisons LPR sont exécutés selon la procédure de transmission asynchrone connue dénommée "handshaking" en terminologie anglo-saxonne. Comme montré à la Fig. 1 pour le processeur PC21, un processeur de communication PC permet toutes les possibilités de connexion entre les deux ports d'entrée et les deux ports de sortie de messages. Deux messages différents peuvent être transmis simultanément par les deux ports de sortie de messages. En référence à la Fig. 2, un processeur de communication PC comprend un séquenceur 1, un circuit de commutation de messages 2, un circuit de régulation de charges 3, et un automate d'initialisation 4. Bien que les transmissions de messages et d'informations de charges entre processeurs aient lieu selon un mode asynchrone, le - 8- fonctionnement interne du processeur PC est rigoureusement synchrone et est commandé par le séquenceur 1. Le séquenceur 1 reçoit un signal d'horloge H produit par un oscillateur local (non représenté) et délivre en réponse plusieurs signaux de séquencement SS1 à SSN qui sont fournis aux différents circuits du processqur PC afin de commander leur fonctionnement, les commutations des dif érents signaux et les transferts de données à des instants précis déterminés du cycle de fonctionnement du processeur. Le cycle de fonctionnement du processeur PC a typiquement une durée égale à 120 ns. Le circuit de commutation de messages 2 comprend deux circuits d'entrée de messages analogues 200 et 201 et deux circuits de sortie de messages analogues 210 et 211. Les circuits d'entrée 200 et 201 sont respectivement connectés aux premier et second ports d'entrée de messages du processeur PC et reçoivent des messages ME à travers des bus de messages entrants BME0 et BME1 typiquement de 18 fils chacun. Les transferts de messages, constitués de mots ou éléments, dans les bus BME0 et BME sont gérés à l'aide de signaux de dialogue VME0, VME1 et AME0, AMEI. Les signaux VME0 et VME1 à l'état logique "1" indiquent respectivement aux circuits d'entrée 200 et 01 que des éléments de messages ME sont valides sur les bus BIE0 et BME 1. Les signaux VME0 et VME1 sont fournis par des processeurs du réseau RE auxquels sont reliés les ports d'entrée de messages des circuits 200 et 201 Les signaux AME et AME sont produits respectivement par les circuits 0 i et 201 et indiquent chacun à l'état "1" que le circuit d'entrée respectif a correctement pris en compte l'élement de message. Les signaux AME0 et A}O1 sont fournis aux processeurs du réseau RE auxquels sont reliés les ports d'entrée de messages des circuits 200 et 201. Les signaux VME0, VME1 et AME0, AME1 correspondent respectivement aux signaux dénommés "VALID" et "ACKNOWLEDGE" dans la procédure du "handshaking". Les circuits 200 et 201 reçoivent également en entrée respectivement des mots de consigne PE0, et PE1 de 2 bits fournis par le circuit de régulation de charges 3. Les mots PE0 et PE1 indiquent aux circuits d'entrée 200 et 201 les circuits de sortie 210 et 211 vers lesquels il conviendrait d'aiguiller les messages entrants ME n'ayant pas de destinataire 2638 260 -9- spécifié pour une répartition correcte des charges entre les différents processeurs. Les mots PE0 et PE1 sont produits par le circuit de régulation de charges 3 en fonction d'indicateurs de charges externes CE0 et CE, qui lui sont fournis par les dispositifs destinataires à travers les premier et second ports d'entrée de charges et en fonction d'indicateurs de charges internes CI et CI1 délitrés respectivement par les circuits d'entrée 200 et 201 Les messages sont délivrés à des premiers et seconds ports d'entrée des circuits de sortie 210 et 211 par les circuits d'entrée 200 et 201 respectivement à travers des bus internes BI0 et BI1. Les circuits d'entrée 200 et 201 délivrent des signaux de sélection S0, S0 et S1, S1 appliqués à des entrées correspondantes respectivement des circuits de sortie 210 et 211. Les signaux de sélection S0 et S0 ou S1 et S1 délivrés par le circuit d'entrée 200 ou 201 sont complémentaires et sélectionnent l'un des circuits de sortie 210 et 211 afin de lui indiquer qu'un message qui lui est destiné est prît à être transmis par le circuit d'entrée dans le bus interne correspondant BI, après accord du circuit de sortie pour la transmission du message. L'accord pour la transmission d'un message est indiqué par les circuits de sortie 210 et 211 aux circuits d'entrée 200 et 201 au moyen de signaux d'accord OK00, OK10, OK01 et OKil Les signaux O 00 et OK10 sont fournis par le circuit de sortie 210 respectivement aux circuits d'entrée 200 et 201 Les signaux OK01 et OKl sont fournis par le circuit de sortie 211 respectivement aux circuits d'entrée 200 et 201. Lorsque par exemple le sigrnal OKo0="I" est délivré au circuit d'entrée 200 par le circuit de sortie 21!, le circuit de sortie 210 signale ainsi au circuit d'entrée 200 qu'il est prît pour le transfert d'un message. Précédemment, en positionnant à l'état "1" le signal S0, le circuit d'entrée 200 a indiqué au circuit de sortie 210 qu'un message qui lui est destiné est en attente de transfert. Les circuits d'entrée 200 et 201 fournissent également respectivement des signaux FM0 et FM1 aux circuits de sortie 210 et 211 Les signaux FM0 et FM1 ont pour fonction d'indiquer la fin - 10 - d'un message en cours de transmission, c'est-à-dire le dernier mot transmis du message. Les circuits de sortie 21 et 21 délivrent les messages o 1 respectivement dans des bus de messages sortants BMS0 et BMS1 analogues aux bus entrants BME et BIME1. Des signaux de dialogue VMSO, AMSO, et VMS1, AMS1 commandent la transmission asynchrone des messages respectivement dans les btT- BMS0 et BMS1. Le circuit de régulation de charges 3 comprend une unité de gestion de différentiels de charges 30 et deux circuits de I0 transmission de charges 310 et 311. Le circuit de régulation de charges 3 a essentiellement pour fonction de commander la commutation des messages en fonction des charges du réseau et de déterminer des indicateurs de charges externes CE à transmettre vers les processeurs situés en amont du processeur PC par rapport au sens de transmission des messages. Les indicateurs de charges CE sont calculés par le circuit 3 à partir des indicateurs de charges externes CE0 et CE1 transmis par les processeurs en aval et des indicateurs de charges internes CI0 et CI1 transmis par les circuits d'entrée 200 et 201. L'unité de gestion de différentiels de charges 30 reçoit en entrée les indicateurs de charge CE0 et CE1 transmis respectivement à travers deux bus de 2 fils chacun. Des signaux de dialogue VCEQ, ACE0, VCE1 et ACE1 commandent la transmission asynchrone des indicateurs de charges CE0 et CE1 dans les bus. Outre les mots de consigne PE0 et PE1, le circuit 30 délivre deux commandes d'incrémentation/décrémentation de comptes de charges I/DO et I/D1 fournies respectivement aux circuits de transmission de charges 310 et 311. Les commandes I/D0 et I/D1 se présentent sous la forme de bus de 4 bits et commandent dans les circuits de transmission de charges 310 et 311 l'incrémentation (+1) et la décrémentation (-1) de comptes de charges de mémoire et d'exécution. Les circuits de transmission de charges 310 et 311 sont analogues. Les indicateurs de charges CE sont transmis par les circuits 310 et 311 dans deux bus de 2 fils. Des signaux de dialogue VCS0, ACS0, VCS1 et ACS1 commandent la transmission asynchrone des indicateurs de charges CE dans les bus. - 11 - L'automate d'initialisation 4 a pour fonction de programmer adéquatement le processeur de communication PC à la mise en service du système informatique dans lequel est inclus le processeur PC et lors d'opérations ultérieures d'initialisation. Il est connecté aux bus BIOE et BME1 pour détecter des messages d'initialisation convoyés par ces bus. Lorsqu'un message d'initialisation qui lui est destiné est dctecté par l'automate 4 celui-ci inhibe le fonctionnement des circuits 2 et 3 et déclenche un processus d'initialisation pour programmer le processeur PC en chargeant des registres internes des circuits 2 et 3 avec des valeurs contenues dans le message d'initialisation détecté. Ces valeurs sont fonction de la localisation du processeur PC dans le réseau de communication RE. Lorsqu'une initialisation est en cours, l'automate 4 délivre en sortie successivement plusieurs mots VI et adresses AR transmis aux registres internes à initialiser des circuits 2 et 3. Les mots VI ont des valeurs égales aux valeurs à charger dans les registres internes. Les adresses AR sélectionnent individuellement les registres internes afin d'y charger les mots VI. L'automate 4 délivre également en sortie un signal d'initialisation INIT qui est fourni aux circuits 2 et 3. Le signal INIT est à l'état "1" pendant l'initialisation du processeur PC et inhibe le fonctionnement des circuits 2 et 3. A la fin de l'initialisation, le signal INIT commute à l'état "0" pour autoriser le fonctionnement des circuits 2 et 3. En référence à la Fig. 3, le circuit d'entrée de messages 200 comprend essentiellement une file de messages 200, un circuit de synchronisation 201, un circuit de commande de décalage de file 202, un décodeur d'adresse 203, un multiplexeur 204, un circuit de contr8le 205, un circuit indicateur de charges 206, et un ensemble de registres de sortie 207. La file de messages 200 est une file du type FIFO. Elle est constituée de cellules de mémoire de 18 bits et reçoit en entrée mot par mot, les messages ME à stocker temporairement. La présence en entrée de la file 200 d'un message à charger est détectée par le circuit de synchronisation 201. Le circuit de synchronisation 201 gère la transmission des messages dans le bus BME0 selon la procédure du handshaking en - 12 - synchronisant l'émetteur et le récepteur à chaque élément, ou mot, de message. Le circuit 201 reçoit en entrée le signal 4e dialogue VME0. La file 200 fournit au circuit de synchronisation 201 un signal FP indiquant à l'état "I" que la file 200 est pleine. Les états des signaux VME0 et FP sont lus périodiquement à fréquence élevée par le circuit 201. Lorsque le circuit 201 détecte la combinaison d'états (VME0, FP)=(1,0), un élément de message est en attente dans le bus BME0 et peut être chargé dans la file 200. Le circuit 201 positionne alors le signal AME0="1" pour acquitter le transfert de l'élément de message. Parallèlement, le circuit 201 positionne également à l'état "1" un signal de commande d'écriture de file WR. Le signal WR est délivré par le circuit 201 à une entrée de commande d'écriture de la file 200 et autorise l'écriture de l'élément de message dans la file 200. Afin d'éviter des effets et comportements aberrants dGs par exemple à l'apparition d'un état métastable dans le circuit de synchronisation 201, le circuit 201 comprend de préférence deux bascules an cascade pour échantillonner et lire le signal de dialogue asynchrone VMEo. Le signal WR est également appliqué à une première entrée d'une porte OU à deux entrées 2001 et à une entrée du circuit de commande de décalage de file 202. Une seconde entrée de la porte 2001 reçoit un signal FV délivré par la file de messages 200. Le signal FV à l'état "0" indique que la file 200 est vide et ne contient aucun message. Le circuit de commande de décalage de file 202 commande des opérations de décalage de pointeurs dans la file 200 afin de permettre les écritures et lectures mot par mot des messages dans la file 200. La commutation du signal WR à l'état "1" indique au circuit 202 qu'un mot de message est à écrire dans la file 200. Le circuit 202 commande la mémorisation du mot et le décalage d'un pointeur d'écriture EC. Un signal de commande de lecture RD est fourni au circuit de commande de décalage 202 par le circuit de contr6le 205. La commutation du signal RD à l'état "1" indique au circuit 202 qu'une lecture d'un mot de message dans la file 200 est demandée par le circuit de contrôle 205. Le circuit 202 commande alors le décalage d'un pointeur de lecture LE pour délivrer en sortie le mot suivant. - 13 - En référence à la Fig. 4, un message ME a une longueur variable et est composé d'un ou plusieurs mots de 18 bits. Le premier mot d'un message se subdivise en un bloc d'adresse et de signalisation et en un bloc de données. Le bloc d'adresse et de signalisation est placé en en-tête du message et comprend un code de routage RT, un code de signalisation SG, et une adresse AD. Le code de routage RT est composé de deux bits et indique au processeur PC le traitement de routage à appliquer au message. Le code de signalisation SG comprend quatre bits et signale notamment au processeur PC si le message est composé d'un ou de plusieurs mots. Dans le cas o le message est composé d'un seul mot, le code SG a la valeur "0000". Dans l'autre cas o le message est composé de plusieurs mots, le code SG a une valeur différente de "0000". L'adresse AD est l'adresse d'un processeur destinataire du message. Elle est composée de 9 bits. Le code de routage RT prend différentes valeurs "00", "01", "10" et "11". Le code RT="00" indique au processeur PC que le message est destiné spécifiquement au processeur indiqué par l'adresse AD et correspond à unroutage sur adresse. Le code RT="01" indique au processeur PC que le message est à traiter en fonction des charges de mémoire et est à aiguiller vers un processeur de mémoire PM. Le code RT-"10" indique que le message est à traiter en fonction des charges d'exécution et est à aiguiller vers un processeur d'exécution de processus PEP. Le code RT"11" signale au processeur PC la nécessité d'un routage exceptionnel exigé dans certaines circonstances, par exemple en cas de défaillance d'un processeur de communication PC du réseau RE. Dans le cas des routages sur charge mémoire, sur charge d'exécution, et d'un routage exceptionnel, l'adresse AD n'est pas significative et n'est pas prise en compte par le processeur PC. Lorsque le message ME est composé de plusieurs mots, le bit de poids le plus fort des mots suivant le premier mot de message est un bit de signalisation FM. Le bit FM signale à l'état "0" que le mot correspondant n'est pas le dernier mot du message, et à l'état "1" que ledit mot est le dernier mot du message. - 14 - En référence à nouveau à la Fig. 3, le décodeur d'adresse 203 reçoit en entrée l'adresse AD contenue dans le premier mot du message ME et délivre en sortie un bit BD aux états "0" et "1" respectivement lorsque le message est à commuter vers les circuits de sortie 210 et 211. Le décodeur d'adresse 203 comprend des masques de décodage pour isoler dans l'adresse AD des bits qui le con.ernent ainsi que des bits relatifs à un numéro de module par exemple lorsque le système multiprocesseur est composé de plusieurs réseaux de communication modulaires interconnectés. Un mot de profil et un bit de routage sont également mémorisés dans d'autres registres internes du décodeur 203 afin respectivement d'effectuer une comparaison entre les bits d'adresse correspondants et un profil donné; afin de déterminer le circuit de sortie vers lequel le message est à aiguiller, et de spécifier néanmoins un circuit de sortie en cas d'éventuelle divergence dans le décodage. Le code de routage RT est appliqué à des entrées de commande du multiplexeur 204 et à des entrées du circuit indicateur de charges 206. Le multiplexeur 204 comprend quatre entrées de données. Une première entrée reçoit le bit BD délivré par le décodeur d'adresse 203. Des seconde et troisième entrées reçoivent respectivement des premier BM et second BP bits du mot de consigne PE0 fourni par le circuit de régulation de charges 3. La quatrième entrée. reçoit un bit BE, indicateur de bon fonctionnement du processeur situé en aval et délivré par l'automate 4. Les bits BD, BM, BP et BE du mot PE0 sont sélectionnés respectivement par les valeurs "0", "01", "10" et "11" du code de routage RT. De même que le bit BD, les bits BM, BP et BE prennent les états "0" et "1" respectivement lorsque le message ME est à commuter vers les circuits de sortie 210 et 211. Le multiplexeur 204 délivre en sortie un bit de sélection de circuit de sortie S0 ayant le même état logique que le bit BD, BM, BP ou BE sélectionné en entrée. Un registre 2070 de l'ensemble de registres 207 reçoit en entrée le bit de sélection S0 afin de le mémoriser. Le registre 2070 fournit par des sorties complémentaires les signaux de sélection S0 et S0 destinés respectivement aux circuits de sortie 210 et 211. - 15 - Le circuit de contrôle 205 a pour fonction de contrôler le fonctionnement de l'ensemble du circuit d'entrée. Un signal MT=FV+WR produit par la porte OU 2001 est fourni au circuit 205 afin de l'informer par un état "1" qu'un ou des éléments de messages sont chargés dans la file 200 en attente d'être traités. Le circuit de contr8le 205 commande la lecture d'un message dans la file 200 er. activant le signal RD fourni au circuit de commande de décalage de file 202. Chacun des mots d'un message ME en cours de lecture est stocké temporairement dans un registre tampon 2071 de l'ensemble de registres de sortie 207 avant d'être transmis dans le bus BI. A la lecture du premier mot du message dans la file 200, le circuit de contr6le 205 reçoit un signal 1! lui apportant une information sur la longueur du message. Le signal 1M est produit par une port NON-OU à quatre entrées 2050 recevant le code de signalisation SG inclus dans le premier mot du message. Le signal IM est aux états "1" et "0" respectivement lorsque le code SG a une valeur égale à "0000" et différente de "0000". Dans le cas o le signal 1M="l", le circuit de contrôle 205 est informé que le message est constitué d'un unique mot et il délivre consécutivement un bit de fin de message FM0 à l'état "1". Le bit FM0 est chargé dans un registre 2072 de l'ensemble de registres de sortie 207 afin de produire le signal de fin de message FE0 destiné aux circuits de sortie 210 et 211. Dans le cas ou le signal 1M="0", le circuit 205 est informé que le message comprend plusieurs mots. Le circuit 205 comprend une entrée reliée é une sortie d'un port de sortie de données de la file 200 pour détecter le bit FM inclus dans les mots du message suivant le premier mot. Lorsque le bit FM"1" indiquant la transmission du dernier mot du message est lu par le circuit de contr6le 205, celui-ci charge dans le registre 2072 le bit de fin de message FMo01. Un registre d'état 2051 est associé au circuit de contrôle 205 et mémorise un bit E indiquant l'état de fonctionnement du circuit d'entrée. - 16 - Le circuit de contr8le 205 écrit le bit E à l'état ';0" lorsqu'aucun message n'est en cours de traitement et lors du traitement du premier mot d'un message. Le bit E écrit dans le registre 2051 est fourni en retour au circuit de contrôle 205, et est également appliqué à des entrées du décodeur d'adresse 203 et du circuit Indicateur de charges 206. Lorsque le bit E est à l'état "0", il autorise le foncticunement du décodeur d'adresse 203 et du circuit indicateur de charges 206 lors du traitement du premier mot du message, ainsi que l'écriture du bit S0 dans le registre 2070 et la détection de la fin éventuelle du message sur le premier mot transmis, IM="1". Afin de commander l'écriture du bit S0 dans le registre 2070, une sortie du circuit 205 est reliée à une entrée de commande de chargement du registre 2070 par une liaison 2052. Le bit E est écrit à l'état "1" par le circuit de contr6le 205 dès la lecture du second mot du message. Lorsque le bit E est à l'état "1", le fonctionnement du décodeur d'adresse 203 et du circuit d'indicateur de charges 206 est inhibé et l'écriture dans le registre 2070 n'est plus autorisée. Le bit E="1" indique que les mots suivant le premier mot d'un message de plusieurs mots sont en cours de lecture. Lorsque le bit de fin de message FM="1" est détecté par le circuit 205, la lecture du message de plusieurs mots est terminée. Le circuit 205 délivre le bit de fin de message FM0="I" et le bit E est écrit à l'état "0". Après la lecture du premier mot d'un message dans la file 200 et son stockage temporaire dans le registre tampon 2071, le transfert de ce premier mot dans le bus BI0 ainsi que la lecture et le transfert des mots suivants du message ne sont commandés par le circuit 205 qu'après la réception d'un signal d'accord OK=-OK00+OK=01 -"" produit par une porte OU à deux entrées 2053 à partir des deux signaux d'accord OKoo et OK0 transmis par les circuits de sortie 210 et 211. Outre le code de routage RT et le bit d'état E, le circuit indicateur de charges 206 reçoit également en entrée le signal }IT=WR+FV produit par la porte 2001. A partir de ces différents signaux reçus en entrée, le circuit 206 produit l'indicateur de charges interne CI0. - 17 - L'indicateur de charges CI est un mot de 2 bits. Le premier o bit VI0 de l'indicateur valide à l'état "1" les informations portées par le second bit. Le second bit de l'indicateur signale un message sans adresse, RT="01" ou RT-"10", commuté vers un processeur de mémoire PM ou un processeur d'exécution de processus PEP. Lorsque RT-"01", le second bit est à l'état "0"; lorsque RT-"10", le second bit vaut "1". L'indicateur CI est transmis au circuit de régulation de charges 3 à travers un registre 2073 de l'ensemble de registres de sortie 207. Les indicateurs de charges CI0 et CI1 permettent au circuit de régulation de charges 3 d'anticiper l'effet du passage d'un message sans adresse sur la répartition des charges de mémoire et d'exécution entre les processeurs. Le mécanisme d'anticipation sur le calcul des charges mis en oeuvre par le circuit de régulation de charges 3 est précisé par la suite. Ce mécanisme permet de minimiser les erreurs sur l'estimation de la répartition des charges entre les processeurs, erreurs qui sont dues principalement aux temps de propagation des informations de charges dans le réseau RE. En référence à la Fig. 5, le circuit de sortie de messages 210 comprend essentiellement un multiplexeur 210, un registre tampon ae message 211, un codeur de priorité 212, un décodeur 213, et un circuit de synchronisation 214. Le multiplexeur 210 comprend des premier et second ports d'entrée reliés respectivement aux bus BI0 et BI1 pour recevoir les messages ME transmis par les circuits d'entrée 200 et 201 Un signal SE délivré par le codeur de priorité 212 est appliqué à une entrée de sélection de port du multiplexeur 210. Le signal SE indique le circuit d'entrée 200 ou 201 qui est autorisé à transmettre un message par le codeur de priorité 212. Les états "0" et "1" du signal SE sélectionnent respectivement les premier et second ports d'entrée du multiplexeur 210. Un port de sortie du multiplexeur 210 est relié au bus de sortie de messages BMS0 à travers un registre tampon 211. Le codeur de priorité a pour fonction essentiellement d'arbitrer les conflits d'accès entre les circuits d'entrée 200 et - 18 - 201 lorsque ceux-ci effectuent simultanément des demandes de transfert de message. Le codeur de priorité 212 reçoit en entrée les signaux S0, S1, Po0 et FM1 délivrés par les circuits de sortie 210 et 211 et fournit en sortie le signal SE et un signal DE indiquant à l'état "1" que l'un au moins des signaux S0 et S1 est à l'état "1" et donc qu'au moins une demande de transmission de message est effectuée par les circuits d'entrée 200 et 201. Deux registres d'état 2120 et 2121 sont associés au codeur de priorité 212. Les registres d'état 2120 et 2121 mémorisent respectivement des bits d'état Bmt et Bse écrits et lus par le codeur 212. Le bit d'état Bmt indique à l'état "1" qu'un message est en cours de traitement, c'est-àdire en cours de transfert vers le bus BMS0 à travers le circuit de sortie 210. L'état "1" du bit Bmt interdit tout changement d'état du codeur de priorité 212 et des signaux SE et DE avant la détection du signal de fin de message correspondant FM0 ou Ffl1. Le bit Bse mémorise la provenance du message pendant toute la durée du transfert. Les états "'0" et "1" du bit Bse signalent respectivement des messages provenant des circuits d'entrée 200 et 201. Pour plus de précisions sur le fonctionnement du codeur de priorité 212, le lecteur se reportera à la table de vérité montrée à la Fig. 6. Cette table indique les états des signaux de sortie SE et DE en fonction des différents états possibles des signaux d'entrée S., S1, FMo et FM1 ainsi que des bits d'état Bmt et Bese. Les signaux d'entrée S0, S1, FM0 et FM1, ainsi que les bits Bmt et Bse à un état initial n sont montrés dans la partie gauche de la table de vérité. Les signaux de sortie DE et SE, ainsi que les bits Bmt et Bse après commutation à un état suivant n+l sont montrés dans la partie droite de la table de vérité. Horizontalement, la table de vérité se divise en trois cadres 1, 2 et 3. Le cadre 1 concerne le fonctionnement du codeur de priorité 212 lorsque des demandes de transfert de message interviennent et qu'aucun transfert de message n'est déjà en cours. Dans les parties supérieure et inférieure du cadre 1, les circuits d'entrée 201 et sont considérés comme prioritaires. Les cadres 2 et 3 de la table de vérité concernent le fonctionnement du codeur de priorité - 19 - lorsque respectivement les circuits d'entrée 200 et 201 sont en cours de transfert d'un message. En référence à nouveau à la Fig. 5, le décodeur 213 est un circuit logique qui produit les signaux d'accord OK00 et OKO à partir des signaux SE et DE délivrés par le codeur de priorité 212 et d'un signal BP délivré par le circuit de synchronisation 213. Le signal BP signale à l'état "1" que le bus de sortie de messages BMS0 est disponible pour le transfert d'un message. Les signaux DE et BP à l'état "1" autorisent l'activation des signaux OK00 et OK10. Le signal SE détermine celui des deux signaux OK00 et OK10 qu'il convient d'activer. Le circuit de synchronisation 214 est un circuit complémentaire au circuit de synchronisation 201 inclus dans un circuit d'entrée et décrit en référence à la Fig. 3. Le signal DE est fourni au circuit 214 pour le tenir informé des demandes de transfert de message en provenance des circuits d'entrée. Lorsque le bus de sortie BMS0 est libre, c'est-à-dire lorsque l'élément de message précédent a été acquitté le circuit de synchronisation 214 met sur le bus l'élément à transmettre et active le signal de dialogue VMS0 à l'état "1". En réponse, le processeur situé en aval positionne le signal de dialogue AMS0 à l'état "1" signalant ainsi que l'élément de message a été acquis. Consécutivement le signal BP vient à l'état "1". Le circuit de synchronisations positionne alors VMS0 à l'état "0" pour signaler qu'il a bien reçu l'accusé de réception et, en réponse, le processeur situé en aval met le signal AMS0 à l'état "0". Le bus est alors, de nouveau, libre pour assurer la transmission d'un autre élément de message. Une porte ET à deux entrées 2110 est également prévue dans le circuit de sortie 210 afin de produire à partir des signaux SE et DE un signal LD qui est appliqué à une entrée de commande de chargement du registre tampon 211. Le signal LD autorise à l'état "1" l'écriture des mots de message dans le registre tampon 211 et ainsi permet leur transfert dans le bus BMS0 au fur et à mesure de leur transmission par le multiplexeur 210. En référence à la Fig. 7, l'unité de gestion de différentiels de charges 30 comprend essentiellement deux circuits de synchronisation 3000 et 3001, une unité de commande 301, un - 20 - compteur-décompteur et un circuit de calcul de conditions de différentiels de charges de mémoire 302 et 303, et un compteur-décompteur et un circuit de calcul de conditions de différentiels de charges d'exécution 302 et 303. a a Les circuits de synchronisation 3000 et 3001 sont analogues au circuit de synchronisation 201 inclus dans un circuit d'entrée et décrit en référence à la Fig. 3. Les circuits de synchronisation 3000 et 3001 contrôlent la transmission des indicateurs de charges externes CE et CE à travers les premier et second ports d'entrée o0 de charges respectivement à l'aide des signaux de dialogue VCE0, ACE0 et VCE1, ACE1. Des signaux de validation VE0 et VE1 respectivement pour les indicateurs de charges CE0 et CE1 sont délivrés à l'unité de commande 301 par les circuits de synchronisation 3000 et 3001. Les indicateurs de charges externes CE0 et CE1 sont, par exemple, constitués de mots signés de deux bits. Un premier bit de l'indicateur précise sa nature, c'est-à-dire indicateur de charges de mémoire ou indicateur de charges d'exécution. Le second bit est utilisé pour coder un incrément élémentaire de charge +1 ou un décrément élémentaire de charge -1. Schématiquement la charge mémoire d'un port de sortie correspond au taux d'occupation de la mémoire vue par ce port, le taux d'occupation étant défini comme le quotient du nombre de cellules de la mémoire utilisées par le nombre total de cellules disponibles. Plus précisément, pour les processeurs de communication PC du réseau qui voient par exemple, par l'interméaiaire des processeurs situés en aval, plusieurs processeurs de mémoire PM, la charge mémoire correspond au taux d'occupation minimale des processeurs de mémoires accessibles par ce port. De mame, la charge d'exécution d'un port de sortie correspond au taux d'occupation minimal des processeurs d'exécution accessibles par ce port. La valeur du différentiel de charge permet d'identifier le port de sortie à utiliser pour pouvoir atteindre l'unité la moins chargée à un instant donné. Les messages conduisant à une occupation supplémentaire des processeurs de mémoire ou d'exécution (RT="01" ou RT="10") doivent - 21 - ître dirigés vers la sortie de charge minimale. Ceci implique qu'une variation de charge reçue par un processeur de communication n'est transmise aux processeurs amont que si elle affecte le port de sortie de charge minimale. L'unité 301 traite en priorité les indicateurs de charges internes CI0 et CI1 reçus également en entrée. Ainsi lorsque l'un au moins des signaux de validation VI0 et VI1 correspondant aux indicateurs de charge internes CI0 et CI1 est actif, une porte NON-OU à deux entrées 3000 délivre un signal d'inhibition IA à l'état "0". Le signal IA est appliqué à des entrées correspondantes des circuits 3000 et 3001 et interdit à l'état "0" l'activation des signaux de dialogue ACE0 et ACE1 autorisant la transmission des indicateurs de charges externes CE0 et CE1. Les valeurs des indicateurs de charges externes CE0 et CE1 sont notées conventionnellement (+1), (-1) m, (+1) et (-1)e. L'incrément (+1) et le décrément (-1) précisent les valeurs et signes des variations de charges. Les indices m et e indiquent que les variations signalées concernent respectivement la charge de mémoire et la charge d'exécution. A partir des indicateurs de charges CE0, CE1, CI0 et CI1, l'unité de commande 3C1 détermine des commandes d'incrémencation/décrémentation I/D et I/D à appliquer m e respectivement aux compteurs-décompteurs 302 et 302a ainsi que les commandes d'incrémentation/décrémentation I/DO et I/D1 transmettre aux circuits de transmission de charges 310 et 311. Dans le cas de variation de charge externe les commandes I/D0 et I/D1, transmises simultanément aux circuits 310 et 311, ne sont produites que si la variation de charge détectée affecte le port de sortie de charge minimale. Les compteurs-décompteurs 302 et 302a mémorisent respectivement des différentiels de charges de mémoire Dm-CHm0-CHm1 et d'exécution De=CHeOCHe1, o CHmO, CHm1 et CHeO, CHe1 représentent respectivement les charges de mémoire et d'exécution correspondant aux premier et second ports de sortie de messages. Les différentiels de charges Dm et De sont appliqués à des ports d'entrée respectivement des circuits de calcul de conditions 303 et 303a. Après une initialisation du processeur PC par l'automate - 22 - d'initialisation 4, les différentiels de charges Dm et De ont des valeurs initlales égales à zéro, déterminées par le message d'initialisation. Le signe d'un différentiel de charges indique à l'unité 301 le port de sortie de messages de moindre charge pour le type de charge correspondante. Un signe positif correspondant à un différentiel de charges indique que le port de sortie de messages de moindre charge est le second port. Un signe négatif correspondant à un différentiel de charges indique que le port de sortie de messages de moindre charge est le premier port. De manière générale un message est dirigé vers le port de sortie de messages de moindre charge correspondante. Ainsi en dirigeant, par exemple, un message destiné à un processeur de mémoire PM vers le port de sortie de messages affecté de la charge de mémoire la plus faible, la probabilité est grande que ledit message atteigne l'un des processeurs de mémoire les moins chargés. A la réception, par exemple, des indicateurs de charges externes CE 0(+l) et CE=(-), l'unité 301 délivre des commandes I/D ayant respectivement des valeurs +i et -1 de manière à incrémenter et décrémenter, en réponse, le différentiel de charges de mémoire Dm. A la réception des indicateurs de charges CEi=(+1) 1 m et CE =(-l), l'unité 301 délivre des commandes I/Dm ayant respectivement les valeurs -1 et +l de manière à décrémenter et incrémenter, en réponse, le différentiel Dm. L'incrémentarion et la décrémentation du différentiel de charges d'exécution De en fonction des indicateurs de charges CE0=(+1)e, CE 0(-1)e, CE1 (+1)e, et CE1=l(-1)e sont réalisés par l'unité 3Q1 au moyen de la commande correspondante I/D de manière analogue à celle décrite ci-dessus e pour le différentiel de charges de mémoire Dm, en fonction des indicateurs de charges externes correspondants. L'unité de commande 301 utilise les indicateurs de charges internes Ci0 et CII pour mettre en oeuvre un mécanisme de prévision de l'évolution des différentiels de charges Dm et Ce. En effet, lorsque par exemple un indicateur de charges CIiM(+1,0) est reçu par l'unité 301 et signale un message routé sur charge de mémoire ME reçu par le second circuit d'entrée 201 et commuté vers le premier circuit de sortie 210, le passage de ce message ME à 2638Z60 - 23 - travers le premier port de sortie de messages est susceptible avec une forte probabilité d'accroître la charge de mémoire du premier port de sortie de messages. L'unité 301 commande alors immédiatement une variation I/D =+1 du différentiel de charges m correspondant Dm. Toutefois cette augmentation de charge du premier port de sortie ne doit être transmise aux processeurs situés en amont que si ce port reste de charge minimum à l'issue de l'augmentation de charge. La prévision de l'évolution des différentiels de charge, ou.anticipation, a déjà été effectuée par tous les processeurs de communication en amont du circuit d'entrée 201 (dans lequel le message est déjà passé). Si le circuit de sortie choisi 210 conserve son statut de sortie de charge minimale, l'unité de commande 301 transmet la commande correspondante I/D0=(+l)m vers le circuit de transmission de charges 310 afin que celui-ci signale l'augmentation de charge au processeur en amont connecté au premier port d'entrée de messages et n'ayant pas transmis le message ME et o par conséquent l'anticipation n'a pas été effectuée. Si le circuit de sortie choisi 210 ne conserve pas un statut de sortie de charge minimale, c'est-à-dire si, en pratique, les circuits 210 et 211 avaient la même charge, l'anticipation effectuée par les processeurs de communication disposés en amont de l'entrée 201 était erronée, l'unité 301 commande au circuit 311 la transmissicn d'une commande I/D=-(-1)m afin d'annuler les effets des anticipations antérieures. Quant à la variation du différentiel elle peut être infirmée ultérieurement par les processeurs de communication situés en aval. L'unité de commande 301 est capable de traiter simultanément deux indicateurs de charges de même nature, soit CE0 et CE1 ou CI0 et CI1, et de ce fait les commandes I/D et I/De peuvent également prendre les valeurs +2 et -2. Selon une première réalisation, les circuits de calcul de conditions 303 et 303 comprennent chacun simplement un détecteur a de signe et un détecteur de zéro. Ces circuits 303 et 303a délivrent alors des bits de signe Sm et Se et des bits de signalisation de valeur nulle Zm et Ze correspondant respectivement aux différentiels de charges Dm et De. Les bits de signe Sm et Se - 24 - sont transmis à l'unité de commande 301 respectivement à travers des multiplexeurs 306 et 306a et des bus Bm et Be. La fonction des multiplexeurs 306 et 306 apparaîtra plus clairement par la suite a dans la description. Les bits Zm et Ze sont fournis directement à l'unité de commande 301 à travers les bus Bm et Be. Les bits de signe Sm et Se à l'état "0" indiquent à l'unité de commande 301 que les différentiels correspondants Dm et De ont des valeurs positives. A l'état "1", les bits de signe Sm et Se indiquent que les différentiels correspondants Dm et De ont des valeurs négatives. Les bits Zm et Ze à l'état "1" indiquent que les différentiels correspondants Dm et De ont des valeurs nulles. L'unité de commande 301 détermine à partir des bits Sm, Se, Zm et Ze les valeurs à attribuer aux bits BM et BP des mots de consigne PE0 et PE1 fournis aux circuits d'entrée 200 et 201, ainsi qu'aux commandes d'incrémentation/décrémentation I/DO0 et I/D1 fournies aux circuits de transmission de charges 310 et 311. Il est maintenant considéré, par exemple, un routage sur *charge de mémoire. Lorsque le bit Zm est à l'état "0", l'unité 301 détermine le port de sortie de messages ayant une charge minimale à partir du bit Sm. Dans le cas o le bit Sm="0" indique un différentiel Dm positif, le port de sortie de charge minimale est le second port et l'unité 301 affecte alors aux bits BM des mots PE0 et PE. un état "1" indiquant aux circuits d'entrée 200 et 201 que les messages entrants à router sur charge de mémoire doivent être transmis au second circuit de sortie 211. Dans le cas inverse o le bit Sm="1" indique un différentiel Dm négatif, le port de sortie de message de charge minimale est le premier port et l'unité 301 affecte aux bits BM des mots PE0 et PE1 un état "0" indiquant aux circuits d'entrée 200 et 201 que les messages doivent être transmis vers le premier circuit de sortie 210. Lorsque le bit Zm est à l'état "1", les premier et second ports de sortie de messages ont des charges de mémoire équivalentes et l'unité 301 affecte aux bits BM des mots PE0 et PE1 des états complémentaires, par exemple un état "0" est affecté au bit BM du mot PE0 et un état "1" est affecté au bit BM du mot PE1. - 25 - Dans un routage sur charge d'exécution, l'unité 301 positionne les bits BP des mots PE0 et PE1 en fonction des bits Ze et Se de manière analogue au positionnement décrit ci-dessus des bits BM en fonction des bits Zm et Sm. Selon une seconde réalisation permettant un traitement accéléré des charges, les circuits de calcul de conditions 303 et 303 déterminent respectivemernt une pluralité de conditions de a charge de mémoire Cm et de conditions de charge d'exécution Ce destinées à être fournies à l'unité de commande 301. Les circuits 303 et 303 calculent chacun typiquement une vingtaine de a conditions relatives aux différentiels de charges Dm ou De correspondants, notamment, par exemple, des conditions relatives aux signes et à des passages à zéro ou à d'autres valeurs significatives (+1, -1) du différentiel de charges et de ses dérivés. Ces types de conditions sont classiques en matière de commande optimale de processus; elles sont connues de l'homme du métier et ne seront donc pas détaillées. Les conditions Cm et Ce permettent à l'unité de commande 301 d'anticiper l'évolution des consignes de commutation à partir de la valeur des différentiels de charge avant leur évolution, qui demande un certain temps, et donc de réduire le temps de réaction du mécanisme par rapport au seul mécanisme décrit précédémment. L'unité de gestion de différentiels de charges 30 comprend également le multiplexeur 306 et deux registres 304 et 305 associés au circuit de calcul de conditions 303, ainsi que le multiplexeur 306 et deux autres registres 304a et 305 associés au circuit de a a a calcul de conditions 303. a Les registres 304, 304a, 305 et 305 sont des registres de 1 bit chacun. Ces registres sont écrits à des états déterminés "0" et "1" lors de l'initialisation du processeur de communication PC en fonction de la localisation du processeur dans le réseau de communication RE. Les registres 304 et 304 mémorisent a respectivement des bits de signe Sm et Se affectés aux a a différentiels de charges de mémoire Dm et d'exécution De dans le cas o le processeur PC comprend au moins un port de sortie de messages assurant des transferts de messages vers un seul type de processeur destinataire, processeur de mémoire PH ou processeur - 26 - d'exécution de processus PEP. Les registres 305 et 305a mémorisent respectivement des bits de sélection de signes SSm et SSe correspondant aux différentiels de charges Dm et De. Les multiplexeurs 306 et 306 ont pour fonction de a sélectionner parmi les bits de signe Sm, Se, Sm et Se les deux à fournir à l'unité 301, et cela en fonction des états des bits de sélection SSm et SSe. Les bits de signe Sm et Se sont appliqués à des premières entrées de données 1 respectivement des multiplexeurs 306 et 306. Les bits de signe Sm et Se sont appliqués à des a a a secondes entrées de données 2 respectivement des multiplexeurs 306 et 306. Les bits SSm et SSe sont appliqués à des entrées de a sélection respectivement des multiplexeurs 306 et 306. a Lorsqu'un port de sortie de messages du processeur PC, par exemple le premier port, est connecté, par exemple, à un processeur de mémoire PM, le premier port de sortie de messages du processeur PC ne doit en aucun cas être sélectionné pour transmettre un message sans adresse destiné à un processeur d'exécution de processus PEP. La solution mise er. oeuvre pour éviter une telle sélection est d'attribuer au différentiel correspondant, Dm dans cet exemple, un signe positif ou négatif tel que ledit premier port de sortie de messages apparaisse dans tous les cas à l'unité 301 comme ayant une charge d'exécution supérieure à la charge d'exécution du second port de sortie de messages. Les bits de sélection SSm et SSe à l'état "1" indiquent respectivement que les premier et second ports de sortie de messages du processeur PC sont reliés à des processeurs PM et PEP et commandent la sélection respectivement des bits de signe Sm et a Sm. Les bits Sm et Sm indiquent à l'unité 301 les signes e a e affectés aux différentiels Dm et De afin que celle-ci sélectionne de manière adéquate les ports de sortie de messages. En référence à la Fig. 8, le circuit de transmission de charges 310 comprend essentiellement un compteur/décompteur de charges de mémoire 310, un compteur/décompteur de charges d'exécution 310, un circuit logique de transmission d'indicateurs a de charges 311, et un circuit de synchronisation 312. Le circuit de transmission de charges 310 a pour fonction de gérer de manière autonome la transmission des indicateurs de - 27 - charges externes CE en fonction de comptes de charges. Le circuit 310 a un r6le de circuit "tampon" et libère l'unité de gestion 30 de contraintes temporelles liées à la transmission des indicateurs. Les compteurs/décompteurs 310 et 310 sont analogues et a mémorisent respectivement un compte signé de charges de mémoire CPm et un compte signé de charges d'exécution CPe. Les comptes CPm et CPe sont initialisés à zéro à la mise an route du système informatique ou après une opération d'initialisation ultérieure et sont incrémentés et décrémentés en fonction des valeurs prises successivement par la commande I/D fournie par l'unité de gestion de différentiels de charge 30 et des valeurs des indicateurs de charge externes CE successivement transmis par le circuit logique de transmission 311. La commande d'incrémentation/décrémentation I/Do est appliquée à des premières entrées de commande des compteurs/décompteurs 310 et 310a. Des secondes entrées de commande des compteurs/décompteurs a 310 et 310 reçoivent respectivement des commandes a d'incrémentation/décrémentauion I/Dtm et I/Dte fournies par le circuit logique de transmission 311 lors de la transmission d'indicateurs de charges CE. Les commandes I/D0=(+l)m et I/D0-(-l) respectivement incrémente et décrémente le compte de charges CPm contenu dans le compteur/décompteur 310. Les commandes I/D0=(+I)e et I/D0.(-1)m respectivement incrémente et décrémente le compte de charges CPe contenu dans le compteur/décompteur 310. a Le circuit logique de transmission d'indicateurs de charges 311 transmet des indicateurs de charges CE-(+I), CE-(-1), CE-(+I)e, et CE=(-1) e de manière à ramener les comptes de charges CPm et CPe à zéro. A la transmission des indicateurs de charges CE-(+I)m et CE=(-1), respectivement CE-(+I) et CE-(-1)e, m m e correspondent respectivement des commandes I/Dt --1 et I/Dtm-+1, respectivement I/Dte --1 et I/Dte -+1. Afin que le circuit logique de transmission 311 puisse déterminer les valeurs des indicateurs de charges CE à transmettre, des bits Stm, Ztm, Ste, et Zte lui sont fournis à des entrées correspondantes. - 28 - Les bits Stm et Ztm sont relatifs au compte de charges CPm et indiquent respectivement le signe et une valeur nulle du compte CPm. Les bits Ste et Zte sont relatifs au compte de charge CPe et indiquent respectivement le signe et une valeur nulle du compte CPe. Les bits de signe Stm et Ste sont lus respectivement dans les compteurs/décompteurs 310 et 310. Les bits Ztm et Zte sont a produits respectivement par des portes NON-OU 3100 et 3100. Les a portes 3100 et 3100 reçoivent en entrée les différents bits autres a que les bits de signe respectivement des comptes CPm et CPe et délivrent en sortie respectivement les bits Ztm et Zte. Le circuit de synchronisation 312 gère les signaux de dialogue VCS0 et ACS0 pour la transmission asynchrone des indicateurs de charges CE selon la procédure du handshaking. Un signal BP fourni a par le circuit de synchronisation 312 indique au circuit logique de transmission 311 la disponibilité ou la non-disponibilité du bus de sortie de charges. - 29 - R E V E N D I C A T I 0 N S 1 - Dispositif de commutation de messages de données comprenant des premier et second moyens d'entrée (200, 201) reliés respectivement à des premier et second dispositifs sources pour recevoir et traiter des messages (ME) transmis par les dispositifs sources, des premier et second moyens de sortie (210, 21 1) reliés respectivement à des premier et second dispositifs destinataires pour recevoir des messages commutés par les premier et second moyens d'entrée (200, 201) et les transmettre vers les premier et second dispositifs destinataires, caractérisé en ce qu'il comprend, en outre, des moyens de régulation de charges (3) pour établir, d'une part, des consignes de commutation (PEO, PE1) destinées aux premier et second moyens d'entrée (200, 211) en fonction de premières et secondes informations externes de charges (CE0, CE1) transmises respectivement par les premier et second dispositifs destinataires et d'informations internes de charges (CI0, CI1) produites dans le dispositif en fonction des commutations de messages effectuées, et, d'autre part, d'autres premières et secondes informations de charges (CE) destinées respectivement au:: premier et second dispositifs sources et calculées à partir des premières et secondes informations externes de charges (CE0, CE1) et des informations internes de charges (CI0, CI1), et des moyens de commande (203, 204, 205, 206, 212) répartis dans les premiers et seconds moyens d'entrée et de sortie (200, 201, 210, 211) pour commander la commutation des messages en fonction d'informations d'acheminement (RT, AD) inclus dans les messages, des consignes de commutation (PE0, PE1) délivrées par les moyens de régulation de charges (3), et de priorités (212) respectivement affectées aux premier et second dispositifs sources, et pour produire lesdites informations internes de charges. 2 - Dispositif conforme à la revendication 1, caractérisé en ce que différents types d'informations de charges ((+1), (+1)e, ) sont traitées et produites par le dispositif, lesdits différents types d'informations de charges correspondant respectivement à différents types de charges (CHm, CHe) associées respectivement à différents types de traitement auxquels peuvent - 30 - être soumis les messages dans les dispositifs destinataires ou à différents types de dispositifs destinataires (PEP, PM). 3 - Dispositif conforme à la revendication 1 ou 2, caractérisé en ce que les transferts de messages (MiE) et d'informations de charges (CE0, CE1, CE) entre le dispositif et les dispositifs sources et destinataires sont effectués selon une procédure de transmission asynchrone. 4 - Dispositif conforme à l'une quelconque des revendications 1 à 3, caractérisé en ce que chacun des premier et second moyens d'entrée (200, 201) comprend une file tampon (200) pour stocker temporairement les messages reçus, des moyens (202) pour contrôler mot par mot des écritures et des lectures des messages dans la file tampon (200), des moyens (203, 2C4) pour sélectionner le cfrcuit de sortie (210, 211) vers lequel un message lu dans la file tampon (200) est à commuter par décodage des informations d'acheminement (RT, AD) contenues dans le message et en fonction des consignes de commutation (PE0, PE1) fournies par les moyens de régulation de charges (3), des moyens (206) pour produire les informations internes de charges (CI0, CI1) en fonction des informations d'acheminement (RT) détectées dans le message lu, et des moyens (205) pour commander la lecture du message dans la file tampon (200), le transfert du message lu et des informations internes de charges (CI0, CI1) respectivement vers le circuit de sortie sélectionné (210, 211) et les moyens de régulation de charges (3), ainsi que le fonctionnement des moyens pour sélectionner (203, 204) et des moyens pour produire (206). 5 - Dispositif conforme à l'une quelconque des revendications 1 à 4, caractérisé en ce que chacun des premier et second circuits de sortie (210, 211) comprend des moyens (212) pour sélectionner en fonction de priorités prédéterminées affectées aux dispositifs sources et aux circuits d'entrée correspondants (200, 211) l'un des circuits d'entrée lorsque les deux circuits d'entrée demandent simultanément chacun - 31 - au circuit de sortie (210, 211) l'autorisation de transmettre un message, des moyens (213) pour informer le circuit d'entrée sélectionné (200, 211) que le circuit de sortie (2!o, 211) est prît pour le transfert du message, et des moyens (210, 211) ayant des premières entrées reliées respectivement aux premier et second circuits d'entrée (200, 201) et une sortie reliée au dispositif destinataire correspondant pour aiguiller le message transmis par le circuit d'entrée sélectionné (200, 201) vers le dispositif destinataire. 6 - Dispositif conforme à l'une quelconque des revendications 1 à 5, caractérisé en ce que les moyens de régulation de charges (3) comprennent des moyens (302, 302a) pour mémoriser différents différentiels de comptes de charges (Dm, De) correspondant à différents types de charges, chacun des différentiels ayant une valeur représentative de la différence (Cm O-Cm, Ceo-Ce1) entre un nombre de premières informations de charges correspondantes et un nombre de secondes informations de charges correspondantes, ou inversement, transmises par les premier et second dispositifs destinataires, des moyens (301, I/Dm, I/De) pour incrémenter et décrémenter ' e les différentiels de comptes de charges (Dm, De) en fonction des premières et secondes informations de charges transmises par les dispositifs destinataires (CEO, CE1) et des informations internes de charges (CIC, CI1) délivrées par les circuits d'entrée (200, 2011, et des moyens (301) pour déterminer les consignes de commutation (PEO, PE1) à fournir aux circuits d'entrée (200, 201) et pour établir et transmettre (301, 310, 311) les premières et secondes informations de charges (I/D0, I/D1, CE) destinées aux dispositifs sources à partir des valeurs et variations des différentiels de comptes de charges (Dm, De). 7 - Dispositif conforme à la revendication 7, caractérisé en ce que les moyens de régulation de charges (3) comprennent des moyens pour prévoir l'évolution des valeurs et variations des différentiels de comptes de charges (303, 303a), et - 32 - des moyens (301) pour déterminer les consignes de commutation (PE0, PE1) à fournir aux circuits d'entrée (200, 201) et pour établir et transmettre les premières et secondes informations (I/D0, I/D1, CE) destinées aux dispositifs sources également à partir de l'évolution prévue des valeurs et variations des différentiels de comptes de charges. 8 - Réseau de communication de messages de données (RE) notamment pour système multiprocesseur, caractérisé en ce qu'il comprend une pluralité de dispositifs de commutation (PC11 à PC64) conformes à l'une quelconque des revendications 1 à 7 interconnectés entre eux pour former une structure de réseau prédéterminée, et en ce que chacun des dispositifs de commutation comprend des moyens d'initialisation (4) pour se programmer an fonction de sa localisation dans le réseau (RE) grâce à des informations délivrées par ledit système informatique lors de la mise en route du système ou d'opérations ultérieures d'initialisation permettant de changer logiquement la structure du réseau.