FR 2809842 A1 20011207 FR 0007028 A 20000531 -1 - La présente invention concerne un contrôleur de bus redondant pour un bus susceptible d'être utilisé par plusieurs maîtres. On sait que les bus accessibles par plusieurs maîtres sont gérés par des arbitres qui accordent successivement des autorisations d'accès aux différents maîtres, suite à des demandes d'accès (requests) exprimées par ces derniers. En cas de conflit entre deux maîtres demandant simultanément l'accès au bus, l'arbitre accorde l'accès au maître qui possède la priorité la plus élevée, en appliquant un algorithme particulier de gestion des priorités. Un exemple de bus pouvant être accédé par plusieurs maîtres est celui d'un cluster d'ordinateurs reliés par ce bus. Les ordinateurs du cluster communiquent entre eux par le bus, soit de façon directe, soit par l'intermédiaire d'une simulation de réseau local utilisant la structure physique du bus. Dans de tels clusters, il est primordial que l'arbitre fonctionne de façon fiable et durable, faute de quoi l'ensemble du cluster, c'est-à- dire chacun des ordinateurs qui le composent, se trouve hors service. La présente invention vise à fournir un contrôleur de bus tolérant des défauts et présentant un haut niveau de fiabilité. En outre, dans une version particulière, le contrôleur de bus selon l'invention est susceptible d'assurer une continuité de fonctionnement du bus, y compris pendant les phases de maintenance dudit contrôleur. La présente invention a pour objet un contrôleur de bus caractérisé en ce qu'il comprend au moins deux modules dont chacun contient un arbitre et un surveillant d'arbitre, la fonction de l'un au moins des surveillants d'arbitre étant de valider la sortie de l'arbitre du même module tant qu'il constate que cet arbitre fonctionne correctement et d'invalider cette sortie lorsqu'il constate que l'arbitre du même module ne fonctionne pas correctement. Dans le contrôleur selon l'invention, chaque module est le remplaçant de l'autre et la probabilité pour que le contrôleur ne puisse plus gérer les demandes d'accès au bus est très faible car elle correspond à une panne simultanée des deux modules. Dans un premier mode de réalisation de l'invention, les deux arbitres sont synchronisés par une même horloge et délivrent des autorisations d'accès au bus de façon simultanée, la sortie des deux arbitres étant réunie par une porte ou qui délivre une autorisation d'accès unique au bus. Il est avantageux, dans ce mode de réalisation, que chaque module comporte sa propre horloge et qu'un dispositif de synchronisation externe aux deux modules synchronise leurs deux horloges. -2- Dans ce cas, c'est le même signal d'horloges synchronisées qui est envoyé aux deux modules et au bus, afin que les cycles de lectureécriture du bus coïncident avec les délivrances d'autorisations d'accès. Dans un deuxième mode de réalisation de l'invention, l'un des deux modules est prédominant, son surveillant remplit alors une fonction supplémentaire consistant à invalider la sortie de l'arbitre de l'autre module lorsqu'il valide celle de l'arbitre du même module. Dans ce cas, la sortie du deuxième arbitre est systématiquement invalidée tant que le premier arbitre fonctionne correctement. Elle n'est validée que lorsque le premier arbitre ne fonctionne plus. Dans un mode de réalisation préféré de l'invention, chaque module constitué par un arbitre et son surveillant est réalisé sous la forme d'une carte fille insérable dans et extractible d'une carte mère constituant, avec les deux cartes filles, le contrôleur de bus selon l'invention. Compte tenu du fonctionnement du surveillant de l'arbitre dans chaque module, l'insertion et l'extraction à chaud d'un module est réalisable à la seule condition que le module qui demeure sur la carte mère soit en état de fonctionner. Dans un mode de réalisation particulier de l'invention, le signal de sortie généré par un surveillant pour signaler que l'arbitre fonctionne correctement est un signal non constant, par exemple un signal carré. Cette disposition permet de déceler un dysfonctionnement du surveillant dès lors qu'un signal constant est détecté à sa sortie, que ce signal soit haut ou bas. Le fonctionnement d'un contrôleur selon l'invention va maintenant être décrit en référence aux figures annexées dans lesquelles: la figure 1 est une vue en perspective d'un cluster d'ordinateurs utilisant un bus arbitré par un contrôleur selon l'invention, la figure 2 est une vue schématique de l'architecture de bus du cluster de la figure 1, la figure 3 est un schéma synoptique d'un module d'un contrôleur selon l'invention, la figure 4 est un schéma synoptique d'un contrôleur selon un premier mode de réalisation de l'invention, la figure 5 est un schéma synoptique d'un contrôleur selon un deuxième mode de réalisation de l'invention, Le cluster d'ordinateurs 1 représenté à la figure 1 comprend un boîtier 2 de forme générale parallélépipédique qui contient huit cartes amovibles 3a à 3h montées sur le -3- boîtier de manière à être chacune enfichée dans un emplacement d'un bus interne 7 visible à la figure 2. Le boîtier 2 renferme également dans une partie commune 4, un disque dur 5 et un lecteur de disque amovible 6. Les cartes 3a à 3g sont des cartes processeurs constituant chacune un ordinateur du cluster. La carte 3h est une carte contrôleur de bus qui supporte deux cartes filles 7a, 7b, dont chacune est amovible par rapport à la carte 3h. Des leviers de verrouillage 8 équipent chacune des cartes processeurs 3a à 3h. D'autres leviers de verrouillage 9 équipent les cartes filles 7a et 7b. Sur la figure 2, on voit le bus 7, sur lequel sont montées les huit cartes 3a à 3h, cette dernière étant munie des deux cartes filles 7a et 7b. Comme cela est connu dans le cas d'un bus servant plusieurs maîtres, chacune des cartes processeurs 3a à 3g effectue des demandes d'accès au bus REQ, demandes d'accès que la carte contrôleur 3h autorise en fonction des priorités affectées à chacune des cartes. Le fonctionnement global de la carte contrôleur est celui d'un arbitre classique, c'est-à-dire qu'à réception d'une demande d'accès REQ, la carte contrôleur délivre une autorisation GT qui permet au maître demandeur de monopoliser le bus pendant une période de temps donnée, après quoi il relâche le bus. Mais à la différence d'un arbitre traditionnel, la carte contrôleur du dispositif décrit ici contient deux modules arbitres, matérialisés par les deux cartes filles 7a et 7b, modules dont chacun est constitué par un arbitre et un surveillant d'arbitre. La structure d'un module est fournie à la figure 3, sur laquelle on voit qu'en entrée, le module reçoit les demandes d'accès REQ et des impulsions d'horloge CLK et qu'en sortie, le module délivre une autorisation d'accès vérifiée GTV. Le module renferme un arbitre traditionnel 10 qui accepte en entrée les demandes d'accès REQ et délivre en sortie des autorisations d'accès GT. Les autres composants du module constituent le surveillant d'arbitre, qui vérifie le bon fonctionnement de l'arbitre 10 et valide les autorisations données par cet arbitre. A cet effet, le module comporte une bascule bistable 11, une autre bascule bistable 12, une porte [ET] 13, un registre à décalage 14, une porte [ET] 15, une bascule bistable 16, une bascule bistable 17, une porte [ET] 18, une porte [ET] 19, une porte inverseuse 20 et une porte [ET] 21. On va maintenant décrire le fonctionnement de ce module. -4- A réception d'une demande d'accès REQ, I'arbitre délivre une autorisation GT. La demande REQ fait basculer la bascule bistable 11 à une valeur haute (ou vraie). Cette valeur haute fait à son tour basculer la bascule bistable 12 au premier top d'horloge fourni par l'horloge CLK. La sortie de cette deuxième bascule bistable 12 est inversée et envoyée à la porte [ET] 13 en combinaison avec l'autorisation GT fournie par l'arbitre. La sortie de cette porte [ET] alimente le registre à décalage 14. Un top d'horloge est fourni par la porte inverseuse 20 en entrée au registre à décalage 14 pour provoquer le décalage des entrées dans le registre. Après quatre tops d'horloge, les trois sorties du registre alimentant la porte [ET] 15 valident cette dernière, ce qui fournit un signal V haut (ou vrai) indiquant que pendant au moins quatre cycles d'horloge, I'arbitre a délivré une autorisation GT à la suite de la requête REQ. Cette sortie V valide le bon fonctionnement de l'arbitre. La sortie de validation est fournie à la porte [ET] 21 qui laisse ainsi passer le signal issu de la combinaison [ET] 19 de la demande d'accès REQ et de l'autorisation GT pour fournir un autorisation d'accès validée GTv. Le signal V de sortie de validation de l'arbitre est également combiné aux signaux d'horloge dans un sous-circuit de remise à zéro (délimité par un trait interrompu 22) pour fournir, après quelques tops d'horloge, un signal de remise à zéro RST de la première bascule bistable 11 afin que la sortie de validation V repasse au niveau bas. On surveille ainsi le bon fonctionnement de l'arbitre. Dans le mode de réalisation de la figure 4, on a représenté les deux modules arbitres 7a, 7b, qui fonctionnent de manière symétrique en fournissant chacun une autorisation d'accès sur requête des cartes contrôleurs. Chaque module arbitre délivre une autorisation d'accès validée GTvl et GTv2 au bus en appliquant les mêmes règles aux demandes d'accès reçues REQ. Le fonctionnement des deux modules arbitres est synchronisé par un module de synchronisation 23 qui force les deux horloges internes CLK1 et CLK2 des deux modules arbitres à fonctionner au même rythme, en retournant à chaque module un signal d'horloge commun CLK qui est également fourni au bus 7. Les autorisations d'accès au bus GTvl et GTv2 sont par conséquent rigoureusement identiques lorsque les deux modules arbitres fonctionnement correctement. Les deux signaux d'autorisation d'accès GTv1 et GTv2 sont combinés dans une porte [OU] 24 délivrant un unique signal d'autorisation d'accès GTv au bus. -5- Si l'un des deux arbitres ou surveillants d'arbitres devient défectueux, le module correspondant cesse de délivrer des autorisations d'accès et le signal GTvi correspondant est maintenu à un niveau bas (correspondant à la valeur logique faux). La structure de chaque module arbitre est telle que tout dysfonctionnement de I'arbitre interne ou de son surveillant entraîne une mise à un niveau bas du signal GTvi. La sécurité de fonctionnement procurée par une telle carte contrôleur provient de ce qu'il suffit qu'un seul des deux modules arbitres fonctionne normalement pour que le signal GTv soit fourni en sortie de la carte contrôleur. Le module arbitre défectueux se signale à l'opérateur de maintenance par tout moyen quelconque, par exemple grâce à une diode électroluminescente placée en façade de la carte 7a ou 7b. Le module arbitre défectueux peut alors être remplacé sans difficulté, étant donné que le module arbitre en état de marche assure à lui seul la délivrance des autorisations d'accès GTv. Dans le mode de réalisation de la figure 5, l'un 7a des deux modules arbitres, est considéré comme arbitre principal, I'autre, 7b, étant considéré comme arbitre secondaire. Les deux modules arbitres sont reliés entre eux par un circuit logique constitué par deux filtres 25, 26 et une porte [ET] 27: Tant que le module principal 7a fonctionne correctement, le signal d'autorisation d'accès V2 délivré par le module secondaire 7b est inhibé et seul le signal d'autorisation d'accès GTvl provenant du module principal parvient au bus. Si module principal 7a cesse de fonctionner normalement, que ce soit en raison d'un dysfonctionnement de l'arbitre ou d'une panne du surveillant, son signal de validation Vl devient faux, ce qui inhibe le signal GTv1 d'autorisation d'accès au bus et le signal de sortie d'autorisation d'accès au bus GTv2 du module secondaire est activé. Dans chacun des deux modes de réalisation précédents, une variante particulière peut s'appliquer, consistant à prévoir une sortie de validation Vi sous la forme d'un signal non constant, par exemple carré, afin de garantir que le bon fonctionnement de l'un des deux modules arbitres n'est pas diagnostiqué de façon erronée du fait d'un positionnement accidentel à la valeur attendue de ce signal de validation, étant entendu qu'il est peu probable qu'un signal de sortie de panne soit accidentellement non constant et encore moins probable que ce signal non constant soit exactemennt le signal non constant attendu. Comme indiqué dans la description générale, chacun des modules arbitres est conçu pour pouvoir être extrait à chaud de la carte contrôleur, ce qui se comprend -6- aisément compte tenu de fait que les deux modules arbitres sont en permanence prêts à se relayer mutuellement. L'invention n'est aucunement limitée aux modes de réalisation qui viennent d'être décrits, lesquels ne sont fournis qu'à titre d'exemples. -7- REVENDICATIONS 1. Contrôleur de bus pour un bus (7) susceptible d'être utilisé par plusieurs maîtres (3a-3g), caractérisé en ce qu'il comprend au moins deux modules (7a, 7b) dont chacun contient un arbitre (10) et un surveillant d'arbitre, la fonction de l'un au moins des surveillants d'arbitre étant de valider la sortie (GT) de l'arbitre du même module tant qu'il constate que cet arbitre fonctionne correctement et d'invalider cette sortie lorsqu'il constate que l'arbitre du même module ne fonctionne pas correctement. 2. Contrôleur de bus selon la revendication 1, caractérisé en ce que les deux arbitres sont synchronisés par une même horloge (CLK) et délivrent des autorisations d'accès au bus (GTvl, GTv2) de façon simultanée, la sortie des deux arbitres étant réunie par une porte [ou] (24) qui délivre une autorisation d'accès unique (GTv) au bus. 3. Contrôleur de bus selon la revendication 2, caractérisé en ce que chaque module (7a, 7b) comporte sa propre horloge (CLK1, CLK2) et qu'un dispositif de synchronisation (23) externe aux deux modules synchronise leurs deux horloges. 4. Contrôleur de bus selon l'une quelconque des revendications 1 à 3, caractérisé en ce que l'un (7a) des deux modules est prédominant, son surveillant remplit alors une fonction supplémentaire consistant à invalider la sortie (GTv2) de l'arbitre de l'autre module (7b) lorsqu'il valide celle de l'arbitre du même module. 5. Contrôleur de bus selon l'une quelconque des revendications 1 à 4, caractérisé en ce chaque module constitué par un arbitre et son surveillant est réalisé sous la forme d'une carte fille (7a, 7b) insérable dans et extractible d'une carte mère constituant, avec les deux cartes filles, le contrôleur de bus selon l'invention. 6. Contrôleur de bus selon l'une quelconque des revendications 1 à 5, caractérisé en ce que le signal de sortie (V) généré par un surveillant pour signaler que l'arbitre fonctionne correctement est un signal non constant, par exemple un signal carré.