skip to main content
research-article

Hybrid-compiled simulation: An efficient technique for instruction-set architecture simulation

Published:22 April 2009Publication History
Skip Abstract Section

Abstract

Instruction-set simulators are critical tools for the exploration and validation of new processor architectures. Due to the increasing complexity of architectures and time-to-market pressure, performance is the most important feature of an instruction-set simulator. Interpretive simulators are flexible but slow, whereas compiled simulators deliver speed at the cost of flexibility and compilation overhead. This article presents a hybrid instruction-set-compiled simulation (HISCS) technique for generation of fast instruction-set simulators that combines the benefit of both compiled and interpretive simulation. This article makes two important contributions: (i) it improves the interpretive simulation performance by applying compiled simulation at the instruction level using a novel template-customization technique to generate optimized decoded instructions during compile time; and (ii) it reduces the compile-time overhead by combining the benefits of both static and dynamic-compiled simulation. Our experimental results using two contemporary processors (ARM7 and SPARC) demonstrate an order-of-magnitude reduction in compilation time as well as a 70% performance improvement, on average, over the best-known published result in instruction-set simulation.

References

  1. Amicel, R., and Bodin, F. 2002. Mastering startup costs in assembler-based compiled instruction-set simulation. In Proceedings of Workshop on Interaction between Compilers and Computer Architectures (INTERACT'02) IEEE, Los Alamitos, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. ARM7, The ARM7 User Manual. http://www.arm.comGoogle ScholarGoogle Scholar
  3. Bell, J.R. 1973. Threaded code. Comm. ACM 16, 370--372. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Braun, G., Hoffmann, A., Nohl, A., and Meyr, H. 2001. Using static scheduling techniques for the retargeting of high speed, compiled simulators for embedded processors from an abstract machine description. In Proceedings of the International Symposium on Systems Synthesis (ISS'01S). ACM, New York, 57--62. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Burtscher, M., Ganusov, I. 2004. Automatic synthesis of high-speed processor simulators. In Proceedings of the International Symposium on Microarchitecture (MICRO'4). ACM, New York, 55--66. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Cmelik, B., and Keppel, D. 1994. Shade: a fast instruction-set simulator for execution profiling. ACM SIGMETRICS Perform. Eval. Rev. 22, 128--137. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Engel, F., Nührenberg, J., and Fettweis, G.P. 1999. A generic tool set for application specific processor architectures. In Proceedings of the 8th International Workshop on Hardware/Software Codesign. IEEE, Los Alamitos, CA, 126--130. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Futamura, Y. 1971. Partial evaluation of computation process-an approach to a compiler-compiler. Syst. Comput. Controls 2, 45--50.Google ScholarGoogle Scholar
  9. Hadjiyiannis, G., Hanono, S., and Devadas, S. 1997. ISDL: an instruction set description language for retargetability. In Proceedings of the Design Automation Conference (DAC'97) IEEE, Los Alamitos, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Halambi, A., Grun, P., Ganesh, V., and Khare, A. 1999. EXPRESSION: a language for architecture exploration through compiler/simulator retargetability. In Proceedings of the Design Automation and Test in Europe (DATE'99). Springer, Berlin, Germany. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Hartoog, M.R., Rowson, J.A., Reddy, P.D., Desai, S., Dunlop, D.D., Harcourt, E.A., and Khullar, N. 1997. Generation of software tools from processor descriptions for hardware/software codesign. In Proceedings of the Design Automation Conference (DAC'97). IEEE, Los Alamitos, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Leupers, R., Elste, J., and Landwehr, B. 1999. Generation of Interpretive and Compiled Instruction Set Simulators. In Proceedings of the Asia South Pacific Design Automation Conference (ASP-DAC'99). IEEE, Los Alamitos, CA.Google ScholarGoogle Scholar
  13. Magnusson, P.S., Christensson, M., Eskilson, J., Forsgren, D., Hållberg, G., Högberg, J., Larsson, F., Moestedt, A., Werner, B. 2002. Simics: a full system simulation platform. IEEE Comput. 35, 50--58. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Nohl, A., Braun, G., Hoffmann, A., Schliebusch, O., Meyr, H., and Leupers, R. 2002. A universal technique for fast and flexible instruction-set architecture simulation. In Proceedings of the Design Automation Conference (DAC'02). IEEE, Los Alamitos, CA, 22--27. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Onder, S., Gupta, R. 1998. Automatic generation of microarchitecture simulators. In Proceedings of the International Conference on Computer Languages. IEEE, Los Alamitos, CA, 80--89. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Pees, S., Hoffmann, A., and Meyr, H. 2000. Retargeting of compiled simulators for digital signal processors using a machine description language. In Proceedings of the Design Automation and Test in Europe (DATE'00). Springer, Berlin, Germany, 669--673. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Qin, W., Malik, S. 2003. Automated synthesis of efficient binary decoders for retargetable software toolkits. In Proceedings of the Design Automation Conference (DAC'03). IEEE, Los Alamitos, CA, 764--769. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Ramsey, N., Fernandez, M.F. 1997. Specifying representations of machine instructions, ACM Tran. Program. Lang. Syst. 19, 492--524. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Reshadi, M., Mishra, P., and Dutt, N. 2003a. Instruction set compiled simulation: a technique for fast and flexible instruction set simulation. In Proceedings of the Design Automation Conference (DAC'03). IEEE, Los Alamitos, 758--763. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Reshadi, M., and Dutt, N. 2003b. Reducing compilation time overhead in compiled simulators, In Proceedings of the International Conference on Computer Design (ICCD'03). IEEE, Los Alamitos, CA, 151--153. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Reshadi, M., Mishra, P., Dutt, N. 2006. A retargetable framework for instruction-set architecture simulation. ACM Trans. Embed. Comput. Syst. 5, 2, 431--452. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Schnarr, E., and Larus, J. R. 1998. Fast out-of-order processor simulation using memorization. In Proceedings of the Programming Language Design and Implementation (PLDI'98). ACM, New York, 283--294. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Schnarr, E. C., Hill, M. D., and Larus, J. R. 2001. Facile: a language and compiler for high-performance processor simulators. In Proceedings of the Conference on Programming Language Design and Implementation (PLDI). ACM, New York, 321--351. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Simplescalar Home. http://www.simplescalar.com.Google ScholarGoogle Scholar
  25. SPARC. Version 7 Instruction set manual: http://www.sun.comGoogle ScholarGoogle Scholar
  26. Witchel, E., and Rosenblum, M. 1996. Embra: fast and flexible machine simulation. In Proceedings of the International Conference on Measurement and Modeling of Computer Systems (MMCS'96). ACM, New York, 68--79. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Zhu, J., Gajski, D. 1999. A retargetable, ultra-fast instruction set simulator. In Proceedings of the Design Automation and Test in Europe (DATE'99). Springer, Berlin, Germany, 298--302. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Hybrid-compiled simulation: An efficient technique for instruction-set architecture simulation

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!