METHOD FOR INFORMATION EXCHANGE BETWEEN SUSCRIBERS BY MEANS OF A LOOPED BUS, AND ITS USE IN A MULTIPROCESSOR DEVICE

Abstract: 1. Process of information exchange between subscribers through a ring bus by slots circulating on the bus (10, 12), each slot containing a status indication, an address and/or data work, according to a decentralized and passive transfer protocol with a static allocation of slot to the subscribers provided with a passive bus interface, characterized in that the slot comprises at least three successive portions having a common time duration, respectively dedicated to the status indication, to the address and to the data word and in that the portion dedicated to the data word is time separated from the portion dedicated to the address by a delay which is equal to a multiple of said common duration and which is sufficient for permitting address decoding by each passive bus interface (PBI) which is concerned by the slot before the respective data word is received.

Description: Procédé d'échanoe d informatlons entre abonnés Dsr bus en anneau et dispositif multiorocesseur en comoortant poblication L invention concerne les dispositifs comportant plusieurs abonnés. dont certains au moins sont de type actif ou maire, 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 recevoir 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 "spot', est utilisé ici pour désigner l'unit¯ élémentaire d'information circulant sur le bus, comprenant au moins une indication d état à laquelle s ajoute une adresse de destination et/ou 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" (Gerard Gaillet, Premier Colloque Image. êiarritz mai 1984) et dans "The design of a parallel processor for image processing onboard satellites: an application oriented approach" (Gérard Gaillet, Tenth Annual Symposium on Computer Architecture, Stockholm 3une 13-16, 1983), auxquels on pourra se reporter, utilise un protocole de transfert décentralisé et passif. en ce sens que chaque abonné muni d'un interface de bus passif ou PBI ne peut recevoir de sollicitations en provenance d un abonné muni d'un interface 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'abonne passif. 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 me-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" : des qu'un abonné actif a obtenu une case, il peut être sur 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 particulier important de relever que, comme le bus à passage de jetons (US-A-4 293 9 & ?. 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 bectées la première à l'indication d'état, la seconde à 1 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 respectivement à 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 s (par exemple 50 ns), on peut prévoir des parties dont la durée commune est Ra 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'utilisation 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 même 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 ia Le procédé d'échange suivant l'invention permet de donner aux abonnés une constitution matérielle ou hardwares indépendante de la longueur du bus, en prevoyant 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 conse quences. sur le dispositif, d'une défaillance d'un des ¯borgnes = °^les au oJs 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'entre 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 interfaces 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 obtenu 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 service 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 montrant 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 reconfigurable. - les Figures 12A et 126 montrent une architecture 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 autorisant la défaillance de deux abonnés quelconques, les interfaces étant assemblés par quatre, - la Figure 14 est un schéma de principe montrant un interface à deux entrées et deux sorties et une ntrée de secours utilisable dans un but de fiabilisa- ion, - la Figure 15 est un schéma montrant une fraction 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 couplable à un calculateur universel hôte ou comme processeur intégré. Il sera surtout envisagé ici dans son application en tant que calculateur parallèle en architecture MIMD < multi-instructions, multi-données? traitant des signaux circulant sur deux bus 10 et 12 bidirectionnels. Cependant. pour simplifier la description du protocole, 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 Figure 1 peuvent être répartis en abonnés actifs et abonnés passifs. Les abonnés actifs représentés comprennent un microprocesseur maître 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 Fourrier rapide par exemple?. Ils peuvent également comporter 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 envoyer 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 ordres. et de retourner une réponse en cas d ordre de lecture. Hais, dans la pratique, les abonnés actifs seront 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 processeur 22, un interface ABI ou PBI apparait simplement comme un espace mémoire sur le bus interne VME du processeur. 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'a' 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écessité 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. comportant, 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'organisation des transferts d'informations sur les bus. Son fonctionnement est commandé soit directement par le processeur associé, soit par des blocs de commande résidant dans la mémoire vive visible ou VRAM. Ses fonctions incipales 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'occuper une case, cette case pouvant être libérée dans tous les cas par un ABI, pour certains ordres par un PSI). 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 Åa chaque PBI, suivant des critères qui peuvent être très varies 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 tees De plus, chaque PBI est affecte 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, commandes de coupure, etc. On a représente en tirets sur la Figure 2, en plus des liaisons normales 10sa104 et 12s-124 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 r 50 ns), - durée d'une case : quatre cycles d'horloges, soit ia = 200 ns, - nombre de fils : six fils d'adresse, quatre fils de données, deux fils d'état et un fil de synchronisation (relié à une horloge non représentée). L'organisation et l'imbrication des cases sont celles montrées en Figures 3 et * 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" comporte 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 vingtquatre bits, émis avec multiplexage temporel sur six fils On voit que quatre cycles d'horloge sont nécessaires 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 signal 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 . La répartition des bits PRT (priorité?, ST1 et STO d'état, A23 à AO 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 AIS à AI0, de données DI3 à DITO. Un des bits affectés à l'état n'est pas utilise 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 PEI 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édiatement exécuter l'ordre. On tonnera maintenant une description du protocole 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 = 0, STO fi, 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 = 0, STO = I. 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 s 1, STO t 0, 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 t I, STO - I, 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, ou 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 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 atteindre 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 envisagé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 avantageuse. 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éroulement 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 donné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 partie "é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 propare 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 proche voisin) et que c'est le PBI de l'abonné destinataire PA qui libère immédiatement la case en changeant sa partie état de WNN en F. On peut ainsi utiliser la case plus d'une fois par rotation sur le bus. En contrepartie, cette opération présente une contrainte : un abonné actif AA ne peut exécuter une opération WNN que sur celui 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 similaire à l'opération d'écriture : l'abonné actif AA provoque 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 1 adresse où doit se faire la lecture. L'abonné passif destinataire PA détecte qu une case qui lui est affectée transporte un ordre RD. Il positionne sa logique 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 peuvent être chargées dans la case, mais uniquement si le decodage 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 consé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 Sa = 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 Ai, un ordre d'écriture d'un mot de données D'O. Etant donné qu'une écriture ne peut être effectuée qu'une fois les données reç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 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 A0 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 conservés dans une mémoire de verrouillage (réseau de bascules) de l'interface de l'abonné passif. L'opération d'écriture retardée peut être effectuée dans 1 une ou l'autre de deux situations. La première est celle ou 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 Figure 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 possibilité 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 données de la mémoire. La complication est très faible. puisqu'il n'y a jamais plus d'un mot de données à conserver 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 avantageux, montré en Figures 1 et 2, d'un dispositif à deux bus en anneau permettant une reconfiguration soit pour casser le bus en plusieurs sous-bus, 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'ensemble 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 0 et ainsi de suite (Figure 3?. Chaque ABI 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, 1 2ne1, est divisée en un canal pair, comprenant les cases d'ordre pair, et un canal impair. A chaque P81 est alloué un canal de la trame (canal pair ou canal impair) et seuls les ordres transmis par ce canal sont pris en considération 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 PBI sont séparés par au moins 400 ns, ce qui laisse le temps au PBI de traiter les ordres. 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, à vingtquatre bits dans le mode d'exécution qui a été décrit ci-dessus. De son côté, chaque ABI a accès aux deux bus 10 et 12. En conséquence, avant d'envoyer un ordre de transfert, L'ABRI 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, 1'A8I 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 nombre 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é à coupler deux bus en anneau 10 et 12 avec un bus interne VHE. A ce bus interne sont reliés non seulement 1'ABI, mais aussi le processeur et, dans la plupart des cas, un PBI. L'interface entre 1'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 registres 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 positionnement, pouvant être abaissés par un ordre donné à 1'A81, ainsi que des bits d'état indiquant l'état interne de 1'ABI (occupé ou non, 1 ; - un compteur de blocs de commande CBC. Ce compteur, 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 "3UMP". Le compteur CBC est remis à zéro lors du rétablissement de l'interface ABI - un compteur d'adresses internes lAC. Le compteur 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 1 adresse du transfert sur le bus en anneau. Cette adresse est décodée par les interfaces 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 A EAC + 2E En d'autres termes, le compteur EAC est incrémenté de 2E - un registre de comptage CNT, pouvant avoir douze bits. Ce registre mémorise le nombre de transferts à exécuter par 1'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'ABRI aux bus 10 et 12. L'ABI ne peut cependant transférer des données qu avec un seul bus à la fois. La Figure 10 montre encore deux entrées redondantes 10p et 12e qui permettent la reconfiguration, comme on le verra plus loin. La sélection entre les entrées est réalises à 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 1og et 10±, 12fil et 12e Il n'est pas nécessaire de décrire ici la constitution détaillée de chacun des circuits qui constituent l'ABI, car ils peuvent être relativement classiques 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'invention 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 dispositif 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 solution a l'inconvénient de ne pas permettre d'isoler complatement un abonné défaillant du système. Une seconde solution, montrée en Figure 11, consiste à 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 il). 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 autoriser une reconfiguration à la demande. Une première solution suivant l'invention, schématisée en Figures 12A et 126 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éfaillant. Hais, dans la pratique, ces deux interfaces peuvent être l'ABI et le P61 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 lesquelles la circulation s'effectue en sens inverse. Chaque interface comporte un organe d'aiguillage commandé par logiciel et permettant de passer des liaisons montrées en traits pleins aux liaisons montrées en tirets. Les deux boucles sont reliées au niveau de n importe quel couple (couple de gauche sur la Figure 12A) pour constituer un bus unique. La Figure 123 montre le bus reconfiguré après exclusion de l'interface défectueux {Åa 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 davantage. 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 interface, le bus peut toujours être reconfiguré en mettant hors circuit un groupe de quatre interfaces, Ce montage permet de tolérer la panne de plusieurs 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 dispositions montrées en Figure 13. l'ensemble des bus élémentaires 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 Figure 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 Figure 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.

Claims: REVEND I CAT IONS 1 Procédé d'échange d'informations entre abonné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 protocole 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 a l'indication d'état1 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 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 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. Procédé selon l'une quelconque des revendications 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é identifiée, puis le retour de la case Åa 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 retardée jusqu à apparition d'une case libre libérant un cycle d'accès en mémoire, ou d'une transition écriturelecture et en cas d'ordre de lecture avant que l'écriture 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 ts lecture à l'aide d'un registre formant ante-mémoire. 6. Procédé selon l'une quelconque des revendications 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é: 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 faite cÅawsuler oui us oes sa oss ' rmations d'un abonné au suivant à chaque coup a horlvge, 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 ou la circulation s'effectue à la meme 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 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 (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, caractérisé en ce que chaque interface comprend deux entrées et une seule sortie. il. Dispositif selon la revendication 9 ou 10, caractérisé en ce que l'interface passif (PBI) et l'interface actif (ABI) d'un môme abonné actif sont regroupé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 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, 11 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.

Inventors: GAILLAT, GERARD, NGUYEN TAN HON, JULIEN, Gaillat, Gérard
Applicants: MATRA
Application year: 1985
Main classification: H04L11
IPC codes: G06F13, H04L12