Brevet FR2561009A1 — publié le 19850913

La présente invention concerne des systèmes de traitement de données comportant au moins deux unités de traitement de données ayant chacune accès aux mêmes don- nées. Chaque unité de traitement de données peut être un ordinateur pratiquement indépendant ou bien elle peut coopé- rer avec une ou plusieurs des autres unités de traitement. Des unités de traitement de données de l'un ou l'autre type sont appelés ci-après des "noeuds" et les données auxquelles deux ou plusieurs noeuds ont accbs, sont appelées ci-dessous des "données partagées". Dans un système connu utilisé, par exemple, dans des simulateurs de vol, une donnée partagée est conservée dans une mémoire de données commune qui est accessible à deux ou plusieurs noeuds. Chaque noeud peut également avoir sa pro- pre mémoire locale pour conserver des données auxquelles seul le noeud considéré a accès. Un problème qui survient avec un tel système est que les noeuds doivent entrer en compétition pour pouvoir avoir accès à la donnée partagée et par conséquent il peut se produire un conflit entre deux ou plusieurs noeuds qui essayent chacun simultanément d'avoir accès au même article de la donnée partagée se trouvant dans la mémoire commune. En outre il se produit des retards de transmission appréciables entre la mémoire contenant la donnée partagée et les noeuds relativement éloignés. Il en résulte que l'accès aux données partagées peut être très lent. Le brevet US-3 889 237 décrit un système à deux noeuds dans lequel chaque noeud reçoit, dans sa propre mé- moire locale, une copie constituant une reproduction de la donnée partagée. Pour pouvoir être sûr que les deux copies sont maintenues conformes l'une à l'autre, chaque noeud a un accès direct à la mémoire locale de l'autre noeud de manière que l'on puisse inscrire simultanément une nouvelle valeur de la donnée partagée dans les deux mémoires locales. Un problème que l'on rencontre avec cette solution antérieure est qu'un conflit peut intervenir entre les noeuds si ces deux noeuds tentent d'avoir accès, au même moment, au même article de la donnée partagée, et chaque noeud doit attendre que toutes les inscriptions dans les portions des mémoires locales affectées aux données partagées soient achevées avant que le traitement puisse se poursuivre. Ceci entraîne une réduction notable du rendement du système et rend très difficile l'extension de cette solution à plus de deux noeuds. Le brevet européen NOO 092 895 décrit un autre sys- tème dans lequel chaque noeud a sa propre mémoire locale dans laquelle est stockée une donnée partagée. Les noeuds sont interconnectés par une ligne de transmission de donnée et chaque fois qu'un noeud procède à une inscription dans une adresse de sa mémoire locale contenant une donnée parta- gée, il produit également un message contenant la donnée inscrite ainsi que ladite adresse. Ce message est appliqué à la ligne de transmission et les autres noeuds utilisent la donnée inscrite pour mettre à jour l'adresse de la donnée partagée appropriée dans leur propres mémoires locales. Chaque noeud continue le traitement après l'inscription dans une adresse de donnée partagée et il n'attend pas que le message relatif à la donnée inscrite ait atteint les autres noeuds. La ligne de transmission est organisée sous la forme d'un anneau de "jetons" à un seul "jeton" si bien qu'un seul message peut être présent sur l'anneau à un instant quelcon- que. Ainsi chaque noeud reçoit des messages suivant la même séquence, en établissant ainsi un ordre chronologique pour les messages même si les noeuds individuels fonctionnent d'une manière asynchrone. Cependant si un premier noeud reçoit un message d'inscription de donnée à partir d'un deuxième noeud tandis que le premier noeud se trouve encore avoir à transmettre un message en cours d'inscription de donnée, le message reçu peut être superposé à l'adresse de donnée o a déjà été effectuée l'inscription par le deuxiè- me noeud. L'adresse de donnée pourrait alors être en quelque sorte "surimprimée" par une valeur chronologiquement plus récente et les données stockées dans les mémoires de données partagées des différents noeuds ne se trouveraient plus correspondre les unes aux autres. Pour empêcher que ceci ne se produise, le processeur du deuxième noeud voit son acti- 256 100 vité suspendue dans toute la durée de l'accomplissement du ou des messages en cours.- La suspension des processeurs entraîne naturellement un ralentissement du fonctionnement du système et ceci constitue un problème sérieux lorsqu'il y a un trafic de messages très dense. Dans les systèmes de caleul en temps réel tels que ceux utilisés pour les simulateurs d'entraînement au vol, la vitesse à laquelle le système fonctionne a une importance fondamentale. On connait déjà des systèmes fonctionnant en temps réel dans lesquels chaque noeud d'une série de noeuds assume une fonction particulière mais ce dans un cadre tem- porel imposé par un ordinateur de commande du système. Des exemples de tels systèmes sont décrits dans les brevets US-4 414 624 et 4 351 025. Dans le brevet US-4 414 624 les opérations des noeuds sont réglées par l'ordinateur de commande en fonction du traitement requis. Au début de chaque "cadre" temporel un mot de commande de temps est transmis à chaque noeud afin d'établir le temps disponible pour le traitement. Cha- que noeud a une mémoire locale pour stocker les données partagées et chaque noeud peut effectuer simultanément et globalement des inscriptions dans certaines des mémoires locales des autres noeuds ou dans la totalité de ces mémoi- res. Toutes les données sont tout d'abord inscrites dans une mémoire commune et ensuite la donnée requise est lue, à partir de la mémoire commune, pour être dirigée vers les mémoires locales. Ainsi chaque remise à jour d'un article d'une donnée dans une mémoire locale exige à la fois une étape d'inscription dans la mémoire commune et une étape de lecture en direction de la mémoire locale. Ceci ralentit considérablement la vitesse de fonctionnement du système. Suivant le brevet US-4351025 le fonctionnement en temps réel des noeuds et celui de l'ordinateur de commande du système sont entrelacés sans chevauchement, l'inscription de données en provenance des noeuds étant répartie pendant le segment de temps de fonctionnement de l'ordinateur de commande du système. Une telle disposition est relativement aisée à obtenir mais elle est relativement lente du point de vue fonctionnement du fait que les deux parties du système fonctionnent alternativement et non pas continuellement. Ainsi dans les systèmes suivant la technique anté- rieure y compris les systèmes fonctionnant en temps réel, un protocole de fonctionnement rigide est établi afin de main- tenir la cohérence des données partagées dans les diverses mémoires locales. Ce protocole rigide limite d'une manière inévitable la vitesse et la souplesse de fonctionnement des systèmes. Un but de la présente invention est d'éliminer ou de limiter les problèmes précités. Suivant l'invention il est prévu un système de traitement de données fonctionnant en temps réel caractérisé en ce qu'il comprend au moins deux noeuds de traitement, une mémoire de données dans chacun des noeuds, chaque mémoire de données étant divisée en sections dont une première sec- tion est réservée pour le stockage de données locales con- cernant le noeud respectif et une seconde section est réser- vée pour le stockage de données devant être partagées entre les noeuds, une ligne de transmission de données intercon- nectant les noeuds, des moyens dans chaque noeud, pour pro- duire un message d'inscription comprenant une adresse et une donnée devant être inscrite à ladite adresse chaque fois que le noeud procède à une inscription à une adresse se trouvant dans la seconde section d'une mémoire de données, des mo- yens pour transmettre chaque message produit par l'inter- médiaire de la ligne de transmission de données, en direc- tion de chacun des noeuds, des moyens pour allouer chaque adresse dans les secondes sections des mémoires de données un noeud respectif qui doit être le noeud "maltre" pour cette adresse, et des moyens pour empêcher qu'une donnée soit inscrite dans une adresse quelconque dans la seconde section d'une mémoire de données autre que celle du noeud "maître" alloué. Comme chaque adresse des mémoires de données qui contient une donnée partagée entre les noeuds peut être soumise à une inscription par un seul processeur de noeud, il n'est pas nécessaire d'imposer des commandes rigides en ce qui concerne la priorité allouée aux messages d'inscription, pour être sor que la donnée partagée ne devienne pas altérée. Ceci permet d'accroltre la vitesse de fonction- nement du système mais en outre on peut utiliser un nombre relativement grand de noeuds opérant en parallèle en utili- sant des unités de traitement standards, sans procédures de fonctionnement complexes. On peut satisfaire d'une manière relativement aisée à une large gamme d'exigences diverses des systèmes fonctionnant en temps réel. Par exemple la présente invention trouve des applications dans les simula- teurs de vol et autres simulateurs, les systèmes de comman- des de processus industriels et les systèmes de commande anti-incendie. De préférence un comparateur de gamme d'adresses est prévu pour chaque noeud, afin de comparer l'adresse d'un message d'inscription de donnée produit par ce noeud avec une gamme prédéterminée d'adresses, et de transférer le message d'inscription de donnée sur la ligne de transmission de données uniquement si l'adresse comparée se trouve com- prise dans la gamme d'adresses prédéterminée. Ainsi le com- pararateur d'adresses détermine effectivement quelles sont les adresses dans la mémoire de donnée partagée qui peuvent être soumise à une inscription par les noeuds respectifs. Un autre comparateur d'adresses peut être prévu pour chaque noeud pour comparer l'adresse d'un message d'inscription de donnée reçu à partir de la ligne de transmission de données avec une gamme d'adresses prédéterminée et pour transférer le message d'inscription de donnée ainsi reçu à la mémoire de données locale uniquement si l'adresse comparée se trou- ve comprise dans la gamme d'adresses prédéterminée. Ainsi ce comparateur d'adresses additionnel détermine les adresses dans une mémoire locale o une donnée peut être inscrite à partir de la ligne de transmission de données. Les noeuds peuvent être connectés en parallèle par une ligne de transmission de données unique ou bien encore par une pluralité de telles lignes. En outre on peut égale- ment prévoir des structures plus complexes du sytème. Par exemple les noeuds peuvent être disposés en une pluralité de groupes, les noeuds de chaque groupe étant connectésen parallèle par une ligne de transmission de données respec- tive et l'un au moins des noeuds appartenant à deux groupes différents. Avec une telle disposition la section de la mémoire de données recevant la donnée partagée dans le noeud appartenant aux deux groupes est divisée en une plura- lité de sous-sections, chacune de ces sous-sections recevant les données devant être partagées entre les noeuds d'un groupe respectif. Un logiciel est prévu pour commander le transfert d'une donnée d'une sous-section à l'autre lorsque la donnée doit être partagée entre deux groupes de noeuds. De préférence il est prévu une autre mémoire qui est connecté à la ligne de transmission de données sur laquel- le des données d'entrée/sortie peuvent être inscrites par les noeuds. Les adresses attribuées à cet effet sont alors prévues dans les mémoires de données locales des noeuds à partir desquelles les données peuvent être lues et o des données peuvent être inscrites, par. l'intermédiaire de la ligne de transmission de données. On décrira ci-après,à titre d'exemples non limita- tifs, diverses formes d'exécution de la présente invention, en référence au dessin annexé sur lequel: La figure 1 est un schéma synoptique d'un système de traitement de données connu. La figure 2 est un schéma synoptique d'une forme d'exécution de la présente invention. La figure 3 illustre schématiquement les lignes prévues sur un bus de données représenté 'sur la figure 2. La figure 4 est un schéma synoptique d'une unité de détection de lecture/inscription représentée sur la figure 2. Les figures 5,6,7,8,9 illustrent schématiquement diverses variantes de structures de systèmes suivant l'in- vention. Si on se réfère à la figure 1, on y voit que le système connu illustré est un système disponible dans le commerce basé sur l'ordinateur GOULD Computer Systems Divi- sion 32/27. Une unité de traitement centrale (CPU) 1 est branchée sur un bus.d'ordinateur 2 de capacité 26,6 MB/s, connu sous le nom de "SELBUS", lequel constitue le bus prin- cipal de communication rapide. Une mémoire de données réa- lisée sous la forme d'un module de mémoire à circuit intégré (IMM) 3, assure une capacité de mémoire de IMB et la logi- que de commande de mémoire associée. Une unité IOP 4 est un contrôleur qui supporte une console 5 du système et qui constitue le contrôleur "maître" pour un bus universel (MPBUS) 6 de capacité 1 MB/s. Des dispositifs à grande vitesse tels que des con- trôleurs à disques ou bandes 7 et un interface (HSDI) 8 avec un dispositif à grande vitesse sont connectés au bus prin- cipal 2. Des périphériques à petite vitesse tels que des contrôleurs 9 à écran cathodique (à fonctionnement ssyn- chrone sur 8 lignes), des contrôleurs 10 d'imprimantes en lignes/disquettes, etc.. sont connectés au MPBUS 6. Les termes "SELBUS", "IMM","IOP","MPBUS","IPU"et"HSDI" sont ceux qui sont utilisés par le fabricant pour décrire les éléments du système de calcul connus COULD 32/27 et une nomenclature différente peut être utilisée par les autres fabricants pour les composants équivalents. La nomenclature GOULD est em- ployée présentement uniquement à des fins de commodité. Un système suivant l'invention est illustré sur la figure 2. Le système illustré comprend une série d'unités de traitement 11 basées chacune sur un ordinateur GOUJLD 32/27. Chaque unité de traitement 11 a son piopre SELBUS 12 et fonctionne d'une manière asynchrone par rapport aux autres. Les unités de traitement 11 n'attaquent pas des périphéri- ques mais elles sont connectées à une autre unité de traite- ment 13 qui est pourvue d'un équipement complet de périphé- riques complémentaires. Chacune des unités de traitement 11 effectue un traitement lié à un aspect particulier du sys- tème; par exemple dans le cas d'un système de simulateur de vol une unité 11 calcule les paramètres du vol tels que par exemple l'altitude, une autre unité 1l calcule les paramè- tres du moteur, tels que par exemple la poussée, une autre unité 11 calcule les paramètres du pilote automatique et ainsi de suite. Chacune des unités de traitement 11,13 avec l'équipement qui lui est associé, tel que les mémoires de données, constitue un noeud du système. Comme les noeuds de calcul comportant les unités de traitement 11 n'attaquent pas des périphériques, la capacité d'entrée/sortie requise de ces noeuds est limitée, toute les opérations d'entrée/sortie lentes étant exécutées par l'u- nité de traitement 13 qui est située à l'extrémité du sys- tème. Ceci permet de maximimiser la puissance de calcul disponible en temps réel pour chaque noeud de calcul. Un canal secondaire RS 232 assure les fonctions d'initialisa- tion et de commande et il contribue également à faciliter les diagnostics de dépannage dans le cas o le système se révèle être défaillant. Chaque unité de traitement 11 est augmentée d'un nombre d'unités de processeurs parallèles similaires (PPU) 14. Chaque unité parallèle PPU 14 est semblable à l'unité de processeur interne (IPU) GOULD présente sur les ordinateurs GOULD 32/67, 32/77, 32/87 mais elle peut être étendue, con- formément aux techniques conventionnelles, pour permettre d'utiliser plus de deux processeurS 32/27 par SELOUS 12. Une console d'opérateurs isolés (UOC) 15 est as- sociée à chaque unité de traitement 11. La console UOC 15 est essentiellement un IOP (figure 1), avec une logique suplémentaire afin d'éviter la nécessité de la présence d'un MP8US qui est normalement prévu lorsque des périphériques doivent être attaqués. Le SELBUS 12 de chaque unité de traitement 11,13 est connecté par un module de mémoire intégré à fenêtre double (DPIMM) 16 et par une logique de détection de lecture/ins- cription 17, à une ligne de transmission de données 18 d'une capacité de 26,6 Mb/s ou à un bus de mémoire réfléchissante. Z561009 Le DPIMM 16 est fourni par GOULD et il est agencé normale- ment avec sa seconde fenêtre connectée à l'équipement péri- phérique, c'est-à-dire à des fin d'entrée/sortie. Cependant dans l'agencement illustré le DPIMM 16 est utilisé pour permettre de réaliser un système de "mémoire réfléchissante" suivant l'invention. Le principe du système de "mémoire réfléchissante" illustré est que chaque mémoire de données DPIMM 16 qui contient 2 mégabits de mémoire, est subdivisée logiquement en un point déterminé. La totalité des données et du pro- gramme d'un côté de ce point prédéterminé sont affectés localement au SELBUS 12 de l'unité 11 ou 13 dans laquelle se trouve la mémoire de données DPIMM 16 tandis que la totalité des données et du programme de l'autre côté du point précité sont partagés, par l'intermédiaire du bus 18, avec les autres unités 11,13. L'unité logique de détection de lec- ture/inscription 17 convertit l'usage du DPIMM 16 en système local/partagé. L'unité logique de détection de lec- ture/inscription 17 est connectée à la seconde fenêtre de chaque DPIMM 16. Si une unité de traitement centrale 13,11 (ou PPU 14) procède à une inscription à une adresse dans la partie des données partagées de son DPIMM 16 associé, ceci est détecté par l'unité logique de détection de lecture/inscription 17 et l'adresse et la donnée sont appli- quées sur le bus 18 de la mémoire réfléchissante. Tout les DPIMM 16 acceptent alors automatiquement cette donnée et l'admettent dans leurs propres mémoires. Tout les DPIMM 16 possèdent ainsi, dans leurs propres mémoires, une copie de toutes les données partagées. Chaque unité de traitement peut ainsi avoir accès à la donnée qu'elle requiert directe- ment à partir de sa mémoire de données respective (DPIMM 16). L'accès n'est jamais retardé par suite du fait qu'un autre processeur se trouve en train d'avoir accès à la même mémoire de données. Il est d'une importance fondamentale d'empêcher des "collisions" dues au fait que deux ou plusieurs processeur se trouvent en train d'essayer de traiter simultanément le même article de donnée. Ceci est réalisé au moyen de l'unité logique de détection de lecture/inscription 17 qui, ainsi qu'il a été décrit ci-dessus, est utilisée pour délivrer un ordre d'inscription unique en direction de chacun des autres noeuds du système. Chaque noeud a sa propre séparation uni- que des adresses si bien qu'un seul noeud est capable d'ins- crire une donnée dans n'importe quelle adresse dans les sections des données partagées des mémoires de données, l'a- dresse pour un article de donnée dans une mémoire de don- nées 16 étant la même que l'adresse pour ce même article de donnée dans toutes les autres mémoires de données 16. Ainsi, bien que tous les noeuds soient capables de procéder à une inscription dans les sections de données partagées de toutes les mémoires de données 16, les seules transactions qui ont effectivement lieu, sont celles dans lesquelles l'adresse à laquelle une donnée doit être inscrite, se trou- ve dans le segment de mémoire pour lequel le système est "maetre". Par exemple, dans un simulateur de vol comprenant un processeur de vol, seul ce processeur peut effectivement changer la valeur stockée pour l'altitude parce que l'alti- tude se trouve comprise à l'intérieur de ses limites d'adresses mais à l'extérieur des limites d'adresses de tous les autres processeurs. Ces autres processeurs peuvent lire la valeur stockée de l'altitude mais ils ne peuvent pas la modifier. On évite ainsi des écarts numériques sans qu'il soit nécessaire de prévoir des procédures complexes pour maintenir le même ordre chronologique pour les remises à jour des données partagées dans les différentes mémoire de données. L' unité logique de détection de lecture/inscription 17 peut assumer une fonction supplémentaire, à savoir qu'elle peut détecter des requêtes de lectures et d'inscrip- tions en entrée/sortie à des adresses associés à des données d'entrée/sortie dans la mémoire du DPIMM 16. L'adresse re- présente un emplacement dans une mémoire vive 19 qui est connectée à un équipement d'entrée/sortie à grande vitesse de l'utilisateur, par exemple un câble de liaison entree/sortie avec un simulateur de vol. Ceci permet une acquisition rapide de données. (Le DPIMM 16 a été utilisé 1l antérieurement pour des fonctions d'entrée/sortie, mais dans le cas d'un transfert en bloc et non pas pour le trans- fert d'élément de données individuels). Ce type d'entrée/sortie peut être appelé MNIO (entrée/sortie h carte de mémoire). Le traitement des communications entre le SELBUS 12 d'un noeud quelconque et le bus de mémoire réfléchissante 18 sera maintenant décrit d'une manière plus détaillée en se référant aux figures 3 et 4. Les bus 12 et 18 transportent chacun des signaux parallèles correspondants aux données, aux adresses, h l'organisation des bus et la commande des bus, et ce avec un débit de 26,6 MB/s. Ce débit des données peut être maintenu pour une longueur de bus de 12 mètres mais il doit être réduit si le bus est plus long, ce débit étant par exemple de 13,3 MB/s pour un bus ayant une longueur de 24,4 mètres. La figure 3 représente schématiquement le bus 18 qui com- prend trente deux lignes de données LD, vingt quatre lignes d'adresse LA, neuf lignes de requête de bus RB, neuf lignes d'accord de bus AB, quatre lignes d'identité de noeud, et des lignes de commande LC dont seules deux sont représentées comme concernant la communication de données par l'inter- médiaire du bus 18. I1 y a neuf noeuds en tout, chacun d'eux étant affecté à des lignes respectives parmi les ii- gnes de requête de bus RB et d'accord de bus AB, l'un de ces noeuds comprenant une unité de traitement central CPU 13 tandis que les autres noeuds comprennent chacun une unité de traitement central CPU 11. La figure 4 représente d'une manière plus détaillée que la figure 2 l'agencement du DPIMM 16 et de 1' unité logique de détection de lecture/inscription 17 connectés entre le bus 12 et le bus 18. On supposer1a que le processeur de noeud associé au circuit de la figure 4 doit procéder à une inscription dans la mémoire de données 16. La donnée devant être inscrite et son adresse sont chargées dans un circuit de verrouillage 20 et l'adresse o cette donnée doit être inscrite est chargé dans un comparateur d'adresses 21. Si on suppose que la donnée a réussi h être inscrite dans la 61009 mémoire de données 16, un signal "inscription réussie" est appliqué à un détecteur 22. Le signal "inscription réussie" est transmis par une des lignes de commande LC du bus 12 d'une manière tout à fait conventionnelle. Si l'adresse ne se trouve pas comprise dans une gamme d'adresses prédétermi- née, ce qui est contrôlé par le comparateur 21, elle est alors relative à une donnée locale et ne doit pas être par- tagée avec les autres noeuds. Par contre, si l'adresse se trouve comprise dans la gamme d'adresse prédéterminée, le comparateur 21 délivre un signal de sortie appliqué à une entrée d'une porte ET 23. Le détecteur 22 délivre également un signal de sortie appliqué à une autre entrée de la porte ET 23 qui commande alors le circuit de verrouillage 20 de telle façon que l'adresse et la donnée se trouvant dans ce circuit de verrouillage 20 soient chargées dans un registre "premier entré premier sorti" (FIFO) 24 uniquement si l'adresse se trouve comprise dans la gamme d'adresses prédé- terminée et si le signal "inscription réussie" a été détec- té. Le registre FIFO 24 peut assembler, les uns à la suite des autres, jusqu'à soixante quatre messages pour la transmission, bien que normalement il n'y ait qu'un ou deux messages dans la file. Si une file de soixante messages ou davantage est formée, un signal "occupé" est fourni au sys- tème de manière à augmenter la priorité du noeud respectif lorsque celuici formule des requêtes d'accès au bus. Un circuit approprié (non représenté) est prévu pour suspendre le processeur de noeud associé si le registre FIFO 24 est rempli de messages attendant leur transmission. Lorsque le registre FIFO 24 emmagasine un message en vue de sa transmission, ceci est détecté par un circuit logique 25 de requête, de bus lequel délivre un signal de requête de bus sur la ligne RB respective du bus 18. Ce signal de requête de bus est transmis à l'unité de traite- ment central 13 (figure 2) qui commande les opérations sur le bus 18. Cette unité 13 accorde l'accès aux noeuds qui ont des messages à transmettre, à raison d'un à la fois, dans un ordre prédéterminé si bien que le premier message se L561009 trouvant dans la file de chaque noeud est transmis pendant un cycle de fonctionnement du bus 18, et ainsi de suite. Ainsi le circuit logique de requête de bus 25 reçoit, en temps opportun, un signal "accord du bus" en provenance du bus 18 et qui amène ensuite le message présent dans le re- gistre FIFO à être appliqué au bus 18 par l'intermédiaire d'un transmetteur 26. On supposera maintenant que le circuit de la figure 4 est celui d'un noeud en train de recevoir le message transmis et on décrira le traitement de ce message. Lorsque l'unité de traitement central 13 accorde une requête de bus, un signal d'horloge est transmis sur l'une des lignes de commande LC du bus 18. Ce signal d'horloge est utilisé pour initialiser un cycle de transmission et de réception d'un message. Lorsque message a été transmis, il est contrôlé, en ce qui concerne sa validité, par l'unité de traitement central 13, suivant des routines conventionnelles, par exem- ple au moyen d'un contrôle de parité, et si la donnée pré- sente sur le bus est trouvée être valide, un signal "donnée valide" est transmis sur l'autre ligne de commande LC du bus 18. Ainsi le messagetransmis est encadré par les signaux d'horloge et de "donnée valide". La donnée et l'adresse transmises sont chargées dans un circuit de verrouillage 27 par un récepteur 28 et l'adresse est chargée dans un comparateur d'adresses 29. Le signal "donnée valide" est détecté par un détecteur de donnée valide 30. Une porte ET 31 a deux entrées connectées repectivement au comparateur 29 et au détecteur 30. Dans le comparateur 29 est enregistrée une gamme prédéterminée d'adresses qui correspondent aux parties de la mémoire de données 16 dans lesquelles peuvent être effectuées des ins- criptions par des noeuds autres que celui pour lequel la mémoire de données 16 est la mémoire locale. Si l'adresse reçue se trouve dans ladite gamme et si le signal "donnée valide" est détecté, la porte 31 commande le transfert de la donnée du message se trouvant dans le circuit de verrouil- lage 27 à un registre FIFO 32 qui stocke une file de messa- ZS61009 ges pouvant aller jusqu'à soixante quatre messages conte- nant des données devant être inscrites dans la mémoire de données 16. Lorsque le registre FIFO 32 contient un message devant être inscrit dans la mémoire de données 16, une requête de transfert dans la mémoire est adressée à un cir- cuit logique de requête 33 qui communique avec la mémoire de données 16 et qui reçoit en temps opportun un signal d'accord de requête en provenance de cette mémoire 16. Le premier message dans la file de messages contenus dans le registre FIFO 32 est alors envoyé pour mettre à jour l'adresse appropriée de la mémoire 16. Il peut arriver qu'un nombre significatif de messa- ges formés dans les registres FIFO 24 et 32 contiennent des articles de données qui sont inscrits, en temps opportun, dans les mémoires, dans un ordre différent de l'ordre chro- nologique suivant lequel ils ont été produits. Cdpendant, comme chaque adresse affectée à une donnée partagée peut être inscrite uniquement par son propre "noeud maître" uni- que, et les messages produits par ce noeud sont assemblés dans le registre FIFO 24 et transmis à partir de celui-ci dans l'ordre chronologique, chaque adresse de mémoire indi- viduelle est remise à jour dans l'ordre correct. Les données dans différentes adresses peuvent sortir quelque peu de l'ordre chronologique mais dans des systèmes interactifs fonctionnant en temps réel la vitesse de changement de paramètres stockés est relativement lente si on la compare avec la vitesse d'itération du système et par conséquent ceci ne pose pas de problème. Ainsi il n'est pas nécessaire pour le concepteur du système d'imposer des procédures strictes pour maintenir une chronologie et il est simplement nécessaire de régler correctement les comparateurs d'adres- ses 21 et 29. Le système est par conséquent très souple et relativement facile à réaliser même dans le cas de fonctions en temps réel très complexes telles que la simulation de vol. Les quatres lignes d'identité des noeuds IN (figure 3) du bus 18 assure l'identification du noeud qui est à l'origine d'un message transmis sur le bus. Cette informa- tion n'est pas nécessaire pour permettre à la donnée d'être traitée par l'unité logique de détection de lectu- re/inscription 17 (figure 4) mais elle est fournie pour permettre de surveiller le trafic sur le bus 18. Les défauts et les "engorgements" sur le bus 18 peuvent être détectés plus facilement et on peut y remédier si cette information additionnelle est disponible. Les figures 5 à 7 illustrent schématiquement trois configuration d'un système qui sont possibles suivant l'invention. La figure 5 représente la configuration de la figure 2 c'est-à-dire le cas d'une série de noeuds N con- nectés par un bus unique de mémoire réfléchissante RM1. La figure 6 représente une configuration similaire à celle de la figure 5 mais avec deux bus de mémoire réfléchissante parallèles RM1 et RM2. Avec une telle disposition le système fonctionne normalement en utilisant le bus RM1, le bus RM2 étant alors inactif, mais dans le cas de dommages causes au bus RM1 le système est commuté pratiquement immédiatement sur le bus RM2. En surveillant les conditions des bus et en pilotant séparément les bus RM1 et RM2 on peut obtenir un ensemble fonctionnant en toute sécurité. En outre la sécu- rité du système pourrait être obtenue en dupliquent ces noeuds de traitement eux-mêmes, l'un de ses noeuds fonction- nant normalement tandis que l'autre reste en réserve, chaque paire de noeuds étant connectés aux deux bus RM1 et RM2. Dans les montages suivant les figures 5 et 6 chaque bus de mémoire réfléchissante est connecté à chaque noeud de telle façon que les deux noeuds les plus éloignés l'un de l'autre ne soient pas écartés d'une distance supérieure à la limite de transport du bus qui est habituellement de douze mètres pour un débit de 26,6 MB/s. Dans certains cas il est fortement désirable de pouvoir placer des noeuds écartés d'une plus grande distance, par exemple dans le cas de systèmes de surveillance anti-incendie à bord de bateaux o l'on cherche à maintenir le système opérationnel même * si un noeud est totalement détruit, et à répartir très lar- gement les noeuds de telle façon que des dommages localisés ne puissent pas entraîner la mise hors service d'un nombre appréciable de noeuds. La figure 7 illustre un agencememnt suivant l'invention qui permet de faire en sorte que la distance entre les noeuds adjacents les plus proches soit égale à la distance de transport maximale du bus de mémoire réfléchissante. Dans le montage illustré sur la figure 7, une série de six noeuds N1 à N6 sont disposés effectivement en cinq paires N1 N2, N2 N3, N1 N4, N2 N5 et N3 N6, chacune de ces paires fonctionnant conformément aux procédures décrites précédemment en référence à la figure 2. Les paires de noeuds sont reliées par des bus de mémoire réfléchissante respectifs RM1 à RM5. Chaque noeud a une mémoire séparée en une section de données locales et une section de données partagées mais la section des données partagées est en outre séparée en sous- sections dont chacune est affectée à un bus de mémoire réfléchissante respectif. Ainsi chaque noeud com- prend une section de données partagées mais celle du noeud N1 est subdivisée en deux sous-sections, celle du noeud N2 est subdivisée en trois sous-sections et celle du noeud N4 n'est pas subdivisée. Chaque sous-section de la mémoire affectée aux données partagées a son propre circuit de dé- tection de lecture associé qui est équivalent aux composants 27 à 33 de la figure 4. Si on suppose que le noeud Ni émette une donnée devant être partagée, cette donnée a alors une adresse uni- que dans tout le système, adresse o seul le noeud Ni peut procéder à une inscription. Le noeud NI essaye d'inscrire cette donnée dans chacune des sous-sections de la mémoire affectées aux données partagées et il réussit à procéder à cette inscription uniquement si l'adresse affectée à la donnée se trouve comprise dans la gamme d'adresses qui est prédéterminée par le comparateur d'adresses du circuit logi- que de détection de lecture. On supposera que la donnée est inscrite dans chacune des sous-sections et que cette donnée est alors transférée aux noeuds N2 et N4. Dans le noeud N2 un logiciel commande le transfert de la donnée fraîchement inscrite dans sa propre mémoire de données partagées en direction des noeuds N3 et N5 en copiant, dans les sous-sections de mémoire affectées aux bus de mémoire RM2 et RM4, la donnée provenant de la sous-section de mémoire af- fectée au bus de mémoire RM1. Un autre tranfert est effectué du noeud N3 vers le noeud N6. Etant donné que chaque empla- cement de mémoire peut être inscrit par un seul noeud, on peut suivre des procédures relativement simples pour trans- férer des données entre les noeuds. Dans le montage illustré il existe un seul trajet possible pour les données entre deux noeuds quelconques. Toutefois ceci n'est pas forcément obligatoire. Par exemple un autre bus de mémoire RM6 peut être prévu, ainsi qu'il est indiqué en trait interrompu entre les noeuds N4 et N5. Si une donnée provenant du noeud NI doit être inscrite dans la mémoire des données partagées du noeud NS, le logiciel peut être prévu de manière à trans- férer la donnée par l'intermédiaire des bus RMI et RM4 ou bien, si ceuxci se révèlent défaillants, pour sélectionner alternativement un transfert par les bus RM5 et RM6. Tout ce qui est nécessaire est de prévoir une routine de logiciel commandant les sous-sections des mémoires des données parta- gées dans lesquelles la donnée est inscrite. Le montage représenté sur la figure 8 est semblable à celui de la figure 7 sauf en ce que, au lieu que des noeuds individuels soient interconnectés par paires par des bus de mémoire réfléchissante respectifs, les noeuds sont interconnectés en groupes contenant chacun neuf noeuds et ces groupes sont à leur tour interconnectés en paires par l'intermédiaire d'autres bus de mémoire réfléchissante con- nectés à un seul noeud dans chaque groupe. Comme on peut le voir sur la figure 8, chaque groupe comprend un noeud de processeur extrême FEN semblable à celui comportant une unité de traitement 13 sur la figure 2, lequel est inter- connecté, par l'intermédiaire d'un bus de mémoire réfléchis- sante RMG, à huit autres noeuds N1 à N8 semblables à ceux comportant les unités de traitement 11 sur la figure 2. Les noeuds N8 sont connectés par paires, au moyen de bus de mémoire réfléchissante RM1 à RMn et ils fonctionnent par "échanges de logiciel" de la même manière que dans le cas du noeud N2 sur la figure 7. Les "échanges de logiciels" entre les différents bus de mémoire réfléchissante introduisent certains délais dans le transfert de données entre les bus. La figure 9 représen- te un "répéteur" conçu pour remplacer "l'échange de logi- ciel" et qui assure une commutation automatique du matériel accélérant le transfert des données. Si on se réfère à la figure 9 on y voit que le "ré- péteur" représenté remplace le noeud N8 entre les bus RM2 et RM3 et comprend trois ensembles d' unité logique de détec- tion de lecture/inscription 17 semblables à l'unité logique de détection de lecture/inscription 17 des figures 2 et 4. Chaque ensemble comprend un circuit de détection de lecture RSC et un circuit de détection d'inscription WSC pour chaque fenêtre à laquelle est connecté un bus de mémoire réfléchis- sente, chaque circuit de détection de lecture RSC transmet- tant des données aux circuits de détection d'inscription WSC des deux autres fenêtres. Chaque fenêtre a-sa propre adresse séparée et la gamme de ces adresses est prédéterminée pour limiter le transfert de données entre les bus à celui qui est effectivement requis. Ainsi le "répéteur" réagit exacte- ment de la même façon que les autres noeuds sur les bus auxquels il est connecté et une donnée transférée à un bus de mémoire réfléchissante par un "répéteur" est traitée exactement de la même manière qu'une donnée émise par un autre noeud quelconque sur ce bus. La donnée est stockée en mémoire tampon à travers le "répéteur" par des registres du type FIFO afin de commander l'accès aux bus comme dans le cas d'un noeud normal. Il n'y a donc aucune dépense de logi- ciel concernée par les transferts de données entre bus et le trafic sur les bus est limité à celui qui est essentiel en sélectionnant la gamme des adresses pour lesquelles des données peuvent être transférées par chaque circuit de dé- tection de lecture/inscription. Ainsi le système fonctionne à une vitesse élevée ce qui facilite l'utilisation de bus à débit de données relativement faible sur de longues distan- ces de transport. Le répéteur facilite la prévision d'un système de réserve qui est maintenu constamment à jour si bien qu'il peut être mis en service immédiatement dans le cas d'une panne. Le répéteur lui-même peut être dupliqué. 25610 î9 REVENDICATIONS 1.- Un système de traitement de données fonction- nant en temps réel caractérisé en ce qu'il comprend au moins deux noeuds de traitement, une mémoire de données (16) dans chacun des noeuds, chaque mémoire de données (16) étant divisée en sections dont une première section est réservée pour le stockage de données locales concernant le noeud respectif et une seconde section est réservée pour le stockage de données devant être partagées entre les noeuds, une ligne de transmission de données (12,18) interconnec- tant les noeuds, des moyens, dans chaque noeud, pour pro- duire un message d'inscription comprenant une adresse et une donnée devant être inscrite à ladite adresse chaque fois que le noeud procède à une inscription à une adresse se trouvant dans la seconde section d'une mémoire de données, des moyens pour transmettre chaque message produit par l'inter- médiaire de la ligne de transmission de données (12,18), en direction de chacun des noeuds, des moyens pour allouera chaque adresse dans les secondes sections des mémoires de données un noeud respectif qui doit être lè noeud "maître" pour cette adresse, et des moyens pour empêcher qu'une don- née soit inscrite dans une adresse quelconque dans la se- conde section d'une mémoire de données autre que celle du noeud "maitre" alloué. 2.- Un système de traitement de données fonction- nant en temps réel suivant la revendication 1 caractérisé en ce que les moyens pour l'allocation des adresses et l'em- pêchement de l'inscription d'une donnée comprennent un com- parateur de gamme (21) d'adresses pour chaque lequel noeud effectue une comparaison entre l'adresse d'un message d'inscription de données produit par ce noeud avec une gamme prédéterminée d'adresses, et commande le ftransfert du mes- sage d'inscription de données sur la ligne de transmission de données (18) uniquement si l'adresse comparée se trouve incluse dans la gamme d'adresses prédéterminée. 3.- Un système de traitement de données fonction- nant en temps réel suivant la revendication 2 caractérisé en ce qu'il comprend, dans chaque noeud, un circuit de ver- rouillage (20) dans lequel chaque message d'inscription de donnée est chargé, un premier registre (24) du type "premier entré premier sorti" lequel est connecté à la sortie du circuit de verrouillage (20), un détecteur (22) pour détec- ter une inscription réussie d'une donnée dans la mémoire de données locale du noeud considéré, une porte ET (23) con- nectée au détecteur (22) et au comparateur (21), cette porte commandant le circuit de verrouillage (20) de telle façon que le contenu de ce circuit de verrouillage (20) soit transféré au registre (24) lorsque l'adresse comparée se trouve comprise dans la gamme d'adresses prédéterminée et qu'une inscription réussie d'une donnée a été détectée, et un transmetteur (26) connecté au registre f24) pour trans- mettre, sur la ligne de transmission de données (18), les messages stockés dans le registre (24). 4.- Un système de traitement de données fonction- nant en temps réel suivant la revendication 2 caractérise en ce que les moyens pour l'allocation des adresses et l'em- pêchement de l'inscription d'une donnée comprennent en outre dans chaque noeud, un comparateur d'adresses (29) pour com- parer l'adresse d'un message d'inscription de donnée reçu à partir de la ligne de transmission de données (18), avec une gamme prédéterminée d'adresses et pour transférer le message d'inscription de donnée reçu à la mémoire de données locale (16) uniquement si l'adresse comparée se trouve comprise dans la gamme d'adresses prédéterminée. 5.- Un système de traitement de données fanction- nant en temps réel suivant la revendication 4 caractérisé en ce que l'un des noeuds (13) commande le trafic sur la ligne de transfert de données (12) et chaque autre noeud (11) comprend une unité logique des requête d'accès, le premier noeud (13) comprenant des moyens pour allouer des accès à la ligne de transmission de données (12) aux autres noeuds (11) à raison d'un à la fois, en réponse à des re- quêtes d'accès en provenance de l'unité logique de requête d'accès, des moyens pour appliquer un signal d'horloge à la ligne de transmission de données (12) chaque fois qu'un noeud a accès h cette ligne, des moyens pour contrôler la validité des messages transmis sur la ligne de transfert des données, des moyens pour appliquer un signal "donnée valide" à la ligne de transmission de données si un message con- trôlé est valide, et des moyens, dans chaque noeud, pour empêcher qu'une donnée contenue dans des messages transmis ne soit transférée à la mémoire de données locale avant la réception du signal "donnée valide". 6.- Un système de traitement de données fonction- nant en temps réel suivant la revendication i caractérisé en ce qu'il comprend deux lignes de transmission de données (RHI,RM2) connectées en parallèle aux noeuds. 7.- Un système de traitement de données fonction- nant en temps réel suivant la revendication 1 caractérisé en ce qu'il comprend une pluralité de groupes de noeuds les noeuds (FEN N1-N8) de chaque groupe étant connectés en pa- rallèle par l'intermédiaire d'une ligne de transmission de données respective (RMG) et au moinsun noeud particulier (N8) parmi ces noeuds appartenant à deux des groupes, la seconde section de la mémoire de données de ce ou ces noeuds particulier (N8) étant divisée en une pluralité de sous-sections dont chacune reçoit des données devant être partagées avec les noeuds d'un groupe de noeuds respectifs, et des moyens sont prévus pour commander le transfert de données à partir d'une soussection en direction des autres sous-sections lorsqu'une donnée doit être partagée entre deux groupes de noeuds. 8.- Un systbme de traitement de données fonction- nant en temps réel suivant la revendication I caractérisé en ce qu'il comprend deux groupes de noeuds qui sont chacun interconnectés par une ligne de transmission de données respective et un répéteur connecté à chaque ligne de transmission de données, le répéteur comprenant une unité de détection lecture/inscription (RSC/WSC) pourchaque ligne de transmission de données (RMG,RM2,RM3) afin de transférer des messages ayant une première gamme d'adresses sélectionnée à partir d'une première ligne de transmission de données en direction de la seconde ligne de transmission de données et pour transférer des messages ayant une seconde gamme ?561009 d'adresses sélectionnée h partir de la seconde ligne de transmission de données en direction de la première ligne de transmission de données.