Conception d’une architecture journalisée tolérante aux fautes pour un processeur à pile de données

Aujourd’hui, les dispositifs sont de plus en plus sensibles à l’impact des particules de haute énergie. Il y a de fortes probabilités qu’elles puissent causer des perturbations isolées (Single Event Upset – SEU) en frappant la surface du circuit silicium. Cela peut entraîner des erreurs temporaires (soft errors) qui se manifestent comme des inversions de bits dans la mémoire ou du bruit dans la logique combinatoire .

Ces dernières années, la performance des microprocesseurs a augmenté de façon exponentielle avec les tendances de conception modernes. Cependant, leur sensibilité aux effets de l’environnement s’est accrue [Kop11]. Alors que les fréquences d’horloge augmentent et que la taille des blocs fonctionnels diminue, ces systèmes peuvent devenir vulnérables aux rayonnements ionisants qui traversent l’atmosphère. En outre, les erreurs soft peuvent être déclenchées par des facteurs environnementaux tels que les décharges statiques ou les fluctuations de température et de tension d’alimentation. La survenue d’erreurs soft dans les systèmes électroniques modernes est en constante augmentation [Nic10]. La sûreté de fonctionnement est une préoccupation importante pour la conception des générations de processeurs actuelles et futures [RI08].

Les approches conventionnelles pour la conception de processeurs fiables exploitent la redondance spatiale ou temporelle [RR08]. La réplication du processeur a été utilisée pendant une longue période comme principale technique de tolérance aux fautes (Fault Tolerance – FT) contre les fautes transitoires [Kop04]. C’est une solution coûteuse, nécessitant plus de 100 % de surface et de puissance supplémentaires, car la duplication au minimum est nécessaire pour la détection des erreurs (triplication au minimum pour la correction ou le masquage d’erreurs) ainsi que des circuits voteurs supplémentaires. En pratique, c’est une solution coûteuse pour détecter les erreurs au niveau RTL, en particulier quand les SEU sont considérées. Les approches temporelles basées sur le logiciel ont un surcoût matériel moindre, et peuvent améliorer la sûreté de fonctionnement de manière significative [RI08]. Par exemple, dans le mode d’exécution duplex, toutes les instructions sont exécutées deux fois pour détecter les erreurs temporaires [MB07]. Cependant, cette technique a tendance à induire des surcoûts temporels significatifs, impliquant de sévères contraintes de temps difficiles à résoudre dans les circuits fonctionnant en temps réel. Ces approches peuvent fournir une tolérance aux fautes robuste mais encourir des pénalités élevées en termes de performances, de surface, et de puissance [RR08].

La redondance explicite est adaptée aux applications critiques où le coût du matériel n’est pas une contrainte importante. Toutefois, après une escalade technologique rapide, presque tous les systèmes nécessitent aujourd’hui un minimum de tolérance aux fautes [FGAD10]. Ces systèmes exigent des solutions tolérance aux fautes moins onéreuses qui admettent un taux de couverture moindre que celui de la redondance matérielle, mais néanmoins important [RR08]. Par conséquent, des recherches sont nécessaires pour obtenir des solutions alternatives, non conventionnelles, et peu chères.

Sûreté de fonctionnement et tolérance aux fautes

C’est une tâche complexe que de concevoir des systèmes embarqués pour les applications critiques en temps réel. Ces systèmes doivent non seulement garantir une réponse dans les délais imposés par leur environnement physique, mais également le faire de manière fiable, malgré l’occurrence de fautes [Pow10]. Le besoin en processeurs tolérants aux fautes s’est accru ces dernières années [Che08], et va probablement devenir la norme. Si, dans le passé, la tolérance aux fautes a été le domaine exclusif des applications très spécialisées comme les systèmes de sécurité critique, les tendances de conception moderne impliquent des circuits plus sensibles qui conduisent les systèmes temps réel à disposer d’au moins quelques fonctionnalités de tolérance aux fautes. Par conséquent, la tolérance aux fautes est un besoin important – et croissant – des nouvelles générations de systèmes. Le système social moderne est articulé autour de l’industrie automatisée. Dans certains secteurs industriels sensibles, même une faute simple peut entraîner des pertes qui se chiffrent en millions dollars (par exemple dans les domaines bancaires ou boursiers), voire entraîner des pertes humaines (par exemple, les systèmes de contrôle du trafic aérien). Les industries comme l’automobile, l’avionique, et la production d’énergie nécessitent sûreté de fonctionnement, performance, et capacité de réponse en temps réel pour éviter les défaillances catastrophiques.

Pendant de nombreuses années, les chercheurs se sont focalisés sur les problèmes de performances. Grâce à leurs efforts incessants, ils ont ces dernières années amélioré la performance globale des processeurs, aidés en cela par le facteur technologique. Toutefois, les limites définies par la loi de Moore ont atteint leur niveau de saturation, et l’on observe une diminution de la sûreté de fonctionnement en raison de défauts physiques en constante augmentation. Différentes tendances dans la recherche de hautes performances ont accru le besoin en architectures fiables. Certaines d’entre-elles sont présentées ci-dessous :

Technologies plus fines / Échelle de conception
Bien que la réduction de la taille des transistors et des connexions n’a cessé d’augmenter les performances des processeurs et de réduire leur coût, elle a également affecté la sûreté de fonctionnement à long terme des puces. Quand un transistor est exposé à des rayonnements ionisants de haute énergie, des paires électron-trou sont créées [SSF+08]. La source du transistor et les zones de diffusion accumulent des charges qui peuvent inverser l’état logique du transistor [Muk08]. La finesse de gravure qui devrait être réduite à moins de 18 nanomètres en 2015 menace de manière significative les prochaines générations technologique [RYKO11]. Concernant les fautes transitoires, des circuits plus petits ont tendance à mettre en œuvre de plus faibles charges pour maintenir les états des registres, et les rendent de ce fait plus sensibles aux bruits. Lorsque la marge de bruit diminue, la probabilité que l’impact d’une particule de haute énergie puisse perturber la charge sur les circuits augmente, qui elle-même augmente à son tour la probabilité de fautes transitoires. De même, les tensions plus faibles mises en œuvre pour des raisons d’efficacité énergétique augmentera la sensibilité des puces à venir [FGAD10].

Plus de transistors par puce
Plus un circuit comporte de transistors, plus de fils sont nécessaires pour les connecter, résultant en une plus forte probabilité de fautes, tant lors de la fabrication que du fonctionnement de ces dispositifs. Les processeurs modernes sont plus sujets aux fautes en raison d’un plus grand nombre de transistors et de registres. Par ailleurs, la température est un autre facteur de fautes transitoires ou permanentes. Plus la puce comporte de dispositifs, plus de puissance sera drainée de l’alimentation, ce qui – à surface égale – va augmenter les pertes par dissipation avec comme conséquence une augmentation de la température et de la probabilité d’erreurs.

Architectures plus complexes
Aujourd’hui, les processeurs sont plus compliqués comparés aux architectures passées, ce qui augmente la probabilité d’erreurs de conception. D’autre part, cela rend également difficile le débogage des erreurs. Les efforts de recherche sont orientés vers des méthodes alternatives pour augmenter les performances du système sans augmenter la sensibilité du circuit, mais malheureusement le goulot d’étranglement a été atteint et ces solutions plus complexes font du débogage une tâche plus difficile à accomplir. En résumé, les appareils sont plus en plus sensibles aux rayonnements ionisants (qui peuvent causer des erreurs temporaires, dites « softs »), aux variations du point de fonctionnement dues aux fluctuations de la tension d’alimentation ou de la température, ainsi qu’aux effets parasites qui entraînent des courants de fuite statique [ITR07]. Changer les paramètres comme les dimensions, la marge de bruit ou la tension d’alimentation ne peut plus permettre d’augmenter les performances. Dans un proche avenir, à cause de leur petite taille et de leur fréquence élevée, la tendance à la défaillance des processeurs modernes sera en augmentation parce que le niveau de saturation est déjà atteint, conduisant à la hausse du taux d’erreurs softs dans les circuits logiques et les mémoires [Bau05], ce qui en affecte la sûreté de fonctionnement, même au niveau de la mer [WA08]. Pour assurer l’intégrité du circuit, la tolérance aux fautes doit être une considération importante dans la conception des circuits modernes. Un système fiable doit être conscient du mécanisme de tolérance contre les possibles erreurs.

Table des matières

INTRODUCTION GÉNÉRALE
I. ÉTAT DE L’ART ET ÉTUDE THÉORIQUE
1 Sûreté de fonctionnement et tolérance aux fautes
1.1 Problématique
1.1.1 Sources communes de fautes et leurs conséquences
1.2 Concepts de base et taxonomie du calcul sûr
1.2.1 Sûreté de fonctionnement
1.3 Attributs
1.4 Menaces
1.4.1 Défaillance du système
1.4.2 Les caractéristiques des fautes
1.5 Moyens
1.5.1 Prévention des fautes
1.5.2 Élimination des fautes
1.5.3 Prévision des fautes
1.5.4 Tolérance aux fautes
1.6 Techniques appliquées à différents niveaux
1.6.1 Techniques de tolérance aux fautes
1.7 Conclusion
2 Méthodes de conception et d’évaluation des processeurs tolérants aux fautes
2.1 Détection d’erreurs
2.1.1 Redondance matérielle
2.1.2 Redondance temporelle
2.1.3 Redondance d’information
2.2 Correction d’erreurs
2.2.1 Redondance matérielle/statique
2.2.2 Redondance temporelle
2.2.3 Redondance d’information
2.3 Recouvrement d’erreur
2.4 Tendances de conception des processeurs tolérants aux fautes
2.5 Évaluation de la tolérance aux fautes
2.5.1 Injection de fautes
2.5.2 Modèle d’erreur
2.5.3 L’environnement d’injection de fautes
2.6 Conclusion
II. ÉTUDE QUALITATIVE ET QUANTITATIVE
3 Méthodologie de conception et spécifications du modèle
3.1 Méthodologie
3.1.1 Détection d’erreurs concurrente : codes de parité
3.1.2 Recouvrement d’erreur : le rollback
3.2 Limitations
3.3 Hypothèse
3.4 Défis de conception
3.4.1 Défi n°1 : nécessité d’un processeur autocontrôlé
3.4.2 Défi n°2 : stockage temporaire nécessaire – journal matériel
3.4.3 Défi n°3 : interface entre processeur et mémoire
3.4.4 Défi n°4 : durée de séquence optimale pour implanter efficacement le mécanisme de rollback
3.5 Spécifications du modèle et flot de conception global
3.6 Implantation fonctionnelle
3.6.1 Modèle I
3.6.2 Modèle II
3.6.3 Comparaison
3.7 Conclusion
4 Conception et réalisation d’un processeur autocontrôlé
4.1 Stratégie de conception du processeur
4.1.1 Avantages du processeur à pile
4.2 Architecture proposée
4.3 Modèle matériel du processeur à pile
4.4 Les défis de conception du processeur à pile tolérant aux fautes
4.4.1 Défi n°I : mécanisme d’autocontrôle
4.4.2 Défi n°II : amélioration des performances
4.5 Solution n°I : mécanisme d’autocontrôle
4.5.1 Détection d’erreurs dans l’ALU
4.5.2 Détection d’erreurs dans les registres
4.5.3 Processeur autocontrôlé
4.5.4 Sauvegarde des éléments sensibles (SE)
4.5.5 Protéger les opcodes
4.6 Solution n°II : Aspects performance du cœur du processeur
4.6.1 Solution n°II.a : instructions multi-octets
4.6.2 Solution n°II.b : pipeline à 2 étages pour résoudre l’exécution des instructions
multi-cycles
4.6.3 Réduction de la pénalité due aux branchements conditionnels
4.7 Résultats d’implantation
4.8 Conclusion
CONCLUSION GÉNÉRALE

Cours gratuitTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *