Publication: A Methodology for Efficient Multiprocessor System-on-Chip Software Development 

Ceng, J.
Ph. D. Dissertation
RWTH Aachen Univeristy
Institute for Communication Technologies and Embedded Systems (ICE)


Today, more and more embedded System-on-Chip (SoC) circuits use processors as building blocks. The so called Multiprocessor System-on-Chip (MPSoC) integrates multiple processors, which are optimized for a specific application or an application domain, into one chip. Thereby, a good balance of computing power, power consumption, and manufacturing cost can be achieved. However, the existence of multiple programmable devices in MPSoCs also makes their software development a time-consuming and error-prone process. New programming tools are need by MPSoC programmers in order to improve their efficiency. MAPS (MPSoC Application Programming Studio) is a software development environment that aims at providing developers with an efficient MPSoC programming solution. A set of tools are available in MAPS, which are designed to assist MPSoC programmers with their work. The MAPS architecture modeling tool is provided to allow the designer to describe the target MPSoC. The resulting model is in principle a high-level description of the underlying MPSoC architecture. Due to the high abstraction level, the modeling process is very simple; and the designer can easily create a model without major effort. The information contained in the model is required by MAPS so that it can be aware of the character of the target MPSoC when doing analyses. The MAPS profiling tool gives developers the possibility to analyze applications at a fine-grained level in connection with the target MPSoC architecture. During the profiling process, the target application is broken down into elementary operations such as multiplication, addition, etc., so that an accurate profile can be obtained for the user. In addition, the dynamic information generated during the profiling process is further used by MAPS itself to do control/data flow analysis. Data dependencies in MPSoC applications are often obstacles that prevent the applications to be efficiently executed. In order to find them out, the MAPS control/data flow analysis leverages both the traditional static analysis technique and the dynamic information provided by the profiling process. In this way, the dependency information, which plays an important role in the parallelization of the target application, is extracted from the source code. The MAPS partitioning tool helps the developer to split a sequential application into small parts to be parallel executed in the target MPSoC. The parallelism of the application can be extracted by MAPS automatically. Besides, since MAPS has little information about the target application at algorithm level, it provides the developer with the flexibility to use his application knowledge to fine tune the partitioning process as well as the result. The MAPS Virtual Platform (MVP) simulates the target MPSoC at a high abstraction level. With the MVP, the developer can quickly test the functionality of the target MPSoC application without the need for a complex test environment. Additionally, getting an early estimation of the target application performance is also possible by the use of the MVP. The tools provided by MAPS are integrated in one environment, so that the developer can do the development without the need of switching back and forth between different tools. The integrated environment is also responsible for the visualization of the results they generate, so that the process of MPSoC software development can be efficiently carried out in MAPS. The efficiency of the MAPS framework is shown through its usage on multiple MPSoC platforms. In the first example, a parallel picture encoding application is developed for an MPSoC within a short time frame by using MAPS, and 65% of the parallel efficiency of a manually developed version is achieved. The second example presents the development of a parallel video decoder application for three MPSoCs. After the analysis and partitioning of the application, the MVP is first used as test environment for early functional simulation and debugging. This helps the application to be successfully deployed on the target MPSoCs. In both cases, the productivity of MPSoC programmers is greatly improved through the use of MAPS.



Copyright © by IEEE
© 2021 IEEE.Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any current or future media, including reprinting/republishing this material for advertising or promotional purposes, creating new collective works, for resale or redistribution to servers or lists, or reuse of any copyrighted component of this work in other works.