Previous: MOVE framework Up: MOVE framework Next: Hardware framework

Software 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