Design and Implementation of Java AOTC for Embedded System

내장형 시스템을 위한 자바 AOTC의 설계와 구현

  • Park JongKuk (School of Electrical Engineering and Computer Sciences, Seoul National University) ;
  • Jung Dong-Heon (School of Electrical Engineering and Computer Sciences, Seoul National University) ;
  • Bae SungHwan (School of Electrical Engineering and Computer Sciences, Seoul National University) ;
  • Lee Jaemok (School of Electrical Engineering and Computer Sciences, Seoul National University) ;
  • Moon Soo-Mook (School of Electrical Engineering and Computer Sciences, Seoul National University)
  • 박종국 (서울대학교 전기컴퓨터공학부) ;
  • 정동헌 (서울대학교 전기컴퓨터공학부) ;
  • 배성환 (서울대학교 전기컴퓨터공학부) ;
  • 이재목 (서울대학교 전기컴퓨터공학부) ;
  • 문수묵 (서울대학교 전기컴퓨터공학부)
  • Published : 2005.11.01

Abstract

우리는 내장형 시스템에서 자바의 성능 문제를 해결하기 위해 수행시간 이전에(ahead-of-time) 자바 바이트코드를 기계어 코드로 변환하는 AOTC를 개발하였다. 우리가 개발한 AOTC는 자바 클래스 파일을 읽어서 C코드로 변환한 후에 이를 C컴파일러로 컴파일하는 방식으로 동작한다. 이러한 방법으로 짧은 기간안에 하드웨어 아키텍처에 종속적이지 않으면서도 안정적인 고성능의 자바 실행 환경을 구축할 수 있었다. 본 논문에서는 AOTC의 전체 구조에서부터 C코드를 생성하는 방법 및 예외 처리와 쓰레기 수집기(GC)를 지원하기 위한 방법들에 대해서 다룬다. 또한 C컴파일러에 의한 최적화의 한계를 극복하기 위해 자바에 특화된 최적화를 AOTC에 포함하였는데 이에 대해서도 설명한다. 우리의 AOTC를 Sun Microsystems의 J2ME CDC VM인 CVM위에 적용해본 결과 벤치마크에 따라서 평균 $5\~14$배의 성능 향상을 관찰 할 수 있었다.

Keywords