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.

Chapter 32<br />

SOFTWARE STREAMING VIA BLOCK<br />

STREAMING<br />

Pramote Kuacharoen, Vincent J. Mooney III and Vijay K. Madisetti<br />

School of Electrical and Computer Engineering, Georgia Institute of Technology, USA<br />

Abstract. <strong>Software</strong> streaming allows the execution of stream-enabled software on a <strong>de</strong>vice even<br />

while the transmission/streaming of the software may still be in progress. Thus, the software<br />

can be executed while it is being streamed instead of requiring the user to wait <strong>for</strong> the<br />

completion of the software’s download. Our streaming method can reduce application load time<br />

seen by the user since the application can start running as soon as the first executable unit is<br />

loa<strong>de</strong>d into the memory. Furthermore, unnee<strong>de</strong>d parts of the application might not be downloa<strong>de</strong>d<br />

to the <strong>de</strong>vice. As a result, resource utilization such as memory and bandwidth usage<br />

may also be more efficient. Using our streaming method, an embed<strong>de</strong>d <strong>de</strong>vice can support a<br />

wi<strong>de</strong> range of real-time applications. The applications can be run on <strong>de</strong>mand. In this paper, a<br />

streaming method we call block streaming is proposed. Block streaming is <strong>de</strong>termined at the<br />

assembly co<strong>de</strong> level. We implemented a tool to partition real-time software into parts which<br />

can be transmitted (streamed) to an embed<strong>de</strong>d <strong>de</strong>vice. Our streaming method was implemented<br />

and simulated on a hardware/software co-simulation plat<strong>for</strong>m in which we used the PowerPC<br />

architecture.<br />

Key words: software streaming, embed<strong>de</strong>d software streaming<br />

1. INTRODUCTION<br />

Today’s embed<strong>de</strong>d <strong>de</strong>vices typically support various applications with different<br />

characteristics. With limited storage resources, it may not be possible<br />

to keep all features of the applications loa<strong>de</strong>d on an embed<strong>de</strong>d <strong>de</strong>vice. In<br />

fact, some software features may not be nee<strong>de</strong>d at all. As a result, the memory<br />

on the embed<strong>de</strong>d <strong>de</strong>vice may not be efficiently utilized. Furthermore, the<br />

application software will also likely change over time to support new functionality;<br />

such change may occur quite rapidly in the case of game software<br />

[1]. Today, the user most likely has to download the software and install it<br />

(the exception to this is Java, which, since it runs on a virtual machine, does<br />

not strictly require “installation” as long as the Java Virtual Machine is already<br />

installed). This means that the entire software must be downloa<strong>de</strong>d be<strong>for</strong>e it<br />

can be run. Downloading the entire program <strong>de</strong>lays its execution. In other<br />

words, application load time (the amount of time from when the application<br />

is selected to download to when the application can be executed) is longer<br />

than necessary. To minimize the application load time, the software should<br />

435<br />

A Jerraya et al. (eds.), <strong>Embed<strong>de</strong>d</strong> <strong>Software</strong> <strong>for</strong> SOC, 435–12, 2003.<br />

© 2003 Kluwer Aca<strong>de</strong>mic Publishers. Printed in the Netherlands.

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

Saved successfully!

Ooh no, something went wrong!