programa de pós-graduação em ciência da computação pucrs confiabilidade de sistemas prof....

29
Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection in Embedded Systems Guilherme Guindani

Upload: internet

Post on 17-Apr-2015

107 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection

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

Page 2: Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection

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

Page 3: Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection

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)

Page 4: Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection

Definições

Ambiente de Injeção de falhas:

Page 5: Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection

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)

Page 6: Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection

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

Page 7: Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection

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

Page 8: Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection

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

Page 9: Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection

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

Page 10: Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection

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)

Page 11: Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection

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

Page 12: Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection

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)

Page 13: Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection

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

Page 14: Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection

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?

Page 15: Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection

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'

Page 16: Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection

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)

Page 17: Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection

Injeção de Falhas Empregada

Utilização separada ou combinada

Page 18: Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection

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

Page 19: Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection

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

Page 20: Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection

Estudo de Caso: ECU

Gráfico dos laços de controle da ECU

Page 21: Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection

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)

Page 22: Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection

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

Page 23: Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection

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)

Page 24: Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection

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

Page 25: Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection

Estudo de Caso: ECU

Procedimento experimental

Page 26: Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection

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

Page 27: Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection

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

Page 28: Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection

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

Page 29: Programa de Pós-Graduação em Ciência da Computação PUCRS Confiabilidade de Sistemas Prof. Eduardo Bezerra Non-intrusive Software-Implemented Fault Injection

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