KEYWORD |
Development of a Highly Parallelizable Fault Injector for Micro-Architectural Level-Described Microprocessors
keywords AEROSPACE, AUTOMOTIVE, HARDWARE AND SOFTWARE, SAFETY CRITICAL SOFTWARE, SIMULATION
Reference persons ALESSANDRO SAVINO
Research Groups DAUIN - GR-24 - SMILIES - reSilient coMputer archItectures and LIfE Sci
Thesis type APPLIED RESEARCH, EXPERIMENTAL/MODELLING
Description The relentless pursuit of enhancing the reliability and robustness of modern computing systems has led to an increased interest in fault tolerance mechanisms. One crucial aspect of this pursuit is the ability to inject faults into a system to assess its resilience systematically. This master's thesis proposes the development of a Fault Injector leveraging the capabilities of micro-architectural simulators. The emphasis will be on creating a fault injection tool that provides accurate and detailed fault models and achieves a high degree of parallelizability for efficient simulation of fault scenarios.
The primary objectives of this thesis are as follows:
- Develop a Fault Injector: Design and implement a fault injection tool that seamlessly integrates with a micro-architectural simulator, injecting faults in all available microarchitectural components.
- Accurate Fault Models: Devise and implement accurate fault models that reflect real-world scenarios, considering transient and permanent faults. The fault injector should allow users to specify and customize parameters to emulate various fault conditions.
- High Parallelizability: Implement parallelization strategies to enhance the efficiency of fault injection simulations. Explore and leverage multi-core and distributed computing architectures to enable simultaneous injection of faults across multiple components or systems, ensuring scalability and reduced simulation time.
- Comprehensive Evaluation: Conduct extensive evaluations to validate the accuracy of fault injection results and assess the performance of the developed tool. Compare the results with existing fault injection methods and evaluate the impact of parallelization on simulation time.
The development of the Fault Injector will involve a phased approach:
- Literature Review: Conduct an in-depth review of existing fault injection techniques, models, and simulation frameworks.
- Design and Implementation: Develop a comprehensive design for the Fault Injector, considering modularity, extensibility, and integration.
- Fault Model Definition: Define and implement fault models, allowing users to configure and inject faults at various system levels.
- Parallelization Strategies: Explore and implement parallelization techniques to distribute fault injection tasks across multiple cores or machines. Optimize the tool for performance and scalability.
- Evaluation and Validation: Conduct thorough evaluations to validate the accuracy of fault injection results and assess the impact of parallelization on simulation time.
The emphasis on high parallelizability aims to address the computational demands associated with fault injection, enabling more extensive and realistic simulations.
The expected outcomes include the development of a robust Fault Injector, a set of accurate fault models, and insights into the effectiveness of parallelization in fault injection simulations.
Required skills - C/C++ Programming (Rust is considered a plus)
- Python Programming
- Advanced Computer Architectures knowledge
Deadline 06/12/2024
PROPONI LA TUA CANDIDATURA