FR 2881243 A1 20060728 FR 0500718 A 20050124 La présente invention concerne un procédé et un système de reconfiguration par poursuite de calculateurs redondants d'une architecture distribuée tolérante aux fautes, notamment de véhicule automobile. Un tel procédé et un tel système peuvent par exemple être basés sur une redondance matérielle active ou passive, des calculateurs. Certaines applications ou fonctions embarquées au sein de calculateurs, notamment de véhicule automobile, possèdent un niveau de criticité important et nécessitent l'utilisation d'une réplication matérielle qui se traduit en général par une duplication, permettant d'obtenir un système global tolérant aux fau- tes. Différents types de redondances matérielles sont envisagés dans les systèmes embarqués tolérant aux fautes, comme cela sera décrit plus en détail par la suite, mais le procédé et le système de reconfiguration de calculateurs proposés peuvent être mis en place pour chacun d'entre eux. Dans le cas d'une redondance active, les calculateurs sont tous reliés aux mêmes entrées et fournissent tous leurs sorties aux mêmes organes consommateurs, et traitent les données en parallèle. Le récepteur, c'est-à-dire l'organe utilisateur des données, dispose des deux informations en sortie des deux calculateurs, et peut, soit utiliser les deux informations, soit l'une d'entre elles. Dans le cas d'une redondance passive, les calculateurs sont tous reliés en entrée au bus de communication, mais seul l'un d'entre eux, traite les données et les délivre en sortie au bus. Dans la suite de la description, on va utiliser certains termes dont les définitions sont données ci-après. Dans la suite de la description, un système correspond en effet à un ensemble déterminé d'éléments interconnectés et qui est susceptible d'interagir ou d'interférer avec d'autres entités. La disponibilité est l'aptitude d'une entité à être en état d'accomplir une 30 fonction requise dans des conditions données. Une faute est une cause adjugée ou supposée d'une erreur, une erreur étant une partie de l'état d'un système qui est susceptible d'entraîner une défaillance, une défaillance étant un événement survenant lorsque le service dé-livré dévie de l'accomplissement de la fonction du système. Lorsqu'un calculateur est perturbé par une faute, trois possibilités sont envisageables pour un recouvrement: 1) un recouvrement par compensation selon lequel on rend le calculateur sur lequel on détecte une erreur, définitivement passif, en ignorant les don- nées issues de celui-ci, pour éviter qu'une erreur ne se propage. Cela conduit donc à une perte de disponibilité du système global. Ainsi, le système global ne fonctionne par la suite qu'avec un unique calculateur et est donc susceptible dans le cas de l'apparition d'une nouvelle faute, de conduire à une défaillance, 2) un recouvrement par reprise (arrière) qui correspond à une reconfiguration du calculateur défectueux, à l'aide d'une sauvegarde périodique de l'état du système exempt d'erreur, de manière à revenir à cet état antérieur, une fois la faute disparue. Trois caractéristiques sont à préciser: le mécanisme de mémorisation doit donc ne pas être influençable par la faute, la détection d'erreur doit être très précise pour ne pas sauvegarder un état erroné, et un problème de syn- chronisation et de cohérence globale, s'ajoute dans la mesure où on utilise un état antérieur, pour la reconfiguration, 3) un recouvrement par poursuite (avant). On détermine dans ce cas, un état exempt d'erreur à partir duquel le système peut démarrer de manière cohérente. Jusqu'à présent, cette méthode n'a été utilisée que pour des fonctions ne possédant pas de retour d'état ou d'asservissement, c'est-à-dire où les sorties numériques des applications ne sont dépendantes que des entrées de celles-ci. Ainsi, une simple relecture des capteurs étant suffisante (nouveau contexte d'exécution). Le but de l'invention est de proposer un tel procédé et un tel système. A cet effet, l'invention a pour objet un procédé de reconfiguration par poursuite de calculateurs redondants d'une architecture distribuée tolérante aux fautes, notamment de véhicule automobile, du type comportant au moins deux calculateurs associés, dont l'un est perturbé par une faute, et l'autre est exempt de faute, caractérisé en ce qu'il comporte les étapes suivantes: - une étape de passivation du calculateur perturbé ; une étape de prise en compte d'une prédiction d'un état de relance de ce calculateur perturbé, à partir de données issues du calculateur exempt de faute; - une étape de chargement de cet état de relance dans le calculateur perturbé, afin de le reconfigurer sur cet état; et - une étape de vérification de la cohérence des sorties des deux calculateurs, pour valider la reconfiguration et réactiver le calculateur reconfiguré. Suivant d'autres caractéristiques de l'invention: - l'étape de prédiction comporte une étape d'identification de sous-systèmes fréquentiels du calculateur perturbé, nécessitant une réactualisation, suivie d'une étape de mise en place dans l'application, d'un dispositif de substitution temporellement équivalent avec un accès aux variables internes et enfin, une étape d'introduction d'un sous-système réalisant une prédiction sur les variables internes; - il est symétrique pour la reconfiguration des calculateurs l'un par l'autre. L'invention a également pour objet un système de reconfiguration par poursuite de calculateurs redondants d'une architecture distribuée tolérante aux fautes, notamment de véhicule automobile, du type comportant au moins deux calculateurs associés, dont l'un est perturbé par une faute et l'autre est exempt de faute, caractérisé en ce qu'il comporte: - des moyens de passivation du calculateur perturbé ; - des moyens de prédiction d'un état de relance de ce calculateur perturbé, à partir de données issues du calculateur exempt de faute; - des moyens de chargement de cet état de relance dans le calculateur perturbé afin de le reconfigurer sur cet état; et - des moyens de vérification de la cohérence des sorties des deux cal- culateurs, pour valider la reconfiguration et réactiver le calculateur reconfiguré. L'invention sera mieux comprise à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple et faite en se référant aux dessins annexés, sur lesquels: - la Fig.1 représente un schéma illustrant la symétrie de reconfigura- tion de calculateurs par un procédé selon l'invention; - la Fig.2 représente un organigramme illustrant un procédé selon l'invention; - la Fig.3 est une représentation schématique fonctionnelle d'un calcu- lateur; - la Fig.4 est un schéma illustrant le raccordement de deux calculateurs en parallèle sur un récepteur; - la Fig. 5 est un organigramrne illustrant la modification des applications embarquées; - la Fig.6 illustre une étape d'identification de soussystèmes; - la Fig.7 illustre une étape d'application d'un dispositif de substitution; et - la Fig.8 illustre les chemins des données transférées (variables internes) pour effectuer une reconfiguration. Le procédé et le système selon l'invention s'inscrivent dans le cadre d'une reconfiguration par poursuite et proposent une nouvelle méthode générale permettant de déterminer un état cohérent de relance du système. Le concept de base consiste alors à modifier les applications courantes munies d'un dispositif de prédiction d'état, de manière à utiliser certaines données issues d'un calculateur exempt d'erreur, pour la reconfiguration de l'autre calculateur perturbé pour une faute et qu'il convient de reconfigurer par transfert de contexte. Ainsi, une acquisition d'un nouvel état d'exécution permet, à l'aide de ce transfert de contexte spécifique, de reconfigurer un calculateur redondant per-20 turbé par une faute quelconque. Dans la suite de la description, on se place dans le cas d'une tolérance aux fautes par duplication matérielle, mais il va de soi que le procédé et le système selon l'invention, sont également applicables à des systèmes composés d'un nombre de répliques supérieur à deux. Ainsi, on a illustré sur la figure 1, deux calculateurs redondants Cl et C2 mettant en oeuvre des fonctions, telles que par exemple la fonction 1, la fonction 2 et la fonction 3. Dans le cas où le calculateur Cl est perturbé par une faute, celui-ci peut être reconfiguré par C2. De façon symétrique, si le calculateur C2 est perturbé par une faute, celui-ci peut être reconfiguré par le calculateur Cl. Ainsi, si la reconfiguration d'un calculateur doit avoir lieu à un instant discret k, un dispositif additionnel permet d'élaborer un état interne de relance 5. cohérent à l'instant k-1, c'est-à-dire un pas d'horloge précédent la reconfiguration, d'où l'utilisation du terme de prédiction. On a illustré sur la figure 2, un organigramme illustrant une stratégie possible de reconfiguration du calculateur Cl par le calculateur C2, cette straté-5 gie pouvant être mise en place de manière symétrique pour C2. Cet organigramme débute par une étape 10 de surveillance du fonctionnement des calculateurs Cl et C2. Si par exemple une erreur est détectée sur Cl lors de l'étape 11, on enclenche alors une étape de passivation de ce calculateur Cl, lors de l'étape 10 12. En 13, le calculateur C2 est vérifié pour déterminer s'il est actif et fonctionne correctement, c'est-à-dire si les données sont valides. Si ce n'est pas le cas, le système passe en mode de fonctionnement dégradé, les calculateurs Cl et C2 étant non-opérationnels. Par contre, si le résultat du test en 13 est positif, on active en 14, un module de reconfiguration de Cl. Un test est ensuite effectué en 15, pour déterminer si l'erreur temporaire a disparu. Si ce n'est pas le cas, un compteur est incrémenté et sa valeur est comparée à une valeur de seuil MAX en 16, pour en cas de nombre de tentatives inférieur au nombre maximum, retenter une activation du module de reconfiguration de Cl en 14 ou au contraire, passer en mode de fonctionnement dégradé utilisant C2 (car Cl est non opérationnel), si le nombre de tentatives devient supérieur à la valeur MAX. Si le résultat du test en 15 est positif, on déclenche en 17, une reconfiguration du calculateur Cl, par transfert de variables internes, déterminées par prédiction. Puis, en 18, on vérifie si les sorties du calculateur Cl sont cohérentes avec celles du calculateur C2. Si ce n'est pas le cas, on reboucle sur l'étape 13, tandis que si les sorties sont cohérentes, lors de l'étape 19, on valide la reconfiguration et on ré-active le calculateur Cl avant de reboucler sur l'étape 10 de surveillance du fonctionnement de ces calculateurs. Comme cela est illustré sur la figure 3, un calculateur peut être schématisé sous la forme de sous-systèmes fonctionnels, tels que par exemple les sous-systèmes 20, 21, 22 et 23 illustrés. De plus, et comme cela est illustré sur la figure 4, deux calculateurs, par exemple Cl et C2, peuvent être raccordés en parallèle entre des entrées qui sont alors communes à ces deux calculateurs et un récepteur quelconque qui reçoit alors les sorties de ces deux calculateurs. Sur cette figure 4, les calculateurs Cl et C2 sont désignés par les références générales respectives 25 et 26, tandis que le récepteur est désigné par la 10 référence générale 27. La mise en oeuvre de la reconfiguration est illustrée sur la figure 5 et comporte trois étapes principales, à savoir une étape désignée par la référence générale 28, d'identification si nécessaire des sous-systèmes fréquentiels nécessitant une réactualisation de leur état interne, lors de la reconfiguration du sys- tème global. Cette étape d'identification 28 est suivie d'une étape 29 de mise en place dans l'application d'un dispositif de substitution temporellement équivalent avec accès aux variables internes. Enfin, en 30, on prévoit une étape d'introduction d'un sous-système 20 réalisant une prédiction sur les variables internes. En fait, et comme cela est illustré sur la figure 6, l'étape d'identification consiste à identifier les sous-systèmes fonctionnels correspondant aux lois de commande qui nécessitent une réactualisation particulière de leur état interne. Ainsi, on peut définir dans un calculateur, des sous-systèmes fonctionnels dont on ne sait pas si les sorties dépendent d'états internes, des sous-systèmes contenant des états internes identifiés dont dépendent les sorties et des sous-systèmes ne contenant pas d'état interne dont dépendent les sorties. Ces différents sous-systèmes sont illustrés respectivement en blanc, en grisé et en hachuré sur cette figure. L'étape 29 est illustré plus en détail sur la figure 7 et consiste à réaliser un dispositif permettant lors de la reconfiguration, de substituer les sous-systèmes précités par une représentation temporelle. Ainsi, par exemple, on peut remplacer les fonctions de transfert, d'intégrateur, de dérivateur, etc... , par des modèles d'état équivalents et un mécanisme permettant d'imposer à ce nouveau modèle, des variables internes spécifiques issus du calculateur redondé, exempt d'erreur. Ceci est par exemple illustré sur cette figure 7, où l'on constate que l'on a ajouté en parallèle aux bornes des sous-systèmes 21 et 22 du calculateur, des modules secondaires de reconfiguration, respectivement 31 et 32, équivalents à ceux-ci et sur les variables internes desquels on peut intervenir. Ceci est alors réalisé comme on peut le voir sur la Fig.8, sur laquelle on reconnaît les calculateurs Cl et C2 et les sous-systèmes et modules 20, 21, 22, 23, 31 et 32 pour le calculateur Cl, et 20a, 21a, 22a, 23a, 31a, 32a, pour le calculateur C2. Des dispositifs de prédiction sont alors prévus entre les modules 31 et 31a et 32 et 32a respectivement de ces calculateurs, pour assurer la reconfiguration. Ces dispositifs de prédiction sont désignés par les références 33, 34 et 15 33a, 34a respectivement. Une telle structure présente un certain nombre d'avantages, notamment au niveau d'une reconfiguration instantanée des calculateurs, dès la détection de l'erreur, ce qui permet également de résoudre les problèmes de perte de temps pendant les transitoires et d'augmenter la disponibilité du système global. Par ailleurs, elle ne nécessite pas non plus l'adjonction de mécanisme extérieur de mémorisation, comme cela est nécessaire par exemple dans les procédé et système de reconfiguration par reprise de l'état de la technique. De plus, les modifications se font uniquement au niveau logiciel et optimisent également le transfert de contexte, car seules les variables internes de certains sous-systèmes doivent transiter sur le bus de communication entre les calculateurs. Comme cela a été indiqué précédemment, un tel procédé et un tel système s'appliquent sur des calculateurs à redondance matérielle. A titre d'exemple, un sous-système d'un tel calculateur peut être formé 30 par une fonction d'intégrateur. Dans ce cas, la prédiction sur les variables internes consiste à transmettre l'état interne Sn du calculateur Cl, vers le calculateur C2, et à mettre à jour la variable interne Sn-1 dans ce calculateur C2, pour assurer la reconfiguration. Bien entendu, ce mécanisme est symétrique lors de la réintégration ou de la reconfiguration de Cl, en utilisant C2. Dans le cas par exemple d'une unique fonction de transfert, les prédictions sur les variables internes consistent à transmettre l'état interne au pas de temps Xn du calculateur Cl vers le calculateur C2 et à écraser l'état interne au pas n-1, Xn-1 dans celui-ci. Ainsi, on comprend que pour toute fonction complexe composée de sousfonctions dont les variables internes peuvent être lues et transférées, on peut mettre en place ce mécanisme et transférer le contexte complet qui est alors composé de l'ensemble des variables internes ou des vecteurs d'état. 9 REVENDICATIONS 1. Procédé de reconfiguration par poursuite de calculateurs redondants (Cl, C2) d'une architecture distribuée tolérante aux fautes, notamment de véhicule automobile, du type comportant au moins deux calculateurs (Cl, C2) associés, dont l'un est perturbé par une faute, et l'autre est exempt de faute, caractérisé en ce qu'il comporte les étapes suivantes: - une étape (12) de passivation du calculateur perturbé (C1) ; - une étape (14, 15, 17) de prise en compte d'une prédiction d'un état de relance de ce calculateur perturbé, à partir de données issues du calculateur exempt de faute; - une étape (17) de chargement de cet état de relance dans le calculateur perturbé, afin de le reconfigurer sur cet état; et - une étape (18, 19) de vérification de la cohérence des sorties des deux calculateurs, pour valider la reconfiguration et réactiver le calculateur re- configuré. 2. Procédé selon la revendication 1, caractérisé en ce que l'étape de prédiction comporte une étape (28) d'identification de sous-systèmes fréquentiels du calculateur perturbé, nécessitant une réactualisation, suivie d'une étape (29) de mise en place dans l'application, d'un dispositif de substitution temporellement équivalent avec un accès aux variables internes et enfin, une étape (30) d'introduction d'un soussystème réalisant une prédiction sur les variables internes. 3. Procédé selon la revendication 1 ou 2, caractérisé en ce qu'il est symétrique pour la reconfiguration des calculateurs l'un par l'autre. 4. Système de reconfiguration par poursuite de calculateurs redondants (Cl, C2) d'une architecture distribuée tolérante aux fautes, notamment de véhicule automobile, du type comportant au moins deux calculateurs associés (Cl, C2), dont l'un est perturbé par une faute et l'autre est exempt de faute, caractérisé en ce qu'il comporte: - des moyens de passivation du calculateur perturbé ; - des moyens (33, 33a, 34, 34a) de prédiction d'un état de relance de ce calculateur perturbé, à partir de données issues du calculateur exempt de faute; - des moyens (31, 33, 32, 34, 31a, 33a, 32a, 34a) de chargement de cet état de relance dans le calculateur perturbé afin de le reconfigurer sur cet état; et -des moyens de vérification de la cohérence des sorties des deux cal-5 culateurs, pour valider la reconfiguration et réactiver le calculateur reconfiguré.