Publications

Detailed Information

Java Ahead-of-Time Compilation and Optimizations for Embedded Systems : 내장형 시스템을 위한 자바 선행 컴파일 및 최적화

Cited 0 time in Web of Science Cited 0 time in Scopus
Authors

정동헌

Advisor
문수묵
Major
전기·컴퓨터공학부
Issue Date
2012-02
Publisher
서울대학교 대학원
Abstract
Java embedded systems often include Java middleware classes installed on the client device. For higher performance, they can be compiled into machine code before runtime using an ahead-of-time compiler (AOTC). There are many approaches to AOTC, yet a bytecode-to-C AOTC which translates the bytecode into the C code and then compile it using an existing optimizing compiler such as gcc would be the most straightforward one. This paper explores a few important design and optimization issues of a bytecode-to-C AOTC, including the compilation form for the translated C code, the call interfaces among translated and interpreted Java methods, the precise garbage collection, the efficient exception handling and Java-specific optimizations by the AOTC that can complement the gcc optimizations. We evaluated these issues with our bytecode-to-C AOTC implemented on the MIPS platform for the Oracles CDC VM to understand their performance impact.
And, as a case study, we applied our bytecode-to-C AOTC to commercial platform such as digital TV (DTV) and Blu-ray disc player (BDP). The Java-based software platforms for the interactive digital TV and Blu-ray disc player are composed of the system/middleware classes statically installed on the DTV and BDP set-top box and the xlet classes dynamically downloaded from the TV stations and Blu-ray disc, where the xlet classes include many images/texts as well as Java classes. In order to achieve high performance on this dual-component, existing just-in-time (JIT) compilation and optimization is not enough, but idle-time as well as ahead-of-time compilation and optimization are also needed, requiring a hybrid compilation and optimization environment. We constructed such a hybrid environment for a commercial DTV and BDP software platform and experimented with real xlet applications. Our experimental results show that the proposed hybrid environment can improve the DTV and BDP Java performance by more than 8 ~ 215%, compared to the JIT-only environment.
자바 내장형 기기에는 자바 미들웨어와 시스템 클래스가 미리 설치되어 어플리케이션의 수행을 돕는다. 이러한 환경에서 성능 개선을 위하여 수행 시간 전에 미리 자바 선행 컴파일러를 이용하여 자바 미들웨어와 시스템 클래스들을 기계어로 변환하여 수행할 수 있다. 다양한 선행 컴파일러가 있지만 그 중에서도 자바 바이트코드를 C 코드로 변환한 후에 변환된 C 코드를 gcc와 같은 기존 C 컴파일러를 이용하여 기계어를 생성하는 바이트코드-to-C 자바 선행 컴파일러는 저 성능의 CPU와 적은 메모리를 가진 내장형 기기의 자바 가속 기술로 적합하다. 본 논문에서는 바이트코드-to-C 자바 선행 컴파일러에서의 중요한 디자인과 최적화 이슈를 다루도록 한다. 바이트코드에서 C 코드로의 변환 방법, 변환된 C 코드와 자바 인터프리터 사이의 효율적인 호출 인터페이스 방법, 그리고 정밀한 자바 쓰레기 수집기와 효율적인 예외 처리 방법을 제안하고 gcc 최적화를 보완해줄 수 있는 자바 관련 최적화에 대해서 다룰 것이다. 우리는 바이트코드-to-C 선행 컴파일러를 오라클의 CDC VM에 구현하였으며, 바이트코드-to-C 자바 선행 컴파일러의 다양한 이슈들에 대해 실험을 진행하여 각각의 성능 효과를 분석하였다.
그리고 바이트코드-to-C 자바 선행 컴파일러를 실제 상용 디지털 텔레비전 (DTV)과 블루레이 디스크 플레이어 (BDP)에 적용하여 실험과 분석을 진행하였다. 자바를 기반으로 한 DTV와 BDP의 소프트웨어 플랫폼은 미리 기기에 설치되는 시스템/미들웨어 클래스들과, 방송국과 블루레이 디스크를 통하여 이미지, 텍스트 그리고 음악등과 함께 동적으로 전달되어 수행되는 xlet으로 이루어진다. 두 개의 서로 다른 특성을 가지는 자바 클래스가 있는 환경에서 성능을 높이기 위해선 적시 컴파일러만으로는 부족하다. 선행 컴파일러뿐만 아니라 유휴 시간 컴파일러를 포함하는 하이브리드 환경과 최적화가 요구된다. 우리는 이러한 하이브리드 환경을 상용 DTV와 BDP에 적용하여 실제 xlet을 이용하여 실험을 진행하였다. 제안된 하이브리드 환경을 통하여 적시 컴파일러 대비 DTV와 BDP의 성능을 최소 8%에서 최대 두 배 이상 개선하였다.
Language
eng
URI
https://hdl.handle.net/10371/156609

http://dcollection.snu.ac.kr:80/jsp/common/DcLoOrgPer.jsp?sItemId=000000000783
Files in This Item:
There are no files associated with this item.
Appears in Collections:

Altmetrics

Item View & Download Count

  • mendeley

Items in S-Space are protected by copyright, with all rights reserved, unless otherwise indicated.

Share