DIGITAL SIGNAL Processors
What's a DSP?
A digital signal processor (DSP) is a specialized microprocessor that performs mathematical operations with lightning speed. For instance, a DSP might perform the mathematical operations necessary to achieve echo cancellation on a digitized voice signal. Before a DSP can do its job it needs to have real world analog signals, such as voice, audio, video, temperature, pressure, or position, turned into digitized signals. This is done by an analog-to-digital converter. After processing, the digitized signals can be converted back to analog signals by a digital-to-analog converter. So the path of a real-world signal through a DSP might look like the diagram shown in Figure 1.
Modern DSPs have peripherals such as memory, I/O ports and other circuitry residing on the chip. A typical block diagram of a DSP is shown in Fig. 2.
How do you program a DSP?
You can program a DSP with traditional programming languages such assembler, C and C++. In addition, graphical programming languages, such as SigmaStudio from Analog Devices, simplify the task of programming a DSP. Typically, when you choose a DSP, the company who makes the DSP will provide the development tools for it.
How does a DSP perform mathematical operations?
Basically, a DSP can add, subtract, multiply and divide very fast. In addition, its instruction set contains a multiply-accumulate instruction or MAC. On a DSP, this complex instruction is performed in a single instruction cycle. A typical job for a MAC is to execute the calculations for the Fourier series, which lies at the heart of functions such as Finite Impulse Response (FIR) and Infinite Impulse Response (IIR) filters. Through the years many algorithms have been developed for DSPs. Algorithms are simply a set of mathematical operations that do certain tasks. Some examples are noise reduction, Fast Fourier Transforms (FFT), echo cancellation, MP3 encoding and decoding and many others. Designers often develop algorithms in programs such as MATLAB and Simulink from The MathWorks.
Major DSP Applications
The classic application for DSPs is in communications, with DSPs starting out as the basis for modems that could adapt to rapidly changing standards. Since then, DSPs have expanded their role and found their way into cellphones, private branch exchanges (PBXs), and base stations for wireless communications along with routers and other networking elements. With the rise in voice over Internet Protocol (VoIP), DSPs are entering desktop phones, as well.
DSP expansion has also taken place in entertainment applications. Functions such as real-time audio and video compression and decompression, digital rights management, and high-speed I/O all deal with rapidly-evolving standards that require a programmable solution. In addition, these functions generally demand more performance than is practical in a general-purpose processor, making DSPs the logical choice for implementation.
A third growing application space for DSPs is in control systems. The control arena is undergoing a transition from analog to digital systems to obtain better precision in feedback control loops as well as greater energy efficiency. DSP-based control systems enable the use of variable motor rates to save energy, allow the use of smaller motors at higher speeds than analog control can handle, and allow the use of sensorless control by algorithmically deriving control feedback from measurement of the voltages and currents supplied to the targets.
Choosing the DSP THAT'S RIGHT FOR YOU
For many designers the selection of a DSP means wandering through a forest of confusing performance data looking for a match to the application. It doesn't have to be that laborious, if you can first reduce your search.
The search starts by considering the application space into which the DSP-based design is tying to fit (see the section Major DSP Applications) to determine what support functions the DSP will need. With the high levels of device integration now available, DSPs are designed together with a wide variety of peripheral functions. Many of these functions are application-specific, so the search can quickly narrow down to a handful of devices with the right peripheral mix.
Interfaces to the real world and the algorithms used in the application space will dictate the types of peripherals needed. Communications applications, for instance, will benefit most from such functions as UARTs and multi-channel serial ports. Consumer audio and video applications will need audio ports, camera control interfaces, and hardware accelerators for functions such as the DCT (discrete cosine transform) used in most image compression and decompression algorithms. Control units need non-volatile memory, both ROM for programming and Flash for setpoints. In addition, interfaces such as CAN and PWM (pulse width modulation) output ports are highly desirable for control systems.
Once the peripheral set is addressed, the next DSP attribute to consider is power consumption and its relationship to DSP performance (see the section Important Performance Parameters). For this attribute, the metric to use depends on the setting for the design. As a rough classification, designs address the needs of a portable client, a regular client, or an infrastructure setting.
A portable client, basically, is a battery-powered system that provides a function for a single user. In such designs, the critical parameter is power consumption. The less power the DSP consumes, the longer the battery will last, and a long battery life is essential to user acceptance of a portable client design. There are two types of power situations to consider. If a system is turned off when not needed, then the processor's active power is a key parameter. In this case, designers will want to maximize the processor's performance/power tradeoff as expressed in MIPS per watt.
If a portable client does not turn off but instead enters a standby mode, then the standby power and not the active power becomes the main consideration. Devices such as cellphones, for example, spend most of their time waiting for something to happen, such as an incoming call. They must be at least partially active in order to recognize the triggering event, but most of the system will be in standby mode while waiting. Even though active power is greater, it affects total battery lifetime much less than the many hours of standby operation.
A regular client provides a single-user function, but is not constrained by battery operation. Power consumption is still an important parameter, but its significance changes. Instead of battery lifetime, power in a regular client translates into heat generation. In many cases, the market prefers its electronics in small packages. Small packages, however, magnify thermal problems by keeping heat concentrated. For such designs, then, the activeperformance/power tradeoff in MIPS per watt again becomes a primary concern.
An infrastructure design serves many users simultaneously. Examples include line cards, cellular base stations, and video-on-demand servers. In such designs, it is not the total power that is most relevant but the power-per-channel. Infrastructure designs are often relegated to closets and small buildings where heat build-up becomes a concern, but need to serve as many users as possible. The performance of a DSP can best be expressed in terms of the number of users (channels) it can handle. Thus, minimizing the power-per-channel represents the optimum solution to both concerns.
Finally, consider the cost of the DSP implementation. Both portable and regular clients can be highly sensitive to cost while simultaneously demanding high performance. For them, the cost per MIPS becomes a key factor. In the case of infrastructure applications, designs are less cost sensitive. Still, the cost per channel can be an important factor in making the final choices.
Some of the companies providing DSPs (see the section DSP Vendors) have targeted their devices to specific applications areas, while others have more generic offerings. Even so, all of the DSPs are amenable to evaluation by considering the factors of peripheral mix, power and cost. At this point many alternatives have already been weeded out, and it is time to examine the design effort itself. Looking at such things as software support, libraries, and development tools will help evaluate the cost of designing with a particular DSP.
Looking at growth paths for DSP families is the final decision tie-breaker. Designs that retain the opportunity to upgrade their performance while maintaining substantial software compatibility have the greatest potential for long-term success. After all, having gone to all the trouble of selecting a DSP, you want to be assured that you will be able to leverage that decision as application demands inevitably increase.
Important Performance Parameters
While other factors are important, in the final analysis the DSP in a design must meet the performance needs of the application. Here are three key parameters that indicate a DSP's processing power.
Computation Mode – Binary math, particularly the multiplication common in DSPs, comes in two forms: fixed-point and floating point. Fixed-point computation uses the entire computer word as the mantissa of a number, with the exponent implicit in the program. Floating-point computation preserves both the mantissa and exponent of each number at all times, typically 24 bits for the mantissa and 8 bits for the exponent in a 32-bit word (see Figure 3). Floating point simplifies calculations that have operands or results spanning a wide dynamic range, at the cost of circuit complexity and cost.
Clock Rate – Often thought of as the main indicator of performance, clock rate needs careful evaluation as architectures vary in the amount of computation performed for each clock. Pipelines, parallelism, and hardware acceleration can all help processors do more than one computation per clock.
Word Size – In general, the wider the word the processor can handle, the greater the precision of computation or the faster the computation for a given precision. Wider words increase system cost, so designers should determine the minimum precision the app requires.
DSP Chip Vendors
- ANALOG DEVICES INC.
Wilmington, MA. (800) 262-5643 www.analog.com
- FREESCALE SEMICONDUCTOR INC.
Austin, TX. (800) 521-6274 www.freescale.com
- LSI LOGIC CORP.
Milpitas, CA. (408) 433-8728 www.lsilogic.com
- MICROCHIP TECHNOLOGY INC.
Chandler, AZ. (888) 628-6247 www.microchip.com
- NEC ELECTRONICS AMERICA
Santa Clara, CA. (800) 366-9782 www.necel.com
- RENESAS TECHNOLOGY AMERICA INC.
San Jose, CA. (408) 382-7407 www.renesas.com
- ROYAL PHILIPS ELECTRONICS
San Jose, CA. (408) 617-4700 www.semiconductors.philips.com
- TEXAS INSTRUMENTS
Dallas, TX. (800) 477-8924 www.ti.com
DSP Core Vendors
- ARC INTERNATIONAL
San Jose, CA. (408) 437-3400 www.arc.com
- ARM INC.
Austin, TX. (512) 327-9249 www.arm.com
- CEVA INC.
San Jose, CA. (408) 514-2900 www.ceva-dsp.com
- LSI LOGIC CORP.
Milpitas, CA. (408) 433-8728 www.lsilogic.com
- STARCORE LLC
Austin, TX. (512) 682-8500 www.starcore-dsp.com
- TENSILICA INC.
Santa Clara, CA. (408) 986-8000 www.tensilica.com
ON THE WEB
For further reading:
For algorithms, software and other products:
Product URL: Click here for more information