ACE submits its DSP-C programming language extensions to ISO
ACE Press Release
San Jose, California, USA 3 November, 1998
With the imminent approval of the latest version of the C programming language, members of Working Group 14 (WG14) of Subcommittee 22 (SC22) of the ISO/IEC Joint Technical Committee are already turning their attention to the next generation of C-language recommendations. ACE Associated Compiler Experts (Amsterdam, The Netherlands) has submitted its DSP-oriented extensions to C for inclusion in the next release of this widely used language.
"Our proposed DSP-C language extensions overcome the inability of standard C programs to handle the fixed-point data types, divided memory spaces, dedicated register sets and circular buffers that are fundamental to DSP performance," said Rob Kurver, managing director of ACE Associated Compiler Experts bv. "As a result, programmers will be able to enjoy all the productivity and portability benefits of writing in C, while at the same time generating code that approximates very closely to that achieved using hand-optimised assembler."
In consumer DSP applications such as digital mobile telephony, where increased functionality, lower cost and shorter time-to-market are critical issues, the shorter development times and code re-usability achieved by C-level programming will be particularly beneficial.
Standard C does not directly support the fixed-point arithmetic operations used by DSP processors, currently leaving programmers with no option but to hand-craft most of their algorithms in assembler. To overcome this problem DSP-C adds a fixed-point data type to the language, definable in a range of word sizes and saturation criteria. Using this information, fixed-point data is supported as easily as integer and floating point data throughout the compiler, including the critical optimisers that lead to highly efficient DSP code.
By allowing the programmer to declare the memory space in which a specific data object must be placed, ACE's proposed DSP-C extensions also support the multiple memory spaces of dual Harvard architectures DSP processors. As a result, optimising compilers can utilise the ability of these processors to read data from two separate memories in a single cycle to maximise execution speed. Ensuring the simultaneous flow of data and coefficient data to the multiplier/accumulator of processors designed for FIR filtering, for example, is critical to their operation.
Another feature of many DSP algorithms, including FIR filters and FFTs, is that they frequently use the same block of data over and over again, working from the start of the block to the end and then looping back to the beginning. Although the optimum way of achieving this is to create a circular buffer, such buffers are not easily defined in standard C programs. ACE has therefore proposed a language extension that allows the size and memory space of circular buffers to be defined so that they can be easily generated during program compilation.
Developed in collaboration with Philips Semiconductors, DSP-C is a superset of ISO/ANSI C that allows DSP programs to be written and compiled for virtually any target DSP processor. Because it maintains full compatibility with ISO/ANSI C, programmers can easily replace existing sections of assembly language code that are called from C programs with their DSP-C equivalent, making the entire program much more maintainable and re-usable.
Prominent DSP companies such as Atair Software GmbH, Ericsson Radio Systems AB, NEC Corporation, Philips Semiconductors and Zilog are already developing C compiler products supporting the newly defined DSP-C extensions, in advance of these extensions being considered for approval by the ISO.
In order to provide a generic, multi-vendor, multi-architecture solution to the implementation of the DSP-C language, ACE already provides it as an integral part of the company's CoSy compiler development system.
All the optimisers and code generators in the DSP-C release of CoSy directly support the language extensions to produce highly efficient DSP code. In addition, its code generators support architecture-specific attributes of target DSP processors such as instruction level parallelism, dedicated registers and heterogeneous register sets. Because architectural descriptions within CoSy are easily defined and modified, this compiler development platform can even be used to experiment with new DSP architectures in order to perform true hardware/software/application co-design.
"There is a clear trend toward high-level language use in DSP, and C has usually been the choice. However, C in its present form is not optimal for DSP algorithms so we applaud the introduction of ACE's new DSP-C compiler development system as an improvement that could have broad implications," commented leading DSP market analyst Will Strauss of Forward Concepts (Tempe, Arizona, USA).
ACE Associated Compiler Experts bv (a wholly owned subsidiary of ACE Associated Computer Experts, Amsterdam, The Netherlands) is a world leader in the production of compiler development tools for professional compiler developers. Its open CoSy compiler development platform gives compiler developers the ability to achieve a similar leading edge position in the construction of better and faster optimising compilers for architectures ranging from 4-bit DSPs to 256-bit VLIW processors. CoSy also supports a wide range of programming languages including C, Fortran and Java.