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.

240 Chapter 18<br />

several heuristics can be used. In line 16, we restructure the process co<strong>de</strong>s<br />

(i.e., tile them).<br />

3. EXPERIMENTS<br />

3.1. Implementation and experimental methodology<br />

We evaluate our data space oriented process scheduling strategy using a simple<br />

in-house simulator. This simulator takes as input a program (represented as a<br />

process <strong>de</strong>pen<strong>de</strong>nce graph), a scheduling or<strong>de</strong>r, a data cache configuration<br />

(associativity, cache size, and line size), and cache simulator as parameters,<br />

and records the number of cache hits/misses in the data cache and execution<br />

cycles. For cache simulations, we used a modified version of Dinero III [6].<br />

The co<strong>de</strong> trans<strong>for</strong>mations are implemented using the SUIF compiler infrastructure<br />

from Stan<strong>for</strong>d University [1] and the Omega Library [2].<br />

3.2. Benchmarks<br />

Our benchmark suite contains five large array-intensive embed<strong>de</strong>d applications.<br />

Encr implements the core computation of an algorithm <strong>for</strong> digital<br />

signature <strong>for</strong> security. It has two modules, each with eleven processes. The<br />

first module generates a cryptographically-secure digital signature <strong>for</strong> each<br />

outgoing packet in a network architecture. User requests and packet send<br />

operations are implemented as processes. The second module checks the<br />

digital signature attached to an incoming message.<br />

Usonic is a feature-based object estimation kernel. It stores a set of enco<strong>de</strong>d<br />

objects. Given an image and a request, it extracts the potential objects of<br />

interest and compares them one-by-one to the objects stored in the database<br />

(which is also updated). Im-Unit is an image processing package that works<br />

with multiple image <strong>for</strong>mats. It has built-in functions <strong>for</strong> unitary image<br />

trans<strong>for</strong>mations, noise reduction, and image morphology. MPC is a medical<br />

pattern classification application that is used <strong>for</strong> interpreting electrocardiograms<br />

and predicting survival rates. Im-An is an image analysis algorithm that<br />

is used <strong>for</strong> recognizing macromolecules.<br />

3.3. Results<br />

In Figure 18-5, we divi<strong>de</strong> the execution time of each application into three<br />

sections: the time spent in CPU by executing instructions, the time spent in<br />

cache accesses, and the time spent in accesses to the off-chip memory. We<br />

clearly see from this graph that the off-chip memory accesses can consume<br />

significant number of memory cycles. To un<strong>de</strong>rstand this better, we give in<br />

Figure 18-6 the execution time breakdown <strong>for</strong> the processes of the MPC<br />

benchmark. We observe that each process spends a significant portion of its

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

Saved successfully!

Ooh no, something went wrong!