FR 2606529 A1 19880513 FR 8711738 A 19870819 La présente invention concerne les systèmes de traitement des données, et plus particulièrement les moyens pour reconfigurer un système de traitement de données lorsqu'une panne est détectée dans un microcircuit intégré. Dans les systèmes de multitraitement de l'art antérieur, il est prévu des mécanismes de gestion des défauts qui assurent la détection de l'erreur, le diagnostic, l'enregistrement et le compte-rendu de l'erreur à un niveau supérieur du système. Les ressources du système détectent la présence et l'étendue de la panne et transmettent cette information à des mécanismes de récupération. Les mécanismes de récupération sont utilisés, après détection du défaut, pour activer des composants redondants permettant de prendre en charge les opérations précédemment traitées par le composant défectueux. Un exemple d'un tel système est décrit dans les brevets suivants, tous cédés à INTEL Corporation: - US-A-4 438 494 (David Budde et al.), déposé le 25 août 1981 et intitulé "Method and Apparatus of Fault Handling in a Multiprocessing System (procédé et dispositif de gestion des défauts dans un système de multitraitement)"; - US-A-4 503 534 (David Budde et al.), délivré le 5 mars 1985 et intitulé "Apparatus for Redundant OperatiQn of Modules in a Multiprocessing System (dispositif pour le fonctionnement redondant de modules dans un système de multitraitement)"; - US-A-4 503 535 (David Budde et al.), délivré le 5 mars 1985 et intitulé "Apparatus for Recovery from Failures in a Multiprocessing System (dispositif pour la récupération après pannes dans un système de multitraitement)"; Dans ces brevets antérieurs, une réponse appropriée à des situations d'erreurs de matériel est basée sur le concept d'une zone de confinement qui divise le système d'interconnexion du processeur multiple en un certain nombre de zones. Les zones de confinement autorisent des mécanismes de détection d'erreur qui soient appropriés au traitement du type d'informations qui traversent les frontières de la zone de confinement. Il existe une zone de confinement pour chaque module et chaque bus mémoire du système. Une erreur détectée est confinée à l'un des blocs de base du système. Ceci permet à un mécanisme de récupération d'effectuer le remplacement de blocs de base du système. Les mécanismes de détection sont situés à chaque interface, de sorte que toutes les données sont vérifiées lorsqu'elles traversent l'interface comprise entre les zones de confinement. La détection d'une erreur à l'intérieur d'une zone de confinement est exécutée en dédoublant les composants, comme décrit dans le US-A-4 176 258 au nom de Daniel Jackson, délivré le 27 novembre 1979 et cédé à INTEL Corporation. Dans ce brevet Jackson, la détection des errreurs est accomplie au moyen d'un procédé par redondance connu sous le nom de vérification de redondance fonctionnelle (VRF), procédé dans lequel un composant est dédoublé et dans lequel les signaux de sortie provenant des deux composants identiques sont comparés. La vérification de redondance fonctionnelle n'est pas très efficace en tant que mécanisme de récupération, mais pour de nombreuses utilisateurs il est important de maintenir le système en fonctionnement même s'il existe un risque que les données aient perdu de leur intégrité. Pour ces utilisateurs, il est souhaitable de pouvoir reconfigurer le système de manière à le conserver en fonctionnement lorsque l'un des composants a échoué à la vérification de redondance fonctionnelle, même s'il existe une perte d'intégrité des données. A cet égard, l'un des buts de l'invention est de proposer un système de vérification à modules redondants, dans lequel un module défaillant peut être mis à l'écart du système, et le système reconfiguré de manière à fonctionner avec les modules non défaillants. Pour l'essentiel, ce but est atteint, conformément à l'invention, en dédoublant les modules du système avec un module assumant le rôle d'un maître et l'autre module assumant le rôle d'un vérificateur, de sorte que l'ensemble de ces deux modules constitue un module logique unique. Les deux modules fonctionnent en interdépendance, et à chaque étape le vérificateur s'assure qu'il a calculé les mêmes résultats qua le maître. Lorsqu'une erreur survient à la suite d'une comparaison non concordante des résultats produits par les deux modules, un bit d'erreur permanente est positionné et le module maître est sélectionné comme étant le composant actif. Lors d'une séquence d'initialisation ultérieure, les modules inversent l'état actif de sorte que le vérificateur devient le module actif lors de la seconde, de 'la quatrième, etc. initialisation, et le maître devient le module actif à la troisième, cinquième, etc. initialisation. Le composant qui constitue le vérificateur possède un bit de passivité positionné, qui l'empêche de piloter le bus du système ou les lignes de compte-rendu d'erreur. Conformément à l'un des aspects de l'invention, le bit de passivité permet au composant de répondre à un message de "communication entre agents" qui lui est adressé, de sorte qu'il est possible pour le logiciel de réunir une paire divisée de modules. D'autres caractéristiques et avantages de l'invention apparaîtront à la description ci-dessous d'un mode de réalisation préféré de la présente invention, illustré sur les dessins annexés, sur lesquels: - la figure 1 est un diagramme d'un système de multitraitement dans lequel le mécanisme vérificateur de la présente invention est mis en oeuvre, - la figure 2 est un diagramme de la logique de vérification de redondance fonctionnelle utilisée dans le composant formant unité d'expansion de bus de la figure 1, - la figure 3 est *un schéma par blocs de la logique de démarrage à froid, et - la figure 4 est un chronogramme correspondant à une séquence d'initialisation. La figure 1 est un diagramme d'un système de multitraitement dans lequel on a incorporé le mécanisme vérificateur de la présente invention. Les lignes tiretées indiquent les zones de confinement 10,12,14 de ce soussystème de calcul typique. A l'intérieur de la zone de confinement 10, il est prévu deux processeurs de données de base 16,18 reliés aux unités d'expansion de bus 20,22 par l'intermédiaire d'un bus local 17,19. La liaison de l'unité d'expansion de bus à un bus 23 de [BUO45 processeur de haut niveau est réalisé par l'intermédiaire de lignes A/D d'adresses et de données. A l'intérieur de la zone de confinement 14, il est prévu deux composants de mémoire identique 26,28 reliés à des unités de commande de mémoire 30,32 par l'intermédiaire d'un bus de mémoire 27, 29. La liaison de l'unité de commande de mémoire au bus 23 du processeur de haut niveau est réalisée par l'intermédiaire de lignes A/D d'adresses et de données. La détection des données mauvaises aux frontières de la zone de confinement est réalisée par vérification de redondance fonctionnelle. Un module (par exemple une paire processeur de données de base / unité d'expansion de bus) est dédoublé avec l'un des exemplaires 16,20 assumant le rôle du maître, tandis que l'autre exemplaire 18,22 assume le rôle du vérificateur; les deux exemplaires forment un module logique unique 10 que l'on dit "soumis à vérification de redondance fonctionnelle". Les deux exemplaires du module fontionnent en interdépendance et, à chaque étape, le vérificateur s'assure qu'il a calculé les mêmes résultats que le maître. La vérification de redondance fonctionnelle est exécutée par l'unité d'expansion de bus qui se trouve à l'interface entre le module et le bus de processeur de haut niveau auquel celui-ci est interfacé. A chaque cycle d'horloge, l'unité d'expansion de bus 22 désignée comme étant le vérificateur compare l'état des conducteurs de son bus 33 d'adresses et de données aux conducteurs correspondants de l'unité d'expansion de bus 20 désignée comme constituant le maître auquel elle est accouplée. Si une différence est détectée, il y a eu apparition d'une erreur, et le vérificateur la signale. Le fonctionnement en interdépendance des deux modules nécessite certaines précautions dans la conception des composants. La première obligation est que les composants doivent avoir un signal de remise à zéro et/ou un signal de synchronisation de communication entre agents qui soient transmis sur le bus local et permettent aux deux composants d'avoir leur états internes positionnés aux mêmes valeurs. Ensuite, tous les signaux en entrée doivent être synchrones, ou bien ces signaux en entrée doivent être synchonisés avec l'horloge du système avant d'être appliqués aux broches du composant. Enfin, pendant un fonctionnement normal, le fonctionnement des deux modules en configuration de vérification de redondance fonctionnelle doit être opéré en interdépendance. Le logiciel participe à la récupération en isolant le module défaillant et en faisant redémarrer le système sans l'ensemble défectueux. Ce procédé est peu coûteux dans la mesure o, au lieu d'utiliser des ressources dédoublées, il utilise des ressources alternées. La ressource alternée est le module au travail d'une paire soumise à vérification de redondance fonctionnelle. Lorsqu'une paire soumise à vérification de redondance fonctionnelle rencontre une erreur, le signalement d'erreur isole la paire, mais pas celui des composants qui est défectueux dans cette paire. Le logiciel de diagnostic utilise des possibilités d'auto-test et de testabilité des composants appariés de manière à déterminer lequel des modules est défectueux, puis reconfigure le système en l'éliminant. Cette opération est appelée "séparation après vérification de redondance fonctionnelle". La séparation après vérification de redondance fonctionnelle est effectuée à la réinitialisation qui suit la panne. Le matériel permet au module défectueux de la paire de se mettre au repos, et au module fonctionnel de continuer à travailler. Si, dans un composant soumis à vérification de redondance fonctionnelle, le mode "séparation après vérification de redondance fonctionnelle" est positionné sur le bus du processeur de haut niveau comme étant actif (par exemple, pour une unité d'expansion de bus), alors la prochaine initialisation à chaud va faire en sorte que l'ancien composant maitre 20 va se mettre au repos (vérificateur passif) tandis que l'ancien composant vérificateur 22 devient un maître (maître actif). Les initialisations à chaud successives vont amener les composants à échanger leurs rôles, chacun se mettant tour à tour au repos et laissant l'autre jouer le rôle du maître actif. Ceci permet au logiciel de diagnostic de sélectionner la bonne unité d'expansion de bus dans la paire (et ainsi le bon module) pour continuer à fonctionner. La possibilité de faire ceci nécessite, sur le bus du processeur de haut niveau, une ligne d'arbitrage unique pour les maîtres et les vérificateurs. Cette forme de récupération est activée après une initialisation. Elle peut être désactivée par logiciel par l'intermédiaire du bit "DESACTIVATION SEPARATION APRES V.R.F." dans le registre "CSVRF" (Commande de Séparation après Vérification de Redondance Fonctionnelle) que l'on décrira plus bas La séparation après vérification de redondance fonctionnelle survient seulement à l'occasion d'une séquence d'initialisation. De la sorte, avant que la récupération puisse commencer, il est nécessaire que le logiciel intervienne en signalant à la logique externe de gestion qu'il faut envoyer un signal d'initialisation locale. En variante, un temporisateur "chien de garde" peut se rendre compte qu'un incident système est survenu, et peut mettre en marche une séquence d'initialisation. Une séquence d'initialisation peut également être mise en marche manuellement en appuyant sur un bouton d'initialisation sur le tableau de commande du système. Lorsqu'une erreur permanente est signalée, chaque unité d'expansion de bus va positionner un bit "erreur permanente" dans un registre. Cependant, la récupération utilisant la séparation après vérification de redondance fonctionnelle n'est pas la conséquence directe d'un compte-rendu d'erreur. La séparation après vérification de redondance fonctionnelle intervient sous forme d'un élément d'une séquence d'initialisation à chaud. De la sorte, cette manière de procéder à la récupération n'est pas transparente vis à vis de l'utilisateur ou du logiciel système. En outre, du fait que la séparation après vérification de redondance fonctionnelle élimine la vérification des erreurs de redondance fonctionnelle dans le module, le logiciel de diagnostic joue un rôle dans la séquence essais-erreurs qui détermine celle des moitiés du module qui fonctionne correctement. Si le champ d'identification de confinement du compte-rendu d'erreur correspond au champ d'identification de confinement du registre d'dentification d'erreur de module ET que le bit "MARIE" du registre QMR vaut zéro, alors on positionnera le bit "MEM. ERREUR PERMANENTE" du registre CSVRF. La logique à tolérance de fautes va arrêter ce module de la même manière que pour les erreurs de module. De la sorte, le module défectueux est éliminé du système, mais il met l'unité d'expansion de bus du module défectueux dans une position lui permettant d'effectuer une séparation après vérification de redondance fonctionnelle lors de la prochaine initialisation à chaud, si cette forme de récupération est activée. La séparation après vérification de redondance fonctionnelle va survenir si: - une initialisation à chaud survient, ET - si le bit "DESACTIVATION SEPARATION APRES V.R.F." du registre CSVRF est effacé, ET - si le bit "MEM. EREUR PERMANENTE" du registre CSVRF est positionné. Si une séparation après vérification de redondance fonctionnelle intervient, on positionne alors le bit "M/V SEPARES" dans le registre CSVRF. La dernière opération qu'effectue le matériel de l'unité d'expansion de bus est de sélectionner comme composant actif soit le maître soit le vérificateur. Lorsqu'une séparation après vérification de redondance fonctionnelle survient pour la première fois, c'est le maître qui sera choisi comme composant actif. A l'initialisation à chaud suivante, les composants vont inverser l'état actif. De la sorte, le vérificateur sera actif à la seconde, quatrième, etc. initialisation, et le maître sera actif à la troisième, cinquième, etc. initialisation. L'initialisation des composants du système utilise une ligne de signal d'initialisation qui est dédoublée pour se prémunir contre les pannes des lignes d'initialisation. Le circuit intelligent local, qui se trouve sur chaque carte sous la forme d'un contrôleur de paramètres (microcontrôleur), décide si les lignes d'initialisation sont interrompues. Lors d'un démarrage à froid, le contrôleur de paramètres autorise l'initialisation des composants si l'une ou l'autre des lignes d'initialisation est activée. Cependant, pour un démarrage à chaud, le contrôleur de paramètres n'autorise l'initialisation de la carte que si l'une et l'autre des lignes d'initialisation sont activées. Ceci permet d'être sûr que, pour un démarrage à froid, le système pourra être initialisé en dépit d'une panne unique du réseau d'initialisation. Cependant, lorsque le système est en fonctionnement, on ne permet pas qu'une panne fugitive, intermittente ou permanente sur l'une des deux lignes d'initialisation ne réinitialise tout d'un coup un système en cours de fonctionnement, qui autrement ne présente pas de panne. Si une ligne d'initialisation souffre d'une panne grave, alors aucun démarrage à chaud n'est possible tant que cette panne n'est pas réparée. Dans l'intervalle, le système doit être démarré à froid manuellement. La figure 2 est un diagramme de la logique de vérification de redondance fonctionnelle, donné pour un bit unique de manière à simplifier et faciliter la compréhension de la présente invention. L'homme du métier comprendra aisément que le circuit peut être multiplié pour vérifier une pluralité de bits. Pour la fonction de séparation après vérification de redondance fonctionnelle, on utilise sur le microcircuit les signaux d'entrée suivants: BERL: erreur de bus Les lignes BERL sont utilisées pour signaler les erreurs et sont des signaux du type OU câblé. Le mécanisme de compte-rendu des erreurs est décrit plus en détail dans les brevets précités. INIT: signal d'initialisation Le signal INIT force tous les composants à se remettre à zéro et à se synchroniser. Le cycle de bus commence à la première période du signal d'horloge (CLK) du système après que le signal INIT ait été appliqué. Tous les composants reconnaissent cette situation et resteront synchronisés par la suite. BOUT: commande de sortie du bus Le signal BOUT est appliqué chaque fois qu'un composant pilote le bus du processeur de haut niveau. A/D: Ligne d'adresses / données Les lignes AD véhiculent des informations d'adresse et de données entre l'unité d'unité d'expansion de bus et le bus du processeur de haut niveau. LBUS: bus local Les conducteurs du bus local véhiculent, en direction du composant, des informations de commande et de données en provenance du processeur de données de base. Le logiciel fonctionnant dans le processeur de données de base positionne et remet à zéro les registres de commande du composant au moyen d'informations envoyées par le bus LBUS. Le microcircuit A 20 comporte une logique 41 intégrée, dont la sortie est reliée à une porte NI exclusif 42 et à l'entrée d'un étage de pilotage à trois états 44. L'étage de pilotage à trois états possède une entrée d'activation qui est reliée à une logique de commande 50. Les sorties de la porte NI exclusif 42 et de l'étage de pilotage 44 sont reliées chacune à une autre porte NI exclusif 46. Lorsqu'un signal est appliqué sur l'entrée d'activation de l'étage de pilotage, celui-ci est désactivé, de sorte qu'aucun signal ne le traverse. Un circuit de test 40,52,54,56 est prévu sur le microcircuit de manière à forcer une erreur dans les circuits de vérification de redondance fonctionnelle, pour pouvoir effectuer un contrôle. Les signaux BOUT et CLK sont combinés par une porte ET 40, de sorte que, lorsqu'un signal BOUT est appliqué, les impulsions d'horloge seront appliquées à une chaîne à décalage 52,54 qui, en réalité, fait partie intégrante du registre COM. Le registre COM se trouve dars le bloc de commande 50, et sera décrit plus bas. Les sorties de la chaîne à décalage commandent une porte ET 56 dont la sortie commande l'autre entrée de la porte NI. exclusif 42. La manière dont ces circuits vérifient la logique sera décrite plus bas. Le microcircuit B 22 est identique au microcircuit A 20. La logique 61 du microcircuit B a sa sortie reliée à une porte NI exclusif 62 et à l'entrée d'un étage de pilotage à trois états 64. L'étage de pilotage à trois états possède une entrée d'activation qui est reliée à une logique de commande 70. Les sorties de la porte NI exclusif 62 et de l'étage de pilotage 64 sont reliées chacune à une autre porte NI exclusif 66. Lorsqu'un signal est appliqué sur l'entrée d'activation de l'étage de pilotage, celui-ci est désactivé, de sorte qu'aucun signal ne le traverse. Un circuit de test, semblable à celui décrit ci-dessus à propos du microcircuit A, est prévu sur le microcircuit B de manière à forcer une erreur dans les circuits de vérification de redondance fonctionnelle, pour pouvoir effectuer un contrôle. Les signaux BOUT et CLK sont combinés par une porte ET 60, de sorte que, lorsqu'un signal BOUT est appliqué, les impulsions d'horloge seront appliquées à une chaîne à décalage 72,74 qui, en réalité, fait partie intégrante du registre COM du bloc de commande 70. Les sorties de la chaîne à décalage commandent une porte ET 76 dont la sortie commande l'autre entrée de la porte NI exclusif 62. Les registres COM, VRF et CSVRF associés aux fonctions de vérification de redondance fonctionnelle sont incorporés à l'intérieur de chacun des blocs logiques 50 et 70, et vont être décrits ci-dessous. Registre COM ("COMPOSANT") 37 31 0 _______________________________________ IssssssIccccccccccccccccccccccccccccccccI DONNEES SYSTEME I_____________ _ CHAINE A DECALAGE Le registre COM utilise un protocole série tel que les bits sont chargés par l'intermédiaire du conducteur COM qui fait partie du bus LBUS. DONNEES SYSTEME: Ce registre de 32 bits est utilisé pour des fonctions de test et de paramétrage, et a pour valeur par défaut zéro à l'initialisation. CHAINE A DECALAGE: Ces 6 bits sont cachés et font partie de la chaîne à décalage utilisée pour tester la logique de vérification de redondance fonctionnelle illustrée sur la figure 2. La chaîne à décalage 52,54 active un bit de l'interface pour effectuer un test. Ce bit est rendu défectueux de façon interne, ce qui doit résulter en une erreur après vérification de redondance fonctionnelle signalée sur le conducteur BERL de compte-rendu des erreurs après vérification de redondance fonctionnelle. La logique de gestion des défauts utilise la table de vérité illustrée ci-dessous sur le tableau I de manière à déterminer s'il existe une situation d'erreur. Si tout fonctionne normalement, l'un des conducteurs indiquera une ERREUR et l'autre indiquera OK. Toutes les autres situations indiquent qu'il y a soit une panne dans la logique de vérification de redondance fonctionnelle, soit une discordance entre le maître 20 et le vérificateur 22. Ce test ne produira aucun compte-rendu d'erreur s'il n'existe aucune situation d'erreur. TABLEAU I ______________________________________________________ I TEST A I TEST A I CONDUCTEUR I CONDUCTEUR I RESULTAT I I GAUCHE DROITE VRF DROIT I VRF GAUCHE I 1 0 0 0 ERREUR 1 0 0 1 ERREUR 1 0 1 0 OK] 1 0 1 1 ERREUR I 1 0 0 ERREUR I 1 0 1 O K I 1 1 1 1 0 ERREUR I 0 1 1 1 1 ERREUR I Pour lancer le test automatique de vérification de redondance fonctionnelle pour un composant, le logiciel doit: (1 ) inscrire dans le registre COM du composant une valeur quelconque comportant un seul bit à "1", et (2 ) positionner le bit "ACTIVATION TEST" du registre "DETECTION DE TEST" du composant. Le registre "DETECTION DE TEST" est situé dans le bloc logique 50. REGISTRE CSVRF ("COMMANDE SEPARATION APRES V.R.F. ") 4 3 2 1 0 î m M w psF Wm I M [ W I P I S I F I - 0 0 0 0 0 Valeur par défaut à l'initn I I I_ _ DESACTIVN SEPARN APRES V.R.F. II I I I I I M/V SEPARES I I III I |_____ _ PASSIF INITIALN A CHAUD I I MEM. ERREUR PERMANENTE I__________ _ ACTIVATION ECRITURE MEMOIRE ERREUR PERMANENTE "DESACTIVATION SEPARATION APRES V.R.F.": 1 = la logique de séparation après vérification de redondance fonctionnelle est désactivée. 0 = accomplir la séquence de séparation après vérification de redondance fonctionnelle à la prochaine initialisation suivant une erreur permanente dans ce module. "M/V SEPARES": 1 = la paire maître/vérificateur fonctionne comme deux composants indépendants. 0 = la vérification de redondance fonctionnelle est activée sur tous les conducteurs qui y sont soumis. "PASSIF": 1 = ce composant est passif; il ne peut pas piloter le bus du processeur de haut niveau ou les lignes de compte-rendu d'erreur. 0 = ce composant est actif et en fonctionnement normal. "INITIALISATION A CHAUD": 1 = la dernière initialisation était une initialisation à chaud. 0 = la dernière initialisation était une initialisation à froid. "MEMOIRE ERREUR PERMANENTE": 1 = ce module a signalé une erreur permanente. 0 = ce module n'a pas signalé d'erreur permanente. "ACTIVATION ECRITURE MEMOIRE ERREUR PERMANENTE": 1 = l'écriture dans le registre du bit " MEMOIRE ERREUR PERMANENTE" est autorisée. 0 = le bit " MEMOIRE ERREUR PERMANENTE" ne sera pas modifié lors d'une écriture dans le registre. REGISTRE "V.R.F." 4 3 2 1 0 ___________________________ 1 Wr I R Am IAc I Tm I M - - 0 0 0 P Valeur par défaut à l'initn lII I I I I__ ll lMAITRE II I I Il I I I _ _ l_ lBASCULE M/V I II I I_ _ _ ACCES VERIFICATEUR I I|_____ ACCES MAITRE i I_______ Bit réservé _______________Activn écritre bit réservé "MAITRE" 1 = ou bien cet agent est le maître d'une paire maître/vérificateur, ou bien il n'y a pas de paire maître/vérificateur. 0 = cet agent est le vérificateur. Si le conducteur "n COM" ("n du composant") du bus LBUS est au niveau haut au moment de l'initialisation, ce bit est alors positionné (ce composant sera un maître). Ce bit est seulement lu, et n'est jamais modifié par le matériel. "BASCULE M/V": Ce bit est à "0" par défaut. 1 = les maîtres et les vérificateurs pilotent tout à tour le bus aux limites du cycle. 0 = ce sont toujours les maîtres qui pilotent le bus. "ACCES VERIFICATEUR" et "ACCES MAITRE": Voir la description ci-dessous du registre "QMR" pour le mode d'utilisation de ces bits. REGISTRE "QMR" / 6 5 4 3 2 1 0 ______________________________ I Ap I As I S I T I Wm I M E I 0 0 0 0 - 0 0 Valeur par défaut à l'initn II I I I I II I | I lI I ___SILENCIEUX I I I I I |MARIE I I II I__ ACTIVN ECRITURE "MARIE" I I III I_______ BASCULE PRIMAIRE/FANTOME I Il __ ___ ___ FANTOME l l I_____________ ACCES FANTOME I____________ _ ACCES PRIMAIRE "SILENCIEUX": 1 = ce composant ne répondra pas à des demandes envoyées à la mémoire ou bien à la zone d'adressage du système de communication entre agents. 0 = fonctionnement normal. Par défaut, ce bit a la valeur zéro à l'initialisation. Il est nécessaire à l'unité de commande de la mémoire. Il peut être ou ne pas être utilisé pour des réparations en ligne de modules de mémoire à base d'unités d'expansion de bus. "MARIE": 1 = cette paire à vérification de redondance fonctionnelle est mariée à une autre paire. 0 = cette paire à vérification de redondance fonctionnelle n'est pas mariée. Par défaut, ce bit a la valeur zéro à l'initialisation. "ACTIVATION ECRITURE "MARIE"": 1 = une écriture dans le registre affecte le bit "MARIE". 0 = une écriture dans le registre n'affecte pas le bit "MARIE". Les états des bits de commande des deux unités d'expansion de bus dans une situation de séparation après vérification de redondance fonctionnelle sont indiqués sur le tableau II ci-dessous. TABLEAU II bit de | état létat à init létat à init. commande I d'origine I n 1,3,5 I n 2,4,6 j (registre) -------------i-------------1------------- Imaitrelvérifrlmaîtrelvérifrlmaîtrelvérifri IMAITRE - VRF 1 | 0 1 1 0 1 1 0 i composant actif I x x 1 1 1 0 1 0 1 1 BASCULE M/V-VRF x x | x 1 0 | 0 | 0 1 0 l PASSIF - VRF i 0 | 0 1 0 1 1 1 1 1 0 l ISépar. M/V-VRF 0 0 1 i 1 1 1 1 1 C'est le positionnement du bit "PASSIF" du registre CSVRF qui empêche le composant passif de piloter le bus du processeur de haut niveau ou les conducteurs de compte-rendu d'erreur. Après que le bit "PASSIF" aitété positionné, le composant passif continuera à répondre aux messages de communication entre agents qui lui sont adressés, de manière que le logiciel puisse réunir une paire séparée. Pour que la séparation après vérification de redondance fonctionnelle fonctionne, le maître et le vérificateur doivent être tous deux reliés au même jeu de ligne d'arbitrage. Ceci est nécessaire pour que soit le maître soit le vérificateur puisse agir comme unique composant actif du module. Si les lignes d'arbitrage étaient dédoublées, alors les deux lignes d'arbitrage seraient toujours différentes à la suite d'une séparation après vérification de redondance fonctionnelle, du fait que le module séparé effectuerait l'arbitrage uniquement sur l'un des deux réseaux d'arbitrage. DISTINCTION DEMARRAGE A FROID / DEMARRAGE A CHAUD En référence à la figure 3, on a représenté un schéma par blocs de la logique de démarrage à froid, qui fait la distinction entre une initialisation à froid et une initialisation à chaud. Une initialisation à froid est définie comme étant la première initialisation suivant une montée en tension de l'alimentation. La broche VREF 80 est utilisée pour détecter une telle montée en tension. Un réseau résistance/condensateur sur la broche VREF va faire monter la broche au dessus de 2,0 V au moment de la montée en tension de l'alimentation. Les valeurs du réseau sont telles qu'il maintient la broche VREF au dessus de 2,0 V jusqu'à ce que le signal INIT ait atteint sa valeur "basse" stable. Les portes d'entrée 82,84 et 86 du signal VREF sont configurées en forme de bascule de Schmitt qui détecte une tension supérieure à 2,0 V sur la borne VREF. Après que la borne INIT 81 se soit stabilisée au niveau "bas", la sortie de la bascule de Schmitt est verrouillée par la bascule RS maître 88,90, 92 et la bascule RS esclave 94,96,98,100,102. Ceci produit un signal 104 DEM/FROID qui est utilisé pour déterminer que la prochaine application du signal INIT sera traitée comme une initialisation à froid. La broche VREF doit se trouver au dessous de 2,0 V avant qu'un signal soit appliqué sur la broche INIT de sorte que, lorsque la bascule RS maître/esclave est activée par le signal INIT, elle va annuler et verrouiller en position annulée le signal DEM/FROID, de sorte que la prochaine initialisation sera traitée comme une initialisation à chaud. La première application d'un signal INIT après que la broche VREF soit descendue au dessous de 2,0 V est traitée comme un démarrage à froid. Toutes les autres initialisations seront traitées comme des démarrages à chaud. Après le front descendant de chaque impulsions INIT, le bit "INITIALISATION A CHAUD" du registre CSVRF va indiquer si l'initialisation était à chaud ou à froid. La distinction entre les initialisations à chaud et à froid est utilisée pour la commande de la logique de séparation après vérification de redondance fonctionnelle, car une séparation après vérification de redondance fonctionnelle n'est autorisée que dans le cas d'initialisations à chaud. INITIALISATION DES VALEURS PAR DEFAUT L'unité d'expansion de bus répond au signal INIT en: 1 ) forçant toutes les machines à états internes à l'état de repos, 2 ) synchronisant sa phase d'horloge à la phase d'horloge globale du système, et 3 ) chargeant ces registres avec les valeurs par défaut. On se référera à la figure 4, qui est un chronogramme des signaux au cours d'une séquence d'initialisation. Le premier front descendant de l'impulsion d'horloge du système après application du signal INIT établit la première phase du cycle de bus du processeur de haut niveau. Le front descendant du signal INIT réactive le fonctionnement d'ensemble. Le front descendant du signal INIT charge l'unité d'expansion de bus (ou un autre agent sur le bus) avec les valeurs par défaut indiquées figure 4. Ces valeurs par défaut sont les suivantes: ) L'état de la ligne n COM (n de composant) détermine si l'agent est le maître ou le vérificateur d'une paire soumise à vérification de redondance fonctionnelle; 2 ) Si les deux signaux ARB0 et ARB1 sont appliqués, on positionne alors le bit "ACTIVATION SEPARATION APRES V.R.F."; 3 ) Si les deux signaux ARB2 et ARB3 sont appliqués, on sélectionne alors le mode à demi-vitesse du bus; 4 ) Si le signal BOUT est appliqué, alors l'agent devient un composant ICE. Les lignes du bus qui ne reçoivent pas de signal donnent la valeur par défaut d'un paramètre du bus, à moins qu'une source extérieure ne leur applique une valeur au cours de l'initialisation. REVENDICATIONS 1. Un système de détection des erreurs, dans lequel deux modules essentiellement identiques (20,22) reliés à un bus commun (23) sont vérifiés en comparant entre eux les signaux de sortie (25,27) de chaque module, et dans lequel, à tout instant donné, l'un des modules est désigné comme étant un maître et l'autre module comme un vérificateur, caractérisé en ce qu'au moins l'un de ces modules comprend: - des premiers moyens (bit 0 du registre VRF) pour désigner ce module comme étant soit un maître soit un vérificateur, - des seconds moyens (bit 1 du registre VRF) pour indiquer, lorsqu'ils sont dans un premier état, qu'un module désigné comme un maître pilote de façon continue le bus et, lorsqu'ils sont dans un second état, qu'un module désigné comme un maître et un module désigné comme un vérificateur pilotent tour à tour le bus, - des troisièmes moyens (56) pour distinguer une initialisation à chaud d'une initialisation à froid, et - des quatrièmes moyens (51), reliés aux premiers, aux seconds et aux troisièmes moyens, pour faire en sorte que le module désigné comme étant un maître devienne un. vérificateur tour à tour à chaque initialisation à chaud, de sorte que ce module soit tour à tour maître et vérificateur chaque fois qu'une initialisation à chaud survient. 2. Le système de la revendication 1, dans lequel: - ledit module comprend un bit de passivité (bit 2 du registre CSVRF), - il est prévu des cinquième moyens (,4) reliés à ce bit de passivité pour empêcher le composant de piloter le bus dès lors que ce bit de passivité est positionné, et - il est prévu des moyens pour permettre à ce composant de répondre à des messages de communication qui lui sont adressés, autorisant ainsi un logiciel extérieur à réunir une paire séparée. 3. Le système de la revendication 1, dans lequel les modules maitre et vérificateur sont reliés au même jeu de lignes d'arbitrage, de sorte que soit le maitre soit le vérificateur puisse agir comme seul composant actif du module.