An automated framework for early Soft error assessment, identification, and mitigation - Gava, Jonas Fogliarini (2021)
Os sistemas de computação multicore estão incorporando mais funcionalidades e novas tecnologias em suas pilhas de software (ou seja, kernels, drivers e aplicações pesadas). As pilhas de software em execução nessas arquiteturas diferem em termos de segurança, confiabilidade, desempenho e requisitos de energia. Enquanto o desenvolvimento de software de supercomputador considera o desempenho como critério principal, as pilhas de software embutidas em carros devem cumprir requisitos estritos de segurança e confiabilidade, que são definidos por padrões específicos como a ISO 26262. Espera-se que esses sistemas integrem inteligência artificial (IA) e técnicas de aprendizado de máquina (ML), que serão tão complexas quanto as encontradas nos data centers atuais. As técnicas de mitigação de erros transientes implementadas em software não afetam o custo de fabricação. No entanto, existem impactos em relação ao tempo de execução, tamanho do código e esforço de desenvolvimento para portar para novas arquiteturas e várias linguagens de programação. Isso pode consumir muito tempo e não oferecer uma boa compensação em grandes projetos. Uma solução para reduzir o overhead de energia e desempenho é aplicar proteção seletiva cobrindo apenas as partes mais críticas da aplicação. Este trabalho foca no aprimoramento da capacidade do framework SOFIA, através da inclusão de um módulo de mitigação de erros, que oferece suporte à proteção automática de código aplicando diferentes técnicas de mitigação de erros transientes baseadas em software. A abordagem proposta amplia os recursos do SOFIA, tornando-o a primeira ferramenta totalmente automatizada que oferece suporte à avaliação rápida e precoce de soft errors, diagnóstico e avaliação de redução de suscetibilidade. O módulo de mitigação desenvolvido inclui proteção TMR parcial e total, bem como uma nova técnica de mitigação chamada RAT, que aloca a função crítica do kernel/aplicação para um pool específico de registradores. Finalmente, uma extensa validação do framework é feita com mais de um milhão de injeções de falha considerando configurações de processadores Arm distintos. Experimentos mostram que aplicações bare metal sem dependências externas apresentam resultados promissores de confiabilidade de erros transientes, já que temos acesso à maior parte do código executado. Por outro lado, para a maioria das aplicações Linux, a proteção do código não é tão eficaz. Para os três algoritmos de ML, os resultados mostram que a melhoria usando proteção parcial do TMR é semelhante ao TMR e tem até 50% menos penalidade de desempenho para todos os cenários. Os resultados da avaliação da aplicação CNN mostram que as técnicas de replicação podem não ser adequadas para plataformas de restrição de recursos e que técnicas de mitigação novas e leves devem ser investigadas.