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.

476 Chapter 34<br />

mechanisms. Given these energy macro-mo<strong>de</strong>ls and execution statistics<br />

collected during the initial system simulation, the energy change due to an<br />

atomic software architectural trans<strong>for</strong>mation can be computed. For example,<br />

suppose the energy macro-mo<strong>de</strong>ls <strong>for</strong> two IPC’s, and are given<br />

by:<br />

where x is the number of bytes being transferred in each call, and c’s are<br />

the coefficients of the macro-mo<strong>de</strong>ls. The amount of energy change incurred<br />

by replacing with is given by<br />

where is the number of times this IPC is invoked in the specific application<br />

process un<strong>de</strong>r consi<strong>de</strong>ration. The values of parameters such as<br />

and x are collected during the <strong>de</strong>tailed profiling of the initial software<br />

architecture. The energy changes due to other system function replacements<br />

can be calculated similarly.<br />

The implicit set: These inclu<strong>de</strong> the macro-mo<strong>de</strong>ls <strong>for</strong> the context-switch<br />

energy, timer-interrupt energy and re-scheduling energy. In particular, the<br />

context-switch energy, is required to calculate the energy change due<br />

to process merging. is <strong>de</strong>fined to be the amount of round-trip energy<br />

overhead incurred every time a process is switched out (and switched in<br />

again) [21]. 2 This <strong>de</strong>finition is convenient <strong>for</strong> calculating the energy change<br />

due to process merging.<br />

In the next section, we introduce a set of atomic software architectural<br />

trans<strong>for</strong>mations that we have selected. Computation of the energy changes<br />

incurred by these trans<strong>for</strong>mations is facilitated by the availability of the OS<br />

energy macro-mo<strong>de</strong>ls.<br />

3.5. Proposed software architectural trans<strong>for</strong>mations<br />

Since we have adopted the OS-driven multi-process software architectural<br />

style, the moves that we consi<strong>de</strong>r are mainly manipulations of the components<br />

(application processes, signal handlers, and <strong>de</strong>vice drivers), and the connectors<br />

(inter-process synchronization and communication mechanisms). Some<br />

of the specific trans<strong>for</strong>mations presented here, including manipulation of<br />

application processes or process structuring, have been investigated in other<br />

related areas such as software engineering, mostly in a qualitative manner.<br />

For example, a good introduction to process structuring can be found in [5].<br />

In this sub-section, we <strong>for</strong>mulate a wi<strong>de</strong> range of atomic software architectural<br />

trans<strong>for</strong>mations and show how they can be systematically used <strong>for</strong><br />

trans<strong>for</strong>mations of the SAG. For each atomic trans<strong>for</strong>mation, we also inclu<strong>de</strong><br />

a brief analysis of the energy change incurred. Note that some of these atomic

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

Saved successfully!

Ooh no, something went wrong!