Analysing and Supporting the Reliability Decision-making Process in Computing Systems with a Reliability Evaluation Framework
Analyser et supporter le processus de prise de décision dans la fiabilité des systèmes informatiques avec un framework d'évaluation de fiabilité
Résumé
Reliability has become an important design aspect for computing systems due to the aggressive technology miniaturization and the increase of the non interrupted performance that introduce a large set of failure sources for hardware components. The hardware system can be affected by faults caused by physical manufacturing defects or environmental perturbations such as electromagnetic interference, external radiations, or high-energy neutrons from cosmic rays and alpha particles. For embedded systems and systems used in safety critical fields such as avionic, aerospace and transportation, the presence of these faults can damage their components and can lead to catastrophic failures. Investigating new methods to evaluate the system
reliability helps designers to understand the effect of faults on the system, and thus to develop reliable and dependable products. Depending on the design phase of the system, the development of reliability evaluation methods can save the design costs and efforts, and will positively impact product time to-market.
The main objective of this thesis is to develop new techniques to evaluate the reliability of complex computing system running a software. The evaluation targets faults leading to soft errors. These faults can propagate through the different layers composing the full system. They can be masked during this propagation either at the technological or at the architectural level. When a fault reaches the software layer of the system, it can corrupt its data, its instructions or the control flow. These errors may impact the correct software execution by producing erroneous results or preventing the application execution and leading to abnormal termination or application hang.
In this thesis, the reliability of the different software components is analyzed at different levels of the system (depending on the design phase), emphasizing the role that the interaction between hardware and software plays in the overall system. Then, the reliability of the system is evaluated via a flexible, fast and accurate evaluation framework. Finally, the reliability decision-making process in computing systems is comprehensively supported with the developed framework (methodologies and tools).
La fiabilité est un aspect important de conception des systèmes informatiques suite à la miniaturisation agressive de la technologie ainsi que le fonctionnement non interrompu qui introduisent un grand nombre de sources de défaillance des composantes matérielles. Le système matériel peut être affecté par des fautes causées par des défauts de fabrication ou de perturbations environnementales telles que les interférences électromagnétiques, les radiations externes ou les neutrons de haute énergie des rayons cosmiques et des particules alpha. Pour les systèmes embarqués et systèmes utilisés dans les domaines critiques pour la sécurité tels que l’avionique, l’aérospatiale et le transport, la présence de ces fautes peut endommager leurs composantes et conduire à des défaillances catastrophiques du systèmes. L’étude de nouvelles méthodes pour évaluer la fiabilité du système permet d’aider les concepteurs à comprendre les effets des fautes sur le système, et donc de développer des produits fiables et sûrs. En fonction de la phase de
conception du système, le développement de méthodes d’évaluation de la fiabilité peut réduire les coûts et les efforts de conception. Ainsi, il aura un impact positif sur le temps de mise en marché du produit.
L’objectif principal de cette thèse est de développer de nouvelles techniques pour évaluer la fiabilité globale du système informatique complexe. L’évaluation vise les fautes conduisant à des erreurs dites "soft". Ces fautes peuvent se propager à travers les différentes structures qui composent le système jusqu’à provoquer une défaillance du logiciel. Elles peuvent être masquées lors de cette propagation soit au niveau technologique ou architectural. Quand la faute atteint la partie logicielle du système, elle peut endommager ses données, ses instructions ou le contrôle de flux. Ces erreurs peuvent avoir un impact sur l’exécution correcte du logiciel en produisant des résultats erronés ou empêchant l’exécution de l’application.
Dans cette thèse, la fiabilité des différentes composantes logiciels est analysée à différents niveaux du système (en fonction de la phase de conception), mettant l’accent sur le rôle que l’interaction entre le matériel et le logiciel joue dans le système global. Ensuite, la fiabilité du système est évaluée grâce à des méthodologies d’évaluation flexible, rapide et précise. Enfin, le processus de prise de décision pour la fiabilité des systèmes informatiques est pris en charge avec les méthodes et les outils développés.