Brevet FR2926377A1 — publié le 20090717

Domaine de l'invention La présente invention concerne un circuit pour le traitement des défauts dans des systèmes fonctionnant en temps réel, se composant d'un système de calculateurs ayant au moins deux unités de calcul fonctionnant en redondance, permettant de diagnostiquer leurs propres défauts, et dont les signaux de sortie sont surveillés par une unité de comparaison, les unités de calcul étant reliées à une ligne de données. L'invention concerne également un procédé de traitement de défauts dans des systèmes fonctionnant en temps réel. Etat de la technique Les composants semi-conducteurs complexes tels que des microcontrôleurs deviennent de plus en plus puissants pour un même encombrement. Toutefois, cela les rend de plus en plus fragiles vis-à-vis des défauts transitoires. Les défauts transitoires sont engendrés de manière accidentelle par un rayonnement électromagnétique mais aussi par l'influence d'un rayonnement radioactif ou cosmique et de ce fait sont défauts ne sont pas prévisibles. En particulier, dans leur utilisation dans des systèmes fonctionnant en temps réel tels que par exemple des appareils de commande de véhicules automobiles, les règles de sécurité et de fiabilité sont très strictes. Pour régler la sécurité du système lorsque se produisent des erreurs transitoires dans les composants tels que les mémoires (RAM, ROM ou Flash) ou encore dans le noyau de calcul, on applique des moyens de surveillance en différents endroits de l'appareil de commande. Pour pouvoir tolérer des défauts dans des composants de mémoire tels que des mémoires RAM ou des mémoires Flash, on utilise par exemple des codes de correction d'erreur (codes ECC). Un principe connu et utilisé fréquemment pour tolérer des défauts dans le fonctionnement du processeur est celui de la conception redondante des systèmes de processeurs. Le document US-5 748 873 Al décrit un tel système. Selon ce document, en fonctionnement normal, un programme se calcule simultanément dans les deux calculateurs selon un mode de fonctionnement appelé également mode de fonctionnement � duplex �. On effectue une comparaison des signaux de sortie des processeurs. En cas de différence, l'un des processeurs mémorise son état et constate le motif de la différence. Dans le cas de défauts transitoires, le traitement du programme se poursuit en mode � duplex � de sorte que les processeurs restaurent l'état enregistré et se resynchronisent. Dans le cas d'un défaut permanent dans un processeur, celui-ci est coupé et le fonctionnement du système se poursuit sur le processeur fonctionnant sans défaut. But de l'invention La présente invention a pour but de développer un circuit et un procédé de traitement de défauts dans des systèmes fonctionnant en temps réel, permettant de traiter une diversité de défauts de circuit ou de programme, possibles, se produisant à l'intérieur de systèmes électroniques fonctionnant en temps réel sans limiter la disponibilité du système. L'avantage de l'invention est de pouvoir raccorder le circuit de construction simple, de façon externe à un système multiprocesseur ou un système à plusieurs noyaux. Cela permet de poursuivre le fonctionnement du système dans les cas dans lesquels le diagnostic d'erreur propre des processeurs n'est pas fiable. De plus, il est également possible de poursuivre le fonctionnement dans des situations avec des défauts transitoires dans lesquels on ne peut identifier parmi les processeurs à diagnostic d'erreurs propres, celui dans lequel une erreur ou un défaut s'est produit. Le circuit de surveillance simple distingue les défauts transitoires et les défauts permanents et le fonctionnement du système peut toujours se poursuivre. Un arrêt du système d'ensemble se fait uniquement lorsqu'on constate des défauts permanents dans toutes les unités de calcul. Selon l'invention, l'unité de comparaison est associée à une unité de surveillance reliée à chaque unité de calcul par une ligne de signal ; chaque unité de calcul qui effectue un diagnostic de défaut propre, signale le résultat du diagnostic de défaut propre à l'unité de surveillance qui active les lignes de signaux en fonction de ce résultat. L'interface de l'unité de surveillance et les parties restantes du système se limite ainsi à un minimum et peut être particulièrement dépouillée. De façon avantageuse, l'unité de comparaison est reliée à l'unité de surveillance par une ligne de signal de défaut qui à la réception d'un signal de défaut déclenche une horloge ; les unités de calcul effectuent le diagnostic propre de défaut pendant une durée prédéfinie par l'horloge et les résultats du diagnostic de défaut sont transmis par la ligne de données à l'unité de surveillance. L'utilisation d'une horloge limite le temps pendant lequel il est possible de faire un diagnostic d'erreur propre. Si aucun résultat n'apparait pendant le temps prédéfini par l'horloge, on conclut qu'il y a un défaut dans le diagnostic de défaut propre. La liaison de l'unité de surveillance à la ligne de données, qui existe dans tout système fonctionnant en temps réel, pour communiquer entre les unités de calcul et l'unité de surveillance permet d'éviter des lignes de données supplémentaires entre les unités de calcul et l'unité de surveillance. Comme lignes de transmission de données, on utilise usuellement un système de bus ou un système � Crossbar �. Pour pouvoir constater de manière précise les défauts permanents, l'unité de surveillance comporte un compteur de défaut limité à une valeur maximale. Le compteur de défaut compte tout message de défaut. Lorsqu'on atteint la valeur maximale par la répétition permanente du signal de défaut, on suppose que l'on est en présence d'un défaut permanent. Si une unité de calcul est défectueuse, il faut que l'autre unité de calcul soit informée qu'elle continue de travailler seule. Pour cela, l'unité de surveillance est reliée par une ligne d'informations à l'unité de comparaison et aux deux unités de calcul. En variante, il est toutefois également possible que l'unité de surveillance ne soit reliée par la ligne d'informations qu'à l'unité de comparaison à partir de laquelle une ligne de répartition d'informations conduit respectivement à chaque unité de calcul. Les unités de calcul sont ainsi informées par l'unité de comparaison qui indique quelle unité de calcul poursuit son travail. Si la ligne de signal est une ligne de commutation l'unité de calcul peut être coupée par un signal transmis par l'unité de surveillance par la ligne de commutation. Des moyens de construction simples permettent ainsi de relier l'unité de surveillance à l'unité de calcul pour arriver au résultat souhaité. Si dans le cas d'un traitement séquentiel des diagnostics de défauts propres par les unités de calcul, une seule unité de calcul doit travailler mais que l'autre ne doit pas être coupée, la ligne de signal est une ligne de maintien et un signal de l'unité de surveillance passant par cette ligne de maintien retient l'unité de calcul. Selon un autre développement de l'invention, permettant de traiter les défauts de circuit et de programme qui se produisent dans des systèmes électroniques fonctionnant en temps réel, sans limiter la disponibilité du système, lorsqu'on constate un défaut dans les signaux de sortie des unités de calcul, on déclenche un signal de défaut qui démarre le temps de fonctionnement d'une horloge et les diagnostics d'erreur propre des unités de calcul ; en fonction des résultats des diagnostics d'erreur propre des unités de calcul, on déclenche des signaux de traitement d'erreur. Il importe peu dans cette procédure qu'il s'agisse d'erreurs ou de défauts de circuit ou de programme. Il n'est pas nécessaire d'avoir une spécification détaillée des différentes erreurs dans le traitement d'erreur ainsi proposé. Pour déterminer l'état des unités de calcul avant le traitement des erreurs, on découple les deux unités de calcul pour le diagnostic des erreurs propres et chaque unité de calcul mémorise son état avant le diagnostic d'erreur propre. En l'absence de résultat du diagnostic d'erreur propre pendant le temps de fonctionnement de l'horloge, on coupe les deux unités de calcul. On suppose dans ce cas que les deux unités de calcul sont entachées d'erreurs ou que le diagnostic d'erreur propre est défectueux. Si les résultats des diagnostics d'erreur propre des deux unités de calcul arrivent au cours du temps de fonctionnement de l'horloge, on effectue un contrôle de plausibilité de ces résultats. En contrôlant la plausibilité, on distingue différents cas. En cas d'envoi d'un résultat correct des diagnostics d'erreur propre par la première et par la seconde unité de calcul, les deux unités de calcul poursuivent leur fonctionnement. Dans ce cas, on suppose que les deux unités de calcul fonctionnent sans erreur. Avant de poursuivre le fonctionnement on synchronise les unités de calcul ce qui est nécessaire pour un fonctionnement redondant. Selon un procédé particulièrement simple, on démarre la synchronisation lorsque dans une période prédéfinie, il n'y a ni signal de coupure ni signal de maintien. Selon un développement de l'invention, si la première unité de calcul transmet un résultat correct du diagnostic d'erreur propre, et la seconde unité de calcul un résultat défectueux ou aucun résultat, alors la première unité de calcul poursuit son fonctionnement et la seconde unité de calcul est coupée. Cela garantit la poursuite du travail du système. En cas de transmission de résultats non corrects du diagnostic d'erreur propre à la fois par la première unité de calcul et par la seconde unité de calcul, les deux unités de calcul sont coupées car il faut alors supposer que les deux unités de calcul sont défectueuses ou que les diagnostics d'erreur propre n'ont pas été exécutés correctement. Selon un développement, après la détection d'une erreur par l'unité de comparaison, on augmente le compteur d'erreur si les diagnostics d'erreur propre des deux unités de calcul n'ont pas décelé d'erreur. Lorsqu'on atteint une valeur maximale du compteur d'erreur, les deux unités de calcul sont arrêtées par l'unité de surveillance car on suppose alors l'existence d'une erreur permanente. En cas de dépassement de la valeur maximale du compteur d'erreur, vers le bas, les deux unités de calcul poursuivent leur fonctionnement car on suppose qu'il n'y a eu qu'une seule erreur transitoire occasionnée par des perturbations électromagnétiques ou par un rayonnement cosmique ou un rayonnement radioactif. Dessins La présente invention sera décrite ci-après selon différents modes de réalisation représentés dans les dessins annexés dans lesquels : - la figure 1 montre une unité à deux processeurs , - la figure 2 montre un premier exemple de réalisation du circuit selon l'invention, - la figure 3 montre un second exemple de réalisation du circuit selon l'invention, - la figure 4 montre un premier exemple de réalisation du procédé selon l'invention, - la figure 5 montre un second exemple de réalisation du procédé selon l'invention, - la figure 6 montre le fonctionnement du compteur d'erreur, et - la figure 7 montre le chronogramme du procédé pour un appareil de commande d'un véhicule automobile. Description de modes de réalisation de l'invention La figure 1 montre deux unités de calcul 1 et 2 reliées toutes les deux à une unité de comparaison 3 et à un bus de données 4. Dans le présent exemple, le bus de données relie les unités de calcul 1 et 2, une mémoire principale 5, une mémoire flash 6 et les périphériques 7 les uns avec les autres. Les processeurs 1 et 2 et l'unité de comparaison 3 sont regroupés dans une unité 8 à deux processeurs. Dans un certain mode dit � mode de verrouillage �, les deux unités de calcul 1, 2 calculent de façon redondante. Leurs signaux de sortie sont transmis à l'unité de comparaison 3 qui compare ces signaux de sortie. En fonctionnement normal, les deux unités de calcul 1, 2 reçoivent les données et les indications requises du processeur 1 par le bus de données 4. Chaque unité de calcul 1, 2 possède une capacité de diagnostic de ses propres erreurs. L'unité de calcul 1 a une capacité de diagnostic de ses propres erreurs 9 ; l'unité de calcul 2 a une capacité de détection de ses propres erreurs 10. Les capacités ou possibilités de diagnostic des propres erreurs 9, 10 fournissent à la fin du diagnostic d'erreur propre, une signature indiquant si l'unité de calcul 1 ou l'unité de calcul 2 fonctionne correctement ou a un fonctionnement défectueux. Comme il apparaît à la figure 2, l'unité 8 à deux processeurs décrite ci-dessus et est reliée à une unité de surveillance 11. Cette unité de surveillance 11 comporte une horloge 12 et un compteur d'erreur 13. L'horloge 12 et le compteur d'erreur 13 peuvent également être réalisés sous la forme d'unités externes à l'unité de surveillance 11. Dans ce qui suit on supposera que l'horloge 12 et le compteur d'erreur 13 font partie de l'unité de surveillance 11. L'unité de surveillance 11 est également reliée au bus de données 4. Une ligne d'affichage d'erreurs 14 relie l'unité de comparaison 3 de l'unité 8 à deux processeurs à l'installation de surveillance 11. Il y a une liaison directe entre l'unité de surveillance 11 et les unités de calcul 1 et 2 de l'unité 8 à deux processeurs. L'unité de calcul 1 est reliée à l'unité de surveillance 11 par la ligne 15 ; l'unité de calcul 2 est reliée à l'unité de surveillance 11 par la ligne 16. Le cas échéant, les lignes 15, 16 transmettent deux signaux différents de l'unité de surveillance 11 aux unités de calcul 1, 2. Ces signaux peuvent être soit des signaux de coupure soit des signaux de maintien. Dans un autre mode de réalisation, on peut envoyer à la fois des signaux de coupure et des signaux de maintien par les lignes 15, 16. Il est également possible de transmettre chaque signal de coupure et chaque signal de maintien par une ligne propre de l'unité de surveillance 11 à l'unité de calcul 1 ou 2. A la figure 2, on a une autre liaison par une ligne 17 reliant directement l'unité de surveillance 11 aux unités de calcul 1, 2 et à l'unité de comparaison 3. Cette ligne 17 permet à l'unité e surveillance d'informer les unités de calcul 1 et 2 ainsi que l'unité de comparaison 3 que seulement l'une des unités de calcul 1 et 2 fonctionne. Un signal de � mode unique � est ainsi émis par l'unité de surveillance 11. Une autre possibilité d'informer les unités de calcul 1, 2 et l'unité de comparaison 3 que seulement une unité de calcul travaille, est représentée à la figure 3. Une ligne 18 relie l'unité de surveillance 11 à l'unité de comparaison 3. L'unité de comparaison 3 est elle-même reliée par la ligne 18a à l'unité de calcul 1 et par la ligne 18b à l'unité de calcul 2. Ces lignes, permettent à l'unité de comparaison de transmettre les signaux de � mode unique � de l'unité de surveillance 11 aux unités de calcul 1, 2. L'unité de surveillance 11 est activée par un signal d'erreur transmis par l'unité de comparaison 3 par la ligne 14 lorsque par comparaison des signaux de sortie des deux unités de calcul 1 et 2 elle a constaté que ces signaux de sortie ne se correspondent pas. Si l'unité de surveillance 11 est activée, elle démarre l'horloge 12. L'unité de surveillance 11 attend alors les résultats du diagnostic d'erreur propre des unités de calcul 1 et 2 envoyant ces résultats par le bus de données 4. A partir des résultats des diagnostics d'erreur propre des unités de calcul 1 et 2, l'unité de surveillance 11 peut assurer la coordination des activités suivantes : En déclenchant et transmettant un signal par la ligne 15 ou la ligne 16, on coupe l'unité de calcul 2, 1 correspondante. En coupant seulement l'unité de calcul 1, le signal � mode unique � est déclenché par la ligne 17 ou la ligne 18 pour informer l'unité de calcul, qui continue de fonctionner, de ce qu'elle est seule à continuer de fonctionner. Lorsqu'on arrive dans cet état, on peut neutraliser l'unité de comparaison 3. En coupant les deux unités de calcul 1 et 2 par les lignes 15 et 16, on coupe le système. Les figures 4 et 5 illustrent à titre d'exemple le déroulement du traitement d'erreur à l'aide de l'unité de surveillance 11. Dans chaque colonne propre composée de plusieurs blocs, on a représenté dans l'ordre chronologique en partant du haut vers le bas, les différentes phases de fonctionnement des deux unités de calcul 1 et 2 et de l'unité de surveillance 11. Les flèches horizontales représentent les signaux émis à un instant correspondant. Selon la figure 4, l'unité de calcul 1 fonctionne en mode normal dans le bloc 20 et l'unité de calcul 2 fonctionne en mode normal dans le bloc 3. A la réception d'un signal de défaut 40 provenant de l'unité de comparaison 3, l'unité de surveillance 11 démarre l'horloge interne 12 dans le bloc 50. Les unités de calcul 1 et 2 lancent leur diagnostic d'erreurs propre avec le temps de fonctionnement de l'horloge 12. L'unité de calcul 1 effectue son diagnostic d'erreur propre dans le bloc 21 et l'unité de calcul 2 effectue son diagnostic d'erreur propre dans le bloc 31. Dans le bloc 51, l'unité de surveillance 11 attend les résultats des diagnostics d'erreur propre qui lui sont envoyés par le bus de données 4. L'unité de calcul 1 signale par le signal 41 à l'intérieur du temps de fonctionnement prédéfini de l'horloge 12, après exécution de son diagnostic d'erreur propre, un résultat correct à l'unité de calcul 1 et cherche dans le bloc 22 une synchronisation avec l'unité de calcul 2. L'unité de calcul 2 envoie après exécution de son diagnostic d'erreur propre, un résultat erroné par le signal 42. L'unité de surveillance 11 réagit dans le bloc 52 lorsqu'elle a reçu un signal des deux unités de calcul 1 et 2 certes à des instants différents mais pendant le temps de fonctionnement de l'horloge. L'unité de surveillance exploite les résultats des deux unités de calcul 1 et 2 dans le bloc 53 et constate que l'unité de calcul 1 a signalé un résultat correct et que l'unité de calcul 2 a signalé un résultat erroné. En conséquence, l'unité de surveillance 11 coupe l'unité de calcul 2 par le signal 43. La tentative de synchronisation que l'unité de calcul 2 voulait démarrer avec l'unité de calcul 1 dans le bloc 32 est également arrêtée par le signal 43. L'unité de calcul 1 reçoit par le signal 44 de l'unité de surveillance 11, l'information que l'unité de calcul 2 ne fonctionne plus. La tentative de synchronisation avec l'unité de calcul 2 que l'unité de calcul 1 avait démarré dans le bloc 22 est arrêtée et l'unité de calcul 1 continue de fonctionner seule dans le bloc 23. On aurait une procédure comparable si à la place du résultat erroné, l'unité de calcul 2 n'avait envoyé aucun signal 42. L'unité de surveillance 11 attend dans le bloc 51 la fin du temps de fonctionnement de l'horloge 12. Si pendant ce temps, elle ne reçoit aucun signal 42 de l'unité de calcul 2, elle suppose que l'unité de calcul 2 est défaillante ou que le diagnostic d'erreur propre ne fonctionne pas correctement. Dans ce cas également, l'unité de surveillance 11 enverrait le signal d'arrêt 43 à l'unité de calcul 2. Dans ce cas l'unité de calcul 1 est également informée par le signal 44 que le système continue en mode de fonctionnement limité, sans l'unité de calcul 2. Dans un autre exemple représenté à la figure 5, les unités de calcul 1 et 2 fonctionnent tout d'abord toutes les deux en mode de fonctionnement normal. L'unité de calcul 1 le fait dans le bloc 24 et l'unité de calcul 2 dans le bloc 33. Après réception du signal d'erreur 40 de l'unité de comparaison 3, l'unité de surveillance 11 démarre de nouveau l'horloge 12 (bloc 50) et attend le résultat du diagnostic d'erreur propre de l'unité de calcul 1 et de l'unité de calcul 2 dans le bloc 51 pendant le temps de fonctionnement de l'horloge 12. Les deux unités de calcul 1 et 2 démarrent en même temps leur diagnostic d'erreur propre ; l'unité de calcul 1 le fait dans le bloc 25 et l'unité de calcul 2 le fait dans le bloc 34. A la fin de son diagnostic d'erreur propre, l'unité de calcul 1 envoie par le signal 41 son résultat correct à l'unité de surveillance 11. L'unité de calcul 2 signale également après avoir exécuté son diagnostic d'erreur propre dans le bloc 34, par le signal 45 un résultat correct à l'unité de surveillance 11. Les deux signaux arrivent certes à des instants différents dans l'unité de surveillance 11 mais pendant le temps de fonctionnement de l'horloge. Dans le bloc 52, l'unité de surveillance 11 constate qu'elle a reçu un résultat des deux unités de calcul 1 et 2. L'exploitation dans le bloc 53 montre que les deux résultats sont corrects. En conséquence, l'unité de surveillance 11 n'envoie aucun autre signal. L'unité de calcul 1 démarre dans le bloc 26, la synchronisation avec l'unité de calcul 2 pendant que l'unité de calcul 1 démarre également dans le bloc 35 la tentative de synchronisation avec l'unité de calcul 1. Comme l'unité de surveillance 11 n'envoie aucun autre signal, la synchronisation réussit. Ensuite, l'unité de calcul 1 fonctionne de nouveau en mode de fonctionnement normal dans le bloc 27 tout Il comme l'unité de calcul 2 fonctionne de nouveau en mode de fonctionnement normal dans le bloc 36. Chaque message d'erreur de l'unité de comparaison 3 est enregistré de façon interne dans le compteur d'erreur 13 ce qui sera décrit en relation avec la figure 6. Le compteur d'erreur 13 est nécessaire car en général les diagnostics d'erreur propre n'ont pas de rapport de reconnaissance de cent pour cent pour les erreurs permanentes. L'unité de comparaison 3 fournit certes un signal d'erreur mais les diagnostics d'erreur propre qui io font suite ne reconnaissent pas l'erreur. Il en résulte que les deux unités de calcul 1 et 2 envoient un résultat correct à l'unité de surveillance 11. L'unité de surveillance 11 supposerait de façon erronée que l'on est en présence d'une erreur transitoire et remettrait les deux unités de calcul 1 et 2 en mode de fonctionnement normal (mode de 15 verrouillage). Mais comme on est en présence d'une erreur permanente, l'unité de comparaison 3 signalerait de nouveau, immédiatement, une erreur ce qui conduirait à un fonctionnement en boucle. Le compteur interne d'erreur 13 de l'unité de surveillance 11 est activé lorsque les unités de calcul 1 et 2 travaillent en mode de 20 fonctionnement normal et que des résultats corrects des diagnostics d'erreur propre ont été signalés pendant le temps de fonctionnement de l'horloge (bloc 60). Dans le bloc 61, on demande si l'unité de comparaison 3 a émis un message d'erreur. Si ce message d'erreur a été émis, dans le bloc 62 on demande si l'état de comptage (n) du compteur 25 d'erreur a atteint une valeur maximale définie M. Si cela est le cas, le système est arrêté dans le bloc 63 car une erreur permanente a été décelée. Si l'état de comptage (n) est plus petit que la valeur maximale M, on augmente l'état de comptage (n) d'une unité dans le bloc 64 et ensuite, on revient en mode de fonctionnement normal dans le bloc 60. 30 Si le contrôle dans le bloc 61 a montré que l'unité de comparaison n'a signalé aucune erreur, alors dans le bloc 65 on demande si l'état de comptage (n) est supérieur à zéro. Si cela est le cas, et si en fonctionnement normal une durée tl au cours de laquelle aucune erreur n'a été signalée est supérieure a une durée maximale 35 tMax, on diminue l'état de comptage (n) d'une unité et on met à zéro la durée tl (bloc 66). Ensuite, dans le bloc 60 on revient en mode de fonctionnement normal du compteur d'erreur. Si dans le bloc 65 on a constaté que l'état de comptage (n) était égal à zéro et que la durée t~ était inférieure à tMax, on revient immédiatement en mode de fonctionnement normal du compteur d'erreur dans le bloc 60. Le fonctionnement du procédé présenté sera décrit à l'aide de la figure 7 dans le cas de l'exemple d'une architecture de contrôleur maître. Dans le bloc 701, les unités de calcul 1 et 2 travaillent en mode de fonctionnement normal de sorte qu'il n'y a pas de perturbation du système ; cela signifie que l'unité de calcul 1 est le processeur � maître � alors que l'unité de calcul 2 fonctionne comme processeur � de contrôle �. Seule l'unité de calcul 1 communique alors avec le bus de données 4. L'unité de calcul 2 reçoit toutes les données nécessaires de l'unité de calcul 1. Dans le bloc 702, l'unité de comparaison 3 constate en comparant les signaux de sortie fournis pendant le fonctionnement normal par les deux unités de calcul 1 et 2, que ces signaux de sortie ne se correspondent pas, et signale une erreur à l'unité de surveillance 11 en envoyant par la ligne d'erreur 14 un signal � d'erreur de comparaison �. L'unité de surveillance 11 démarre alors dans le bloc 703 son horloge 12 pendant une durée prédéfinie T et attend au cours de cette durée, les résultats des diagnostics d'erreur propre des deux unités de calcul 1 et 2. Il est prévu la possibilité de séparer les deux unités de calcul 1 et 2 pour le diagnostic d'erreur propre, d'autres modes de réalisation sont possibles en relation avec un diagnostic adapté d'erreur propre. Ainsi, l'unité de calcul 2 peut alors également recevoir des données par le bus de données (bloc 704). Une demande d'interruption est émise. Les deux unités de calcul 1 et 2 travaillent alors indépendamment l'une de l'autre et reçoivent immédiatement leurs ordres par des liaisons de bus séparées. Elles peuvent ainsi exécuter des séquences d'ordre différentes. Du fait de la demande d'interruption dans le bloc 705, le processeur 1 exécute une interruption et démarre une routine de service d'interruption. En même temps son état peut être mémorisé dans la mémoire principale 5. L'unité de calcul 1 exécute ensuite son diagnostic d'erreur propre dans le bloc 706. Le résultat de ce diagnostic d'erreur propre est envoyé par l'unité de calcul 1 dans le bloc 707 à l'unité de surveillance 11 qui attend ce résultat dans le bloc 703. En parallèle à l'unité de calcul 1, l'unité de calcul 2 effectue une procédure comparable. Dans le bloc 708, on exécute une interruption et on démarre également une routine de service d'interruption. De plus, l'état actuel de l'unité de calcul 2 est mémorisé dans la mémoire principale. Ensuite, dans le bloc 709 on exécute le diagnostic d'erreur propre ; l'unité de calcul 2 envoie le résultat du diagnostic d'erreur propre à l'unité de surveillance 11 (bloc 710) qui attend le résultat dans le bloc 703. Dans le bloc 711, l'unité de calcul 1 et l'unité de calcul 2 cherchent à se synchroniser. Si cette synchronisation a réussi, le système revient au mode de fonctionnement normal dans le bloc 701. Après que l'unité de surveillance 11 ait reçu dans le bloc 703 les résultats des diagnostics d'erreur propre des unités de calcul 1 et 2, on exploite les résultats fournis par les deux unités de calcul 1 et 2. Dans le bloc 712, on vérifie si l'unité de calcul 1 a fourni un résultat correct dans la durée T prédéfinie par l'horloge. Si cela est le cas, on détermine dans le bloc 713 si l'unité de calcul 2 a fourni un résultat correct dans la durée prédéfinie T. Si ce résultat est également satisfaisant, les deux unités de calcul 1 et 2 poursuivent leur fonctionnement dans le bloc 714. Les deux unités de calcul 1 et 2 sont alors synchronisées dans le bloc 711. Si dans le bloc 713 on constate que l'unité de calcul 2 n'a pas fourni de résultat correct pendant la durée prédéfinie T, l'unité de calcul 2 est arrêtée dans le bloc 715. Cela signifie que l'unité de surveillance 11 envoie à l'unité de calcul 2 un signal d'arrêt pour commander son arrêt, par la ligne 16 et a l'unité de calcul 1 un signal de � mode simple � par la ligne 17 pour l'informer qu'elle continue seule à fonctionner. Dans le bloc 716, l'unité de calcul 1 poursuit seule son fonctionnement. Si dans le bloc 712, on a constaté que l'unité de calcul 1 n'a pas fourni de résultat correct à l'unité de surveillance 11 pendant la durée prédéfinie T, dans le bloc 717 on demande si l'unité de calcul 2 a fourni un résultat correct pendant la durée souhaitée T. Si cela est le cas, on arrête l'unité de calcul 1 (bloc 718) par l'envoi par l'unité de surveillance 11 d'un signal d'arrêt à l'unité de calcul 1 par la ligne 15. L'unité de calcul 2 reçoit par la ligne 17 le signal de � mode simple �. L'unité de calcul 2 poursuit seule son fonctionnement dans le bloc 719. Si dans le bloc 717 on a constaté que l'unité de calcul 2 n'a pas non plus fourni de résultat correct pendant la durée prédéfinie T, on arrête tout le système dans le bloc 720 par l'envoi par l'unité de surveillance 11 d'un signal d'arrêt, par la ligne 15, à l'unité de calcul 1 et d'un signal d'arrêt par la ligne 16 à l'unité de calcul 2. Selon une variante de réalisation, le diagnostic d'erreur propre des deux unités de calcul 1 et 2 n'est pas effectué simultanément mais de manière successive, séquentiellement. Dans ce cas, l'unité de surveillance 11 doit pouvoir arrêter de façon correspondante les unités de calcul 1 et 2. Un signal de maintien que l'unité de surveillance 11 envoie à l'unité de calcul 2 par la ligne 16, permet d'arrêter cette unité de calcul. L'unité de calcul 1 démarre son diagnostic d'erreur propre. Après que l'unité de calcul 1 ait signalé le résultat de son diagnostic d'erreur propre sous la forme d'une signature à l'unité de surveillance 11, un signal de maintien correspondant, fourni à l'unité de calcul 1 par l'unité de surveillance 11 par la ligne 15 permet d'arrêter cette unité de calcul alors que l'unité de calcul 2 continue de fonctionner. L'unité de calcul 2 effectue alors son diagnostic d'erreur propre et transmet son résultat également sous la forme d'une signature à l'unité de surveillance 11. Après que les deux unités de calcul 1 et 2 aient envoyé un résultat correct, le signal de maintien est neutralisé et les deux unités de calcul 1 et 2 peuvent continuer de fonctionner normalement. Si une unité de calcul a fourni un résultat erroné ou n'a pas fourni de résultat à l'intérieur de la durée fixée, l'unité de calcul correspondante est retenue de façon permanente ou sera arrêtée. Le diagnostic d'erreur propre peut être réalisé sous forme de circuits ou par des programmes. Si le diagnostic d'erreur propre est réalisé sous forme de circuits (capacité de diagnostic d'erreur propre 9 ou 10) alors le traitement du programme sera neutralisé pendant le diagnostic d'erreur propre de l'unité de calcul. Le diagnostic d'erreur propre est alors réalisé sous la forme d'un test intégré (BIST). Si le diagnostic d'erreur propre est constitué de programmes, le traitement des programmes n'est pas arrêté pendant le diagnostic d'erreur propre. Si le diagnostic d'erreur propre se fait dans un programme, il est possible que le processeur défectueux perturbe le diagnostic d'erreur propre de l'autre processeur au cours de son diagnostic d'erreur propre par des accès erronés à la mémoire ou à un périphérique. Pour éviter cette situation, la capacité de diagnostic d'erreur propre 9, 10 peut se composer d'une unité de protection de mémoire, étendue avec un circuit particulier. Le circuit particulier garantit l'activation d'une configuration définie de façon préalable de l'unité de protection de mémoire par l'unité de surveillance 11 dès que le signal d'erreur atteint l'unité de comparaison. Cette configuration interdit à une unité de calcul d'accéder à une ou plusieurs zones de mémoire de l'autre unité de calcul respective de façon à pouvoir modifier son état. A la fois pour le diagnostic d'erreur propre en mode séquentiel ou en mode parallèle, il est garanti que les calculs d'une unité de calcul potentiellement entachée d'erreurs ne faussent pas les résultats du diagnostic d'erreur propre enregistrés dans la mémoire de l'autre unité de calcul ou n'entraînent pas des falsifications d'autres données du système enregistrées dans la mémoire. Le procédé n'a été décrit que pour deux unités de calcul, mais pourrait s'étendre de façon analogue ou sans difficulté à des systèmes comprenant plus de deux unités de calcul comme des systèmes de processeurs à plusieurs noyaux de calculateurs. REVENDICATIONS 1 °) Circuit pour le traitement des défauts dans des systèmes fonctionnant en temps réel, se composant d'un système de calculateurs ayant au moins deux unités de calcul fonctionnant en redondance, permettant de diagnostiquer leurs propres défauts, et dont les signaux de sortie sont surveillés par une unité de comparaison, les unités de calcul étant reliées à une ligne de données, caractérisé en ce que l'unité de comparaison (3) est reliée à une unité de surveillance (11), l'unité de surveillance (11) est reliée à chaque unité de calcul (1, 2) par une ligne de signaux (15, 16), et chaque unité de calcul (1, 2) effectuant un diagnostic de ses propres défauts, signale un résultat du diagnostic de défaut propre à l'unité de surveillance (11), et l'unité de surveillance (11) active les lignes de signaux (15, 16) en fonction de ces résultats. 2°) Circuit selon la revendication 1, caractérisé en ce que l'unité de comparaison (3) est reliée par une ligne de signaux de défauts (14) à l'unité de surveillance (11) qui lorsqu'elle reçoit un signal de défaut démarre une horloge (12), et les unités de calcul (1, 2) exécutent le diagnostic de défauts propres pendant une durée prédéfinie par l'horloge (12), et transmettent les résultats du diagnostic de défauts propres à l'unité de surveillance (11) par la ligne de données (4). 3°) Circuit selon la revendication 1 ou 2, caractérisé en ce que l'unité de surveillance (11) comporte un compteur de défauts (13) limité à une valeur maximale. 4°) Circuit selon la revendication 1, caractérisé en ce que l'unité de surveillance (11) est reliée par une ligne d'informations (17) à l'unité de comparaison (3) et aux deux unités de calcul (1, 2).5°) Circuit selon l'une des revendications 1 à 3, caractérisé en ce que l'unité de surveillance (11) est reliée à l'unité de comparaison (3) par la ligne d'informations (18) et une ligne de distribution d'informations (18a, 18b) respective relie l'unité de comparaison (3) à chaque unité de calcul (1, 2). 6°) Circuit selon la revendication 1, caractérisé en ce que la ligne de signal (15, 16) est une ligne de commutation et un signal de l'unité de surveillance (11) transmis par la ligne de commutation peut couper l'unité de calcul (1, 2). 7°) Circuit selon la revendication 1, caractérisé en ce que la ligne de signal (15, 16) est une ligne de maintien et un signal transmis par l'unité de surveillance (11) par la ligne de maintien retient l'unité de calcul (1, 2). 8°) Procédé de traitement de défauts dans un système fonctionnant en temps réel ayant au moins deux unités de calcul, les deux unités de calcul fonctionnant de manière redondante et leurs signaux de sortie étant soumis à une comparaison, chaque unité de calcul pouvant exécuter un diagnostic d'erreur propre , caractérisé en ce que lorsque l'on constate un défaut dans les signaux de sortie des unités de calculateurs, on déclenche un signal de défaut qui démarre le temps de fonctionnement d'une horloge et les diagnostics de reconnaissance de défauts propres des unités de calcul, et en fonction des résultats des diagnostics d'erreur propre des unités de calcul, on déclenche des signaux de traitement de défauts. 9°) Procédé selon la revendication 8, caractérisé en ce qu'on découple les deux unités de calcul pour le diagnostic de défaut propre et chaque unité de calcul mémorise son état avant le diagnostic de défauts propres. 10°) Procédé selon la revendication 8 ou 9, caractérisé en ce qu' en l'absence de résultats des diagnostics de défauts propres pendant le temps de fonctionnement de l'horloge, on coupe les deux unités de calcul. 11 °) Procédé selon la revendication 8 ou 9, caractérisé en ce qu' en présence de résultats des diagnostics de défauts propres pendant le temps de fonctionnement de l'horloge on contrôle la vraisemblance des résultats. 12°) Procédé selon la revendication 11, caractérisé en ce qu' en cas d'émission d'un résultat correct des diagnostics de défauts propres, par la première et aussi la seconde unité de calcul, ces unités de calcul poursuivent toutes deux le déroulement de leur fonctionnement. 13°) Procédé selon la revendication 12, caractérisé en ce que les deux unités de calcul sont synchronisées avant de poursuivre leur fonctionnement. 14°) Procédé selon la revendication 13, caractérisé en ce que la synchronisation des deux unités de calcul commence lorsque dans un intervalle de temps prédéfini, il n'y a ni coupure ni signal de maintien. 2515°) Frocédé selon la revendication 11, carat.érisé en ce qu' en cas de transmission d'un résultat correct du diagnostic de défaut propr, par une première unité de calcul et d'un résultat non correct ou de l'a Dsence de résultat par une seconde unité de calcul, la première unité de calcul poursuit son fonctionnement alors que la seconde unité de calcul est coupée. 16°) Procédé selon la revendication 11, caractérisé en ce qu' en cas de transmission de résultats non corrects, du diagnostic de défau:s propres à la fois par la première et par la seconde unité de calcul on coupe les deux unités de calcul. 17°) Procédé selon la revendication 12, caractérisé en ce qu' en cas de transmission de résultats corrects par les deux unités de calcul, on augmente l'état de comptage limité par une valeur maximale d'un compteur de défauts. 18°) P-océdé selon la revendication 17, caractérisé en ce que lorsque l'état de comptage atteint la valeur maximale, on coupe les deux unités de calcul. 19°) P:-océdé selon la revendication 17, caractérisé en ce qu' en cas de dépassement sous la valeur maximale de l'état de comptage, les deux unités de calcul poursuivent leur fonctionnement. 30