내장형 자바 시스템을 위한 클라이언트 선행 컴파일 기법을 이용한 코드 캐시 확장

Expanding Code Caches for Embedded Java Systems using Client Ahead-Of-Time Compilation

  • 홍성현 (서울대학교 전기.컴퓨터공학부) ;
  • 김진철 ;
  • 신진우 (서울대학교 전기.컴퓨터공학부) ;
  • 권진우 (서울대학교 전기.컴퓨터공학부) ;
  • 이주환 (서울대학교 전기.컴퓨터공학부) ;
  • 문수묵 (서울대학교 전기.컴퓨터공학부)
  • 투고 : 2009.12.24
  • 심사 : 2010.04.12
  • 발행 : 2010.08.15

초록

많은 내장형 자바 시스템들이 제한된 메모리를 가지고 있으므로 JITC를 위해 충분한 코드 캐시가 주어지지 않아 자바의 수행 성능이 떨어질 수 있다. 본 논문에서는 이를 극복하고자 수행 중에 코드 캐시 공간이 부족하면 일부 메소드의 머신 코드를 영구적 메모리의 파일 시스템에 저장해 두었다가 재호출 때에 다시 코드 캐시로 읽어와서 재활용하는 코드 캐시를 확장하는 수행 방식을 제안한다. 이는 기존의 클라이언트 선행 컴파일 기법을 수행 중에 코드 캐시 확장을 위해 적용한 것이다. 우리가 제안한 자바 수행 구조는 코드 캐시가 반으로 줄었을 때의 일반적인 자바 수행 방식보다 1.6배 좋은 성능을 보여주고 있다.

Many embedded Java systems are equipped with limited memory, which can constrain the code cache size provided for Java just-in-time compilation, affecting the Java performance. This paper proposes expanding the limited code cache when it is full, by saving the machine code for some methods in the code cache into the file system of the permanent storage and reloading it to the code cache when they are re-invoked later. This is applying the client ahead-of-time compilation during the execution time for the purpose of enlarging the code cache. Our experimental results indicate that the proposed execution method can improve the performance by as much as 1.6 times compared to the conventional method, when the code cache size is reduced by half.

키워드

참고문헌

  1. Sun Microsystems, "CDC: An Application Framework for Personal Mobile Devices," White Paper, Sun Microsystems.
  2. J. Gosling, B. Joy, and G. Steele, "The Java Language Specification," Addison-Wesley, 1996.
  3. J. Aycock, "A Brief History of Just-in-Time," ACM Computing Surveys, vol.35, no.2, pp.97-113, Jun. 2003. https://doi.org/10.1145/857076.857077
  4. A. Krall, "Efficient JavaVM Just-in-Time Compilation," Proceedings of the International Conference on Parallel Architectures and Compilation Techniques, pp.54-61, 1998.
  5. A. Adl-Tabatabai, M. Cierniak, G.-Y. Lueh, V. Parikh, J. Stichnoth, "Fast, Effective Code Generation in a Just-in-Time Java Compiler," Proceedings of ACM SIGPLAN 1998 Conference on Programming Language Design and Implementation, pp.280-290, 1998.
  6. T. A. Proebsting, G. Townsend, P. Bridges, J. H. Hartman, T. Newsham, S. A. Watterson, "Toba: Java for Applications A Way Ahead of Time (WAT) Compiler," Proceedings of the 3rd conference on USENIX Conference on Object-Oriented Technologies (COOTS), p.3, 1997.
  7. G. Muller, B. Moura, F. Bellard, C. Consel, "Harissa: a Flexible and Efficient Java Environment Mixing Bytecode and Compiled Code," Proceedings of the 3rd conference on USENIX Conference on Object- Oriented Technologies (COOTS), p.1, 1997.
  8. M. Weiss, F. de Ferrière, B. Delsart, C. Fabre, F. Hirsch, E. A. Johnson, V. Joloboff, F. Roy, F. Siebert, X. Spengler, "TurboJ, a Java Bytecodeto- Native Compiler," Proceedings of the ACM SIGPLAN Workshop on Languages, Compilers, and Tools for Embedded Systems, pp.110-130, 1998.
  9. S. Hong, J. Kim, S. Moon, J. Shin, J. Lee, H. Oh, H. Choi, "Client ahead-of-time compiler for embedded Java platforms," Software-practice & Experience, vol.39, no.3, pp.259-278, 2009. https://doi.org/10.1002/spe.897
  10. L. Bak, J. R. Andersen, K. V. Lund, "Non-intrusive Gathering of Code Usage Information to Facilitate Removing Unused Compiled Code," US Patent, 6738969.
  11. Sun Microsystems, Java ME Connected Device Configuration (CDC), http://java.sun.com/products/cdc/
  12. The Embedded Microprocessor Benchmark Consortium, http://eembc.org