A funcionalidade de pesquisa está em construção.
A funcionalidade de pesquisa está em construção.

The original paper is in English. Non-English content has been machine-translated and may contain typographical errors or mistranslations. ex. Some numerals are expressed as "XNUMX".
Copyrights notice

The original paper is in English. Non-English content has been machine-translated and may contain typographical errors or mistranslations. Copyrights notice

A Verification Framework for Assembly Programs Under Relaxed Memory Model Using SMT Solver Uma estrutura de verificação para programas assembly em modelo de memória relaxada usando SMT Solver

Pattaravut MALEEHUAN, Yuki CHIBA, Toshiaki AOKI

  • Exibições de texto completo

    0

  • Cite isto

Resumo:

Nos multiprocessadores, modelos de memória são introduzidos para descrever as execuções de programas entre processadores. Modelos de memória relaxada, que relaxam a ordem de execuções, são utilizados na maioria dos processadores modernos, como ARM e POWER. Devido a um modelo de memória relaxado poder alterar a semântica do programa, as execuções dos programas podem não ser as mesmas que esperamos que preservem a correção do programa. Além dos modelos de memória relaxados, a forma de executar uma instrução é descrita por uma semântica de instrução, que varia entre as arquiteturas de processador. Lidar com a semântica de instrução entre uma variedade de programas assembly é um desafio para a verificação do programa. Assim, este artigo propõe uma maneira de verificar uma variedade de programas assembly que são executados sob um modelo de memória relaxado. A variedade de programas assembly pode ser abstraída como a forma de executar os programas, introduzindo uma estrutura de operação. Além disso, existem frameworks para modelagem de modelos de memória relaxados, que podem realizar execuções de programas a serem verificadas com uma propriedade do programa. Nosso trabalho adota um solucionador SMT para revelar automaticamente as execuções do programa sob um modelo de memória e verificar se as execuções violam ou não a propriedade do programa. Se houver alguma execução do solucionador, a correção do programa não será preservada no modelo de memória relaxado. Para verificar os programas, uma ferramenta experimental foi desenvolvida para codificar os programas fornecidos para um modelo de memória em uma fórmula de primeira ordem que viola a correção do programa. A ferramenta adota uma estrutura de modelagem para codificar os programas em uma fórmula para o solucionador SMT. O solucionador então encontra automaticamente uma avaliação que satisfaça a fórmula. Em nossos experimentos, dois métodos de codificação foram implementados com base em duas estruturas de modelagem. As avaliações resultantes do solucionador podem ser consideradas como bugs ocorridos nos programas originais.

Publicação
IEICE TRANSACTIONS on Information Vol.E101-D No.12 pp.3038-3058
Data de publicação
2018/12/01
Publicitada
2018/09/12
ISSN online
1745-1361
DOI
10.1587/transinf.2018EDP7099
Tipo de Manuscrito
PAPER
Categoria
Sistema de Software

autores

Pattaravut MALEEHUAN
  Japan Advanced Institute of Science and Technology (JAIST)
Yuki CHIBA
  DENSO Corporation
Toshiaki AOKI
  Japan Advanced Institute of Science and Technology (JAIST)

Palavra-chave