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.

Energy-Aware Parameter Passing 509<br />

is reached, the actual parameter has already been computed; so, b5 can just<br />

use the value.<br />

The second method, called path control, is based on the i<strong>de</strong>a of using a<br />

variable (or a set of variables) to <strong>de</strong>termine at runtime which path is being<br />

executed. For example, assume that we use a variable p to <strong>de</strong>termine which<br />

path (leading to b5) is being executed. Without loss of generality, we can<br />

assume that if path I is taken p is assigned 1, otherwise p is set to zero. Un<strong>de</strong>r<br />

this method, when b5 is reached, we can check the value of p, and <strong>de</strong>pending<br />

on its value, we per<strong>for</strong>m actual parameter value evaluation or not. It should<br />

be noted that, as compared to the first method, this method results in a smaller<br />

executable size (in general); but, it might lead to a higher execution time due<br />

to comparison operation.<br />

4. EXPERIMENTAL RESULTS<br />

To test the effectiveness of our on-<strong>de</strong>mand parameter-passing in reducing<br />

energy consumption, we conducted experiments with five real-life applications<br />

from different application domains: Atr(network address translation),<br />

SP(all-no<strong>de</strong>s shortest path algorithm), Encr(digital signature <strong>for</strong> security),<br />

Wood(color-based surface inspection method), and Usonic (feature-based<br />

estimation algorithm).<br />

To evaluate the benefits due to on-<strong>de</strong>mand parameter-passing, we modified<br />

SUIF [2] to implement different parameter-passing strategies. Our on-<strong>de</strong>mand<br />

parameter-passing strategy took less than 1200 lines of C++ co<strong>de</strong> to implement.<br />

We then modified the Sha<strong>de</strong> tool-set to collect data about the<br />

per<strong>for</strong>mance and energy behavior of applications. Sha<strong>de</strong> is an execution-driven<br />

ISA (instruction set architecture) and cache memory simulator <strong>for</strong> Sparc<br />

architectures. We simulated an architecture composed of a Sparc-IIep based<br />

core processor (100 MHz), data (8 KB, 2-way) and instruction (16 KB,<br />

2-way) caches, and a banked memory architecture (using SRAM banks). The<br />

simulator outputs the energy consumptions (dynamic energy only) in these<br />

components and overall application execution time. In particular, it simulates<br />

the parameter-passing activity in <strong>de</strong>tail to collect data <strong>for</strong> comparing different<br />

parameter-passing strategies. For computing the energy expen<strong>de</strong>d in caches<br />

and SRAM banks, the mo<strong>de</strong>l given by Kamble and Ghose [4] is used. The<br />

energy consumed in the processor core is estimated by counting the number<br />

of instructions of each type and multiplying the count by the base energy<br />

consumption of the corresponding instruction. The base energy consumption<br />

of different instruction types is obtained using a customized version of the<br />

simulator presented in [6]. All energy numbers have been computed <strong>for</strong> 0.10<br />

micron, 1 V technology.<br />

Figure 36-4 and Figure 36-5 show the percentage improvements in energy<br />

consumption and execution cycles, respectively, when different on-<strong>de</strong>mand

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

Saved successfully!

Ooh no, something went wrong!