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.

<strong>Software</strong> Streaming Via Block Streaming 445<br />

4.2.3. <strong>Software</strong> profiling<br />

It is extremely unlikely that the application executes its co<strong>de</strong> in a linear address<br />

or<strong>de</strong>ring. There<strong>for</strong>e, the blocks should preferably be streamed in the most<br />

common or<strong>de</strong>r of co<strong>de</strong> execution. This can minimize <strong>de</strong>lays due to missing<br />

co<strong>de</strong>. <strong>Software</strong> profiling can help <strong>de</strong>termine the or<strong>de</strong>r of co<strong>de</strong> to be streamed<br />

in the background and on-<strong>de</strong>mand. When the software execution path is<br />

different from the predicted path, the or<strong>de</strong>r of background streaming must be<br />

changed to reflect the new path. A software execution path can be viewed as<br />

a control/data flow graph. When the program execution flows along a certain<br />

path, the streaming will be conducted accordingly. A path prediction algorithm<br />

is necessary <strong>for</strong> background streaming to minimize software misses.<br />

The block size <strong>for</strong> the paths which are unlikely to be taken can be <strong>de</strong>termined<br />

according to the appropriate suspension <strong>de</strong>lay. Currently, we manually<br />

predict the software execution path.<br />

5. SIMULATION RESULTS<br />

We implemented a tool <strong>for</strong> breaking up executable binary images in PowerPC<br />

assembly into blocks and generating corresponding streamed co<strong>de</strong> ready to<br />

be streamed to the embed<strong>de</strong>d <strong>de</strong>vice We simulated our streaming methods<br />

using hardware/software co-simulation tools which consist of Synopsys ®<br />

VCS, Mentor Graphics ® Seamless CVE, and Mentor Graphics XRAY ®<br />

Debugger. Among the variety of processor instruction-set simulators (ISSes)<br />

available in Seamless CVE, we chose to use an ISS <strong>for</strong> the PowerPC 750<br />

architecture. As illustrated in Figure 32-6, the simulation environment is a<br />

shared-memory system. Each processor runs at 400 MHz while the bus runs<br />

at 83 MHz. A stream-enabled application runs on the main processor. The<br />

I/O processor is <strong>for</strong> transferring data. We validated our streaming method in<br />

this simulation environment.<br />

In robot exploration, it is impossible to write and load software <strong>for</strong> all<br />

possible environments that the drone will encounter. The programmer may<br />

want to be able to load some co<strong>de</strong> <strong>for</strong> the robot to navigate through one type<br />

of terrain and conduct an experiment. As the robot explores, it may roam to<br />

another type of terrain. The behavior of the robot could be changed by newly

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

Saved successfully!

Ooh no, something went wrong!