Previous: MOVE
framework Up: MOVE
framework Next: Hardware
framework
Main parts of the software framework are a trace analysis tool and a
compiler generator. In fact these two parts share much code. Using these
two parts we are able to schedule (producing instruction level parallel
code) both traces and sequential code. Figure
shows a block diagram showing the main parts of this framework.
The
software framework accepts an application coded in C or C++
,
and architecture parameter values, like available functionality (type of
operations), and latency of operations, as input. Based on the architecture
inputs it generates a compiler front end (based on GNU-CC), architecture
simulators, back end code schedulers, and debuggers. The figure does not
show all components. The front end produces sequential move code. Using
one or more data sets (not shown in the figure), Ssim, which is a sequential
simulator, generates traces for the trace scheduler (Tsched) and profile
information for the code scheduler (Csched). The schedulers compact the
trace or code, according to specified architecture constraints.
The analysis part is able to produce all kinds of statistics based on the scheduled traces or object code, and communicates this information with the optimizer. Among the statistics are, amount of parallelism, distribution of parallelism, schedule length, and resource usage. Based on these statistics, the optimizer can check if user constraints are still met, and make decisions how to further optimize the architecture.
Last modified on March 18th, 1997 by Irek Karkowski, email I.Karkowski@et.tudelft.nl