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.

252 Chapter 19<br />

We sum both these quantities and divi<strong>de</strong> by the operation mobility to obtain<br />

Total Excess Load per scheduling time step.<br />

3.2. Speculative mobility<br />

The second component of our ranking function, <strong>de</strong>noted<br />

is an<br />

indicator of the number of additional time steps ma<strong>de</strong> available to the<br />

operation through speculation. It is given by the difference between the<br />

maximum ALAP value over all pre<strong>de</strong>cessors of the operation, <strong>de</strong>noted by<br />

pred(op), be<strong>for</strong>e and after speculation. Formally:<br />

3.3. Ranking function<br />

The composite or<strong>de</strong>ring of operations by suitability <strong>for</strong> speculation, called<br />

Suit(op), is given by:<br />

Suit(op) is computed <strong>for</strong> each operation that is a candidate <strong>for</strong> speculation,<br />

and speculation is attempted on the operation with the highest value, as<br />

discussed in the sequel.<br />

4. OPTIMIZATION FRAMEWORK<br />

Figure 19-4 shows the complete iterative optimization flow of OPT-PH.<br />

During the initialization phase, if-conversion is applied to the original CDFG<br />

– control <strong>de</strong>pen<strong>de</strong>nces are converted to data <strong>de</strong>pen<strong>de</strong>nces by <strong>de</strong>fining the<br />

appropriate predicate <strong>de</strong>fine operations and data <strong>de</strong>pen<strong>de</strong>nce edges, and an<br />

initial binding is per<strong>for</strong>med using a modified version of the algorithm presented<br />

in [15]. Specifically, the initial phase of this binding algorithm was<br />

implemented in our framework along with some changes specific to the SSA-<br />

PS trans<strong>for</strong>mation [9], as outlined below. The original algorithm adds a penalty<br />

<strong>for</strong> every pre<strong>de</strong>cessor of an operation that is bound to a cluster different from<br />

the cluster to which the operation itself is being tentatively bound. In our<br />

version of the algorithm, such penalty is not ad<strong>de</strong>d if the pre<strong>de</strong>cessor is a predicated<br />

move operation. The reason <strong>for</strong> this modification is the fact that predicated<br />

move operations realizing the reconciliation (i.e. [9]) functions may<br />

themselves be used to per<strong>for</strong>m required (i.e. binding related) data transfers<br />

across clusters and thus may actually not lead to a per<strong>for</strong>mance penalty.<br />

After the initialization phase is per<strong>for</strong>med, the algorithm enters an itera-

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

Saved successfully!

Ooh no, something went wrong!