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.

470 Chapter 34<br />

one or more steps in the compilation process, including trans<strong>for</strong>mations,<br />

instruction selection, register assignment, instruction scheduling, etc. Representative<br />

work in this area inclu<strong>de</strong>s, but is not limited to, [6–10]. At one level<br />

above the instruction level, the per<strong>for</strong>mance and energy impact of source co<strong>de</strong><br />

trans<strong>for</strong>mations has been investigated in [11].<br />

System-level software energy reduction strategies usually involve some<br />

kind of resource scheduling policy, whether it is scheduling of the processor<br />

or the peripherals. In complex embed<strong>de</strong>d systems, this often centers around<br />

the adaptation of the OS. Some general i<strong>de</strong>as on adapting software to manage<br />

energy consumption were presented in [12–14]. Vahdat et al. [15] proposed<br />

revisiting several aspects of the OS <strong>for</strong> potential improvement in energy<br />

efficiency. Lu et al. [16] proposed and implemented OS-directed power<br />

management in Linux and showed that it can save more than 50% power<br />

compared to traditional hardware-centric shut-down techniques. Bellosa [17]<br />

presented thread-specific online analysis of energy-usage patterns that are<br />

fed back to the scheduler to control the CPU clock speed.<br />

<strong>Software</strong> architecture has been an active research area <strong>for</strong> the past few<br />

years in the real-time software and software engineering communities, with<br />

emphasis on software un<strong>de</strong>rstanding and reverse engineering. Many common<br />

software architectural styles are surveyed in [4). Wang et al. [18] evaluated<br />

the per<strong>for</strong>mance and availability of two different software architectural styles.<br />

Carrière et al. [19] studied the effect of connector trans<strong>for</strong>mation at the<br />

software architecture level in a client-server application. None of these studies<br />

consi<strong>de</strong>red the effect of the software architecture on energy consumption. Our<br />

work, on the other hand, provi<strong>de</strong>s a systematic framework <strong>for</strong> harnessing<br />

software architectural trans<strong>for</strong>mations to minimize energy consumption.<br />

IMEC’s work on embed<strong>de</strong>d software synthesis [20] consi<strong>de</strong>rs synthesis of<br />

real-time multi-threa<strong>de</strong>d software based on a multi-thread graph (MTG) mo<strong>de</strong>l.<br />

They focus on static scheduling of the threads without the use of an OS. They<br />

do not target energy consumption. Our work also consi<strong>de</strong>rs multi-process<br />

embed<strong>de</strong>d software, but emphasizes energy-efficient usage of the OS through<br />

appropriate software trans<strong>for</strong>mations.<br />

3. ENERGY MINIMIZATION THROUGH SOFTWARE<br />

ARCHITECTURAL TRANSFORMATIONS<br />

In this section, we <strong>de</strong>scribe a methodology <strong>for</strong> minimizing the energy consumption<br />

of embed<strong>de</strong>d software through software architectural trans<strong>for</strong>mations.<br />

Section 3.1 provi<strong>de</strong>s an overview of the entire flow, while Sections 3.2<br />

through 3.5 <strong>de</strong>tail the important aspects.

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

Saved successfully!

Ooh no, something went wrong!