Brevet FR2744265A1 — publié le 19970801

CONTRÔLEUR DE BUS ET MÉTHODE PERMETTANT L'INSERTION ET LA DÉCONNEXION SOUS TENSION DANS UN BUS SYNCHRONE CONTEXTE DE L'INVENTION La présente invention concerne un contrôleur de bus, et plus particulièrement un contrôleur de bus qui termine et redémarre un bus sans arrêter tout le système. Dans un contrôleur de bus classique pour bus asynchrone, il est connu que du bruit ou un conflit de bus survenant sur un bus asynchrone génère un signal d'insertion/déconnexion tandis que le bruit ou le conflit de bus survient. A la réception du signal d'insertion/déconnexion, le bus asynchrone est temporairement interrompu. De ce fait, un dispositif peut être inséré dans le bus ou déconnecté de celui-ci sans arrêter tout le système. Ceci est appelé "insertion et déconnexion sous tension". Dans un bus asynchrone, un signal de données disponible est utilisé pour assurer la synchronisation. Quand un contrôleur de bus génère un signal d'insertion/déconnexion, le signal de données disponible est désactivé. Cependant, dans un bus synchrone, la synchronisation des données disponibles est prédéterminée. Si un bruit ou un conflit de bus survient pendant la synchronisation prédéterminée, des données présentes sur le bus synchrone peuvent être erronées. De plus, pour un bus réalisant un arbitrage réparti, il est nécessaire de synchroniser les pointeurs d'arbitrage de tous les dispositifs lorsqu'un nouveau dispositif est inséré dans le bus. Toutefois, du fait que les pointeurs d'arbitrage ne sont pas synchronisés par le signal d'insertion/déconnexion, il est nécessaire de les synchroniser par un dispositif de diagnostic lors du redémarrage. En outre, dans un système de bus à transactions partagées dans lequel l'opération de lecture des données est séparée en deux transactions d'interrogation et de réponse du bus, puisque la correspondance entre l'interrogation et la réponse est réalisée par les contrôleurs de bus respectifs, un contrôleur de bus nouvellement inséré ne peut réaliser la correspondance s'il est inséré avant réception de la réponse. RÉSUMÉ DE L'INVENTION Étant donné le problème susdit concernant le système classique, un objet de la présente invention est de fournir un contrôleur de bus qui autorise une insertion et une déconnexion sous tension dans un bus synchrone. Dans un contrôleur de bus selon un premier aspect de la présente invention, un générateur de synchronisation génère la synchronisation d'une commande d'interruption de bus et d'une commande de redémarrage de bus devant être émise vers un bus. Un contrôleur de fonctionnement de bus commande un fonctionnement du bus basé sur l'une des commandes d'interruption de bus et de redémarrage de bus émise par ledit générateur de synchronisation. Avec la structure unique et non évidente de la présente invention, un dispositif peut être inséré dans un bus synchrone ou déconnecté de celui-ci sans arrêter tout le système. BRÈVE DESCRIPTION DES DESSINS Les objets, les caractéristiques et avantages susmentionnés ainsi que d'autres de cette invention apparaîtront plus clairement si l'on se réfère à la description détaillée ci-après de l'invention et aux dessins joints sur lesquels : la figure 1 est un schéma fonctionnel montrant la configuration d'un système informatique auquel la présente invention est appliquée ; la figure 2 est un schéma fonctionnel montrant la configuration d'un contrôleur de bus selon un mode de réalisation de la présente invention ; la figure 3 est un schéma fonctionnel montrant la configuration d'un générateur de synchronisation 130 dans le contrôleur de bus ; la figure 4 est un schéma fonctionnel montrant la configuration d'un arbitre de bus 160 dans le contrôleur de bus ; la figure 5 montre la configuration d'une table de commande de bus 140 dans le contrôleur de bus ; la figure 6 montre une vue du dispositif de connexion au bus ; la figure 7 est l'organigramme montrant le fonctionnement de l'interruption de bus ; la figure 8 est le chronogramme montrant le fonctionnement de l'interruption du bus physique ; la figure 9 est le chronogramme montrant le fonctionnement de l'interruption de bus logique ; la figure 10 est l'organigramme montrant le fonctionnement du redémarrage du bus ; et la figure 11 est le chronogramme montrant le fonctionnement du redémarrage du bus. DESCRIPTION DÉTAILLÉE DES MODES DE RÉALISATION PRÉFÉRÉS Un contrôleur de bus selon un mode de réalisation préféré de la présente invention sera décrit en détail en se référant aux dessins joints. Suivant la figure 1, un système informatique comporte des contrôleurs de bus 100 (par exemple 100-0, 100-1, 100-2, et 100-3), des dispositifs 200 (par exemple des processeurs 200-0 et 200-1, une mémoire principale 200-2, et un contrôleur d'entrées/sorties 200-3) connectés respectivement aux contrôleurs de bus 100 par l'intermédiaire des lignes de signal 210 (par exemple 210-0, 210-1, 210-2 et 210-3), un bus système 500 connecté aux contrôleurs de bus 100, une unité de diagnostic 300, et un bus de diagnostic 400. L'unité de diagnostic 300 reçoit un signal de détection d'insertion/déconnexion venant des contrôleurs de bus 100 par l'intermédiaire des lignes de signal 110 (par exemple 110-0, 110-1, 110-2, et 1103), et indique l'interruption ou le redémarrage du bus par l'intermédiaire du bus de diagnostic 400. Suivant la figure 2, le contrôleur de bus 100 comporte un détecteur de connexion 120, un générateur de synchronisation 130, une table de commande de bus 140, un contrôleur de fonctionnement de bus 150, un arbitre de bus 160, et un contrôleur d'interrogation 170. Le détecteur de connexion 120 détecte l'insertion d'un dispositif dans le bus système 500 ou la déconnexion de celui-ci. Cette information est destinée à l'unité de diagnostic 300. Le générateur de synchronisation 130 génère une synchronisation des commandes d'interruption et de redémarrage du bus devant être émises vers le bus système 500 par l'intermédiaire de la ligne de signal 512 en fonction d'un signal d'interruption de bus 410 venant de l'unité de diagnostic 300 par l'intermédiaire du bus de diagnostic 400. La table de commande de bus 140 gère la correspondance entre les interrogations et les réponses sur le bus système 500. Par l'information venant de la table de commande de bus 140, le générateur de synchronisation 130 définit si l'interrogation en cours (sans réponse) subsiste (test pas résolue). Le contrôleur de fonctionnement de bus 150 reçoit l'information sur l'état du bus par l'intermédiaire d'une ligne de signal 514. Si l'information sur l'état du bus indique une interruption du bus, le contrôleur de fonctionnement du bus 150 envoie alors un signal d'invalidation du fonctionnement du bus au contrôleur d'interrogation 170, et un signal d'effacement de pointeur d'arbitrage 159 à l'arbitre de bus 160. L'arbitre de bus 160 règle les conflits de bus sur réception d'une interrogation de bus venant d'une ligne de signal 515. Le résultat de l'arbitrage est envoyé au contrôleur d'interrogation 170 par l'intermédiaire de la ligne de signal 169. Le contrôleur d'interrogation 170 commande les interrogations et les réponses entre un dispositif 210 et le bus système 500. Si le contrôleur d'interrogation 170 ne reçoit pas le signal d'invalidation de fonctionnement du bus, le résultat de l'arbitrage venant par l'intermédiaire de la ligne de signal 169 est alors utilisé. Il y a deux méthodes pour interrompre le bus système 500. La première, appelée "interruption physique", permet d'éviter toute perturbation due au bruit généré lorsqu'un dispositif est connecté physiquement au bus système 500, ou lors de la mise sous tension ou hors tension de chaque dispositif. La seconde, appelée "interruption logique", est à utiliser lorsqutun dispositif est installé dans le système ou isolé de lui logiquement. Dans l'interruption physique, bien que le numéro d'un contrôleur de bus ne puisse être modifié, le temps nécessaire pour l'interruption est court (par exemple 500 ns). D'un autre côté, dans l'interruption logique, bien qu'un numéro d'un contrôleur de bus puisse être modifié, le temps nécessaire pour effectuer l'interruption est long (par exemple 50 ms). Suivant la figure 3, le générateur de synchronisation 130 comporte une entrée 410 qui inclut un signal d' interruption physique 411, un signal d'interruption logique 412, et un signal d'état de connexion 413. Le générateur de synchronisation 130 a également reçu l'information d'état 514 depuis le bus système et un signal vide 149 depuis la table de commande de bus 140. Le générateur de synchronisation 130 possède un indicateur de connexion 131 et un indicateur de fonctionnement 132. L'indicateur de connexion 131 indique si un dispositif correspondant est connecté au bus système 500 (par exemple "1" signifie "connecté"). L'indicateur de connexion 131 est défini par le signal d'état de connexion 413. L'indicateur de fonctionnement 132 indique si le bus système 500 est en fonction (par exemple "1" signifie "en fonction"). L'indicateur de fonctionnement 132 est positionné par l'information d'état 514. Le générateur de synchronisation 130 inclut également les portes 133, 134, 135, 136a, 136b, 137, 139a, et 139b. La porte ET 133 réalise une opération ET logique entre les signaux 514 et 149. De ce fait, le signal d'information d'état 514 est masqué si la table de commande de bus 140 n'est pas vide. Les portes OU 134 réalisent une opération OU logique entre le signal d'interruption physique 411 et le signal d 'interruption logique 412. Les portes OU 135 réalisent l'opération OU logique entre le signal d'interruption physique 411 et une sortie de la porte ET 133. La porte ET 136a réalise une opération ET logique entre l'inversion d'une sortie de la porte logique 134, l'inversion de l'indicateur de fonctionnement 132, et l'indicateur de connexion 131. La porte ET 136b réalise une opération ET logique entre la sortie de la porte 135, l'indicateur de fonctionnement 132, et l'indicateur de connexion 131. La porte ET 136a indique le temps restant avant le redémarrage du bus. La porte ET 136b indique le temps restant avant l'interruption du bus. La porte OU 137 réalise une opération OU logique entre les portes ET 136a et 136b. Le générateur de synchronisation 130 comporte également un compteur 138 pour la génération des synchronisations par les horloges de comptage. Le compteur 138 a une valeur initiale (par exemple "10 horloges") définie par la différence des temps de transfert du signal d'interruption de bus entre l'unité de diagnostic 300 et les contrôleurs de bus 100. Le compteur 138 est déclenché par une sortie -de la porte OU 137. Le compteur 138 émet un signal d'achèvement lorsqu'il atteint une valeur prédéterminée (par exemple "0"). Les portes ET 139a et 139b masquent le signal d'achèvement en fonction de la sortie de la porte OU 134. La ligne de signal 512 inclut un signal de sortie 512a venant de la porte ET 139a indiquant une commande d'interruption de bus, et un signal de sortie 512b venant de la porte ET 139b indiquant une commande d'interruption de bus. Suivant la figure 4, l'arbitre de bus 160 comporte un pointeur d'arbitrage 161, un incrémenteur 162, un registre d'interrogation 163, un déterminateur d'arbitrage 164, un registre de numéro de dispositif 165, et un comparateur 166. Le pointeur d'arbitrage 161 mémorise un numéro de dispositif ayant la plus haute priorité. Le pointeur d'arbitrage 161 est réinitialisé par le signal d'effacement de pointeur d'arbitrage 159 venant du contrôleur de fonctionnement de bus 150. Le registre d'interrogation 163 mémorise les interrogations venant du bus système 500. Le déterminateur d'arbitrage 164 effectue l'arbitrage des interrogations mémorisées dans le registre d'interrogation 163 et sélectionne une interrogation en fonction du pointeur d'arbitrage 161. Le registre des numéros de dispositifs 165 mémorise un numéro de dispositif connecté à ce contrôleur de bus 100. Le comparateur 166 détecte si l'interrogation sélectionnée appartient au dispositif connecté à ce contrôleur de bus 100. La sortie du comparateur 166 est envoyée au contrôleur d'interrogation 170 sous la forme du signal 169. L'incrémenteur 162 incrémente un numéro de dispositif sélectionné par le déterminateur-d'arbitrage 164. Par conséquent, la priorité la plus élevée est maintenue de façon dynamique (par exemple à tour de rôle). Suivant la figure 5, la table de commande de bus 140 est dotée d'une pluralité d'entrées correspondant à toutes les interrogations sur le bus système 500. Chaque entrée comporte un champ validité 141, un champ interrogation 142, un champ adresse 143, et un indicateur d'appartenance 144. Le champ validité 141 indique si l'entrée est valide. Le champ interrogation 142 indique le type d'interrogation (par exemple une interrogation de lecture, d'invalidation, de lecture et invalidation, etc.). Le champ adresse 143 indique une adresse de destination de l'interrogation. Le champ appartenance 144 indique si l'interrogation appartient à ce contrôleur de bus ("propriétaire") ou a un autre contrôleur de bus ("autre"). Chaque entrée de la table de commande de bus 140 est enregistrée lors d'une interrogation et est effacée après achèvement (par exemple réponse) de l'interrogation. S'il n'y a aucune entrée enregistrée, il indique qu'il n'y a pas d'interrogation incomplète. La figure 6 montre un projet d'une carte 600 qui inclut un dispositif 200 et un contrôleur de bus 100. La carte 600 comporte un connecteur 610 pour connexion au bus système 500 et un interrupteur 620. L'interrupteur 620 est fermé (court-circuité) quand la carte 600 est connectée au bus système 500. L'interrupteur 620 est ouvert (circuit ouvert) quand la carte 600 n'est pas connectée au bus système 500. Si l'état de l'interrupteur 620 est modifié, le détecteur de connexion 120 (fig. 2) détecte le changement (par exemple insertion ou déconnexion). Pendant la modification, du bruit peut apparaître sur le bus système 500. Le détecteur de connexion 120 détecte également la disparition du bruit. Cette dernière détection peut être réalisée par comptage d'un temps prédéterminé basé sur le résultat de mesure d'un test d'insertion/déconnexion. On décrit ci-après en se référant aux figures 1 à 11, le fonctionnement du contrôleur de bus correspondant aux modes de réalisation susmentionnés de la présente invention. La figure 7 montre les interruptions physique et logique (l'étape S702 est dédiée à l'interruption logique). La figure 8 montre l'interruption physique. La figure 9 montre l'interruption logique. Suivant les figures 7 à 9, si le signal d'interruption de bus 410 est activé (S701, C1:T2), une opération d'interruption de bus démarre alors. Si l'interruption est une interruption logique, le contrôleur d'interrogation 170 n'accepte pas de nouvelles interrogations, (Cl:T4 de la figure 9), et le générateur de synchronisation 130 attend que la table de commande de bus 140 soit vide (S702, Cn:T3 de la figure 9). Après cela, le compteur 138 du générateur de synchronisation 130 commence le décompte (S703). Si la valeur du compteur 138 atteint une valeur prédéterminée (par exemple "0"), le générateur de synchronisation 130 émet une commande d'interruption de bus vers le bus système 500 (S705, C2:T2, de la figure 8, Cn+1:T2 de la figure 9). Le fonctionnement du bus système 500 est invalidé par la commande d'interruption de bus (C2: T4 de la figure 8, Cn+l:T4 de la figure 9). L'indicateur de fonctionnement 132 est réinitialisé pour indiquer un "état de non fonctionnement". Le contrôleur de fonctionnement de bus 150 envoie le signal d'effacement du pointeur d'arbitrage 159 à l'arbitre de bus 160 (C3:To de la figure 8, Cn+2:T0 de la figure 9). Le compteur 138 est réglé à une valeur initiale (S706). Suivant les figures 10 et 11, si le signal d'interruption de bus 410 est inactivé (S801, C1:T2), une opération de redémarrage du bus commence. Le compteur 138 du générateur de synchronisation 130 commence le décompte (S802). Si la valeur du compteur 138 atteint une valeur prédéterminée (par exemple "0"), le générateur de synchronisation 130 envoie la commande de démarrage de bus au bus système 500 (S804, C2:T2). Le fonctionnement du bus système 500 est validé par la commande de démarrage de bus (C2:T4). L'indicateur de fonctionnement 132 est positionné pour indiquer "fonctionnement en cours" Le contrôleur de fonctionnement de bus 150 envoie le signal d'effacement du pointeur d'arbitrage 159 à l'arbitre de bus 160 (C3:To). Le compteur 138 est réglé à une valeur initiale (S805). Comme cela apparaît à la lecture de la description ci-dessus, concernant la présente invention, puisque le générateur de synchronisation 130 génère la synchronisation pour émettre une commande dtinterruption/démarrage de bus, la réception de données incorrectes est évitée. De plus, du fait que le contrôleur de fonctionnement de bus 150 efface le pointeur d'arbitrage 161, les pointeurs d'arbitrage 161 sont commandés de façon à ce qu'ils soient cohérents entre eux. Par ailleurs, du fait que le générateur de synchronisation 130 attende jusqu'à ce que la table de commande de bus 140 soit vide, la correspondance entre les interrogations et les réponses est conservée. Ainsi, une insertion et une déconnexion sous tension sur un bus synchrone est réalisée. Bien que la description de l'invention s'appuie sur un mode de réalisation préféré, les spécialistes dans l'art reconnaîtront que l'invention peut être pratiquée avec modification dans l'esprit et la portée des revendications annexées. REVENDICATIONS 1. Contrôleur de bus pour connexion à un bus de système informatique, caractérisé en ce outil comprend : un générateur de synchronisation (130) destiné à générer la synchronisation d'une commande d'interruption de bus et d'une commande de démarrage de bus devant être émises sur le bus ; et un contrôleur de fonctionnement de bus (150) destiné à commander un fonctionnement du bus basé sur l'une des commandes d'interruption ou de démarrage de bus émise par ledit générateur de synchronisation (130). 2. Contrôleur de bus selon la revendication 1, ledit générateur de synchronisation (130) générant les synchronisations de commande d'interruption de bus : d'une interruption physique pour un dispositif connecté au bus et mis en route puis arrêté ; et d'une interruption logique pour un dispositif installé dans le système informatique, et isolé de celui-ci. 3. Contrôleur de bus selon la revendication 1, ledit générateur de synchronisation (130) comprenant : un compteur (138) destiné à assurer la synchronisation de la commande d'interruption de bus et de la commande de démarrage du bus. 4. Contrôleur de bus selon la revendication 3, comprenant en outre : une table de commande de bus (140) destinée à gérer la correspondance entre les interrogations et les réponses sur le bus, dans lequel ledit générateur de synchronisation (130) attend le décompte dudit compteur (138) jusqu'à ce que ladite table de commande de bus (140) soit vide. 5. Contrôleur de bus selon la revendication 1, comprenant en outre : une table de commande de bus (140) destinée à gérer la correspondance entre les interrogations et les réponses sur le bus, dans lequel ledit générateur de synchronisation (130) attend que ladite table de commande de bus (140) soit vide avant d'émettre la commande d'interruption de bus. 6. Contrôleur de bus selon la revendication 5, ladite table de commande de bus (140) ayant des entrées dont chacune d'entre elles correspond à une paire constituée d'une interrogation et d'une réponse, chacune desdites entrées comprenant : un champ "validité" (141) pour indiquer si l'entrée possède une paire valide ; un champ "interrogation" (142) pour indiquer un type d'interrogation ; un champ "adresse" (143) pour indiquer une adresse de destination de l'interrogation ; et un champ "appartenance" (144) pour indiquer si l'interrogation appartient au contrôleur de bus luimême ou à un autre contrôleur de bus. 7. Contrôleur de bus selon la revendication 1 comprenant en outre : un arbitre de bus (160) pour arbitrer les interrogations du bus, ledit arbitre de bus (160) possédant : un pointeur d'arbitrage (161) pour l'identification du dispositif ayant la priorité la plus élevée dans le système informatique, dans lequel ledit contrôleur de fonctionnement de bus efface ledit pointeur d'arbitrage (161) lorsque le bus est interrompu. 8. Contrôleur de bus selon la revendication 7, ledit arbitre de bus (160) possédant en outre : une capacité de détermination de l'arbitrage pour sélection d'une interrogation du bus en fonction dudit pointeur d'arbitrage (161), et pour fournir un numéro de première identification d'un dispositif qui émet l'interrogation sélectionnée ; un registre de numéro de dispositif destiné à mémoriser un deuxième numéro d'identification d'un dispositif auquel le contrôleur de bus est connecté i et un comparateur destiné à comparer le premier et le deuxième numéro d'identification. 9. Contrôleur de bus selon la revendication 8, comprenant en outre : un contrôleur d'interrogation destiné à commander les interrogations et les réponses avec le bus, ledit contrôleur d'interrogation acceptant les interrogations et les réponses si ledit contrôleur de fonctionnement de bus (150) n'invalide pas le bus et si ledit comparateur (166) détecte une identité entre le premier et le deuxième numéro d'identification. 10. Système informatique doté d'une unité de diagnostic (300), et d'au moins une paire formée par un contrôleur de bus (100) et un dispositif, ledit contrôleur de bus (100) étant connecté à un bus système (500) et à un bus de diagnostic (400), ladite unité de diagnostic (300) étant connectée au bus de diagnostic (400), ledit contrôleur de bus (150) comprenant : un générateur de synchronisation (130) destiné à générer la synchronisation des commandes d'interruption et de démarrage de bus devant être émises vers le bus système ; et un contrôleur de fonctionnement de bus destiné à commander le fonctionnement du bus système basé sur l'une des commandes d'interruption ou de démarrage de bus émise par ledit générateur de synchronisation (130). 11. Système informatique selon la revendication 10, dans lequel ledit générateur de synchronisation (130) génère les synchronisations de commande d'interruption de bus : d'une interruption physique pour un dispositif connecté au bus et mis en route puis arrêté ; et d'une interruption logique pour un dispositif installé dans le système informatique et isolé de celui-ci. 12. Système informatique selon la revendication 10, dans lequel ledit générateur de synchronisation (130) comprend : un compteur (138) destiné à assurer la synchronisation de la commande d'interruption de bus et de la commande de démarrage du bus 13. Système informatique selon la revendication 10, dans lequel ledit contrôleur de bus (100) comprend en outre : une table de commande (140) de bus destinée à gérer la correspondance entre interrogations et réponses sur le bus système (500), dans lequel ledit générateur de synchronisation (130) attend que la table de commande de bus (140) soit vide avant d'émettre la commande d'interruption de bus. 14. Système informatique selon la revendication 10, dans lequel ledit contrôleur de bus (100) comprend en outre : un arbitre de bus (160) pour arbitrer les interrogations du bus système (500), ledit arbitre de bus (160) possédant : un pointeur d'arbitrage (161) pour l'identification du dispositif ayant la priorité la plus élevée dans le système informatique, dans lequel ledit contrôleur de fonctionnement de bus efface ledit pointeur d'arbitrage (161) lorsque le bus système (500) est interrompu. 15. Système informatique selon la revendication 14, dans lequel ledit arbitre de bus (161) comprend par ailleurs : une capacité de détermination de l'arbitrage pour sélectionner une interrogation du bus en fonction dudit pointeur d'arbitrage (161), et pour sortir un numéro de première identification d'un dispositif qui émet l'interrogation sélectionnée ; un registre de numéro de dispositif pour mémoriser un deuxième numéro d'identification d'un dispositif auquel le contrôleur de bus (100) est connecté ; et un comparateur (166) destiné à comparer le premier et le deuxième numéro d'identification. 16. Système informatique selon la revendication 15, dans lequel ledit contrôleur de bus (100) comprend en outre : un contrôleur d'interrogation pour commander les interrogations et les réponses avec le bus système (500), ledit contrôleur d'interrogation acceptant les interrogations et les réponses si ledit contrôleur de fonctionnement de bus n'invalide pas le bus système (500) et si ledit comparateur détecte une identité entre le premier et le deuxième numéro d'identification. 17. Système informatique selon la revendication 10, comprenant en outre : un détecteur de connexion pour détecter si un dispositif est inséré dans le bus système ou déconnecté de ce dernier. . 18. Procédé d'interruption de bus, comprenant les étapes suivantes consistant à : compter pour assurer une synchronisation de l'émission d'une commande d'interruption de bus ; émettre une commande d'interruption de bus ; et invalider le fonctionnement du bus. 19. Procédé d'interruption du bus selon la revendication 18, ladite étape de comptage attendant que toutes les interrogations sur le bus soient résolues avant de commencer. 20. Procédé de redémarrage du bus, comprenant les étapes suivantes consistant à : compter pour assurer une synchronisation de l'émission de la commande de redémarrage du bus, émettre la commande de redémarrage du bus ; et valider le fonctionnement du bus.