Modular and generic WCET static analysis with LLVM framework

Detalhes bibliográficos
Autor(a) principal: Fachini, Guilherme James de Angelis
Data de Publicação: 2011
Tipo de documento: Trabalho de conclusão de curso
Idioma: eng
Título da fonte: Repositório Institucional da UFRGS
Texto Completo: http://hdl.handle.net/10183/31020
Resumo: O cálculo do tempo do pior-caso de execução, do inglês Worst Case Execution Time (WCET) é um desafio na área de verificação de software para sistemas de tempo real. Essa análise faz parte do trabalho de escalonamento de tarefas de processos em sistemas multi-cores. A complexidade de prever esse tempo aumenta de acordo com a complexidade do hardware do sistema a ser analisado e seus componentes, já que muitas partes de uma plataforma, como pipelines e memória cache inserem variantes no tempo de execução difíceis de prever e analisar. Existem vários métodos com diferentes abordagens para se calcular o tempo de execução de um programa. Eles são principalmente baseados em análises estáticas e dinâmicas, de forma que a estática utiliza um modelo de hardware e analisa o código, enquanto a dinâmica necessita de algum simulador ou de uma plataforma real para realizar as medidas de tempo. Esse trabalho apresenta um modelo de análise estática para prever o tempo do piorcaso de execução de códigos para sistemas embarcados de tempo real. Além disso, executa, para fins de comparação, uma análise dinâmica baseado na execução dos códigos de teste em um simulador. O modelo de análise estática é desenvolvido baseado em um assembly gerado pela infra-estrutura de compilação do LLVM, que gera uma representação intermediária de código que é independente de arquitetura. O método tem o objetivo de ser escalonável e modular, isto é, quão mais precisa a análise deve ser, melhores modelos de análise devem ser implementados e usados no processo. O modelo de análise utilizado nesse trabalho possui uma abordagem clara e utiliza uma descrição de arquitetura simples exemplificando o processo. A análise dinâmica é baseada no método Monte Carlo de simulação e é executada em um simulador da arquitetura de um AVR, o Atmega128, chamado AVRORA.
id UFRGS-2_5001e8f7a36bc8305bd7f403c8c4a774
oai_identifier_str oai:www.lume.ufrgs.br:10183/31020
network_acronym_str UFRGS-2
network_name_str Repositório Institucional da UFRGS
repository_id_str
spelling Fachini, Guilherme James de AngelisKuhn, ThomasCota, Erika Fernandes2011-08-12T06:00:48Z2011http://hdl.handle.net/10183/31020000782100O cálculo do tempo do pior-caso de execução, do inglês Worst Case Execution Time (WCET) é um desafio na área de verificação de software para sistemas de tempo real. Essa análise faz parte do trabalho de escalonamento de tarefas de processos em sistemas multi-cores. A complexidade de prever esse tempo aumenta de acordo com a complexidade do hardware do sistema a ser analisado e seus componentes, já que muitas partes de uma plataforma, como pipelines e memória cache inserem variantes no tempo de execução difíceis de prever e analisar. Existem vários métodos com diferentes abordagens para se calcular o tempo de execução de um programa. Eles são principalmente baseados em análises estáticas e dinâmicas, de forma que a estática utiliza um modelo de hardware e analisa o código, enquanto a dinâmica necessita de algum simulador ou de uma plataforma real para realizar as medidas de tempo. Esse trabalho apresenta um modelo de análise estática para prever o tempo do piorcaso de execução de códigos para sistemas embarcados de tempo real. Além disso, executa, para fins de comparação, uma análise dinâmica baseado na execução dos códigos de teste em um simulador. O modelo de análise estática é desenvolvido baseado em um assembly gerado pela infra-estrutura de compilação do LLVM, que gera uma representação intermediária de código que é independente de arquitetura. O método tem o objetivo de ser escalonável e modular, isto é, quão mais precisa a análise deve ser, melhores modelos de análise devem ser implementados e usados no processo. O modelo de análise utilizado nesse trabalho possui uma abordagem clara e utiliza uma descrição de arquitetura simples exemplificando o processo. A análise dinâmica é baseada no método Monte Carlo de simulação e é executada em um simulador da arquitetura de um AVR, o Atmega128, chamado AVRORA.The worst-case execution time (WCET) prediction is a challenge in the software verification area for real-time embedded systems. This analysis is part of the scheduling of parallelizable processes job on multi-core systems. The complexity of predict this time increases accordingly to the complexity of the target system hardware and its components, since much of this components, as pipelines and cache memory, attach hard to predict and analyze temporal variants. There are many methods with different approaches to calculate the execution time of a program and they are based mainly on static and dynamics analysis. The first takes account a hardware model and the code analysis itself, while the second needs some accurate simulator or the target platform to perform its time measurements. This work presents a static method for predicting worst-case execution time (WCET) for embedded real-time systems. Furthermore, performs, as a comparison of accuracy, a dynamic analysis, running the test codes in a simulator. The static analysis is performed based on an assembly generated by the LLVM compiler. This compilation framework generates a code intermediate representation (IR) independent of architecture. The model aims to be a modular and scalable, that means, it was build to accept different accuracy levels, depending on the accuracy of the developed hardware model and the analysis used in the process. In this work, this work analysis follows a clear approach and uses a simple architecture description for its execution. The dynamic analysis is done based on the Monte Carlo simulation method, performed over the AVR ATmega128 simulator, AVRORA.application/pdfengVerificacao : ProgramasProgramação concorrenteModular and generic WCET static analysis with LLVM frameworkAnálise estática, genérica e modular de WCET utilizando a infra-estrutura de compilação do LLVM info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesisUniversidade Federal do Rio Grande do SulInstituto de InformáticaPorto Alegre, BR-RS2011Ciência da Computação: Ênfase em Ciência da Computação: Bachareladograduaçãoinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFRGSinstname:Universidade Federal do Rio Grande do Sul (UFRGS)instacron:UFRGSTEXT000782100.pdf.txt000782100.pdf.txtExtracted Texttext/plain61545http://www.lume.ufrgs.br/bitstream/10183/31020/2/000782100.pdf.txta1b2c9c8b8f6251b2d945a30663db518MD52ORIGINAL000782100.pdf000782100.pdfTexto completo (inglês)application/pdf275594http://www.lume.ufrgs.br/bitstream/10183/31020/1/000782100.pdf1c18a1af099db837c0d8ca4e66666371MD51THUMBNAIL000782100.pdf.jpg000782100.pdf.jpgGenerated Thumbnailimage/jpeg1036http://www.lume.ufrgs.br/bitstream/10183/31020/3/000782100.pdf.jpgea93aaa82eb8037d6fd5463d9817c3cbMD5310183/310202022-02-22 05:08:26.283328oai:www.lume.ufrgs.br:10183/31020Repositório de PublicaçõesPUBhttps://lume.ufrgs.br/oai/requestopendoar:2022-02-22T08:08:26Repositório Institucional da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)false
dc.title.pt_BR.fl_str_mv Modular and generic WCET static analysis with LLVM framework
dc.title.alternative.pt.fl_str_mv Análise estática, genérica e modular de WCET utilizando a infra-estrutura de compilação do LLVM
title Modular and generic WCET static analysis with LLVM framework
spellingShingle Modular and generic WCET static analysis with LLVM framework
Fachini, Guilherme James de Angelis
Verificacao : Programas
Programação concorrente
title_short Modular and generic WCET static analysis with LLVM framework
title_full Modular and generic WCET static analysis with LLVM framework
title_fullStr Modular and generic WCET static analysis with LLVM framework
title_full_unstemmed Modular and generic WCET static analysis with LLVM framework
title_sort Modular and generic WCET static analysis with LLVM framework
author Fachini, Guilherme James de Angelis
author_facet Fachini, Guilherme James de Angelis
author_role author
dc.contributor.author.fl_str_mv Fachini, Guilherme James de Angelis
dc.contributor.advisor1.fl_str_mv Kuhn, Thomas
dc.contributor.advisor-co1.fl_str_mv Cota, Erika Fernandes
contributor_str_mv Kuhn, Thomas
Cota, Erika Fernandes
dc.subject.por.fl_str_mv Verificacao : Programas
Programação concorrente
topic Verificacao : Programas
Programação concorrente
description O cálculo do tempo do pior-caso de execução, do inglês Worst Case Execution Time (WCET) é um desafio na área de verificação de software para sistemas de tempo real. Essa análise faz parte do trabalho de escalonamento de tarefas de processos em sistemas multi-cores. A complexidade de prever esse tempo aumenta de acordo com a complexidade do hardware do sistema a ser analisado e seus componentes, já que muitas partes de uma plataforma, como pipelines e memória cache inserem variantes no tempo de execução difíceis de prever e analisar. Existem vários métodos com diferentes abordagens para se calcular o tempo de execução de um programa. Eles são principalmente baseados em análises estáticas e dinâmicas, de forma que a estática utiliza um modelo de hardware e analisa o código, enquanto a dinâmica necessita de algum simulador ou de uma plataforma real para realizar as medidas de tempo. Esse trabalho apresenta um modelo de análise estática para prever o tempo do piorcaso de execução de códigos para sistemas embarcados de tempo real. Além disso, executa, para fins de comparação, uma análise dinâmica baseado na execução dos códigos de teste em um simulador. O modelo de análise estática é desenvolvido baseado em um assembly gerado pela infra-estrutura de compilação do LLVM, que gera uma representação intermediária de código que é independente de arquitetura. O método tem o objetivo de ser escalonável e modular, isto é, quão mais precisa a análise deve ser, melhores modelos de análise devem ser implementados e usados no processo. O modelo de análise utilizado nesse trabalho possui uma abordagem clara e utiliza uma descrição de arquitetura simples exemplificando o processo. A análise dinâmica é baseada no método Monte Carlo de simulação e é executada em um simulador da arquitetura de um AVR, o Atmega128, chamado AVRORA.
publishDate 2011
dc.date.accessioned.fl_str_mv 2011-08-12T06:00:48Z
dc.date.issued.fl_str_mv 2011
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/bachelorThesis
format bachelorThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10183/31020
dc.identifier.nrb.pt_BR.fl_str_mv 000782100
url http://hdl.handle.net/10183/31020
identifier_str_mv 000782100
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFRGS
instname:Universidade Federal do Rio Grande do Sul (UFRGS)
instacron:UFRGS
instname_str Universidade Federal do Rio Grande do Sul (UFRGS)
instacron_str UFRGS
institution UFRGS
reponame_str Repositório Institucional da UFRGS
collection Repositório Institucional da UFRGS
bitstream.url.fl_str_mv http://www.lume.ufrgs.br/bitstream/10183/31020/2/000782100.pdf.txt
http://www.lume.ufrgs.br/bitstream/10183/31020/1/000782100.pdf
http://www.lume.ufrgs.br/bitstream/10183/31020/3/000782100.pdf.jpg
bitstream.checksum.fl_str_mv a1b2c9c8b8f6251b2d945a30663db518
1c18a1af099db837c0d8ca4e66666371
ea93aaa82eb8037d6fd5463d9817c3cb
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)
repository.mail.fl_str_mv
_version_ 1801224411786772480