ABSTRACT

Modern hardware systems are moving toward execution platforms made up of multiple programmable and dedicated processing elements implemented on a single chip, known as a multiprocessor system-on-chip (MPSoC). The different parts of an embedded application are executing on these processing elements, but the activities of mapping the parts of an embedded program onto the platform elements are nontrivial. First of all, there may be various and often conflicting resource constraints. The real-time constraint, for example, should be met together with constraints on the uses of memory and energy. There also are huge varieties in the freedom of choices in

the mapping of an application to a platform because there are many ways to partition an embedded program into parts, there are many ways these parts can be assigned to processing elements, and there are many ways each processing element can be set up.