ABSTRACT

This chapter introduces the general issues related to system-level partitioning, and describes in detail the partitioning methodology. It explores the design space to identify feasible solutions, supporting also the selection of a heterogeneous multi-processor architecture taking into account several issues. The output of this methodology is the allocation of the behavioral components on to the selected architectural components. Architecture selection and partitioning are influenced by performance requirements, implementation cost, and application-specific issues. The most critical problems in partitioning methodologies are related to the computational complexity, which is exponential with the number of modules, and to the difficulties of obtaining accurate estimates of the timing, silicon, or memory requirements and power consumption of the components.