DSP-C Language Extensions Find Approval in ISO Embedded C Specification

ACE Press Release

San Francisco, U.S.A. 29 March, 2004

Company's efforts bring significant contributions to embedded application development community with technical ease and consistency for C language users

ACE Associated Compiler Experts bv announced today that its DSP-C language extensions have been officially adopted and approved as part of the industry specification by the ISO/IEC Technical committee. The resulting efforts can be found in Technical Report 18037, Programming languages - C - Extensions to support embedded processors. The Embedded C technical report specifies a range of extensions to the ISO/IEC 9899:1999 C language specification, also known as ISO C99.

These C language extensions enable efficient and portable programming of embedded systems through compiler support for hardware features generally found in embedded processor architectures, such as fixed-point operations, multiple memory address spaces and basic low level I/O operations. ACE's customer base has utilized these extensions with the CoSy®-DSP compiler development system since its inception. In addition ACE published the specification which has been successfully adopted in many other commercial DSP-C compilers. Both the original DSP-C and the final Embedded C specification documents are available at the web site of the ISO/IEC Working Group 14 (http://www.open-std.org/jtc1/sc22/wg14/).

Historically ACE has been closely involved with Embedded C and takes special pride in the fact that its language extensions have now obtained broad acceptance and will become accessible to the full range of programmers of embedded processor architectures. "ACE recognized years ago the desperate need of embedded processor developers to be able to program in a language as efficient and portable as C," said Marco Roodzant, vice president of sales and marketing for ACE. "We strongly believe in the Embedded C extensions and appreciate the concerted efforts of the ISO/IEC organization and involved people in WG14 in taking the initiative through the standardization process. ACE will continue to respond to its customers' needs with the highest quality products they require, to continue to influence the growth and development of the embedded processor industry."

In 1998, ACE approached the ISO C Working Group with the proposal to make its DSP-C an approved extension to the C Programming language standard. DSP-C was originally developed by ACE in co-operation with Philips Semiconductors and other industries and, like its successor Embedded C, specifies fixed-point data types and multiple memory spaces. "I am pleased to see the international recognition of Embedded C by ISO," says Rob Woudsma, general manager of Philips Semiconductors' DSP Innovation Center. "Philips Semiconductors was closely involved in the definition of DSP-C, which has been the basis for this recognition. The DSP-C extensions have been successfully used in our tools and application developments to create portable and highly efficient DSP applications. The thorough standardization work will facilitate proliferation of this technology and bring great benefit to embedded application developers."

Digital Signal Processors (DSP) are generally used to process signals of a fixed range. In order to deliver required processing speed, these processors are equipped with special hardware to support fixed-point operations. Through the fixed-point data type, both for accumulating and fractional data, as specified in Embedded C, C compilers can provide seamless support for these specific hardware features and thus enable efficient high-level language programming of DSPs.

Another typical feature of DSP's, but also available in other embedded processor architectures, is the use of multiple memory spaces. Embedded C specifies the basic support for multiple address spaces, in order to allow optimizing compilers to utilize the ability of processors to simultaneously read and write data to separate memory busses and thus to maximize execution speed. The multiple memory address spaces provide C programmers a consistent and flexible manner of mapping the high-level application concepts to the actual hardware memory architecture.

Many C compilers for embedded processor architectures offer some method of direct access to I/O hardware registers. Unfortunately, these extensions are not consistent across architectures, compilers and vendors. Embedded C provides a single uniform syntax for basic I/O hardware register addressing, which will improve consistency and portability of low-level I/O access across compilers.

The current practice of programming DSP's and other specialized embedded systems, unfortunately, is still one of inline assembly language and architecture, or compiler-specific intrinsic functions. This attitude is holding back programmers of embedded systems, limiting their efficiency, portability and reuse of existing code and ultimately leading to unnecessary long time-to-market. In the coming time we expect to see the broad range of C compiler vendors harmonize their proprietary language extensions to Embedded C. From that moment portability and efficiency of C-applications for embedded processors will be generally improved. Experience has determined that implementation of these language extensions in a compiler can lead to five to ten times speed performance on time critical code, while reducing code size with an average five percent. In a world where applications progressively increase in size and complexity, and time-to-market pressures are omnipresent: a welcome advent, indeed.

Marcel Beemster, senior compiler engineer with ACE, will present a class on Embedded C and its benefits for DSP application developers, at the Embedded Systems Conference in San Francisco.

About ACE

ACE Associated Compiler Experts bv (a wholly owned subsidiary of ACE Associated Computer Experts, Amsterdam, the Netherlands) is a world leader in compiler development tools. Its open CoSy compiler development system gives compiler developers the ability to achieve a similar leading edge position in the construction of better and faster optimizing compilers for architectures ranging from 4-bit microcontrollers to 24-bit DSPs and 256-bit VLIW processors. CoSy also accommodates a wide range of programming languages including C, DSP-C, C++, Fortran and Java.

More information on ACE, its products and services can be obtained at http://www.ace.nl.