Publication: Programming Heterogeneous MPSoCs: Tool Flows to Close the Software Productivity Gap 

Castrillon, J.
Ph. D. Dissertation
RWTH Aachen Univeristy
Chair for Software for Systems on Silicon
Apr. 2013


Embedded electronic systems have seen an enormous boost in the last few years, evolving from single-processor platforms running single applications to complex heterogeneous Multi-Processor Systems-on-Chip (MPSoCs) capable of executing multiple applications simultaneously. This hardware complexity together with today’s stringent application requirements makes programming a daunting task for embedded software developers. As a consequence, software schedules are rarely and software solutions cannot keep pace with market requirements; a phenomenon known as the software productivity gap. This thesis presents a set of algorithms and methodologies to narrow the software productivity gap, in the same way EDA companies have helped narrowing the hardware gap with synthesis tools in the last 30 years. The thesis presents four different tool flows: A parallelism extraction flow for applications written using the C programming language, a mapping and scheduling flow for parallel applications, a special mapping flow for baseband applications in the context of Software Defined Radio (SDR) and a final flow for analyzing multiple applications at design time. The tool flows are evaluated on Virtual Platforms (VPs), which mimic different characteristics of state-of-the-art heterogeneous MPSoCs.