|
Developers have a variety of architectures to choose from when developing digital signal processing applications, depending upon their system careabouts.
Digital Signal Processors (DSP) | ARM & General purpose processors (GPP) | Microcontrollers (MCU) | Application-Specific Integrated Circuits (ASIC) | Field Programmable Gate Array (FPGA) | Application-specific standard products (ASSP)
- Digital signal processing (DSP) has become the foundation of the Digital Revolution. You'll find digital signal processors (DSPs) at the heart of cell phones, audio and video players, digital cameras, telephony infrastructure, motor control systems, and even biometric security equipment. Without getting too technical, a majority of signal processing functions multiply two series of numbers and sum the results:
result = x1 * c1 + x2 * c2 + x3 * c3 …xn * cn
DSPs are optimized for signal processing applications compared to general purpose processors (GPP). DSPs offer many architectural features that actually reduce the number of instructions necessary for efficient signal processing. In other words, comparing performance is much more than counting instructions. What you really want to measure is how much work is actually done. For example, the VLIW architecture of TI's C64x generation of DSPs can initiate up to 8 operations each cycle clock. Integrated specialized compute engines increase performance by executing complex functions in hardware. DSPs are also optimized for specific applications by providing a balanced mix of performance, integrated peripherals, and on-chip memory.
The programmable flexibility of DSPs enables developers to implement complex algorithms in software. Not only can a DSP support a video codec like MPEG-2 and easily handle different resolutions with a simple software upgrade, it can implement emerging codecs and standards as they arise without a hardware redesign. DSPs are a great choice when low power, high performance, feature flexibility and time to market are key concerns.
Top of Page
- ARM & General purpose processors (GPP) offer programmability and therefore flexibility. However, many non-signal processing applications such as email, database management, and word processing don't require extensive use of multiplication. In order to keep silicon costs down for these applications, GPPs typically offer a moderately efficient multiplication instruction that takes several cycles to complete. In addition, adding the result of each multiplication requires another instruction. As result, this makes them less than ideal for signal processing applications. ARM processors are often utilized to provide a rich human machine interface and to realize the benefits of running advanced operating systems such as Linux and WinCE. To get the best of both worlds, general purpose ARM microprocessors (ex: ARM9, Cortex A-8) are often combined with DSPs for video, multimedia and industrial applications.
Top of Page
- Microcontrollers (MCU) are programmable processors and thus can utilize software programmability to achieve different functions and features, saving time to market versus similar hard-coded logic implementations. MCU has a broad product, toolset and value web, although it is not a strong match for real time-applications. Compared to a RISC/GPP, the MCU has lower mathematical processing resources and typically slower operating frequency. MCU typically has a small chip size and thus a relatively low price. Typically MCUs are general in nature, making them less power efficient than DSPs, ASSPs or what configurable should be able to achieve. However, they typically use less silicon resources than RISC or FPGAs, rendering them more power-efficient than those alternatives. MCU programmability of existing chips allows for faster development cycles for the desired function, versus having to develop application-specific chips or ASICS. With proper use of high-level programming and/or use of standard code modules, development time can be significantly reduced, saving development cost. MCU is a programmable processor and thus can utilize software programmability to achieve different functions and features, saving time versus similar hard coded logic implementations.
Top of Page
- Application-Apecific Integrated Circuitc (ASIC) Designing their own chip is a route that few developers take on lightly. While ASICs give the best performance for specific applications, they are limited in their flexibility. If any design parameters change, the entire ASIC must be respun, a process that consumes months and potentially hundreds of thousands of dollars in NRE (non-reoccurring engineering) costs. Given the complexity of designing with ASICs, the lack of adaptability to changing markets, and slow time-to-market, ASICs are most often a less than ideal choice.
Top of Page
- Field Programmable Gate Array (FPGA) devices provide performance close to ASICs without the delays and costs associated with respinning an ASIC. FPGAs, however, are as complex to design with as ASICs, and even small changes can result in the need to completely relayout a design. FPGA devices also come with a price premium that makes them unviable in high volume applications. In certain applications, FPGA can be used to complement the DSP.
Top of Page
- Application-specific standard products (ASSP) are ASICs that can serve a wide market. Such devices include dedicated processing engines such as MPEG-2 decoders or communications links such as USB. While these devices are low in cost because of the high market volume they typically experience, they still lack flexibility. For example, an MPEG-2 ASSP will only support a limited range of display resolutions; to introduce a new resolution requires a new ASSP and accompanying hardware redesign.
Top of Page
|