Brevet FR2571567A1 — publié le 19860411

Procédé d'échange d'informations entre abonnés par bus en anneau et dispositif multiprocesseur en comportant application L'invention concerne les dispositifs comportant plusieurs abonnés, dont certains au moins sont de type actif ou maitre, reliés en parallèle à un bus en anneau d'échange d'informations entre eux. Elle est notamment utilisable dans un dispositif multiprocesseur comportant des abonnés passifs ou esclaves dont chacun est relié au bus par un interface passif permettant à l'abonné de re- cevoir un ordre de transfert, des abonnés actifs dont chacun est relié au bus par un interface actif (en plus ou à la place d'un interface passif) permettant de provoquer un transfert d'informations entre cet abonné actif et un autre abonné, et une horloge permettant de faire circuler sur le bus des cases d'informations d'un abonné au suivant à chaque coup d'horloge. Le terme "case", correspondant au mot anglo-saxon "slot", est utilisé ici pour désigner l'unité élémentaire d'informa- tion circulant sur le bus, comprenant au moins une indication d'état à laquelle s'ajoute une adresse de destination ettou un mot de données. Un dispositif multiprocesseur de ce type, décrit dans "Le. calculateur parallèle Capitan: 600 MIPS pour l'imagerie temps réel" (Gérard Gaillat, Premier Colloque Image, Biarritz, mai 1984) et dans "The design of a parallel processor for image processing onboard satel- lites: an application oriented approach" (Gérard Gaillat, Tenth Annual Symposium on Computer Architec- ture, Stockholm, June 13-16, 1983), auxquels on pourra se reporter, utilise un protocole de transfert décentra- lisé et passif, en ce sens que chaque abonné muni d'un interface de bus passif ou PSI ne peut recevoir de sol- licitations en provenance d'un abonné muni d'un inter- face de bus actif ou API que dans des cases qui lui sont affectées et qui sont espacées suffisamment pour respecter le temps de cycle de mémoire de l'abonné pas- sif. Si par exemple l'horloge de base du bus a une durée de cycle de 50 ns et si une mémoire a un temps de cycle de 400 ns, il est nécessaire qu'une case sur huit au plus permette d'accéder à l'abonné passif. Plusieurs abonnés passifs peuvent partager -- et en général partageront -- la même case. Ce protocole présente de nombreux avantages. Il peut être mis en oeuvre de manière décentralisée par chaque abonné et représente une complexité électronique acceptable; les conflits d'accès sont résolus au niveau de l'abonné actif, ce qui évite de gaspiller des cases lorsque la mémoire d'un abonné passif est occupée. Une case ne peut circuler à vide que si aucun abonné ne désire accéder aux mémoires des abonnés auxquels cette case est affectée. Les abonnés actifs n'ont pas à se soucier de rechercher la présence d'un signal "mémoire occupée": dès qu'un abonné actif a obtenu une case, il peut être sûr que le transfert s'accomplira. D'autres lectures peuvent donc être lancées avant que le résultat d'une première lecture n'ait été reçu. Il est en parti- culier important de relever que, comme le bus à passage de jetons (US-A-4 293 948), mais avec des débits supé- rieurs, le protocole décentralisé et passif sur bus en anneau permet d'éviter les collisions sur le bus. Un premier résultat que cherche à atteindre l'invention consiste à améliorer le taux d'utilisation du bus et notamment à écarter les limitations liées au temps de réponse des PBI. Dans ce but, l'invention propose notamment un procédé d'échange d'informations par cases circulant sur le bus en anneau, chaque case contenant une indication d'état ainsi qu'une adresse et/ou un mot de données, suivant un protocole de transfert décentralisé et passif à affectation statique de cases aux abonnés qui sont munis d'un PBI, caractérisé en ce que la case comprend au moins deux parties successives de durée commune, af- fectées la première à l'indication d'état, la seconde à l'adresse ou au mot de données et en ce que la seconde partie est séparée temporellement de la première partie. Dans une réalisation avantageuse, la case comprend trois parties successives de durée commune affectées respec- tivement à l'indication d'état, à l'adresse et au mot de données et la partie affectée au-mot de données est sé- parée temporellement de la partie affectée à l'adresse par un délai égal à un multiple de ladite durée commune et suffisant pour permettre à chaque PBI concerné par la case de traiter l'adresse avant l'arrivée du mot de données correspondant. En particulier, avec un cycle de base d'horloge de durée a (par exemple 50 ns), on peut prévoir des par- ties dont la durée commune est 4a. A chaque partie sont affectés des fils différents du bus, par exemple deux fils pour l'état, six pour l'adresse, quatre pour le mot de données. L'intervalle de temps entre le début de l'adresse et le début du mot de données d'une même case circulante est par exemple 16a. Cela permet l'utilisa- tion de mémoires dont le temps d'accès est au plus égal à 12a et le temps de cycle au plus égal à 16a. Il est avantageusement prévu d'émettre l'adresse, non pas en meme temps que l'indication d'état mais immédiatement après (c'est-à-dire que les débuts des parties adresse et indication d'état sont séparés de 4a). Mais, du fait de l'imbrication temporelle des cases, l'encombrement temporel d'une case n'est en fait que de 4a. Le procédé d'échange suivant l'invention permet de donner aux abonnés une constitution matérielle ou "hardware" indépendante de la longueur du bus, en pré- voyant dans chaque ABI un registre à décalage o la circulation s'effectue en même temps que sur le bus. L'invention vise également à réduire les consé- quences, sur le dispositif, d'une défaillance d'un des 7 1567 abonnés reliés au bus en anneau ou-de son interface, et cela sans augmenter de façon excessive la complexité du dispositif, et de donner au dispositif une flexibilité autorisant des reconfigurations à la demande. Dans ce but, l'invention propose un dispositif comportant au -moins un bus en anneau à deux boucles prévus pour des circulations de sens opposés, chaque interface d'abonné étant relié aux deux boucles, carac- térisé notamment en ce que les interfaces sont regroupés par couples et les deux interfaces de chaque couple étant reliés aux boucles par un nombre de liaisons juste suffisant pour permettre de refermer les deux boucles l'une sur l'autre pour reconstituer un bus en excluant le couple o se trouve un interface ou abonné défail- lant. Dans la pratique, ce résultat peut être obtenu en prévoyant, sur chaque interface, deux pattes d'entrée et une seule patte de sortie au lieu de deux pattes de sortie et deux pattes d'entrée dans une architecture classique reconfigurable à deux bus. Il est possible de généraliser cette conception en regroupant les inter- faces non plus deux par deux, mais quatre par quatre ou même huit par huit afin d'obtenir des réseaux bi- ou tri-dimensionnels permettrant de pallier la défaillance simultanée de plusieurs interfaces. Le résultat est ob- tenu au prix de la mise hors service d'un nombre accru d'abonnés en cas de défaillance d'un interface. Il faut incidemment noter que la mise hors ser- vice de deux interfaces en cas de défaillance d'un seul ne représente souvent pas un inconvénient. En effet, on peut constituer les couples par l'interface actif et l'interface passif affectés à un seul et même abonné processeur. L'invention sera mieux comprise à la lecture de la description qui suit d'un mode particulier d'exécu- tion, donné- à titre d'exemple non limitatif. La description se réfère aux dessins qui l'accompagnent, dans lesquels: - la Figure 1 est un schéma donnant l'architec- ture générale d'un dispositif multiprocesseur parallèle à double bus en anneau auquel est applicable l'inven- tion, - la Figure 2 est un schéma de principe de l'in- terface d'un abonné actif du bus de la Figure 1, - la Figure 3 montre la répartition des parties d'une case circulant sur les bus, - la Figure 4 montre l'imbrication temporelle des parties de cases successives, - la Figure 5 est un schéma montrant l'ordon- nancement des bits d'une case, - la Figure 6 est un chronogramme montrant le déroulement d'une opération d'écriture, - les Figures 7, 8 et 9 sont des schémas mon- trant respectivement l'apparition d'un cycle libre en cas de transition lecture-écriture, la nécessité d'un report d'écriture en cas de transition écriture-lecture et le rattrapage du retard d'écriture, - la Figure 10 est un synoptique montrant une constitution possible d'un interface de bus actif, - la Figure 11 donne, à titre d'indication, une constitution connue de dispositif à bus en anneau recon- figurable, - les Figures 12A et 12B montrent une architec- ture suivant l'invention autorisant une reconfiguration au prix d'un nombre de fils de liaison moindre que dans les dispositifs suivant l'art antérieur, les interfaces étant associés par deux, - la Figure 13 montre une architecture autori- sant la défaillance de deux abonnés quelconques, les interfaces étant assemblés par quatre, - la Figure 14 est un schéma de principe mon- trant un interface à deux entrées et deux sorties et une entrée de secours utilisable dans un but de fiabilisa- tion, - la Figure 15 est un schéma montrant une frac- tion de l'architecture de la Figure 12A, modifiée par utilisation d'interfaces du type montré en Figure 14. L'invention sera décrite dans son application à un dispositif multiprocesseur du genre déjà évoqué dans les documents cités au début de la présente demande. dispositif utilisable comme processeur en réseau cou- - plable à un calculateur universel hôte ou comme proces- seur intégré. Il sera surtout envisagé ici dans son ap- plication en tant que calculateur parallèle en architec- ture MIMD (multi-instructions, multi-données) traitant -des signaux circulant sur deux bus 10 et 12 bidirection- nels. Cependant, pour simplifier la description du pro- tocole, seules seront tout d'abord considérées les liaisons des abonnés avec un seul bus. Les abonnés reliés aux bus 10 et 12 sur la Fi- gure 1 peuvent être répartis en abonnés actifs et abon- nés passifs. Les abonnés actifs représentés comprennent un microprocesseur maitre 14 et un processeur de signal 16. Les abonnés passifs représentés comprennent une mémoire 18 et une logique spécialisée dans une opération particulière de traitement du signal 20 (transformée de Fourier rapide par exemple). Ils peuvent également com- porter des périphériques d'entrée-sortie. Sur chaque bus en anneau, chaque coup d'horloge provoque le déplacement d'une case d'un abonné au suivant. Si un abonné veut en- voyer un message à un autre, il doit attendre le passage d'une case vide affectée à l'abonné récepteur et y déposer son message. Les différents abonnés sont reliés aux bus en anneau par deux types d'interfaces. Les abonnés actifs doivent être reliés au bus par un interface actif (ABI) permettant à l'abonné d'émettre des ordres de lecture ou d'écriture. Les abonnés passifs doivent être munis d'un interface passif permettant à l'abonné de recevoir des ordres, et de retourner une réponse en cas d'ordre de lecture. Mais, dans la pratique, les abonnés actifs se- ront en général munis 'à la fois d'un interface actif (ABI) et d'un interface passif (PBI) permettant d'accé- der à leur mémoire sans intervention de l'organe actif. L'organisation de chaque abonné actif du type processeur sera généralement du genre montré en Figure 2. Cette organisation comprend un bus interne compatible VME, indépendant du bus des autres abonnés. Les cartes portant les interfaces ABI et PBI contiendront des mé- moires à double accès, l'une réservée au bus interne, l'autre aux bus en anneau 10 et 12. Ainsi, vu du proces- seur 22, un interface ABI ou PBI apparait simplement comme un espace mémoire sur le bus interne VME du pro- cesseur. Cette constitution permet aux abonnés actifs aussi bien d'envoyer des messages ou des requêtes que de répondre à d'autres abonnés. A chaque interface ABI ou PBI est associée une mémoire vive 24 ou 26 accessible aussi bien à partir du bus 10 ou 12 (par l'intermédiaire de l'interface) qu'à partir du processeur 22. On peut en conséquence qualifier les mémoires vives de mémoires vives visibles ou VRAM, permettant d'écarter la nécessi- té de mémoires tampons supplémentaires. On décrira maintenant le protocole mis en oeuvre par le procédé suivant l'invention dans son application à un dispositif du genre montré en Figures 1 et 2, com- - portant, pour chaque abonné actif, un interface actif et un interface passif. Il est tout d'abord nécessaire de résumer la fonction de ces interfaces. L'interface actif ABI est responsable de l'orga- nisation des transferts d'informations sur les bus. Son - fonctionnement est commandé soit directement par le pro- cesseur associé, soit par des blocs de commande résidant dans la mémoire vive visible ou VRAM. Ses fonctions principales sont: - sélection d'un des deux bus en anneau (dans la mesure o deux bus en anneau sont prévus) et des cases d 'envoi des données, - génération d'adresses, - mise en oeuvre du protocole de communication sur le bus en anneau (un ABI étant seul capable d'occu- per une case, cette case pouvant être libérée dans tous- les cas par un ABI, pour certains ordres par un PBI). L"interface passif ou PBI assure le traitement des requêtes de lecture ou d'écriture émises par un ABI. Un certain nombre des cases du bus sont allouées à cha- que PBI, suivant des critères qui peuvent être très va- riés et dont un sera donné plus loin à titre d'exemple. Chaque PBI est prévu pour n'examiner que les requêtes de transfert transmises sur les cases qui lui sont affec- tées. De plus, chaque PBI est affecté d'une adresse et il ne traite que les cases dont il a identifié l'adresse comme étant la sienne. Chaque PBI contient des fanions, par exemple au nombre de huit, dont le rôle apparaîtra plus loin, pouvant être utilisés comme sémaphores d'usage général, comme requêtes d'interruption, comman- des de coupure, etc. On a représenté en tirets sur la Figure 2, en plus des liaisons normales 10a-10d et 12a-12d entre les interfaces et les bus, des accès redondants dont le rôle apparaîtra plus loin pour permettre la reconfiguration des bus 10 et 12 en cas de défaillance d'un abonné. On supposera maintenant que chaque bus en anneau a les caractéristiques suivantes: - durée de cycle d'horloge: a = 50 ns), - durée d'une case: quatre cycles d'horloges, soit 4a = 200 ns, - nombre de fils: six fils d'adresse, quatre fils de données, deux fils d'état et un fil de synchro- nisation (relié à une horloge non représentée). L'organisation et l'imbrication des cases sont celles montrées en Figures 3 et 4. On voit que chaque case comprend trois parties, affectées respectivement à l'état, à l'adresse et aux données, chacune d'une durée 4a. La partie "état" com- porte quatre bits qui apparaissent, deux bits à la fois, sur deux fils. Le temps de cycle d'horloge pour l'état est donc de 2a. La partie "adresse" comporte vingt- quatre bits, émis avec multiplexage temporel sur six fils. On voit que quatre cycles d'horloge sont néces- saires pour le décalage complet d'une adresse avec une durée de cycle d'horloge de 50 ns. Le mot de données comporte seize bits, encore multiplexés temporairement et apparaissant sur quatre fils. Il faut encore quatre cycles d'horloge pour décaler totalement le mot de données. Enfin, l'état "case 0" est indiqué par un si- gnal de synchronisation. Les cases suivantes sont numé- rotées 1, 2, 3,... On voit que, du fait de l'imbrication des différentes parties d'une même case, comme indiqué en Figure 4, chaque case n'occupe en fait qu'une durée 4a. La répartition des bits PRT (priorité), ST1 et STO d'état, A23 à AD d'adresse, D15 à DO de données) peut être celle donnée en Figure 5, avec la répartition entre les fils d'état STI1 et STIO, d'adresse AI5 à AIO, de données DI3 à DIO. Un des bits affectés à l'état n'est pas utilisé. On constate qu'un abonné ne reçoit pas simulta- nément l'état, l'adresse et les données, ce qui permet, comme on le verra mieux plus loin, d'optimiser le fonc- tionnement. En effet, lorsqu'un PBI détecte la présence d'un ordre dans une des cases qui lui sont affectées, il peut préparer ses registres internes et sa logique de commande en vue de décoder l'adresse et de déterminer si l'ordre lui est destiné, auquel cas il peut immédiate- ment exécuter l'ordre. On donnera maintenant une description du proto- cole suffisante pour bien comprendre comment s'effectue la transmission des données sur le bus. Contenu des différentes parties d'une case La partie "état" indique l'opération à effectuer sur le mot de données de la case. L'état "libre", identifié par ST1 = O, STO = O, indique que la case est libre et peut être utilisée par tout abonné actif pour toute opération à effectuer sur un abonné passif auquel est affectée la case. L'état "lire", identifié par ST1 = O, STO = 1, indique que la case transporte l'adresse d'un abonné passif particulier en vue d'effectuer une opération de lecture à cette adresse avec transfert des données correspondantes dans la case. L'état "écrire", identifié par ST1 = 1, STO = O, indique que la case transporte une adresse et un mot de données: le mot de données doit s'inscrire dans la mémoire de l'abonné passif dont l'adresse est donnée par la case. L'état "écrire dans le plus proche voisin", identifié par ST1 = 1, STO = 1, indique que la case transporte une adresse et un mot de données. L'opération est la même que celle effectuée dans le cas de "écrire", mais la case est immédiatement libérée par l'abonné passif, l'état passant de "écrire dans le plus proche voisin" à "libre". Le fanion PRT (priorité) permet à un abonné actif de' se réserver une case. Lorsque le fanion est levé, il interdit à tout ABI, sauf celui qui a levé le fanion, de prendre la case. La partie adresse indique, de façon classique, o doit être effectuée l'opération de lecture ou d'écri- ture désirée. Le mot de données peut être soit le mot lu dans la mémoire d'un abonné passif, soit un mot à écrire dans la mémoire d'un abonné passif. Allocation des cases 1 1 A chaque abonné passif est alloué un jeu de cases sur l'anneau. En conséquence, chaque abonné n'aura- à examiner que les requêtes de transfert transmises par ces cases. Inversement, un abonné actif ne pourra at- teindre un abonné passif particulier qu'en choisissant une case allouée à cet abonné passif. Etant donné que plusieurs abonnés. passifs partagent les mêmes cases, l'abonné passif devra décoder l'adresse pour déterminer si le contenu de la case lui est destiné. Plusieurs modes d'allocation peuvent être envi- sagés suivant, en particulier, le nombre de bus et le type de tache à accomplir. On décrira plus loin, sous la rubrique "Schéma d'accès aux cases du bus en anneau", une solution suivant l'invention, particulièrement avan- tageuse. Mais, auparavant, on décrira la séquence des opérations susceptibles d'intervenir en réponse aux ordres transférés par la partie "état" des cases. ECRITURE La Figure 6 montre la séquence des opérations lors d'une écriture commandée par un abonné actif AA souhaitant transférer un mot de données dans la mémoire d'un abonné passif particulier PA. La partie gauche de la Figure 6 montre les opérations qui interviennent au niveau de l'abonné passif, la partie droite celles qui interviennent au niveau de l'abonné actif. Le déroule- ment des opérations est indiqué du haut vers le bas, L'abonné actif AA doit tout d'abord trouver une case allouée à PA et dont la partie "état" porte l'in- dication F (libre). C'est l'opération 1. L'abonné actif change alors l'état de F (libre) à WR (écrire) puis charge l'adresse A et le mot de don- nées D au passage (opérations 1, 2 et 3). La case se déplace ensuite progressivement, d'un cran à chaque coup d'horloge, jusqu'au moment o sa par- tie "état" atteint l'abonné passif PA auquel le contenu de la case est destiné. L'interface PBI de l'abonné PA, qui vérifie le contenu de la partie "état" de chaque case qui lui est affectée, détecte l'ordre WR. Il pré- pare alors ses registres internes et ses registres de commande pour traiter un ordre d'écriture. Le délai qui s'écoule entre la partie "état" et la partie "adresse"' - permet à l'abonné PA de préparer sa logique (opération 4). L'adresse est ensuite chargée dans une mémoire de verrouillage (réseau de bascules). Le PBI de l'abonné PA décode l'adresse. S'il constate une identité avec son adresse, il transfère les données dans sa mémoire de verrouillage lors de l'apparition de la partie "données'"- (opération 6) et effectue l'opération d'écriture. La case continue à circuler et revient à l'abonné actif AA qui la libère en changeant le mot d'état de WR en F. Cette opération implique évidemment que l'abonné actif AA ait mémorisé toutes les cases qu'il a modifiées, de façon à pouvoir ultérieurement les libérer. L'opération "écrire dans le plus proche voisin" est très similaire à la précédente, si ce n'est que cette fois F est changé en WNN (écrire dans le plus pro- che voisin) et que c'est le PBI de l'abonné destinataire PA qui libère immédiatement la case en changeant sa par- tie état de WNN en F. On peut ainsi utiliser la case plus d'une fois par rotation sur-le bus. En contrepar- tie, cette opération présente une contrainte: un abonné actif AA ne peut exécuter une opération WNN que sur ce- lui des abonnés passifs parmi ceux auxquels est affectée la case qui est la plus proche sur le bus, en aval de l'abonné actif AA. LECTURE L'opération de lecture s'effectue de façon simi- laire à l'opération d'écriture: l'abonné actif AA pro- voque une opération d'écriture en trouvant une case af- fectée à l'abonné passif PA destinataire qui est libre, en changeant l'état en RD (lire) et en chargeant dans la case l'adresse o doit se faire la lecture. L'abonné 2 5 7 1567 passif destinataire PA détecte qu'une case qui lui est affectée transporte un ordre RD. Il positionne sa logi- que interne pour une opération de lecture. Lorsqu'il reçoit l'adresse, il la décode et effectue une-opération de lecture dans sa mémoire. Lorsque la partie données de la case atteint PA, les données lues sont prêtes et peu- vent être chargées dans la case, mais uniquement si le décodage de l'adresse a montré qu'il s'agit de celle de l'abonné passif. S'il y a eu chargement dans la partie données, lors du retour à l'abonné actif AA qui a émis l'ordre, cet abonné AA libère la case en changeant son état de R à F et récupère le mot de données lorsqu'il l'atteint. Comme on l'a déjà indiqué plus haut, il faut que l'intervalle de temps qui s'écoule entre deux cases con- sécutives allouées au même abonné passif soit suffisant pour éviter un chevauchement de deux cycles d'accès en mémoire. Cela implique, avec un temps d'accès en mémoire de 6a = 300 ns, que le décalage entre les débuts de deux cases consécutives soit d'au moins 400 ns. TRANSITIONS Deux cas présentent une situation particulière. Il s'agit des transitions de lecture à écriture et d'écriture à lecture. La Figure 7 montre une transition de lecture à écriture au niveau d'un abonné passif particulier. Dans la situation montrée sur la Figure 7, l'abonné reçoit, après deux ordres de lecture, respectivement de données A0 et A1, un ordre d'écriture d'un mot de données D'0. Etant donné qu'une écriture ne peut être effectuée qu'une fois les données rèçues, la mémoire vive de l'abonné passif sera oisive pendant la durée d'un cycle de lecture ou d'écriture, c'est-à-dire 400 ns. Lorsque, par contre, un ordre de lecture succède à un ordre d'écriture (Figure 8), un conflit d'accès se produit: la mémoire vive visible 26 (Figure 2) de 7 1-567 * l'abonné passif destinataire reçoit en même temps un ordre d'écriture du mot de données D1 et de lecture à l'adresse AO. L'opération de lecture doit avoir priorité sur l'opération d'écriture, puisqu'on attend un mot de données de l'abonné passif. En conséquence, le protocole prévoit une mise en suspens de l'opération d'écriture, l'adresse d'écriture et le mot de données étant conser- vés dans une mémoire de verrouillage (réseau de bas- cules) de l'interface de l'abonné passif. L'opération d'écriture retardée peut êt'e effec- tuée dans I'une ou l'autre de deux situations. La pre- mière est celle o une case traversant l'interface de l'abonné passif est libre: la mémoire n'est alors pas sollicitée au cours du cycle et l'opération d'écriture peut être effectuée. La seconde situation est celle o intervient une transition de lecture à écriture. La Fi- gure 9 montre que, dans ce cas, l'opération d'écriture reportée peut être effectuée -pendant un cycle de la mémoire vive inoccupé. Il faut remarquer au passage que cette possibi- lité garantit qu'il n'y aura jamais report de plus d'une opération d'écriture. S'il y a lecture d'un emplacement en mémoire avant que le mot de données ne soit inscrit à cet emplacement, la mémoire vive est inhibée et le mot de données retardé est transmis au lieu du mot de don- nées de la mémoire. La complication est très faible. puisqu'il n'y a jamais plus d'un mot de données à con- server dans un registre formant antemémoire ou "cache" RESERVATION Le rôle du bit de priorité est de permettre la transmission d'un message important par un abonné actif, alors qu'un autre abonné actif placé en amont accapare les cases. En mettant à 1 le bit de priorité d'une case occupée au passage, l'ABI d'un abonné actif AA interdit à tout autre abonné actif de se saisir de la case qui reviendra donc libre à l'abonné actif. Schéma d'accès aux cases du bus en anneau La description donnée jusqu'ici du protocole n'implique pas la présence de deux bus en anneau. On considèrera maintenant le cas particulièrement avanta- geux, montré en Figures 1 et 2, d'un dispositif à deux bus en anneau permettant une reconfiguration soit pour casser le bus en plusieurs sousbus, soit pour pallier les conséquences d'une défaillance. Chaque bus peutêtre considéré comme le siège d'un nombre déterminé de cases, fixé par le nombre des abonnés connectés au bus. L'en- semble de ces cases constitue une trame dont le début est fixé par un signal de synchronisation, la première case étant numérotée O et ainsi de suite (Figure 3). Chaque AGI voit ainsi deux trames, dont les longueurs peuvent être différentes et pour lesquelles il n'y a pas de synchronisme en ce qui concerne la première case. Chaque trame, constituée de cases 0, 1i... 2n-1, est divisée en un canal pair, comprenant les cases d'ordre pair, et un canal impair. A chaque PBI est alloué un canal de la trame (canal pair ou canal impair) et seuls les ordres transmis par ce canal sont pris en considéra- tion par le PBI qui n'a donc à considérer qu'une case sur deux. Avec un temps de cycle de case de 200 ns, deux ordres adressés au même PSI sont séparés par au moins 400 ns, ce qui laisse le temps au PBI de traiter les or- dres. Ainsi, à chaque PBI est affectée la moitié des cases et chaque PBI partage ces cases avec d'autres, ce qui rend nécessaire la présence d'une adresse, à vingt- quatre bits dans le mode d'exécution qui a été décrit ci-dessus. De son c6té, chaque AGI a accès aux deux-bus 10 et 12. En conséquence, avant d'envoyer un ordre de transfert, l'A8I doit choisir le bus sur lequel il l'ef- fectuera, et le canal sur le bus La sélection du PBI concerné est faite automatiquement par l'adresse. Une fois le bus et le canal- choisis, l'ABI peut transférer un mot de données pendant une case sur deux. Le bus devant avoir un nombre pair de cases et étant donné- qu'une case représente deux interfaces, le nombre de dispositifs sur un bus en anneau doit être multiple de quatre, ces dispositifs pouvant être des ABI, des PBI ou des interfaces morts (registres insérés sur le bus en anneau pour permettre d'arriver à un nom- bre multiple de quatre qui doit être d'au moins huit). Ces deux conditions satisfaites, les éléments du bus s'adaptent à un nombre quelconque d'abonnés. Constitution des interfaces actifs La Figure 10 montre une architecture interne qu'il est possible d'adopter pour un ABI destiné à cou- pler deux bus en anneau 10 et 12 avec un bus interne VME. A ce bus interne sont reliés non seulement l'ABI, mais aussi le processeur et, dans la plupart des cas, un PBI. L'interface entre l'ABI et le bus interne comporte une mémoire vive visible ou VRAM 24 destinée à stocker les blocs de données à transférer. L'ABI peut être regardé comme comprenant deux parties principales, une logique de commande et ses re- gistres associés d'une part, des coupleurs de bus d'autre part. La logique de commande et ses registres associés comportent: - un registre d'état ST. Ce registre constitue une mémoire de lecture, par exemple à seize bits, pour pouvoir contenir huit fanions de test et de positionne- ment, pouvant être abaissés par un ordre donné à l'ABI, ainsi que des bits d'état indiquant l'état interne de l'ABI (occupé ou non,....); - un compteur de blocs de commande CBC. Ce comp- teur, pouvant avoir seize bits, constitue un pointeur indiquant la zone de la mémoire 24 à partir de laquelle on doit récupérer les ordres lorsque l'ABI est en mode de commande par bloc. Le compteur CBC s'incrémente après chaque accès à un bloc de commande. Il peut être initialisé à une valeur déterminée par une commande de saut "JUMP". Le compteur CBC est remis à zéro lors du rétablissement de l'interface ABI; - un compteur d'adresses internes IAC. Le comp- teur IAC pointe l'adresse du tampon de données dans la mémoire visible VRAM. Les transferts sont effectués à partir de ce tampon ou vers ce tampon. Le compteur IAC reçoit un paramètre de commande de transfert et s'incré- mente après chaque accès au tampon de données par l'ABI; - un compteur d'adresses externes EAC, pouvant comporter vingt-quatre bits dans le cas envisagé plus haut. Ce compteur donne l'adresse du transfert sur le bus en anneau. Cette adresse est décodée par les inter- faces passifs de bus PBI reliés aux bus en anneau. On charge. un paramètre de commande de transfert dans le compteur EAC. Un autre paramètre E donne l'incrément: après chaque transfert avec le bus en anneau, l'information suivante est effectuée: EAC - EAC + 2 En d'autres termes, le compteur EAC est incré- menté de 2 - un registre de comptage CNT, pouvant avoir douze bits. Ce registre mémorise le nombre de transferts à exécuter par l'ABI. L'unité. logique de commande CLU, de son côté, interprète l'ordre mémorisé dans le registre CMD et organise le séquencement des opérations. Les deux interfaces de bus en anneau permettent de relier l'ABI aux bus 10 et 12. L'ABI ne peut cepen- dant transférer des données qu'avec un seul bus à la fois. La Figure 10 montre encore deux entrées redon- dantes 10e et 12e qui permettent la reconfiguration, comme on le verra plus loin. La sélection entre les entrées est réalisée à l'aide de commandes appliquées aux coupleurs sur deux entrées supplémentaires, monofil. Ces entrées ASW et BSW permettent respectivement de choisir entre les entrées 10b et 10e, 12b et 12e. Il n'est pas nécessaire de décrire ici la cons- titution détaillée de chacun des circuits qui consti- tuent l'ABI, car ils peuvent être relativement clas- siques. De même, il n'est pas nécessaire de donner le détail de la constitution des PBI, qui se rapproche de la constitution précédente. Avant de décrire les dispositions suivant l'in- vention qui permettent de réduire la complexité requise pour reconfigurer le bus, il peut être utile de rappeler les solutions classiques de reconfiguration sur un dis- positif multiprocesseur à bus en anneau. Une première solution consiste à prévoir deux bus, dont l'un est en attente. Ce bus en attente est constitué de tronçons contournant chacun l'un des abon- nés. Lorsqu'un des abonnés est défaillant, la mise en service de ce tronçon permet de le court-circuiter en effectuant la reconfiguration par logiciel. Cette solu- tion a l'inconvénient de ne pas permettre d'isoler com- plètement un abonné défaillant du système. Une seconde solution, montrée en Figure 11, con- siste à prévoir une structure en double anneau prévu pour des circulations de sens contraires 30,32. On peut alors recréer une configuration en anneau (indiquée en traits épais) quel que soit l'abonné défectueux (celui de droite sur la Figure 11). Elle a l'inconvénient d'exiger de doubler le nombre des liaisons d'entrée et de sortie (deux entrées et deux sorties au lieu d'une entrée et d'une sortie dans une configuration non fiabilisée). L'invention permet de réduire considérablement la complexité requise pour fiabiliser le bus et auto- riser une reconfiguration à la demande. Une première 25715:67 solution suivant l'invention, schématisée en Figures 12A et 12B permet d'effectuer l'économie d'une sortie par fil de bus, au prix de la nécessité de devoir mettre hors service deux interfaces lorsqu un seul est défail- lant. Mais, dans la pratique, ces deux interfaces peuvent être l'ABI et le PBI d'un même abonné actif, de sorte que l'exclusion de deux interfaces n'a pas d'effet plus grave que celui d'un seul. La Figure 12A montre la configuration normale comportant deux boucles sur les- quelles la circulation s'effectue en sens inverse. Chaque interface comporte un organe d'aiguillage comman- dé par logiciel et permettant de passer des liaisons montrées en traits pleins aux liaisons montrées en ti- rets. Les deux boucles sont reliées au niveau de n'im- porte quel couple (couple de gauche sur la Figure 12A) pour constituer un bus unique. La Figure 12B montre le bus reconfiguré après exclusion de l'interface défec- tueux (à droite sur la Figure) et de celui qui lui est couplé. Grâce à la disposition qui vient d'être décrite, il est possible de diminuer notablement le nombre des pattes requises du coupleur de bus des ABI et PBI. Il suffit en effet de disposer de deux entrées et d'une sortie sur chaque coupleur. La configuration simple montrée en Figure 12A peut être généralisée à deux dimensions ou même davan- tage. Le montage dont une fraction est montrée en Figure 13 peut être regardé comme associant quatre interfaces au lieu de deux. En fonctionnement normal, le montage en série des boucles pour constituer un bus unique est indiqué en traits renforcés. En cas de panne d'un inter- face, le bus peut toujours être reconfiguré en mettant hors circuit un groupe de quatre interfaces. Ce montage permet de tolérer la panne de plu- sieurs interfaces. Pour cela, les interfaces 30 sont associés par des bus élémentaires tels que 32 dans une direction. 34 dans l'autre. Un commutateur 36 prévu dans chaque interface 30 permet de reconfigurer le système. Lorsque par exemple les commutateurs 36 ont les disposi- tions montrées en Figure 13, l'ensemble des bus élémen- taires 32 et une fraction de deux bus élémentaires 34 interviennent pour reconfigurer un bus unique. Toute panne d'un interface permet, par commande de certains commutateurs par voie logicielle, de reconfigurer le bus, éventuellement en le fractionnant en plusieurs bus. La présence de bus élémentaires dans deux directions croisées permet d'assurer cette reconfiguration même après panne de plusieurs interfaces. - Une généralisation aboutissant à une réduction encore plus importante du nombre de fils peut être obtenue lorsque deux couples de deux bus parcourent les interfaces. Le nombre de pattes de liaison est en principe égal à six (deux entrées, deux sorties et deux entrées d'aiguillage). Mais il est possible de mettre l'entrée de secours en commun, ce qui permet de réduire le nombre dans le rapport 5/6. La Fi-gure 14 montre comment deux interfaces ayant chacun deux entrées, deux sorties et une entrée de secours peuvent être montés de manière à recréer un double interface à deux entrées, deux sorties et deux entrées de secours. En substituant ce double interface aux interfaces simples des Figures 12A et 13, on crée des systèmes de doubles bus, chacun de ces deux bus ayant les propriétés mentionnées pour le bus sans substitution. La Figure 15 montre, à titre d'exemple, le résultat obtenu en appliquant la constitution de la Fi- gure 14 au montage de la Figure 12A. Il serait possible de faire la même application à d'autres architectures, par exemple à celle de la Figure 13. REVENDICATIONS 1. Procédé d'échange d'informations entre abon- nés par bus en anneau par cases circulant sur le bus (10, 12), chaque case contenant une indication d'état, une adresse et/ou un mot de données, suivant un proto- cole de transfert décentralisé et passif à affectation statique de case aux abonnés munis d'un interface passif de bus, caractérisé en ce que la case comprend au moins deux parties successives de durée commune, affectées la première à l'indication d'état, la seconde à l'adresse ou au mot de données et en ce que la seconde partie est séparée temporellement de la première partie. 2. Procédé selon la revendication 1, caractérisé en ce que la case comprend trois parties successives de durée commune, affectées respectivement à l'indication d'état, à l'adresse et au mot de données et en ce que la partie affectée au mot de données est séparée temporel- lement de la partie affectée à l'adresse par un délai égal à un multiple de ladite durée commune et suffisant pour permettre à chaque interface passif de bus (PBI) concerné par la case de décoder l'adresse avant l'arri- vée du mot de données correspondant. 3. Procédé selon la revendication 1 ou 2, carac- n térisé en ce que les cases sont réparties en 2 groupes, chaque groupe étant affecté à un groupe d'interfaces passifs. 4. Procédé selon l'une quelconque dés revendi- cations précédentes, caractérisé en ce qu'une opération d'écriture dans un abonné passif (PA) sur ordre d'un abonné actif (AA) comprend les étapes de repérage d'une case affectée à l'abonné passif et libre par l'interface actif de bus (ABI) de l'abonné actif (AA), le changement par ledit interface actif de la partie état de l'état libre (F) à l'état écriture (WR), l'indication de l'adresse de l'interface passif (PBI) de l'abonné passif (PA) et l'inscription du mot de données à transmettre, la détection par l'abonné passif destinataire de la pré- sence d'un ordre d'écriture (WR) dans une case qui lui est affectée, la préparation des registres internes par cet abonné, le décodage de l'adresse et l'opération de l'écriture lorsque l'adresse d'écriture a été identi- fiée, puis le retour de la case à l'abonné actif (AA) qui a mémorisé l'ordre d'écriture et libère la case en changeant la partie état de WR en F. 5. Procédé selon la revendication 4, caractérisé en ce qu'en cas de transition ordre d'écriture-ordre de lecture à la même adresse, l'opération d'écriture en mémoire de l'abonné passif (PA) destinataire est retar- dée jusqu'à- apparition d'une case libre libérant un cycle d'accès en mémoire, ou d'une transition écriture- lecture et en cas d'ordre de lecture avant que l'écri- ture soit effective, la mémoire de l'abonné passif est inhibée et le mot de données retardé est retransmis, cette opération pouvant être effectuée à l'aide d'un re- gistre formant ante-mémoire. 6. Procédé selon l'une quelconque des revendica- tions précédentes, caractérisé en ce que la partie état- est prévue pour recevoir un ordre d'écriture dans celui des abonnés passifs, parmi ceux auxquels est affectée la case, qui est le plus proche en aval de l'abonné actif émettant l'ordre, l'interface passif de bus (PBI) dudit abonné passif étant prévu pour libérer dans ce cas la case. 7. Dispositif multiprocesseur comprenant deux bus en anneau tournant en sens inverse (10, 12), des abonnés passifs dont chacun est relié au bus par un interface passif de bus (PBI) permettant à l'abonné de recevoir un ordre de transfert, des abonnés actifs dont chacun est relié au bus par un interface actif (ABI) permettant de provoquer un transfert d'informations entre cet abonné actif et un autre abonné et par un interface passif (PBI) et une horloge permettant de faire circuler sur le bus des cases d'informations d'un abonné au suivant à chaque coup d'horloge, caractérisé en ce que les interfaces sont prévus pour effectuer avec le bus des transferts d'informations par le procédé selon l'une quelconque des revendications précédentes. 8. Dispositif selon la revendication 7, carac- térisé en ce que chaque interface actif (ABI) comporte un registre à décalage o la circulation s'effectue à la même cadence que sur le bus correspondant. 9. Dispositif multiprocesseur comprenant au moins un bus en anneau à deux boucles prévues pour des circulations de sens opposés (10, 12), des abonnés pas- sifs dont chacun est relié au bus par un interface pas- sif de bus (PBI) permettant à l'abonné de recevoir un ordre de transfert, des abonnés actifs dont chacun est relié au bus par un interface actif (ABI) permettant de provoquer un transfert d'informations entre cet abonné actif et- un autre abonné et par un interface passif (PBI) et une horloge permettant de faire circuler sur le bus des cases d'informations d'un abonné au suivant à chaque coup d'horloge, caractérisé en ce que les inter- faces (PBI, ABI) sont regroupés par couples, les deux interfaces de chaque couple étant reliés aux boucles (10, 12) par un nombre de liaisons juste suffisant pour permettre de refermer les deux boucles l'une sur l'autre pour reconstituer un bus en excluant le couple o se trouve un interface ou abonné défaillant. 10. Dispositif selon la revendication 9, carac- térisé en ce que chaque interface comprend deux entrées et une seule sortie. 11. Dispositif selon la revendication 9 ou 10, caractérisé en ce que l'interface passif (PBI) et l'in- terface actif (ABI) d'un même abonné actif sont regrou- pés dans le même couple. 12. Dispositif selon la revendication 9, 10 ou 11, caractérisé en ce que les interfaces sont reliés par 7 1567 des boucles suivant une configuration à deux dimensions permettant de reconstituer le bus en excluant au plus quatre interfaces pour chaque interface défaillant. 13. Dispositif selon la revendication 9, 11il ou 12, caractérisé en ce qu'il comprend au moins deux bus en anneau à deux boucles, caractérisé en ce que chaque interface comprend trois entrées et deux sorties.