IMEC introduces a new programming style for C code called CleanC that substantially increases the parallelization and optimization potential for multiprocessor targets. The CleanC adherence analysis plug-ins are freely available through Eclipse. IMEC is developing multi-processor system-on-chip design tools to efficiently distribute applications over multiple processors while taking care of the synchronization of the tasks and the exchange of data between tasks.
IMEC’s mapping technology tool flow consists of parallelization and memory hierarchy optimization tools. To allow MPSoC design tools to fully unravel the intricacies of the application being analyzed, a number of restrictions are imposed on how the application is coded using the ANSI-C language. Therefore, the input code has to be written in so called CleanC, which is sequential C code written in a way that it is multiprocessor-friendly.
To enable software developers to develop code that is suitable for parallelization and mapping on multiprocessor platforms, IMEC is developing a code re-factoring toolbox. First, the application code is analyzed and violations of the CleanC programming style are flagged. To this end, CleanC adherence analysis plug-ins have been developed. Secondly, user guided code transformations are applied to the code to make it compliant to the CleanC programming style. To optimize this process, IMEC is currently developing interactive refactoring tools.
IMEC provides its CleanC adherence analysis plug-ins to the industry for free which will enable them to efficiently analyze their code. The CleanC tool is a plug-in for the Eclipse/CDT development environment for C and C++ applications. It extracts and visualizes the function call graph. The highly interactive CleanC environment allows for detection of fragments in sequential C code that are potentially hard to analyze by the MPSoC design tools and would lead to suboptimal solutions.
“By offering the CleanC analysis plug-ins to industry for free, we want to introduce a standard coding style that makes the code analyzable by multiprocessor parallelization and mapping tools,” said Rudy Lauwereins, Vice President Nomadic Embedded Systems at IMEC. “Such a standard will provide a common platform for interoperability between EDA tools and application program code.”
IMEC is a world-leading independent research center in nanoelectronics and nanotechnology. Its research focuses on the next generations of chips and systems, and on the enabling technologies for ambient intelligence. IMEC’s research bridges the gap between fundamental research at universities and technology development in industry. Its unique balance of processing and system know-how, intellectual property portfolio, state-of-the-art infrastructure and its strong network of companies, universities and research institutes worldwide position IMEC as a key partner for shaping technologies for future systems. IMEC vzw is headquartered in Leuven, Belgium, has a sister company in the Netherlands, IMEC-NL, concentrating on wireless autonomous transducer solutions, and has representatives in the US, China, Japan and Taiwan. Its staff of more than 1600 people includes more than 500 industrial residents and guest researchers. In 2007, its revenue (P&L) is estimated at about EUR 235 million.