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

Create successful ePaper yourself

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

438 Chapter 32<br />

Eylon et al. [9] <strong>de</strong>scribe a virtual file system installed in the client that is<br />

configured to appear to the operating system as a local storage <strong>de</strong>vice containing<br />

all of the application files to be streamed required by the application.<br />

The application files are broken up into pieces called streamlets. If the nee<strong>de</strong>d<br />

streamlet is not available at the client, a streamlet request is sent to the server<br />

and the virtual file system maintains a busy status until the necessary<br />

streamlets have been provi<strong>de</strong>d. In this system, overhead from a virtual file<br />

system may be too high <strong>for</strong> some embed<strong>de</strong>d <strong>de</strong>vices to support. Unlike the<br />

method in [9], our block streaming method does not need virtual file system<br />

support.<br />

<strong>Software</strong> streaming can also be done at the source co<strong>de</strong> level. The source<br />

co<strong>de</strong> is transmitted to the embed<strong>de</strong>d <strong>de</strong>vice and compiled at load time [10].<br />

Although the source co<strong>de</strong> is typically small compared to its compiled binary<br />

image and can be transferred faster, the compilation time may be very long<br />

and the compiler’s memory usage <strong>for</strong> temporary files may be large. Since the<br />

source co<strong>de</strong> is distributed, full load-time compilation also exposes the<br />

intellectual property contained in the source co<strong>de</strong> being compiled [11].<br />

Moreover, a compiler must resi<strong>de</strong> in the client <strong>de</strong>vice at all times, which<br />

occupies a significant amount of storage space. This method may not be<br />

appropriate <strong>for</strong> a small memory footprint and slower or lower-power processor<br />

embed<strong>de</strong>d <strong>de</strong>vice.<br />

3. BLOCK STREAMING<br />

In this section, we present software streaming via block streaming. The<br />

presented streaming method is lightweight in that it tries to minimize bandwidth<br />

overhead, which is a key issue <strong>for</strong> streaming embed<strong>de</strong>d software. The<br />

major benefit, though, is dramatically reduced application load times. In our<br />

approach, the embed<strong>de</strong>d application must be modified be<strong>for</strong>e it can be<br />

streamed to the embed<strong>de</strong>d <strong>de</strong>vice. As shown in Figure 32-1, the blockstreaming<br />

process on the server involves (i) compiling the application source

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

Saved successfully!

Ooh no, something went wrong!