Hybrid Java Compilation and Optimization for Digital TV

33
Hybrid Java Compilation and Optimization for Digital TV Dong-Heon Jung, Hyeong-Seok Oh, Soo-Mook Moon [email protected] School of EECS Seoul National University, Korea

description

Hybrid Java Compilation and Optimization for Digital TV. Dong- Heon Jung, Hyeong-Seok Oh, Soo - Mook Moon [email protected] School of EECS Seoul National University, Korea. Accelerating DTV S/W Platform. DTV allows data-broadcasting Sending data as well as picture/sound - PowerPoint PPT Presentation

Transcript of Hybrid Java Compilation and Optimization for Digital TV

Page 1: Hybrid Java Compilation and Optimization for Digital TV

Hybrid Java Compilation and Optimization for Digital TV

Dong-Heon Jung, Hyeong-Seok Oh,Soo-Mook Moon

[email protected]

School of EECSSeoul National University, Korea

Page 2: Hybrid Java Compilation and Optimization for Digital TV

2Microprocessor Architecture & System Software Lab

Accelerating DTV S/W Platform DTV allows data-broadcasting

• Sending data as well as picture/sound

Data-broadcasting platform is based on Java • Java xlets + Java middleware at the set-top box

Java is slow, so use just-in-time compilation (JITC)

Propose using ahead-of-time and idle-time com-pilation/optimization as well• Hybrid compilation and optimization

Page 3: Hybrid Java Compilation and Optimization for Digital TV

3Microprocessor Architecture & System Software Lab

Executing xlet with JITC only

Page 4: Hybrid Java Compilation and Optimization for Digital TV

4Microprocessor Architecture & System Software Lab

Executing xlet with Hybrid

Page 5: Hybrid Java Compilation and Optimization for Digital TV

5Microprocessor Architecture & System Software Lab

Outline Background on digital TV S/W platform

• Xlet lifecycle• DTV acceleration

Hybrid Java Compilation and Optimization• JITC for xlet methods• AOTC for system/middleware methods• ITC and ITO for xlets

Experimental Results Summary

Page 6: Hybrid Java Compilation and Optimization for Digital TV

6Microprocessor Architecture & System Software Lab

Digital Television (DTV) DTV sends digital signals instead of analog signals

• Higher definition pictures and clearer sounds

Remaining bandwidth can be used for sending data• General information: traffic, weather, news, stock, …• Program-specific information (plot, cast, director,…)• Interaction using a return channel

– T-commerce, T-banking, T-government, …

Provides the data-broadcasting, interactive TV (iTV)

Page 7: Hybrid Java Compilation and Optimization for Digital TV

7Microprocessor Architecture & System Software Lab

Java for Interactive TV One key technology for iTV is Java

• Many open standards are based on Java– DVB-MHP (satellite), OCAP (cable), ACAP (terrestrial)

Programmed using xlet applications• xlet classes + image/text files• Downloaded to the DTV set-top box• Interact with middleware/system classes at the

set-top xlet execution starts only when the user ini-

tiates it

Page 8: Hybrid Java Compilation and Optimization for Digital TV

8Microprocessor Architecture & System Software Lab

Sending and Receiving xlet App. Xlet application is sent via carousel mecha-

nism• Send a stream of xlet files repeteatedly in a round-robin• Carousel file manager in theset-top handles the receiving

When the DTV is turned on,• JVM starts and the application manager starts• Then xlet application for current channel start its

lifecycle

Page 9: Hybrid Java Compilation and Optimization for Digital TV

9Microprocessor Architecture & System Software Lab

The xlet Lifecycle

Not Loaded

Loaded

Paused

Started

Destroyed

initXlet()

pauseXlet()startXlet()

destroyXlet()

When starting download of xlet ap-plication

When loading xlet’s main class file

At Started state, a red-dot appears on the TV screen

When switching to a different channel

Page 10: Hybrid Java Compilation and Optimization for Digital TV

10Microprocessor Architecture & System Software Lab

An Example of xlet Execution

(a) Display Red-dot (b) Display xlet Menu

(c) Select xlet menu (d) Display Slected Menu

Page 11: Hybrid Java Compilation and Optimization for Digital TV

11Microprocessor Architecture & System Software Lab

DTV Java Architecture Two types of classes in DTV Java Platform

• System/middleware classes statically installed at DTV• xlet classes dynamically downloaded from TV station

Similarities in other platforms• Mobile phone Java platform: MIDP middleware + midlet• Bluray disk Java platform: BD-J middleware + xlet

Both class types are getting more substantial• E.g., MIDP -> JTWI -> MSA

How to accelerate these substantial, dual-compo-nent Java platforms?

Page 12: Hybrid Java Compilation and Optimization for Digital TV

12Microprocessor Architecture & System Software Lab

Hybrid Compilation and Opti-mization

Current wisdom of Java acceleration: JITC• Compile bytecode to machine code at runtime• In DTV, do JITC both xlets and system/middleware

Our proposal: hybrid compilation and opti-mization• Ahead-of-time compilation (AOTC) for system/mid-

dleware• Idle-time compilation (ITC) for xlets• Idle-time optimization (ITO) for images and text

fonts

Page 13: Hybrid Java Compilation and Optimization for Digital TV

13Microprocessor Architecture & System Software Lab

Hybrid Environment for DTV

We actually built a hybrid environment for a DTV based on a PhoneME Advanced (CDC) VM

Set-top Box

Phone Me Advanced

OS & Hardware

AOTC JITC/ITC

XLET Applications

Object Carousel File Man-ager

Persistent Storage

Middle-ware& system

methods

Xlet methods

ITO

Xlet im-ages and

texts

Page 14: Hybrid Java Compilation and Optimization for Digital TV

14Microprocessor Architecture & System Software Lab

AOTC for System/Middleware Employ AOT module in PhoneME Advanced VM

• Compile pre-chosen methods using JITC and save in a file

• When JVM starts officially, use the machine code di-rectly– With no interpretation or compilation overhead

Two issues• Which methods to AOTC in system/middleware?

– AOTC only those methods compiled at least once by JITC• Optimization

– AOT-generated code is worse than JITC-generated code

Page 15: Hybrid Java Compilation and Optimization for Digital TV

15Microprocessor Architecture & System Software Lab

AOT Enhancements AOT inlining without runtime behavior

• Implement inlining based on profile-feedback

No code patch optimization• Translated code for class initialization check, GC-

check can be patched

Relocation prohibits some optimizations• Constant pointer optimization

Page 16: Hybrid Java Compilation and Optimization for Digital TV

16Microprocessor Architecture & System Software Lab

Idle-Time Compilation (ITC) for xlet

Compile xlet methods in advance (idle-time)• Saves the JITC and interpretation overhead• Use our enhanced AOT• Assign a separate, lowest-priority thread for ITC

to reduce the delay of the main thread (display-ing red-dot)

• OK even if user executes xlet in the middle of ITC

Page 17: Hybrid Java Compilation and Optimization for Digital TV

17Microprocessor Architecture & System Software Lab

Idle-Time Optimization for Im-ages

Loading/decoding of xlet images occur at run-time• Just-in-time when they are needed• Their overhead is substantial, taking much of run-

ning time

Propose pre-loading/decoding during idle-time Two issues

• When we start pre-loading/decoding in the xlet life-cycle– Started state or Not-loaded state: Do not work– Loaded state: good

• How we perform pre-loading/decoding transpar-ently– Use the ITC thread

Useful even when user executes xlets early and becomes idle

Page 18: Hybrid Java Compilation and Optimization for Digital TV

18Microprocessor Architecture & System Software Lab

Just-in-Time Loading/Decoding

Get image object

Image is cached??

Perform Image loading/decodingLoad image

from cache

noyes

Run java code of selected menu

Save the image to image cache

Start XletDisplay red-dot

Start

Display selected menu

End

Finish xlet

Initialize Xlet

User select the menu

Finish java code of selected menu

Request Image Object

Page 19: Hybrid Java Compilation and Optimization for Digital TV

19Microprocessor Architecture & System Software Lab

Pre-loading/decoding

Start Image-pre-processing thread

Terminate the thread

New file is received?

Get each image file

name

Is pre-pro-cessed?

Perform Pre-load-ing/decoding

Save the image to cache

no

yes

yes

no

Start

Start XletDisplay red-dot

User select the menuDisplay selected menu

End

Finish xlet

Initialize Xlet

Page 20: Hybrid Java Compilation and Optimization for Digital TV

20Microprocessor Architecture & System Software Lab

Idle-Time Optimization for Texts Creating some font objects occur at runtime Pre-creating of them at idle-time

Page 21: Hybrid Java Compilation and Optimization for Digital TV

21Microprocessor Architecture & System Software Lab

Experimental Results Experimented on a commercial DTV platform

with real, on-air xlets broadcasted in Korea Experimental Environment

• DTV set-top box 333MHZ MIPS CPU with 128MB memory

• Linux with kernel 2.6• Sun’s phoneMe Advanced MR2 version • Advanced common application platform (ACAP)

Page 22: Hybrid Java Compilation and Optimization for Digital TV

22Microprocessor Architecture & System Software Lab

Benchmarks xlets of three terrestrial TV stations in Korea

• Designated by A, B, C• News, weather, traffic, and stock menu items• Interested in running time of each menu item• Size of xlet applications (KB)

class image text & etc. Total

Station A 276 1,348 344 1,968

Station B 360 1,596 372 2,328

Station C 448 1,280 288 2,016

Page 23: Hybrid Java Compilation and Optimization for Digital TV

23Microprocessor Architecture & System Software Lab

Distribution of Method CallsN

EWS

WEA

THER

TRA

FFIC

STO

CK

NEW

S

WEA

THER

TRA

FFIC

STO

CK

NEW

S

WEA

THER

Geo

mea

n

Station A Station B Station C

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

xlet method system method middleware method

Page 24: Hybrid Java Compilation and Optimization for Digital TV

24Microprocessor Architecture & System Software Lab

Distribution of JITCed MethodsN

EWS

WEA

THER

TRA

FFIC

STO

CK

NEW

S

WEA

THER

TRA

FFIC

STO

CK

NEW

S

WEA

THER

Geo

mea

n

Station A Station B Station C

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

xlet method system method middleware method

Page 25: Hybrid Java Compilation and Optimization for Digital TV

25Microprocessor Architecture & System Software Lab

Image Loading/Decoding Over-head

NEW

S

WEA

THER

TRA

FFIC

STO

CK

NEW

S

WEA

THER

TRA

FFIC

STO

CK

NEW

S

WEA

THER

Geo

mea

n

Station A Station B Station C

0%

20%

40%

60%

80%

100%

Image processing runtime portion others (java & native code)

Page 26: Hybrid Java Compilation and Optimization for Digital TV

26Microprocessor Architecture & System Software Lab

Running Time Impact of AOTCN

EWS

WEA

THER

TRAF

FIC

STO

CK

NEW

S

WEA

THER

TRAF

FIC

STO

CK

NEW

S

WEA

THER

Station A Station B Station C

0

2,000

4,000

6,000

8,000

10,000

12,000

14,000

16,000

18,000

JITC only JITC + AOT(original) JITC + AOT(enhanced)

Running time (ms)

Page 27: Hybrid Java Compilation and Optimization for Digital TV

27Microprocessor Architecture & System Software Lab

Performance Impact of AOTCN

EWS

WEA

THER

TRAF

FIC

STO

CK

NEW

S

WEA

THER

TRAF

FIC

STO

CK

NEW

S

WEA

THER

Geo

mea

n

Station A Station B Station C

0%

20%

40%

60%

80%

100%

120%

140%

160%

180%

JITC only JITC + AOT(original) JITC + AOT(enhanced)

Speedup

Page 28: Hybrid Java Compilation and Optimization for Digital TV

28Microprocessor Architecture & System Software Lab

Impact of Pre-loading/decodingN

EWS

WEA

THER

TRAF

FIC

STO

CK

NEW

S

WEA

THER

TRAF

FIC

STO

CK

NEW

S

WEA

THER

Station A Station B Station C

0

2,000

4,000

6,000

8,000

10,000

12,000

14,000

16,000

18,000

JITC only JITC + image pre-loading/decoding

Running time (ms)

Page 29: Hybrid Java Compilation and Optimization for Digital TV

29Microprocessor Architecture & System Software Lab

Impact of Text Font Pre-creationN

EWS

WEA

THER

TRAF

FIC

STO

CK

NEW

S

WEA

THER

TRAF

FIC

STO

CK

NEW

S

WEA

THER

Station A Station B Station C

0

2,000

4,000

6,000

8,000

10,000

12,000

14,000

16,000

18,000

JITC only JITC + Font Pre-creation

Running time (ms)

Page 30: Hybrid Java Compilation and Optimization for Digital TV

30Microprocessor Architecture & System Software Lab

Overall Running Time of HybridN

EWS

WEA

THER

TRA

FFIC

STO

CK

NEW

S

WEA

THER

TRA

FFIC

STO

CK

NEW

S

WEA

THER

Station A Station B Station C

0

2,000

4,000

6,000

8,000

10,000

12,000

14,000

16,000

18,000

JITC onlyJITC + AOT(enhanced) + image/text pre-processing

An average of 150% re-duction (15% by AOTC)

Page 31: Hybrid Java Compilation and Optimization for Digital TV

31Microprocessor Architecture & System Software Lab

Impact on TransparencyJIT

C on

ly

Our

Opt

imiz

ed V

M

JITC

only

Our

Opt

imiz

ed V

M

JITC

only

Our

Opt

imiz

ed V

M

Station A Station B Station C

0 10,000 20,000 30,000 40,000 50,000 60,000 70,000 80,000 90,000

Red-dot Pre-processing completion

Running time (ms)

Page 32: Hybrid Java Compilation and Optimization for Digital TV

32Microprocessor Architecture & System Software Lab

Summary and Future Work Proposed hybrid compilation/optimization for

DTV• Just-in-time, ahead-of-time, and idle-time • Improves performance dramatically than JITC-only

– With little change to other DTV behavior• Some ideas would work for other dual-component

Java

Some future work• AOTC for system/middleware beyond AOT

– By performing off-line AOTC with full optimizations en-abled

The idea of pre-loading/decoding has been filed for patent application.

Page 33: Hybrid Java Compilation and Optimization for Digital TV

Thank you!