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.

Dynamic Functional Unit Assignment <strong>for</strong> Low Power 489<br />

4.2. Approximating the hamming distance computation<br />

To reduce the overhead of the above strategy, full Hamming distance computations<br />

must be avoi<strong>de</strong>d. We achieve this by exploiting certain properties<br />

of numerical data to represent an operand by a single in<strong>for</strong>mation bit.<br />

Integer bit patterns. It is known [3], that most integer operands are small. As<br />

a consequence, most of the bits in a 2’s complement representation are<br />

constant and represent the sign. It is likely that the Hamming distance between<br />

any two consecutive operand values will be dominated by the difference in<br />

their sign bits. Thus we can replace the operands by just their top bits, <strong>for</strong><br />

the purposes of Figure 35-2.<br />

Table 35-1 validates this technique. This table records the operand bit<br />

Table 35-1. Bit patterns in data. The values in the first three columns are used to separate the<br />

results into 8 rows. Columns 1 and 2 show the in<strong>for</strong>mation bits of both operands; (<strong>for</strong> integers,<br />

the top bit; <strong>for</strong> floating points, the OR-ing of the bottom four bits of the mantissa). Columns 4<br />

and 7 are the occurrence frequencies <strong>for</strong> the given operand bits and commutativity pattern, as<br />

a percentage of all executions of the FU type. Columns 5, 6, 8, and 9 display, <strong>for</strong> the specified<br />

operand, the probability of any single bit being high.<br />

OP1<br />

OP 2<br />

Commutative<br />

()<br />

IALU<br />

Frequency<br />

(%)<br />

Operand<br />

1 bit<br />

prob.<br />

Operand<br />

2 bit<br />

prob.<br />

FPAU<br />

Frequency<br />

(%)<br />

Operand<br />

1 bit<br />

prob.<br />

Operand<br />

2 bit<br />

prob.<br />

0<br />

0<br />

0<br />

0<br />

1<br />

1<br />

1<br />

1<br />

0<br />

0<br />

1<br />

1<br />

0<br />

0<br />

1<br />

0<br />

Yes<br />

No<br />

Yes<br />

No<br />

Yes<br />

No<br />

Yes<br />

No<br />

40.11<br />

29.38<br />

9.56<br />

0.58<br />

17.07<br />

1.51<br />

1.52<br />

0.27<br />

0.123<br />

0.078<br />

0.175<br />

0.109<br />

0.608<br />

0.643<br />

0.703<br />

0.663<br />

0.068<br />

0.040<br />

0.594<br />

0.820<br />

0.089<br />

0.048<br />

0.822<br />

0.719<br />

16.79<br />

10.28<br />

15.64<br />

4.90<br />

5.92<br />

4.22<br />

31.00<br />

11.25<br />

0.099<br />

0.107<br />

0.188<br />

0.132<br />

0.513<br />

0.500<br />

0.508<br />

0.507<br />

0.094<br />

0.158<br />

0.522<br />

0.514<br />

0.190<br />

0.188<br />

0.502<br />

0.506

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

Saved successfully!

Ooh no, something went wrong!