A Methodology for Optimization of Interpreters

  • Vanderson Martins do Rosario UNICAMP
  • Mario Mikio Hato UNICAMP
  • Rodolfo Azevedo UNICAMP
  • Edson Borin UNICAMP

Resumo


Interpretation is a simple and portable technique that enables emulation of instruction set architectures (ISAs). Even though other techniques, such as binary translation, still provide superior emulation performance, interpreters are easier to implement and debug. Because of that, they are often used to complement binary translation techniques or to design reference instruction set simulators (ISS). In this work, we characterize the main causes of overhead in an interpreter and present a methodology to analyze and optimize interpreters code. The methodology was designed having in mind the most common practices in the development of interpreters, the operation of modern processors architectures and memory hierarchy. Finally, to evidence the importance of the methodology we present a case study in which we used it to optimize an interpreter-based ISS, improving its performance by 48%.
Palavras-chave: Benchmark testing, Optimization, Emulation, Computer architecture, MIMICs, Tools, High performance computing, emulation, interpreter, optimization
Publicado
01/10/2018
DO ROSARIO, Vanderson Martins; HATO, Mario Mikio; AZEVEDO, Rodolfo; BORIN, Edson. A Methodology for Optimization of Interpreters. In: SIMPÓSIO EM SISTEMAS COMPUTACIONAIS DE ALTO DESEMPENHO (SSCAD), 19. , 2018, São Paulo. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2018 . p. 205-212.