, s e c n la il fa é d s e d Évitement s e n n a p x u a e c n a tolér : nception fiable co e d he rc a ém d la r su t le Deuxième vo tolérance aux pannes onents William Marshall, RS Comp 14 eTech - NUMÉRO 11 La première partie de ce dossier concernait l'évitement des défaillances. Dans ce numéro, nous décrivons les techniques de conception matérielle qui permettent de gérer les pannes transitoires et permanentes au sein des systèmes de microcontrôleurs. La tolérance aux pannes présuppose que des pannes sont susceptibles de se produire quel que soit le nombre de mesures prises pour les éviter. • Les systèmes à sécurité intégrée ne permettent pas de reprendre un fonctionnement sûr en cas de détection de panne, mais garantissent un arrêt contrôlé du système, sans erreur de sortie. • Les systèmes tolérants aux pannes sont quant à eux capables, sans assistance externe, d'exécuter correctement leurs programmes, ainsi que leurs fonctions d'entrée/sortie, face à un certain nombre de pannes de fonctionnement. Bien que ces définitions puissent paraître simples, elles se traduisent très difficilement en système réel. En cas de panne de système permanente ou transitoire, trois conditions doivent être remplies pour permettre une « exécution correcte continue » : • Détection des erreurs. Le système doit être capable de détecter ses propres erreurs. • Diagnostic des pannes. Après avoir détecté une erreur pendant l'exécution d'un programme, le système doit être capable de localiser la panne au niveau d'un groupe de composants ou de modules pouvant être contournés, remplacés sous le contrôle du processeur ou désactivés. • Suppression de la panne. Une fois la panne localisée, le système doit prendre des mesures afin de l'éliminer ou de minimiser ses effets. En cas de panne transitoire, il est possible qu'une nouvelle tentative suffise. Il faudrait, dans l'idéal, que ces trois processus se produisent le plus rapidement possible, afin de minimiser toute interruption du flux de données. Une redondance de sécurité est introduite sous forme de matériels ou de logiciels supplémentaires (ou des deux) pour tenter d'atteindre l'objectif conceptuel de reprise quasi-immédiate en cas de panne. Dans la pratique, il est presque impossible de gérer tous les types de pannes de composants susceptibles de se produire. Certaines pannes entraîneront inévitablement des arrêts de système catastrophiques, et la seule chose à faire consiste à rendre leur taux de probabilité acceptable. Dans le cas des circuits non redondants, tels que les générateurs d'horloge, une attention particulière est nécessaire à l'étape de conception pour éviter qu'une simple panne ne mette hors service un système autrement tolérant aux pannes. La couverture correspond à la probabilité conditionnelle selon laquelle une panne pourra être détectée et éliminée de manière sûre. Le terme « sûr » peut signifier un arrêt du système sans conséquences néfastes (sécurité intégrée) ou l'isolement du composant défectueux pour permettre la poursuite du fonctionnement (tolérance aux pannes dans un système redondant). Cette probabilité peut également s'exprimer sous forme de pourcentage, à l'aide du taux SFF (Safe Failure Fraction). Il existe bien sûr des situations dans lesquelles même une perte de fonction contrôlée n'est pas acceptable : que se passerait-il, par exemple, si les commandes automatiques d'une voiture sans chauffeur cessaient de fonctionner pendant une manœuvre à grande vitesse ? Dans ce type de scénario, la tolérance aux pannes est la seule option. Le concept de couverture permet aussi d'évaluer l'efficacité de schémas de fiabilité particuliers en termes de capacité de détection et d'élimination de tous les modes de pannes possibles. La couverture doit être presque totale pour permettre la fiabilité attendue. La tolérance aux pannes et l'évitement des défaillances ne sont pas mutuellement exclusifs et il est possible de combiner les deux techniques dans certaines conceptions. L'introduction de composants redondants et l'inclusion de modules de secours n'améliorent pas automatiquement la fiabilité du système. En effet, lorsque des composants de faible qualité sont répliqués, le système redondant est moins susceptible d'accomplir sa mission qu'un système simplex. L'utilisation de composants d'excellente qualité et d'une conception détarée est nécessaire pour permettre une tolérance aux pannes optimale. Cela signifie une disponibilité accrue du système et des chances de succès optimisées, même en cas de pannes de composants. Une attention particulière aux problèmes de disponibilité à l'étape de la conception a permis aux véhicules d'exploration de Mars lancés en 2003 de dépasser leur durée de mission de plusieurs années. Diagnostics simplex et simplex + Les systèmes simplex ou 1oo1 (One out of One) sont incapables de détecter les pannes et courent d'importants risques d'arrêt non contrôlé. Les diagnostics simplex + ou 1oo1D incorporent des circuits de contrôle qui permettent un suivi du fonctionnement du processeur sans impact sur les systèmes en temps réel pour lesquels la vitesse est cruciale. Une minuterie de surveillance, parfois incluse sur la puce du processeur ou dans un dispositif de surveillance distinct, est souvent utilisée pour détecter les pannes de processeur. Elle oblige généralement le système à redémarrer en cas de perte de signal généré par un programme. Ces dispositifs très simples intègrent souvent un système de contrôle de l'alimentation électrique. Une solution beaucoup plus complète est nécessaire pour répondre aux exigences des nouvelles normes de sécurité ISO26262 et CEI 61508. Le fRCPU Yogitech du microcontrôleur ARM® Cortex M3 [1] en est un exemple, le circuit de surveillance Infineon CIC61508 [2] du processeur TriCore™ en est un autre. Ces dispositifs de diagnostic permettent de transformer un système simplex ou 1oo1 en système 1oo1D capable de créer un système certifié CEI 61508 SIL3. Cela signifie un taux SFF supérieur à 99 % et une sortie à sécurité intégrée. Le microcontrôleur « de sécurité » TMS470M de la gamme Hercules™ de Texas Instruments intègre un seul cœur Cortex M3 avec correction des erreurs et logique de test automatique sur une même puce [3]. Il ne remplit cependant pas les critères de sécurité CEI 61508, car son taux SFF est inférieur à 60 %. Ceci est dû au fait que la logique de contrôle des erreurs ne peut pas détecter plus de 60 % des erreurs transitoires ou systématiques possibles au niveau du cœur. La technique éprouvée qui consiste à exécuter le même programme sur deux cœurs ou plus et à comparer les sorties est une façon d'optimiser la couverture. Redondance modulaire multiprocesseur La redondance des systèmes de contrôle informatique signifiait traditionnellement la multiplication par 2 (DMR ou 2oo2), par 3 (TMR ou 2oo3), voire par 4 (QMR ou 2oo4), des unités de processeur et l'exécution du même programme sur chacune d'entre elles avec un léger décalage. La logique de vote et la comparaison séparée permettent uniquement une sortie à travers un actionneur si la majorité des processeurs s'accordent. Cela signifie que les systèmes DMR ne sont pas tolérants aux pannes, car la logique de vote ne permet pas de dire quelle sortie est incorrecte. Les deux processeurs doivent donc être désactivés de manière contrôlée. Toutefois, les systèmes DMR dont le taux SFF est supérieur à 99 % pourraient répondre aux critères SIL3. Les systèmes TMR permettent à un processeur de tomber en panne sans interruption du fonctionnement, à condition que les deux autres processeurs s'accordent. (Figure 1) Les systèmes QMR devraient pouvoir gérer deux pannes sans baisse de performances. Les systèmes de type TMR et QMR devraient répondre aux critères SIL4 s'ils réussissent à atteindre un taux SFF supérieur à 99 %, car ils sont également tolérants aux pannes. Suite page 16 > eTech - NUMÉRO 11 15 < Suite de la page 15 Module de processeur 1oo1 1 Module de processeur 1oo1 1 Entrée commune Module de processeur 1oo1 2 Vote et logique de reconfiguration Entrée commune Sortie confirmée Module de processeur 1oo1 3 Figure 1. Système tolérant une seule panne basé sur une redondance modulaire triple Les microcontrôleurs TMS570LS et RM48x Cortex R4F de la gamme Hercules de Texas Instruments renferment deux cœurs de processeur qui exécutent tous les deux le même programme, mais l'un de ces cœurs sert uniquement de dispositif de contrôle esclave pour la production de sorties destinées à une comparaison avec le cœur maître [3]. Seules les sorties du cœur maître sont envoyées au reste du système, si bien qu'il n'est pas possible de construire un DMR 1oo2 avec un seul dispositif. Nous disposons au lieu de cela d'une configuration 1oo1D capable de remplir le critère SFF > 99 % de la norme CEI 61508 SIL3. Pannes transitoires et permanentes Lorsqu'un système de contrôle détecte une erreur, il peut s'agir d'une erreur ponctuelle due au changement de l'état d'une cellule de RAM par une particule cosmique, par exemple. Il est souvent possible de remédier à ce type de panne transitoire en tentant simplement de réexécuter le segment de programme concerné. Cette fonctionnalité doit être intégrée au système pour que les ressources matérielles ne soient pas inutilement mises hors service. Le temps et les efforts consacrés au réglage de ces circuits et de ces logiciels seront récompensés si le système est destiné à une utilisation dans un environnement soumis aux interférences électriques. Le système de contrôle des erreurs devra bien sûr pouvoir reconnaître rapidement les pannes permanentes afin d'éviter les nouvelles tentatives inutiles. Alarme d'erreur Logique de reconfiguration Module de processeur 1oo1D 2 Sortie confirmée Alarme d'erreur Figure 2. Système tolérant une seule panne basé sur deux microcontrôleurs de sécurité à double cœur Conclusion Jusqu'à récemment, le concept de tolérance aux pannes était principalement lié à des projets très coûteux impliquant des engins aériens ou spatiaux, en raison des coûts de développement considérables. Les systèmes automobiles devront certainement utiliser ces techniques lorsque des véhicules sans chauffeur commenceront à apparaître sur nos routes. Les applications automobiles et industrielles doivent se conformer aux normes de fiabilité internationales ISO26262 et CEI 61508 et la nouvelle génération de microcontrôleurs « de sécurité » permettra aux ingénieurs de produire des conceptions conformes à ces normes. Références [1] www.fr.yogitech.com [2] www.infineon.com [3] www.ti.com [4] Rapport : Redundancy Management Technique for Space Shuttle Computers, J.R.Sklaroff, IBM Journal Research & Development, 1976 [5] Rapport : AIRBUS A320/A330/A340 Electrical Flight Controls, A Family of Fault-Tolerant Systems, Dominique Britxe, Pascal Traverse, IEEE 1993 Redondance statique et dynamique Les redondances modulaires de base dotées de circuits de vote sont normalement classées comme étant statiques (tous les modules sont « à chaud » et exécutés). Il est possible d'ignorer un module de processeur ou de le mettre hors service s'il présente une panne permanente. La redondance dynamique implique des unités de secours à chaud ou à froid, activées ou désactivées selon les besoins par une logique de détection des pannes et/ou un logiciel. Son utilisation était fréquente sur la navette spatiale [4] et les avions Airbus [5]. Dans le second cas, une précaution supplémentaire a été prise contre les pannes de mode commun avec l'introduction d'un concept de diversité, selon lequel les modules de processeur sont basés sur différentes plateformes de microcontrôleurs utilisant des logiciels écrits par des équipes indépendantes. Ces systèmes possèdent des modules de processeur 1oo1D à double cœur qui peuvent désormais être remplacés par des puces uniques, telles que les dispositifs à double cœur Hercules. Il est par exemple possible de combiner deux puces pour former un système 1oo2D tolérant aux pannes et conforme aux exigences SIL4. (Figure 2) Dans ce cas, les deux processeurs fonctionnent « à chaud » et reçoivent les mêmes entrées, y compris une réinitialisation commune. Lorsqu'un commutateur est activé, les sorties de l'unité de secours remplacent celle du module en panne. Bien que les horloges de processeur ne soient pas synchronisées, le contretemps devrait être minime au moment du basculement. 16 eTech - NUMÉRO 11 POUR EN SAVOIR PLUS Kits de développement disponibles pour les microcontrôleurs Hercules Texas Instruments : TMS470M HDK 748-0765 TMS570 HDK 748-0771 RM48 HDK 748-0775 Recherchez sur notre site les mots clés suivants : Hercules TI Partagez votre point de vue sur www.designspark.com/eTech