From C Programs to the Configure-Execute Model
João M. P. Cardoso, Markus Weinhardt · 2003
The emergence of run-time reconfigurable architectures makes feasible the configure-execute paradigm. Compila-tion of behavioral descriptions (in, e.g., C, Java, etc.), apart from mapping the computational structures onto the avail-able resources on the device, must split the program in tem-poral sections when it needs more resources than the physi-cally available. In addition, since the execution of the com-putational structures in a configuration needs at least two stages (e.g., configuring and computing), it is important to split the program such that the reconfiguration overheads are minimized, taking advantage of the overlapping of the execution stages on different configurations. This paper presents mapping techniques to cope with those features. The techniques are being researched in the context of a C compiler for the eXtreme Processing Platform (XPP). Tem-poral partitioning is applied to furnish a set of configura-tions that reduces the reconfiguration overhead and thus may lead to performance gains. We also show that when applications include a sequence of loops, the use of several configurations may be more beneficial than the mapping of the entire application onto a single configuration. Prelim-inary results for a number of benchmarks strongly confirm the approach. 1