Titulo Estágio
Compiler-based fault tolerance against errors in the CPU
Áreas de especialidade
Engenharia de Software
Local do Estágio
CISUC
Enquadramento
Software applications are exposed to a variety of threats that can compromise their functionality. One often overlooked issue is errors in the CPUs and memory (more specifically, soft errors). These errors, caused by radiation coming from outside Earth (e.g., cosmic rays), but also from some terrestrial sources, introduce bit flips in the variables of a program, thus causing them to contain wrong values.
Objetivo
The aim of this dissertation is to develop a fault tolerance technique against these errors that is based on the notion of a stack machine. In other words, the student should develop a compiler for a subset of a programming language that will produce machine code that uses a very limited range of CPU registers. As you know, modern CPUs typically have a few dozen registers, and this approach will focus on leveraging a very limited range of these registers to enhance fault tolerance.
There is already a proof-of-concept (available at https://github.com/rbbarbosa/x64_stack_machine) that the student will extend to support a broader subset of the programming language. To evaluate whether the machine code produced using this compiler is more resilient than the code produced by a "traditional" compiler, the student will carry out fault injection campaigns using an existing framework (ucXception).
By the end of the dissertation, it is expected that a scientific paper will be written describing the work and the results.
Plano de Trabalhos - Semestre 1
T1 (M1-M3) : Perform a state-of-the-art analysis on the topics of dependability, soft errors, fault injection, software implemented fault tolerance (SWIFT) and stack machines
T2 (M3): Study the existing proof-of-concept
T3 (M4): Early extension of proof-of-concept to support more instructions
T4 (M5): Write the intermediate report
Plano de Trabalhos - Semestre 2
T5 (M6-M8): Implementation of the stack machine compiler with extended programming language support
T6 (M8): Choice of workload applications to be used for the evaluation phase
T7 (M8-M9): Perform fault injection campaigns to evaluate how a stack machine compiler can increase the resiliency of a program
T8 (M10): Write a scientific paper
T9 (M11): Write the final dissertation report
Condições
The dissertation will take place in the CISUC research centre (SSE group).
This dissertation will be supported by a scholarship (~990€/month) during the second semester.
Observações
The interested student should possess a strong knowledge in compilers (Lex, Yacc, etc.), assembly language and computer architectures.
The dissertation will be co-supervised by Prof. Raul Barbosa.
Orientador
Frederico Cerveira
fmduarte@dei.uc.pt 📩