CoSy White Papers
Documents behind the scene
Retargetable Code Optimization for Predicated Execution
This paper results from a joint research project between RWTH Aachen
university, NXP and ACE. It was presented at the conference Design,
Automation and Test in Europe in 2008 and received a DATE 08 Best
Paper Award.
Retargetable C compilers are key components of today's
embedded processor design platforms for quickly obtaining
compiler support and performing early processor architecture
exploration. The inherent problem of the retargetable
compilation approach, though, is the well known trade-off
between the compiler's flexibility and the quality of generated
code. However, it can be circumvented by designing
flexible, configurable code optimization techniques applicable
to a certain range of target architectures. This paper focuses
on target machines with predicated execution support
which is wide-spread in deeply pipelined and highly parallel
embedded processors used in next generation high-end
video, multimedia and wireless devices. We present an efficient
and quickly retargetable code optimization technique
for predicated execution that is integrated into an industrial
retargetable C compiler. Experimental results for several
embedded processors demonstrate that the proposed technique
is applicable to real-life target machines and that it
produces significant code quality improvements for control
intensive applications.
Parallelization using Polyhedral Analysis
Multicore architectures are being introduced more and more
to meet the compute power required by applications.
The automatic parallelization and mapping of sequential applications
onto multi-core architectures is an important research topic for which
a general compiler-oriented solution does not yet exist.
There are however compilation techniques and
analyses that greatly help application engineers in solving this
difficult problem. This paper discusses the Polyhedral and Kahn Process
Network models that are being integrated into the CoSy compiler framework.
It describes our experiments in semi-automatic coarse-grain
parallelization of an MJPEG application and its mapping to the
CELL architecture. Based on the polyhedral model that is used to
calculate exact data dependences and to create a Polyhedral Reduced
Dependence Graph (PRDG), the Kahn Process Network (KPN) is
automatically derived from a PRDG and the extensions are made to
CoSy’s Intermediate Representation (IR) in order to facilitate network
restructuring transformations....
Exploring Possibilities with Embedded C Emulation
CoSy offers DSP developers the opportunity to access the market
faster using its emulation capability. Embedded C emulation lets
application development teams develop arithmetically accurate DSP applications
on standard workstations. It can be applied when the target architecture
has not yet fully crystallized, but it is also just more convenient than
development on a simulator....
DSP-C Extensions to DWARF
Although the DSP-C language extension allows DSP programs to be written
in a high level language ensuring portability while being able to be compiled
efficiently, it does not cater for debugging programs in the development stage.
For this, it was needed to define how to represent the language extensions in
symbolic debug information formats of DWARF...
CoSy Compilers, an Overview of Construction
and Operation
CoSy is used for constructing compilers. These compilers share various
tools and common procedures in the environment in which they are constructed.
The compilers themselves share components and interfaces that allow the compiler
writer to focus on target code quality instead of on bookkeeping tasks.
Furthermore, these compilers are unique for their scalability to host
requirements, and the innovative techniques available for their construction...
Programming DSPs in High-Level Languages
If you’re thinking of programming your DSP in a high-level language
instead of assembler, that high-level language will almost certainly
be a C-type language. It’s unlikely to be standard C, however, because
standard C was never designed to handle the fixed point arithmetic,
divided memory spaces and circular buffers that are typical of DSP
architectures. Of the several C variants that are available to you,
the one you choose will have a significant impact on both the portability
and efficiency of the generated code...
Compiler Technology and its Relationship to
DSP Performance
High level languages reduce programming effort, facilitate program
maintenance and encourage IP re-use - three factors that are critical to
software development success in fast-moving consumer electronics markets.
Yet despite this fact, most of the DSP processors at the heart of
consumer products such as mobile phones, MP3 players and DVD players are
still laboriously programmed in assembly language...
DSP-C An extension to ISO/IEC 9899:1990
This document defines an extension to the ISO/IEC 9899:1990 ("ISO C")
standard to support the specific hardware features of Digital Signal Processors
(DSP’s). The most important basic language elements added are a fixed point data
type (in various forms), memory spaces and circular pointers. Some features of
this extension, most notably the memory spaces, may also be applicable to
embedded processors which are not DSP’s, such as microcontrollers...








