21.01.2013 Views

Lecture Notes in Computer Science 4917

Lecture Notes in Computer Science 4917

Lecture Notes in Computer Science 4917

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.

196 P. Raghavan et al.<br />

because these transformations are not platform <strong>in</strong>dependent and therefore essential to<br />

have one <strong>in</strong>tegrated flow. In our flow, we directly couple the Wrap-IT loop transformation<br />

framework to the retargetable compiler, simulator and energy estimation eng<strong>in</strong>e.<br />

ACE’s CoSy framework and GCC are retargetable compiler frameworks which support<br />

a wide range of high-level compiler optimizations and code generation for a range<br />

of processors. However, these frameworks do not support <strong>in</strong>struction set simulation and<br />

energy aware exploration. GCC is ma<strong>in</strong>ly target<strong>in</strong>g code generation for general purpose<br />

oriented processors (like x86, Alpha, PowerPC etc.) rather than for low power embedded<br />

processors, which is our focus. The roadmap of GCC extensions <strong>in</strong>dicates this is<br />

slowly chang<strong>in</strong>g, e.g. provid<strong>in</strong>g support for loop transformations and vectorization. In<br />

our future work we will be <strong>in</strong>vestigat<strong>in</strong>g the possibility of <strong>in</strong>tegrat<strong>in</strong>g our energy aware<br />

exploration framework and our backend compilation framework with GCC. Although<br />

the CoSy framework targets low power embedded processors, the scope of retargetability<br />

is limited.<br />

The proposed framework comb<strong>in</strong>es the benefits of all the above frameworks, while<br />

giv<strong>in</strong>g fast estimates of energy and performance early <strong>in</strong> the design. It also provides<br />

a framework which can analyze the impact of high level code transformations on the<br />

architecture’s performance and power consumption. This framework can be used to<br />

explore hw/sw co-design, architectural optimizations or software optimizations.<br />

3 Compiler and Simulator Flow<br />

Figure 1 shows the retargetable compiler and simulator framework. For a given application<br />

and a mach<strong>in</strong>e configuration, the flow is automated to a large extent, requir<strong>in</strong>g<br />

m<strong>in</strong>imal designer <strong>in</strong>tervention. Manual steps are only needed for <strong>in</strong>sert<strong>in</strong>g specific <strong>in</strong>tr<strong>in</strong>sics<br />

from the <strong>in</strong>tr<strong>in</strong>sic library or <strong>in</strong> the case of specifiy<strong>in</strong>g a particular loop transformation.<br />

S<strong>in</strong>ce the framework is retargetable, it facilitates explor<strong>in</strong>g different mach<strong>in</strong>e<br />

configurations for a given application.<br />

The loop transformation eng<strong>in</strong>e is part of the Wrap-IT/Uruk framework [6], which is<br />

<strong>in</strong>tegrated <strong>in</strong>to the tool cha<strong>in</strong> (shown <strong>in</strong> Figure 1) and forms the first part of the proposed<br />

flow. Essentially, this eng<strong>in</strong>e creates a polyhedral model of the application, which enables<br />

automat<strong>in</strong>g the loop transformations. The compiler and the simulation framework<br />

are built on top of Trimaran [1], but are heavily extended <strong>in</strong> order to support a wider<br />

range of target architectures and to perform energy estimation. The <strong>in</strong>tegrated and extended<br />

flow forms the COFFEE framework, as described <strong>in</strong> the follow<strong>in</strong>g subsections.<br />

The application code is presented to the flow as ANSI-C code. A user-friendly XML<br />

schema is used to describe the target architecture (mach<strong>in</strong>e description). It is read <strong>in</strong><br />

by processor aware parts of the flow, e.g. the compiler (Coffee-Impact, Coffee-Elcor),<br />

simulator (Coffee-Simulator) and power estimator. The application code can be transformed<br />

by the Uruk front-end, before it is passed on to the rest of the compiler and<br />

eventually used for simulation. The simulator generates detailed trace files to track the<br />

activation of the components of the processor. These are f<strong>in</strong>ally processed by power and<br />

performance estimation.<br />

The compiler and simulator have been extended to support exploration of the follow<strong>in</strong>g<br />

architectural features:

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

Saved successfully!

Ooh no, something went wrong!