Constraint Programming Approach to Reconfigurable Processor Extension Generation and Application Compilation
Résumé
In this paper, we present a constraint programming approach for solving hard design problems present when automatically designing specialized processor extensions. Specifically, we discuss our approach for automatic selection and synthesis of processor extensions as well as efficient application compilation for these newly generated extensions. The discussed approach is implemented in our integrated design framework, IFPEC, built using constraint programming (CP). In our framework, custom instructions, implemented as processor extensions, are defined as computational patterns and represented as graphs. This, along with the graph representation of an application, provides a way to use our CP framework equipped with subgraph isomorphism and connected component constraints for identification of processor extensions as well as their selection, application scheduling, binding and routing. All design steps assume architectures composed of run-time reconfigurable cells, implementing selected extensions, tightly connected to a processor. An advantage of our approach, is possibility of combining different heterogeneous constraints to represent and solve all our design problems. Moreover, the flexibility and expressiveness of the CP framework makes it possible to solve simultaneously extension selection, application scheduling and binding and improve the quality of the generated results. The paper is largely illustrated with experimental results.