ebook img

Implementação e Avaliação da Técnica ACCE para Detecção e Correção de Erros de Fluxo de ... PDF

105 Pages·2013·2.91 MB·Portuguese
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Implementação e Avaliação da Técnica ACCE para Detecção e Correção de Erros de Fluxo de ...

UNIVERSIDADEFEDERALDORIOGRANDEDOSUL INSTITUTODEINFORMÁTICA PROGRAMADEPÓS-GRADUAÇÃOEMCOMPUTAÇÃO RAFAELBALDIATIPARIZI Implementação e Avaliação da Técnica ACCE para Detecção e Correção de Erros de Fluxo de Controle no LLVM Dissertaçãoapresentadacomorequisitoparcial paraaobtençãodograude MestreemCiênciadaComputação Prof.Dr.ÁlvaroFreitasMoreira Orientador Prof.Dr.LuigiCarro Co-orientador PortoAlegre,maiode2013 CIP–CATALOGAÇÃONAPUBLICAÇÃO Parizi,RafaelBaldiati Implementação e Avaliação da Técnica ACCE para Detecção eCorreçãodeErrosdeFluxodeControlenoLLVM/RafaelBal- diatiParizi.–PortoAlegre: PPGCdaUFRGS,2013. 105 f.: il. Dissertação(mestrado)–UniversidadeFederaldoRioGrande do Sul. Programa de Pós-Graduação em Computação, Porto Ale- gre, BR–RS, 2013. Orientador: Álvaro Freitas Moreira; Co- orientador: LuigiCarro. 1.Tolerânciaafalhas. 2.Errosdefluxodecontrole. 3.ACCE. 4.LLVM. I.Moreira,ÁlvaroFreitas. II.Carro,Luigi. III.Título. UNIVERSIDADEFEDERALDORIOGRANDEDOSUL Reitor: Prof.CarlosAlexandreNetto Vice-Reitor: Prof.RuiVicenteOppermann Pró-ReitordePós-Graduação: Prof.AldoBoltenLucion DiretordoInstitutodeInformática: Prof.LuísdaCunhaLamb CoordenadordoPPGC:Prof.LuigiCarro Bibliotecária-chefedoInstitutodeInformática: BeatrizReginaBastosHaro “Ao ser produzido, o conhecimento novo supera outro que antes foi novo e se fez velho e se dispõe a ser ultrapassado por outro amanhã.” — PAULO FREIRE AGRADECIMENTOS Agradeço a Deus por me disponibilizar uma vida repleta de desafios que, ao superá- los,encho-mededisposiçãoecoragemparaseguircrescendopessoaleprofissionalmente. Agradeço à minha mãe, que sempre se fez presente na minha vida, assumindo o papel de paiemãe,mostrando-meocaminhoemeensinandoaseguiremfrente. Aomeupai,que dealgumlugarmeprotegeemedáforçasparabatalharpelosmeusobjetivos. Aosdemais familiares, que me ajudam das mais variadas formas, com ações de apoio e carinho. Aos meus amigos, pelo companheirismo, amizade e que entenderam minha ausência em di- versas festas e confraternizações. Ao CNPQ, pelo auxílio, fundamental e imprescindível paraaminhasubsistênciaemPortoAlegre. Aomeuorientador,ProfessorÁlvaroMoreira, pelo apoio e ensinamentos, acompanhando constantemente as atividades relacionadas ao trabalho. Ao professor Luigi Carro e ao Ronaldo Ferreira, que colaboraram de forma efetiva no desenvolvimento do trabalho. Aos colegas do laboratório 67-202 no Instituto de Informática da UFRGS, pelo companheirismo e amizade. Por fim, a todos que direta ou indiretamente colaboraram para minha formação profissional, pessoal e acadêmica, Obrigado! SUMÁRIO LISTA DE ABREVIATURAS E SIGLAS . . . . . . . . . . . . . . . . . . . . 7 LISTA DE FIGURAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 LISTA DE TABELAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 RESUMO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 ABSTRACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.1 ContextoeMotivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.2 ObjetivoseResultadosAlcançados . . . . . . . . . . . . . . . . . . . . . 14 1.3 OrganizaçãodoTexto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2 FALHAS TRANSIENTES E ERROS DE FLUXO DE CONTROLE . . . 16 2.1 FalhasTransientesdeHardware . . . . . . . . . . . . . . . . . . . . . . 16 2.2 ErrosdeFluxodeControle . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3 CFESdetectadosecorrigidosporACCE . . . . . . . . . . . . . . . . . . 17 2.4 TratamentodeCFEscomSoftware . . . . . . . . . . . . . . . . . . . . . 18 3 LLVM E LLVM-IR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.1 LLVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.1.1 Arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.1.2 ALinguagemIntermediáriaLLVM-IR . . . . . . . . . . . . . . . . . . . 22 4 IMPLEMENTAÇÃO DE ACCE NO LLVM . . . . . . . . . . . . . . . . . 24 4.1 ObtençãodeAssinaturasparaosBlocosBásicos . . . . . . . . . . . . . 24 4.1.1 Cálculodapartesuperiordasassinaturas . . . . . . . . . . . . . . . . . . 27 4.1.2 Cálculodaparteinferiordasassinaturas . . . . . . . . . . . . . . . . . . 27 4.2 Transformaçãodeprogramas . . . . . . . . . . . . . . . . . . . . . . . . 30 4.2.1 Adiçãodenovasvariáveisglobais . . . . . . . . . . . . . . . . . . . . . 30 4.2.2 TransformaçãodeFunções . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.3 Transformação de Programas em Tempo de Compilação: Implementa- çãonoLLVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.4 DetecçãodeErrosdeFluxodeControleemTempodeExecução . . . . 41 4.5 CorreçãodoControledoProgramaemTempodeExecução . . . . . . . 42 5 EXPERIMENTOS E RESULTADOS . . . . . . . . . . . . . . . . . . . . 50 5.1 ObjetivoseConclusõesdosExperimentos . . . . . . . . . . . . . . . . . 50 5.2 MetodologiadosExperimentos . . . . . . . . . . . . . . . . . . . . . . . 51 5.2.1 BenchmarksUtilizados . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.2.2 InjeçãodeFalhas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.2.3 CenáriosdeExperimentação . . . . . . . . . . . . . . . . . . . . . . . . 54 5.3 Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 5.3.1 AplicaçãoIndividualdeTransformaçõesseguidasporACCE . . . . . . . 56 5.3.2 AplicaçãodeCombinaçõesdeTransformaçõesseguidasporACCE . . . . 65 5.3.3 AvaliaçãodeACCEemtermosdeConsumoEnergéticoeDesempenho . . 68 6 CONCLUSÕES E TRABALHOS FUTUROS . . . . . . . . . . . . . . . 70 REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 ANEXO I - SINTAXE DA LINGUAGEM LLVM-IR . . . . . . . . . . . . . . . 77 ANEXO II - ARTIGOS PUBLICADOS . . . . . . . . . . . . . . . . . . . . . 83 LISTA DE ABREVIATURAS E SIGLAS ABFT AlgorithmBasedFaultTolerance ACCE AutomaticCorrectionofControl-flowErrors A_sig AssinaturaSemelhante CEDA ControlflowErrorsDetectionthroughAssertions CFC ControlFlowChecking CFE ControlFlowError CFG ControlFlowGraph CFCSS ControlFlowCheckingbySoftwareSignatures CRC32 32-bitCyclicRedundancyCheck FEH FunctionErrorHandler FFT FastfourierTransform GCC GnuCompilerCollection GDB GnuDebbuger GEH GlobalErrorHandler IDE IntegratedDevelopmentEnvironment LLVM LowLevelVirtualMachine LLVM-IRLowLevelVirtualMachineIntermediateRepresentation NES NodeExitSignature Net Network NS NodeSignature NT NodeType PC ProgramCounter S Signature SSA SingleStaticAssignment SIHFT SoftwareImplementedHardwareFaultTolerance YACCA YetAnotherControlflowCheckingApproach LISTA DE FIGURAS Figura2.1: Exemplo de código fonte e seu grafo de fluxo de controle (OLGA etal.,2006) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Figura3.1: EtapasdacompilaçãorealizadaspeloLLVM. . . . . . . . . . . . . . 21 Figura3.2: ComandoseprocessodecompilaçãodoLLVM. . . . . . . . . . . . 21 Figura3.3: Exemplodeutilizaçãodeinstruçõesφ . . . . . . . . . . . . . . . . . 23 Figura4.1: Exemplodegrafodefluxodecontrole. . . . . . . . . . . . . . . . . 25 Figura4.2: AdiçãodenovasvariáveisglobaisporACCE. . . . . . . . . . . . . . 31 Figura4.3: RepresentaçãodatransformaçãorealizadaporACCEnasfunçõesdos programas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Figura4.4: Transformaçãodeblocodeentradadefunção. . . . . . . . . . . . . . 33 Figura4.5: Representaçãodatransformaçãorealizadaemblocosbásicosregulares. 35 Figura4.6: BlocosFEH. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Figura4.7: FunçãoGEH. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Figura4.8: ComandosparaaativaçãodeACCEduranteacompilaçãodeprogra- mascomoLLVM . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Figura4.9: ExemplodedetecçãodeerrodefluxodecontroleporACCE . . . . . 42 Figura4.10: ExemplodecorreçãodeCFEporACCEemblocosdamesmafunção -Blocosbásicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Figura4.11: ExemplodecorreçãodeCFEporACCEemblocosdamesmafunção -FEH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Figura4.12: Exemplo de correção de CFE por ACCE em blocos de funções dife- rentes-representaçãodafunção1. . . . . . . . . . . . . . . . . . . . 47 Figura4.13: Exemplo de correção de CFE por ACCE em blocos de funções dife- rentes-representaçãodafunção2. . . . . . . . . . . . . . . . . . . . 48 Figura4.14: Exemplo de correção de CFE por ACCE em blocos de funções dife- rentes-representaçãodeGEH. . . . . . . . . . . . . . . . . . . . . . 49 Figura5.1: ProcessodeaplicaçãodatécnicaACCEnoLLVM. . . . . . . . . . . 50 Figura5.2: Esquematizaçãodocenário2dosexperimentos. . . . . . . . . . . . . 55 Figura5.3: Esquematizaçãodocenário3dosexperimentos. . . . . . . . . . . . . 55 Figura5.4: Esquematizaçãodocenário4dosexperimentos. . . . . . . . . . . . . 55 Figura5.5: TaxasdecorreçãodeACCEquandocombinadacom1transformação. 56 Figura5.6: DesviopadrãodacorreçãodeACCEquandocombinadacom1trans- formação. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Figura5.7: Efeitodeloop-reducesobreacorreçãodeCFEsnosbenchmarks. . . 57 Figura5.8: Taxa de correção de falhas de algumas transformações aplicadas em Dijkstra. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Figura5.9: CFGcorrespondenteaocódigodaListagem5.1 . . . . . . . . . . . . 61 Figura5.10: CFG correspondente ao código da Listagem 5.1 transformado com Loop-rotate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Figura5.11: CFG da função main do programa basicmath antes da aplicação de loop-rotate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Figura5.12: CFG da função main após a aplicação da transformação loop-rotate embasicmath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Figura5.13: CFG da função main de bitcount após a aplicação da transformação loop-rotate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Figura5.14: CFGdafunçãomaindefft compiladocominstcombine . . . . . . . . 66 Figura5.15: TaxasdecorreçãodeACCEnocenáriodetransformaçõescombinadas. 67 Figura5.16: Desviopadrãonocenáriodetransformaçõescombinadas. . . . . . . 67 Figura6.1: SintaxedeumsubcojuntodeLLVM-IR . . . . . . . . . . . . . . . . 77 Figura6.2: ExemplodeprogramaemLinguagemLLVM-IR . . . . . . . . . . . 82 LISTA DE TABELAS Tabela4.1: BlocoseseuspredecessoresobtidosapartirdoCFGdaFigura4.1. . 25 Tabela4.2: NetseseuspredecessoresobtidosapartirdoCFGdaFigura4.1. . . . 26 Tabela4.3: NetserespectivosA_Sig. . . . . . . . . . . . . . . . . . . . . . . . 27 Tabela4.4: NS eNES deblocos. . . . . . . . . . . . . . . . . . . . . . . . . . 27 u u Tabela4.5: NS eNES deblocos. . . . . . . . . . . . . . . . . . . . . . . . . . . 28 l l Tabela4.6: NS eNES deblocos. . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Tabela4.7: NS eNES deblocosembits. . . . . . . . . . . . . . . . . . . . . . 29 u u Tabela4.8: d ed dosblocosembits. . . . . . . . . . . . . . . . . . . . . . . . 30 1 2 Tabela5.1: Programasdebenchmark disponíveisnasuíteMibench . . . . . . . . 52 Tabela5.2: ResultadosdacorreçãodeCFEscomACCEparacadaotimizaçãodo LLVM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Tabela5.3: Número de blocos básicos correspondente a cada benchmark para cadaumadastransformaçõesdisponibilizadaspeloLLVM . . . . . . 60 Tabela5.4: Valores da correção de falhas resultante da aplicação das combina- çõesdetransformaçõesnosbenchmarkscomparadoscomobaseline . 68 Tabela5.5: Avaliação de energia de três programas transformados com otimiza- çõesfornecidaspeloLLVM,seguidasporACCE. . . . . . . . . . . . 69 Tabela5.6: Avaliação do tempo de execução de três programas otimizados pelas transformaçõesfornecidaspeloLLVMeACCE. . . . . . . . . . . . 69 Tabela6.1: TiposdeLLVM-IR . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Tabela6.2: ComandosemLLVM-IR . . . . . . . . . . . . . . . . . . . . . . . . 79 Tabela6.3: Instruçõesdetérmino . . . . . . . . . . . . . . . . . . . . . . . . . . 80

Description:
Besides the implemetation of the technique like a transformation pass, the LLVM was also used in the Tabela 5.2: Resultados da correção de CFEs com ACCE para cada otimização do LLVM. Benchmarks basicmath bitcount quicksort dijkstra patricia string search susan rijndael fft crc32 adce. 0,96.
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.