21.01.2013 Views

Lecture Notes in Computer Science 4917

Lecture Notes in Computer Science 4917

Lecture Notes in Computer Science 4917

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

An Experimental Environment Validat<strong>in</strong>g the<br />

Suitability of CLI as an Effective Deployment<br />

Format for Embedded Systems ⋆<br />

Marco Cornero, Roberto Costa, Ricardo Fernández Pascual ⋆⋆ ,<br />

Andrea C. Ornste<strong>in</strong>, and Erven Rohou<br />

STMicroelectronics<br />

Advanced System Technology<br />

Via Cantonale 16E<br />

6928 Manno (Switzerland)<br />

Abstract. Software productivity for embedded systems is greatly limited<br />

by the fragmentation of platforms and associated development tools.<br />

Platform virtualization environments, like Java and Microsoft .NET, help<br />

alleviate the problem, but they are limited to host functionalities runn<strong>in</strong>g<br />

on the system microcontroller. Due to the ever <strong>in</strong>creas<strong>in</strong>g demand<br />

for process<strong>in</strong>g power, it is desirable to extend their benefits to the rest of<br />

the system. We present an experimental framework based on GCC that<br />

validates the choice of CLI as a suitable processor-<strong>in</strong>dependent deployment<br />

format. In particular, we illustrate our GCC port to CLI and we<br />

evaluate the generated bytecode <strong>in</strong> terms of code size and performance.<br />

We <strong>in</strong>ject it back <strong>in</strong>to GCC through a CLI front-end that we also illustrate,<br />

and we complete the compilation down to native code. We show<br />

that us<strong>in</strong>g CLI does not degrade performance. Compared to other CLI<br />

solutions, we offer a full development flow for the C language, generat<strong>in</strong>g<br />

a subset of pure CLI that does not require any virtual mach<strong>in</strong>e support<br />

other than a JIT compiler. It is therefore well suited for deeply embedded<br />

media processors runn<strong>in</strong>g high performance media applications.<br />

Keywords: Common Language Infrastructure, embedded systems, deployment,<br />

GCC.<br />

1 Introduction<br />

The productivity of embedded software development is heavily limited by several<br />

factors, the most important be<strong>in</strong>g the high fragmentation of the hardware<br />

platforms comb<strong>in</strong>ed with the multiple target operat<strong>in</strong>g systems and associated<br />

tools. Indeed, <strong>in</strong> order to reach a wide customer base, software developers need<br />

to port, test and ma<strong>in</strong>ta<strong>in</strong> their applications to tens of different configurations,<br />

wast<strong>in</strong>g a great deal of effort <strong>in</strong> the process. Platform virtualization technologies<br />

have been very successful <strong>in</strong> alleviat<strong>in</strong>g this problem, as it is evident by the<br />

⋆ This work was partially funded by the HiPEAC Network of Excellence.<br />

⋆⋆ This author performed this work as a HiPEAC PhD student at STMicroelectronics.<br />

P. Stenström et al. (Eds.): HiPEAC 2008, LNCS <strong>4917</strong>, pp. 130–144, 2008.<br />

c○ Spr<strong>in</strong>ger-Verlag Berl<strong>in</strong> Heidelberg 2008

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!