programa de pós-graduação em ciência da computação pucrs confiabilidade de sistemas prof....
Post on 17-Apr-2015
107 Views
Preview:
TRANSCRIPT
Programa de Pós-Graduação em Ciência da ComputaçãoPUCRS
Confiabilidade de Sistemas
Prof. Eduardo Bezerra
Non-intrusive Software-Implemented Fault Injection in Embedded Systems
Guilherme Guindani
SUMÁRIO
IntroduçãoDefinições de Injeção de FalhasInjeção de falhas de HWInjeção de falhas de SWInjeção de falhas baseadas no NexusTécnica de injeção de falhas utilizadaEstudo de caso: ECU de um carroConclusões
Introdução
A avaliação da dependabilidade envolve o estudo de erros e defeitos
Realizadas experimentações nas fases deConceitoProjetoOperacional
Diferentes técnicas de injeção de falhas são usadas em diferentes fases do projeto
Técnicas empregadas são baseadas em: Simulação (baixo custo)Protótipo (alta precisão)
Definições
Ambiente de Injeção de falhas:
Definições
Método de implementaçãoHardware (HWIFI)Software (SWIFI)
HWIFI:OpenBridgingBit-flipCorrente espúriaSurto de tensãoStuck-at
SWIFI:Corrupção dos dados (registradores, memoria e disco)Corrupção na comunicação (barramento, NoC ou rede)Manifestação de erros no software (nível de máquina ou
superiores)
HW Fault Injection
Com contato diretoPinos do chipSocketsProduzem falhas a nível de tensão e/ou corrente
Probes ativos → Utilizados em falhas stuck-at e bridging
Inserção de sockets → entre o chip e sua placa de circuito impresso (PCB)Stuck-at, open ou demais falhas mais complexas
Boa controlabilidade das falhasPouca ou nenhuma pertubação no sistema
alvo
HW Fault Injection
Sem contatoFonte externa de falhas
Pulsos eletromagnéticos (EMP)Radiação
Imitam fenômenos naturais os quais os circuitos podem estar sujeitos
Difícil de controlarLocalTempo
Ferramentas de injeção em HW:MessalineFIST
SW Fault Injection
São atrativos pois não requerem HW adicional (encaresse o teste)
Alvos:AplicaçõesSistemas operacionais
Desvantagens:Não insere falhas em áreas inacessíveis ao SWPode atrapalhar a carga de trabalho do software
em teste e/ou modificar sua estrutura originalBaixa resolução temporal → causar problemas de
fidelidade no teste
SW Fault Injection
Injeção em tempo de compilaçãoModifica a estrutura do programa antes de ser carregado e
executadoFalhas no código objetoEmulam falhas de HW, SW e transientes
Injeção em tempo de execuçãoMecanismos de ativação da inserção de falhas
Time-outExceção/TrapInserção de código
Ferramentas de injeção em SW:FerrariFtapeDoctorXception
Nexus Fault Injection
Nexus → Padrão de debug de sistemas embarcadosDefinido pelo Nexus 5001 ForumHitachi, Infineon, Motorola, National e STDividido em 4 classes
Portabilidade → Debugging universal, utilizando uma porta específica “Nexus port”
Sobrecarga temporal introduzida pelo SWIFISeleção do momento de iserir as falhas (trigger)Corrupção dos locais de memória de sistema
(injeção da falha)
Nexus Fault Injection
Nexus WatchpointsParte do circuito de debug do Nexus
Utilizados para sinalizar eventos nas aplicações, sem parar a execução da aplicação
Eventos nas aplicações:Execução de uma dada instruçãoAcesso à uma palavra de memória pré-determinada
Nexus Fault Injection
Acesso à memória em tempo de execuçãoResolve o problema de inserir falhas sem interferir
na execução normal do sistema em testeInserir falhas em uma parte da memória antes que
esta seja utilizada
Observabilidade do SWIFI NexusMensagens de rastreamento (traces)
Saltos (branches)Dados (data)
Grafo do fluxo de controle da aplicaçãoMonitoramento das operações de escrita e leitura
na memória (inserção de falhas)
Injeção de Falhas Empregada
Aplicações de um SoC são aplicações que estão sendo executadas em um chipProblemas:
ObservabilidadeControlabilidadePresença ou não de falhas
Injeção de falhas em SoCsComplexidadeEscala de integração dos componentes
Injeção de Falhas Empregada
Nesta seção serão respondidas as seguintes perguntas:Quais são os conjuntos de falhas que a técnica
consegue inserir?
Como é determinado o momento em que a falha deverá ser inserida?
Quais são os passos que devem ser seguidos para inserir uma falha?
Injeção de Falhas Empregada
Quais são os conjuntos de falhas que a técnica consegue inserir?Modelo de falhas utilizado: Falhas de HW
Stuck-atBit-flip (representa a maior parte das falhas)
Inserindo falhas de bit-flip (3 passos):Ler o conteúdo da memória alvo (posição/registrador)Alterar seu conteúdo (XOR com uma máscara)Re-escrita do novo valor no mesmo local
Inserindo falhas stuck-at:Monitoramento contínuo de um local alvoQuando este local for utilizado, é inserida a falha
Stuck-at '1'Stuck-at '0'
Injeção de Falhas Empregada
Como é determinado o momento em que a falha deverá ser inserida?Definidos dois esquemas de disparo de falhas:
TemporalEspacial
Temporal:A inserção da falha é dada em um certo parâmetro de
tempo associado à execução do sistemaEspacial:
A falha é inserida quando a aplicação atinge certo estado ou condição
Instrução específica ou ativação de um evento (exception)
Injeção de Falhas Empregada
Utilização separada ou combinada
Quais são os passos que devem ser seguidos para inserir uma falha?Inserção de falhas é feita em tempo de execução
Não pára a aplicaçãoNão altera sua estrutura original
Durante a configuração inicial 2 endereços de memória são definidos
Sincronização do fluxo de execução com a inserção da falha (A)
Indica o endereço de memória em que será inserida a falha (B)
Wacthpoint é configurado em A (trigger espacial)Quando oprograma atingir este endereço dispara um
contador interno/externo (trigger temporal)Expirando o contador a falha é inserida em B
Injeção de Falhas Empregada
Estudo de Caso: ECU
Unidade de Controle Eletrônico (ECU) de um motor à Diesel2 processos distintos, porém fisicamente casados
Inserção de combustívelGerenciamento de ar
Controlados por:Reguladores integrais-proporcinonais (PI)Controladores liga-desliga
Configurados por tabelas de parâmetrosComportamento do motor é modelado
Estudo de Caso: ECU
Gráfico dos laços de controle da ECU
Estudo de Caso: ECU
Para estudar o comportamento da ECU na presença de falhasINERTE (Integrated NExus-based Real-Time fault
injection tool for Embedded systems)
Estudo de Caso: ECU
Experiment Generator Module (EGM)Entradas:
As faixas de endereço de memória onde as falhas serão inseridas
Número de falhas a serem inseridasDistribuição das falhas (uniforme, normal ou erlang)
Saída:Arquivos de configuração (CF) para o insersor de
falhas
Estudo de Caso: ECU
Fault Injector (FI)Implementado como um script Nexus
Entrada:Arquivo de configuração de falhas (CF)Gerado pelo EGM
Após a inicialização do ECU (reset):O FI insere as falhas e espera a sua ativaçãoO FI coleta informações de rastramento (traces)
Estudo de Caso: ECU
Analysis Tool (AT)Parser que compara os relatórios dos traces com
dados de execuções sem falhas (golden-runs)Extrai informações temporais das falhasAvalia se as falhas dispararam errors e se estes
foram detectadosVerifica se foram produzidos defeitos
Estudo de Caso: ECU
Procedimento experimental
Estudo de Caso: ECU
Resultados:3000 experimentos
1000 segmentos de memória do tipo read-only 1000 segmentos de memória do tipo read-write1000 memória de código
12% das falhas inseridas foram ativadas88% dos experimentos as falhas não afetaram o
comportamento do motor
Estudo de Caso: ECU
Resultados:16% dos erros ficaram dormentes
Não acarretaram em um defeito no motor
Dos erros que afetaram o funcionamento do motor:
37% provocaram um defeito no motor
44% foram detectados pelo mecanismo de detecção de erros empregado: MPC565 buit-in exceptions
3% foram detectados tarde demais, levando à uma falha do motor
Conclusões
Bom sistema de injeção de falhas em SoCsNão provoca sobrecargas no sistemasRealizado em tempo de execução
Dependente do padrão NexusBaixa inter-portabilidade
Escalável?MPSoCs
Programa de Pós-Graduação em Ciência da ComputaçãoPUCRS
Non-intrusive Software-Implemented Fault Injection in Embedded Systems
Obrigado!
Perguntas?!
Guilherme Guindani
top related