Top Banner
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
33

Hybrid Java Compilation and Optimization for Digital TV

Feb 25, 2016

Download

Documents

sirvat

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
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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!