FR 2687810 A1 19930827 FR 9202022 A 19920221 1 - PROCEDE ET DISPOSITIF POUR LA SURVEILLANCE TEMPORELLE DU FONCTIONNEMENT D'UN PROCESSEUR. La présente invention concerne un procédé et un disposi- tif pour la surveillance temporelle du fonctionnement d'un processeur. Elle s'applique notamment, mais non exclusivement, à la surveillance des processeurs embarqués à bord des aéro- dynes. On sait que dans le but d'effectuer cette surveillance qui est cruciale dans ce type d'applications, plusieurs types de solutions ont été proposés jusqu'ici. Une solution d'un premier type consiste à doubler le pro- cesseur à l'aide d'un processeur redondant qui exécute les mêmes tâches, et à comparer les résultats obtenus par ces deux processeurs Un circuit logique d'arbitrage per- met alors de déterminer le processeur défaillant. Cette solution, qui permet d'obtenir un haut niveau de sécurité, demeure d'un coût élevé souvent rédhibitoire dans des applications à grand volume. D'autres solutions font intervenir des processeurs conçus de manière à transmettre périodiquement, à un circuit de -2- surveillance ("Watchdog"), des impulsions dont la fré- quence est représentative d'une fréquence caractéristique du fonctionnement du processeur, par exemple la fréquence machine ou la fréquence des cycles temps réel. Si la fréquence de ces impulsions devient inférieure à une fréquence prédéterminée ("Watchdog" à "Time out"), ou est en dehors d'un intervalle de fréquence prédéterminé ("Watchdog" à fenêtre), le circuit de surveillance trans- met au processeur un signal d'alarme, habituellement un signal de remise à zéro. Dans un cas comme dans l'autre, les circuits de surveil- lance surveillent uniquement la fréquence des impulsions émises par le processeur en réagissant, soit sur les fronts montants, soit sur les fronts descendants des impulsions. Des surveillances plus sévères sont également obtenues à l'aide de circuits ("Watchdog" à double fenêtre) permet- tant de vérifier que: la fréquence de récurrence du signal transmis par le processeur est comprise dans un intervalle de fréquence prédéterminé; la durée de l'état haut de l'impulsion est limitée à un temps maximum. Il s'avère que ces dispositifs se bornent à vérifier le bon déroulement d'un cycle programme Par contre, ils ne permettent pas de vérifier l'état des calculs effectués par le processeur ou la validité des données qu'ils engendrent. Un autre inconvénient de ces solutions apparaît dans les systèmes à activité répartie, faisant intervenir plu- sieurs processeurs destinés à communiquer entre eux et travaillant avec une horloge temps réel Dans ces sys- -3 - tèmes, à chaque coup d'horloge temps réel, correspond une tâche logicielle précise Si un processeur saute une tâche, il devient désynchronisé par rapport à ses voi- sins. On constate que les circuits de surveillance précédemment décrits ne permettent pas de discerner ce type de fautes. En outre, ils ne permettent pas le test du coeur numé- rique en cours d'exécution de l'application avec un haut taux de couverture. L'invention a plus particulièrement pour but de supprimer ces inconvénients, en effectuant une surveillance tempo- relle de l'exécution des tâches logicielles d'un pro- gramme applicatif par le processeur ainsi que la santé du coeur numérique. Elle propose, à cet effet, un procédé selon lequel on décompose le programme applicatif en un nombre entier M de cycles temps réel, dans chacun desquels une tâche réelle ou virtuelle est exécutée, ces cycles se succédant selon un rythme imposé par une horloge temps réel qui délivre un signal périodique de période récurrente T com- prenant deux états successifs respectivement de durée Tl et T 2, à savoir: un état Tl qui engendre une interrup- tion du processeur et un état T 2 au cours duquel doit s'exécuter la susdite tâche. Selon l'invention, ce procédé est caractérisé en ce qu'il comprend les phases suivantes: la détection, par le processeur, de la transition du signal de l'horloge temps réel marquant le début de chaque cycle temps réel, et la détermination, par le processeur, de l'heure temps réel à laquelle s'est pro- duite cette transition; -4- la mémorisation, par le processeur, de cette heure temps réel dans un registre temps réel, appelé registre de cohérence prévu dans un circuit de surveillance; la vérification, par ledit circuit de surveillance, que cette mémorisation s'est effectuée pendant la période TI au cours de laquelle le signal d'horloge temps réel est dans son premier état; la transmission d'un premier signal de défaut dans le cas o ladite mémorisation ne s'est pas totalement effectuée pendant la période Tl; la détection et le comptage, par un second compteur interne au circuit de surveillance, des susdites tran- sitions du signal d'horloge temps réel; la comparaison, au cours de la durée T 2, de l'heure temps réel contenue dans le registre de cohérence et de l'heure temps réel déterminée à partir du contenu du susdit compteur; la transmission d'un deuxième signal de défaut dans le cas o la comparaison fait apparaître une discordance. Avantageusement, la calibration de la durée Tl du premier état du signal d'horloge temps réel est réglée de manière à ce que le processeur ait juste le temps de mémoriser dans le registre de cohérence la valeur de l'heure temps réel. Les signaux de défaut émis par le circuit de surveillance pourront être interprétés par un automate auxiliaire de gestion des pannes ou bien pourront consister en un signal de remise à zéro pouvant, par exemple, provoquer la remise à zéro de l'heure temps réel et du registre de cohérence Le système réinitialisé est alors prêt à repartir ou mis dans l'attente d'un signal de synchroni- sation externe avant de repartir, en synchronisme, sur un cycle de travail externe. Comme cela apparaîtra plus clairement dans la suite de la description, un intérêt notoire de ce procédé consiste en ce qu'il permet: de surveiller le déroulement des différentes phases logicielles en vérifiant qu'il n'y a pas de saut: en effet, à chaque tâche logicielle correspond une heure temps réel programme qui est déclarée au circuit de surveillance, lequel la compare à son heure temps réel interne; un saut de déroulement programme engendrant un déphasage entre l'heure temps réel programme et l'heure temps réel interne et une réaction pouvant être l'émission d'un signal de remise à zéro; de pouvoir tester le fonctionnement du processeur au niveau des interruptions, de l'unité arithmétique et logique (ALU) et une partie de son environnement. Un mode de mise en oeuvre du procédé selon l'invention sera décrit ciaprès, à titre d'exemple non limitatif, avec référence aux dessins annexés dans lesquels La figure 1 est une représentation schématique montrant la connexion d'un circuit de surveil- lance à un processeur et à une mémoire destinée à assurer le décodage des heures temps réel; La figure 2 est un schéma synoptique de la structure interne d'un circuit de surveil- lance; Les figures 3 à 5 sont des diagrammes temporels permettant d'illustrer le principe de fonction- nement du circuit de surveillance, en fonction- nement normal (figure 3), lors d'une erreur -6 - suivie d'une remise à zéro puis d'une remise en route automatique (figure 4), ou à la suite d'une impulsion de synchronisation externe (figure 5); La figure 6 est un exemple d'organigramme d'un logiciel exécuté par le processeur conformément au procédé selon l'invention; La figure 7 est une représentation schématique d'une architecture multiprocesseur à arbitre synchronisateur commun. Dans l'exemple représenté sur la figure 1, le processeur 1 est relié à un circuit de surveillance 2 et à une mémoire de type ROM 3, dont la fonction sera déterminée dans la suite par l'intermédiaire d'un BUS 4 Il reçoit, en outre, un signal d'horloge temps réel HTR émis par une horloge temps réel incorporée au circuit de surveillance 2. D'une façon plus précise, le circuit de surveillance 2 peut comprendre, comme indiqué sur la figure 2, un contrôleur d'événements 5 apte à émettre, en direction du processeur 1, un signal d'horloge temps réel HTR, un signal de remise à zéro RESET, ainsi qu'un signal de syn- chronisation externe bidirectionnel (SYNCHRO) utilisable par un arbitre externe. Ce contrôleur d'événements 5 est, par ailleurs, connecté par des liaisons bidirectionnelles à un générateur de phases 6 et à un compteur d'impulsions d'horloge temps réel 7 qui est également relié, par une liaison bidirec- tionnelle, au générateur de phases 6. Le compteur 7 est relié, par sa sortie, à l'une des entrées d'un comparateur 8 dont la deuxième entrée est connectée à un registre de cohérence 9 relié au BUS 4 La -7 - sortie du comparateur est, quant à elle, appliquée au contrôleur d'événements 5, lequel effectue, en outre, le pilotage du registre de cohérence 9. Comme précédemment mentionné, le processeur 1 est pro- grammé de manière à exécuter un nombre entier M de tâches réelles ou virtuelles à raison d'une tâche déterminée au cours de chacune des périodes temps réel T du signal temps réel HTR engendré par le circuit de surveillance 2. En fait, ce signal est appliqué à une entrée d'interruption IT du processeur 1, lequel peut effectuer, comme illustré sur la figure 6, à la suite de la prise en compte d'une interruption déclenchée par un top du signal d'horloge temps réel (bloc 10), une séquence comportant les étapes suivantes: une étape d'identification de la tâche précédente N (bloc 11); une étape de détermination de la tâche suivante N + 1 (bloc 12); une étape de recherche dans la mémoire ROM de l'heure temps réel associée au début de la tâche N + 1 (bloc 13); une étape de test global ou partiel indexé sur l'heure temps réel précédemment trouvée, ce test étant suivi, dans le cas o il est positif, d'un décodage de l'heure temps réel fournie par la mémoire ROM; dans le cas o il est négatif, il peut, par exemple, provoquer un arrêt du programme en cours d'exécution par le proces- seur 1 (bloc 14); une étape de transmission au circuit de surveillance 2 par le BUS 4 de l'information relative à l'heure temps réel précédemment décodée (bloc 15); -8 - une étape d'exécution de la tâche logicielle N + 1 (bloc 16), la fin de cette étape marquant le rebouclage du programme en vue de la prise en compte d'une nou- velle interruption (c'est-à-dire d'un nouveau top de l'horloge temps réel). Le circuit de surveillance 2 transmet au processeur le signal d'horloge temps réel HTR qui est élaboré par le générateur de phases 6 en coopération avec le contrôleur d'événements 5. Ce signal HTR, de nature périodique, présente une succes- sion de cycles temps réel avec une période de récurrence T, au cours de laquelle il passe d'un premier état qui se maintient pendant une durée Tl (phase 1 qui correspond au top d'horloge) à un deuxième état qui se maintient pen- dant une durée T 2 (phase 2) La période T étant égale à la somme des durées Tl et T 2 (figures 3 à 5). Dans la suite de la description, le premier état corres- pond à un état haut du signal (niveau logique 1), tandis que le second état correspond à un état bas du signal (niveau logique 0). Le compteur 7 du circuit de sécurité 2 effectue un comp- tage des cycles temps réel et est incrémenté, en fonc- tionnement normal, à chaque front montant du signal d'horloge temps réel HTR qui marque le début de la phase P Hi de chaque cycle temps réel. Pendant la phase PH 1 o le signal d'horloge temps réel HTR est à l'état haut, le processeur 1 accède, par l'intermédiaire du BUS 4, au registre de cohérence 9 o il doit écrire la nouvelle valeur de l'heure temps réel. Lors de la phase PH 2, qui débute sur le front descendant du signal d'horloge temps réel HTR, le processeur 1 ne -9- doit plus venir écrire dans le registre de cohérence 9. S'il effectue une telle action, cette faute sera détectée par le contrôleur d'événements 5 qui émettra un signal de remise à zéro RESET en direction du processeur 1. Pendant la phase PH 2, le circuit de surveillance 2 effec- tue une comparaison entre le contenu de son compteur 7 et le contenu du registre de cohérence 9. Si cette comparaison ne vérifie pas l'égalité des deux contenus, le comparateur 8 transmet au contrôleur d'événements un signal de disparité A la suite de la réception de ce signal, le contrôleur 5 transmet au pro- cesseur 1 un signal RESET qui provoque une procédure de remise à zéro telle que celles qui sont illustrées sur les figures 4 et 5. Par contre, si le comparateur 8 révèle une identité =, le fonctionnement est considéré normal et se poursuit comme indiqué sur la figure 3. Sur cette figure, on a indiqué, en correspondance tempo- relle, le signal d'horloge temps réel HTR, l'évolution du contenu du compteur 7 ainsi que celle du registre de cohérence. Le front montant du signal d'horloge HTR qui marque le début d'un cycle de période T provoque une incrémentation du compteur 7 qui passe de la valeur N à la valeur N + 1. Parallèlement, le registre de cohérence 9 passe en phase PH 1. Comme précédemment mentionné, au cours de cette période, le processeur 1 doit écrire dans le registre de cohérence 9, la nouvelle heure temps réel DATA 2, l'heure précédente étant désignée DAT Al (rafraîchissement du registre de cohérence). - Ce front descendant du signal d'horloge HTR marque la fin de la phase PH 1 et le début de la phase PH 2 au cours de laquelle le comparateur 8 compare le contenu du registre de cohérence 9 et le contenu du compteur 7. Dans cet exemple, le comparateur 8 révèle une identité = entre les deux contenus Le processeur 1 exécute la tâche correspondant au cycle temps réel N + 1 La fin de ce cycle est marquée par un nouveau front montant du signal HTR qui déclenche alors un nouveau cycle temps réel N + 2 au cours duquel le processeur doit exécuter une nouvelle tâche. Il apparaît de façon évidente que, si la fréquence d'horloge du processeur 1 venait à ralentir, cela condui- rait ce dernier à écrire au mauvais moment dans le registre de cohérence 9 ou à écrire, dans celui-ci, une mauvaise heure temps réel Dans un cas comme dans l'autre, cette anomalie sera détectée par le contrôleur d'événements 5 qui transmettra au processeur un signal de remise à zéro On rappelle que la calibration de la phase PHî est ajustée de manière à ce qu'en fonctionnement nor- mal, le processeur 1 ait juste le temps d'écrire la valeur de l'heure temps réel. Quand le processeur 1 ne fonctionne plus à la suite de la perte de sa propre horloge, il ne rafraîchit plus le registre de cohérence 9 Le comparateur détecte alors immédiatement une disparité. Dans le cas d'un mauvais fonctionnement du processeur 1 de type affolement, son comportement va tendre, soit à écrire intempestivement des heures dans le registre de cohérence 9, soit à être perdu dans ses identifications de tâches, et ainsi, renvoyer de mauvaises valeurs au registre de cohérence Le contrôleur d'événements 5 est alors en mesure de donner l'alerte. il - Les figures 4 et 5 illustrent deux modes de fonctionne- ments consécutifs à la génération d'un signal de remise à zéro. Dans l'exemple représenté sur la figure 4, la comparaison effectuée par le comparateur 8 dans la phase PH 2 révèle une disparité (N + 1 j DATAPLOUF). Après prise en compte de cette faute, le contrôleur d'événements 5 émet une impulsion de remise à zéro RESET synchronisée sur le front montant du top suivant du signal d'horloge temps réel qui marque le début d'un nou- veau cycle Parallèlement, l'heure temps réel du compteur 7 ainsi que le registre de cohérence 9 sont remis à zéro. Le système réinitialisé peut donc repartir. Le mode de fonctionnement décrit en regard de la figure 5 est similaire à celui illustré sur la figure 4, à la dif- férence qu'au lieu de repartir au cycle N' qui suit la réinitialisation, le système se bloque à l'état réinitia- lisé jusqu'à ce que le circuit de surveillance reçoive une impulsion de synchronisation provenant de l'extérieur A la suite de cette impulsion, le système entame un nouveau cycle temps réel Ce mode de fonction- nement est particulièrement intéressant pour des applica- tions s'effectuant dans un environnement multiprocesseur. Dans ce cas, on obtient une resynchronisation du proces- seur 1 sur un cycle de travail externe. La figure 7 montre une structure multiprocesseurs à laquelle s'applique ce mode de fonctionnement Dans cet exemple, la structure comprend quatre processeurs Pl, P 2, P 3, P 4 comprenant, chacun, son propre circuit de surveil- lance Wl, W 2, W 3, W 4. Chacun de ces circuits Wl à W 4 est relié à un arbitre synchronisateur commun AS par une liaison bidirection- nelle permettant, d'une part, d'assurer la transmission 12 - vers l'arbitre des signaux d'erreur ERI à ER 4 et, d'autre part, de recevoir les signaux de synchronisation SYN 1 à SYN 4 élaborés par l'arbitre, par exemple en fonction des cycles temps réel des autres circuits. L'intérêt du procédé précédemment décrit consiste en ce qu'il permet: de surveiller le déroulement des différentes phases logicielles en vérifiant qu'il n'y a pas de saut: en effet, à chaque tâche logicielle correspond une heure temps réel qui doit être déclarée sur le circuit de surveillance en vue d'être comparée avec l'heure temps réel interne de ce circuit; un saut de déroulement de programme implique un déphasage avec l'heure interne au circuit de surveillance et une réaction qui peut être l'émission d'un signal de remise à zéro; de pouvoir tester le fonctionnement du processeur au niveau des interruptions, de l'unité arithmétique et logique et d'une partie de son environnement, et ce, moyennant un algorithme lancé à chaque cycle temps réel, qui fonctionne, au niveau du décryptage de l'heure, avec des variables qui changent à chaque heure temps réel. On obtient une efficacité beaucoup plus élevée qu'avec un algorithme lancé à chaque cycle temps réel mais travail- lant avec des variables fixes, en vue de fournir un résultat fixe. 13 - Revendications 1 Procédé pour la surveillance temporelle du fonctionnement d'un processeur ( 1), procédé selon lequel on fait exécuter le programme applicatif au cours de cycles temps réel dans chacun desquels une tâche est exé- cutée, ces cycles se succédant selon un rythme imposé par une horloge temps réel qui délivre un signal périodique de période récurrente (T) comprenant deux états succes- sifs respectivement de durée (Tl et T 2), caractérisé en ce qu'il comprend les phases suivantes la détection, par le processeur, de la transition du signal (HTR) de l'horloge temps réel marquant le début de chaque cycle temps réel, et la détermination, par le processeur ( 1), de l'heure temps réel à laquelle s'est produite cette transition; la mémorisation, par le processeur ( 1), de cette heure temps réel dans un registre temps réel ( 9), appelé registre de cohérence prévu dans un circuit de surveil- lance ( 2); la vérification, par ledit circuit de surveillance ( 2), que cette mémorisation s'est effectuée pendant la période (Tl) au cours de laquelle le signal d'horloge temps réel (HTR) est dans son premier état; la transmission d'un premier signal de défaut dans le cas o ladite mémorisation ne s'est pas totalement effectuée pendant la période (Tl); la détection et le comptage, par un second compteur ( 7) interne au circuit de surveillance ( 2), des susdites transitions du signal d'horloge temps réel (HTR); la comparaison, au cours de la durée (T 2), de l'heure temps réel contenue dans le registre de cohérence ( 9) 14 - et de l'heure temps réel déterminée à partir du contenu du susdit compteur ( 7); la transmission d'un deuxième signal de défaut dans le cas o la comparaison fait apparaître une discordance. 2 Procédé selon la revendication 1, caractérisé en ce que la calibration de la durée (Tl) du premier état du signal d'horloge temps réel (HTR) est réglée de manière à ce que le processeur ( 1) ait juste le temps de mémoriser dans le registre de cohérence ( 9) la valeur de l'heure temps réel. 3 Procédé selon l'une des revendications 1 et 2, caractérisé en ce que les signaux de défaut émis par le circuit de surveillance ( 2) peuvent être interprétés par un automate auxiliaire de gestion des pannes. 4 Procédé selon l'une des revendications 1 et 2, caractérisé en ce que les signaux de défaut émis par le circuit de surveillance ( 2) consistent en des signaux de remise à zéro provoquant la remise à zéro de l'heure temps réel déterminée par le circuit de surveillance ( 2) et du registre de cohérence ( 9). Procédé selon la revendication 4, caractérisé en ce que la remise en route du programme applicatif, après la susdite remise à zéro, s'effectue automatiquement ou à la suite de la réception par le cir- cuit de surveillance d'un signal de synchronisation externe (SYN). 6 Procédé selon la revendication 5, caractérisé en ce que le susdit signal de synchronisation externe est engendré par un arbitre synchronisateur (AS) recevant les signaux de défaut émis par plusieurs cir- - cuits de surveillance (Wl à W 4) affectés à plusieurs pro- cesseurs respectifs (Pl à P 4). 7 Dispositif pour la surveillance temporelle du fonctionnement d'un processeur conformément au procédé selon l'une des revendications précédentes, caractérisé en ce qu'il comprend un circuit de surveil- lance comportant: des moyens ( 5, 6) aptes à engendrer un signal d'horloge temps réel (HTR) et à appliquer ce signal audit proces- seur ( 1); un compteur ( 7) qui reçoit le signal d'horloge (HTR) et dont le contenu est représentatif de l'heure temps réel au début de chaque cycle temps réel (T); un registre de cohérence ( 9) dans lequel le processeur ( 1) écrit l'heure temps réel qu'il a déterminée à par- tir du signal d'horloge temps réel (HTR); et un comparateur ( 8) qui compare le contenu du compteur ( 7) avec celui du registre de cohérence ( 9) et qui émet un premier signal de défaut dans le cas o cette compa- raison fait apparaître une discordance. 8 Dispositif selon la revendication 7, caractérisé en ce qu'il comprend des moyens ( 5) permet- tant d'émettre un deuxième signal de défaut dans le cas o la mémorisation de l'heure temps réel dans le registre de cohérence ( 9) n'est pas exécutée au cours d'une période de temps prédéterminée (PH 1) du cycle temps réel. 9 Dispositif selon la revendication 8, caractérisé en ce qu'il comprend des moyens permettant d'effectuer une remise à zéro du registre de cohérence ( 9) et du compteur ( 7) à la suite de l'émission des sus- dits signaux de défaut. 16 - Dispositif selon l'une des revendications 7 à 9, caractérisé en ce qu'il comprend des moyens permettant de bloquer le système, après la susdite remise à zéro jusqu'à la réception d'un signal de synchronisation externe (SYN 1 à SYN 4). 11 Dispositif selon la revendication 10, caractérisé en ce que le signal de synchronisation externe (SYN 1 à SYN 4) est émis par un arbitre synchroni- sateur (AS) qui reçoit les signaux de défaut (ER 1 à ER 4) de plusieurs processeurs (Pl à P 4). v