29.01.2015 Views

Embedded Software for SoC - Grupo de Mecatrônica EESC/USP

Embedded Software for SoC - Grupo de Mecatrônica EESC/USP

Embedded Software for SoC - Grupo de Mecatrônica EESC/USP

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

436 Chapter 32<br />

be executable while downloading. <strong>Software</strong> streaming enables the overlapping<br />

of transmission (download) and execution of software.<br />

<strong>Software</strong> to be streamed must be modified be<strong>for</strong>e it can be streamed over<br />

a transmission media. The software must be partitioned into parts <strong>for</strong><br />

streaming. We call the process of modifying co<strong>de</strong> <strong>for</strong> streaming software<br />

streaming co<strong>de</strong> generation. We per<strong>for</strong>m this modification after normal<br />

compilation. After modification, the application is ready to be executed after<br />

the first executable software unit is loa<strong>de</strong>d into the memory of the <strong>de</strong>vice. In<br />

contrast to downloading the whole program, software streaming can improve<br />

application load time. While the application is running, additional parts of<br />

the stream-enabled software can be downloa<strong>de</strong>d in the background or<br />

on-<strong>de</strong>mand. If the nee<strong>de</strong>d part is not in the memory, the nee<strong>de</strong>d part must be<br />

transmitted in or<strong>de</strong>r to continue executing the application. The application<br />

load time can be adjusted by varying the size of the first block while consi<strong>de</strong>ring<br />

the time <strong>for</strong> downloading the next block. This can potentially avoid<br />

the suspension of the application due to block misses. The predictability of<br />

software execution once it starts can be improved by software profiling which<br />

<strong>de</strong>termines the transmission or<strong>de</strong>r of the blocks.<br />

In this paper, we present a new method <strong>for</strong> software streaming especially<br />

suitable <strong>for</strong> embed<strong>de</strong>d applications. Using our method, software transmission<br />

can be completely transparent to the user. The software is executed as if<br />

it is local to the <strong>de</strong>vice. Our streaming method can also significantly reduce<br />

the application load time since the CPU can start executing the application<br />

prior to completing the download of the entire program.<br />

This paper consists of five sections. The first section introduces the<br />

motivation of the paper. The second section <strong>de</strong>scribes related work in the<br />

area of software streaming. In the third section, our method <strong>for</strong> streaming<br />

real-time embed<strong>de</strong>d software is presented. We provi<strong>de</strong> per<strong>for</strong>mance analysis<br />

of the streaming environment in the fourth section. Finally, in the fifth section,<br />

we present an example application and results.<br />

2. RELATED WORK<br />

In a networking environment, a client <strong>de</strong>vice can request certain software from<br />

the server. A typical process involves downloading, <strong>de</strong>compressing, installing<br />

and configuring the software be<strong>for</strong>e the CPU can start executing the program.<br />

For a large program, download time can be very long. Typically, application<br />

load time refers to the time between when an application is selected to run<br />

and when the first instruction of the software is executed. Transmission time<br />

of the software predominantly contributes to the application load time. Hence,<br />

a long download time is equivalent to a long application load time. A long<br />

application load time experienced by the user is an un<strong>de</strong>sirable effect of<br />

loading the application from the network.<br />

In Java applet implementation, the typical process of downloading the entire<br />

program is eliminated. A Java applet can be run without obtaining all of the

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

Saved successfully!

Ooh no, something went wrong!