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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

488 Chapter 35<br />

shown in Figure 35-1, we can choose a power-optimal assignment by minimizing<br />

the switching activity on the inputs.<br />

Our main assumption is that whenever an FU is not used, it has it has little<br />

or no dynamic power consumption. This is usually achievable via power<br />

management techniques [1, 2, 16] which use transparent latches to keep the<br />

primary input values unchanged whenever the unit is not used. We will also<br />

use this hardware feature <strong>for</strong> our purposes, and thus, we assume that it is<br />

already in place <strong>for</strong> each of the FUs. To reduce the effect of leakage current<br />

when an FU is idle, techniques such as those in [9] may also be used, if<br />

nee<strong>de</strong>d.<br />

Some nomenclature is helpful in the following discussion:<br />

the module of the given FU type.<br />

the instruction to execute this cycle on this FU<br />

type.<br />

Num(M), Num(I): # of modules of type M, or # of instruc<br />

tions of the given type. The maximum value <strong>for</strong> Num(I)<br />

is Num(M), indicating full usage of that FU type.<br />

the first and second operands of the<br />

previous operation per<strong>for</strong>med on this module.<br />

the first and second operands of the given<br />

instruction.<br />

indicates if is commutative.<br />

Ham(X,Y): the Hamming distance between the numbers X and Y.<br />

For floating point values, only the mantissa portions<br />

of the numbers are consi<strong>de</strong>red.<br />

4.1. The optimal assignment<br />

Although its implementation cost is prohibitive, we first consi<strong>de</strong>r the optimal<br />

solution, so as to provi<strong>de</strong> intuition. On a given cycle, the best assignment is<br />

the one that minimizes the total Hamming distance <strong>for</strong> all inputs. To find<br />

this, we compute the Hamming distance of each input operand to all previous<br />

input operands. The algorithm to compute these costs is shown in Figure<br />

35-2. Once these individual costs have been computed, we examine all<br />

possible assignments and choose the one that has the smallest total cost<br />

(<strong>de</strong>fined as the sum of its individual costs).<br />

This algorithm is not practical. Since the routing logic lies on the critical<br />

path of the execution stage, such lengthy computations are sure to increase<br />

the cycle time of the machine. Moreover, the power consumed in computing<br />

so many different Hamming distances is likely to exceed the power savings<br />

from insi<strong>de</strong> the modules.

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

Saved successfully!

Ooh no, something went wrong!