Embedded Systems Design Europe - August/September 2008 - (Page 13) cover feature priate candidates to start with in the first place. And to make matters worse, we want to explore different types of parallelizations quickly and easily, without rewriting significant parts of the program over and over again. Tools can help us in transforming the source code, but in the end, there is no silver bullet: either the designer or the tool (or both) must sufficiently “understand” the source code to be able to transform it correctly and efficiently. Hence, it’s crucial that we identify those constructs in the source code that hamper this process. These can be code constructs at the level of programming language idioms or even at the level of design patterns for parallel programming. Once we’ve identified these constructs, we may elaborate rules that specify in which circumstances these constructs should be avoided. This is the rationale of IMEC’s so-called CleanC rules that have been elaborated during the development of an MPSoC applicationmapping tool suite. These rules target ANSI-C language idioms that make the process of mapping sequential C programs onto an MPSoC platform more difficult. They consist of a few tens of guidelines and restrictions. Code restrictions are constructs that aren’t allowed to be present in the input C code for the tools to work (on that part of the code). For instance, undisciplined use of preprocessing information in C can make life very hard for any kind of source-code transformation tool. Code guidelines describe how code should be written to give the tools maximum accuracy and transformation freedom. The majority of these rules transcends the specific functionality of the IMEC mapping tools and may form the basis for a standard set of guidelines for programming MPSoC platforms in a “clean” code called CleanC. HOW CLEANC DIFFERS FROM C We can roughly classify the CleanC rules ing transformations. This makes the transformed code easier to recognize and understand, which is useful when the designer must edit the transformed code. Undisciplined use of header files and C preprocessor statements makes this design goal difficult to achieve. A subset of CleanC rules detail how to properly use header files and preprocessor statements. Source-code transformations may also introduce conflicts between variable names; hence, CleanC suggests using different names for different things. Other constructs that make source code transformations more difficult include irregular control flow and expressions with side effects. • Category 2 – Rules to enable and improve datadependency analysis. A major challenge in parallelizing code and optimizing usage of the memory hierarchy consists of dealing with data dependencies. Knowing which data are needed by which parts of the code and understanding the exact dependencies between the program parts that update the data and the parts that read those data are crucial instruments for parallelizing and optimizing the code. Bruteforce approaches for synchronizing accesses to shared data resources may result in worst-case assumptions about the programs behavior. Hence they are typically bound to be suboptimal at best and highly inefficient at worst. Thus, we must be able to analyze data dependencies in more precise and fine-grained ways: for instance, which parts of a video frame may be safely processed in parallel by a video encoder application. To achieve this goal, a subset 13 To simplify the development of code suitable for parallelization and mapping on multiprocessor platforms, researchers at IMEC have developed a set of CleanC guidelines and a code analysis and refactoring toolbox to make code compliant to the CleanC programming style. in four different groups. These classifications are not completely independent. For instance, applying a rule from one category may strengthen the effects of rules in other categories. • Category 1 – Rules to enable and improve source-code transformations. The IMEC mapping tools are source-code transformation tools. One of the design goals of these tools was the ability to retain the structure of the original source code as much as possible when perform- www.embedded.com/europe | embedded systems design europe | AUGUST – SEPTEMBER 2008 012-013-014-016-017-018-019_ESDE.indd 13 28/08/08 13:18:07 http://www.embedded.com/europe
Table of Contents Feed for the Digital Edition of Embedded Systems Design Europe - August/September 2008 Embedded Systems Design Europe - August/September 2008 Contents TI Overhauls DSP Lineup, Adds 15 Processors QNX Publishes Source Code for File System Congatec to Take on Proprietary Market Swiss Multicore Project Wins Microsoft Grant OpenCores Bundles Development Tool ARM Compiler Boosts Freescale i.MX31 LabVIEW Updated for Multicore and Wireless Cover Feature: Interactive Tool Supports Multiprocessor SoC Design Wanted: Benchmaking for Embedded VMM Hypervisors Graphical Design Empowers Spider Robots Building a Power Supply for Discontinuous Transmission Wireless Networks RTOS Selection & Best Practices Achieving Cache Coherence in a MIPS32 Multicore Design New Products Advertising Contacts Embedded Systems Design Europe - August/September 2008 Embedded Systems Design Europe - August/September 2008 - Embedded Systems Design Europe - August/September 2008 (Page Cover1) Embedded Systems Design Europe - August/September 2008 - Embedded Systems Design Europe - August/September 2008 (Page Cover2) Embedded Systems Design Europe - August/September 2008 - Contents (Page 3) Embedded Systems Design Europe - August/September 2008 - Contents (Page 4) Embedded Systems Design Europe - August/September 2008 - Contents (Page 5) Embedded Systems Design Europe - August/September 2008 - QNX Publishes Source Code for File System (Page 6) Embedded Systems Design Europe - August/September 2008 - QNX Publishes Source Code for File System (Page 7) Embedded Systems Design Europe - August/September 2008 - OpenCores Bundles Development Tool (Page 8) Embedded Systems Design Europe - August/September 2008 - OpenCores Bundles Development Tool (Page 9) Embedded Systems Design Europe - August/September 2008 - LabVIEW Updated for Multicore and Wireless (Page 10) Embedded Systems Design Europe - August/September 2008 - LabVIEW Updated for Multicore and Wireless (Page 11) Embedded Systems Design Europe - August/September 2008 - Cover Feature: Interactive Tool Supports Multiprocessor SoC Design (Page 12) Embedded Systems Design Europe - August/September 2008 - Cover Feature: Interactive Tool Supports Multiprocessor SoC Design (Page 13) Embedded Systems Design Europe - August/September 2008 - Cover Feature: Interactive Tool Supports Multiprocessor SoC Design (Page 14) Embedded Systems Design Europe - August/September 2008 - Cover Feature: Interactive Tool Supports Multiprocessor SoC Design (Page 15) Embedded Systems Design Europe - August/September 2008 - Cover Feature: Interactive Tool Supports Multiprocessor SoC Design (Page 16) Embedded Systems Design Europe - August/September 2008 - Cover Feature: Interactive Tool Supports Multiprocessor SoC Design (Page 17) Embedded Systems Design Europe - August/September 2008 - Cover Feature: Interactive Tool Supports Multiprocessor SoC Design (Page 18) Embedded Systems Design Europe - August/September 2008 - Cover Feature: Interactive Tool Supports Multiprocessor SoC Design (Page 19) Embedded Systems Design Europe - August/September 2008 - Wanted: Benchmaking for Embedded VMM Hypervisors (Page 20) Embedded Systems Design Europe - August/September 2008 - Wanted: Benchmaking for Embedded VMM Hypervisors (Page 21) Embedded Systems Design Europe - August/September 2008 - Graphical Design Empowers Spider Robots (Page 22) Embedded Systems Design Europe - August/September 2008 - Graphical Design Empowers Spider Robots (Page 23) Embedded Systems Design Europe - August/September 2008 - Building a Power Supply for Discontinuous Transmission Wireless Networks (Page 24) Embedded Systems Design Europe - August/September 2008 - Building a Power Supply for Discontinuous Transmission Wireless Networks (Page 25) Embedded Systems Design Europe - August/September 2008 - Building a Power Supply for Discontinuous Transmission Wireless Networks (Page 26) Embedded Systems Design Europe - August/September 2008 - Building a Power Supply for Discontinuous Transmission Wireless Networks (Page 27) Embedded Systems Design Europe - August/September 2008 - Building a Power Supply for Discontinuous Transmission Wireless Networks (Page 28) Embedded Systems Design Europe - August/September 2008 - Building a Power Supply for Discontinuous Transmission Wireless Networks (Page 29) Embedded Systems Design Europe - August/September 2008 - RTOS Selection & Best Practices (Page 30) Embedded Systems Design Europe - August/September 2008 - RTOS Selection & Best Practices (Page 31) Embedded Systems Design Europe - August/September 2008 - RTOS Selection & Best Practices (Page 32) Embedded Systems Design Europe - August/September 2008 - RTOS Selection & Best Practices (Page 33) Embedded Systems Design Europe - August/September 2008 - Achieving Cache Coherence in a MIPS32 Multicore Design (Page 34) Embedded Systems Design Europe - August/September 2008 - Achieving Cache Coherence in a MIPS32 Multicore Design (Page 35) Embedded Systems Design Europe - August/September 2008 - Achieving Cache Coherence in a MIPS32 Multicore Design (Page 36) Embedded Systems Design Europe - August/September 2008 - Achieving Cache Coherence in a MIPS32 Multicore Design (Page 37) Embedded Systems Design Europe - August/September 2008 - New Products (Page 38) Embedded Systems Design Europe - August/September 2008 - New Products (Page 39) Embedded Systems Design Europe - August/September 2008 - New Products (Page 40) Embedded Systems Design Europe - August/September 2008 - New Products (Page 41) Embedded Systems Design Europe - August/September 2008 - New Products (Page 42) Embedded Systems Design Europe - August/September 2008 - Advertising Contacts (Page 43) Embedded Systems Design Europe - August/September 2008 - Advertising Contacts (Page Cover4)
For optimal viewing of this digital publication, please enable JavaScript and then refresh the page. If you would like to try to load the digital publication without using Flash Player detection, please click here.