Jump to content

Digital signal processor

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 66.169.103.126 (talk) at 04:40, 25 September 2005 (remove BS statement). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A digital signal processor (DSP) is a specialized microprocessor designed specifically for digital signal processing, generally in real-time. DSPs can also be used to perform general-purpose computation, but they are not optimised for this function. DSPs can also be purely software based.

Rather than general computations, DSPs usually have an instruction set (ISA) optimised for the task of rapid signal processing, often using the following techniques:

  • Multiply-accumulate (MAC) operations, which is good for any kind of matrix operation, such as convolution for filtering, Dot product, or even polynomial evaluation (see Horner scheme, also Fused multiply-add). Single cycle MAC is an assumption in many DSPs, thus a lot of the following properties are derived (esp. Harvard architecture pipelining).
  • Deep pipelining.
  • The ability to act as a direct memory access device for the host environment.
  • Saturation arithmetic, in which operations that produce overflows will accumulate at the maximum (or minimum) values that the register can hold rather than wrapping around (maximum+1 doesn't equal minimum as in many general-purpose CPUs, instead it stays at maximum). Sometime various sticky bits operation modes are available.
  • Separate program and data memories (Harvard architecture).
  • Most DSPs use fixed-point arithmetic, because in real world signal processing, the additional precision and range provided by floating point is not needed, and there is a large speed benefit; however, floating point DSPs are common for scientific and other applications where additional range or precision may be required.
  • Specialized instructions for modulo addressing in ring buffers and bit-reversed addressing mode for FFT cross-referencing.
  • Hardware zero-overhead looping. To alleviate the branch impact for execution hi-frequent inner-loops, some processors provide this feature. There are two types of operation: single instruction repeating and multi-instruction loops.

Generally, DSPs are dedicated integrated circuits, however DSP functionality can also be realised using Field Programmable Gate Array chips. Present-day general-purpose microprocessors also have ideas and influences from digital signal processors, such as the MMX extensions in the Intel IA-32 architecture.

History

In 1978, Intel released the 2920 as an "analog signal processor". It had an on-chip ADC/DAC with an internal signal processor, but it didn't have a hardware multiplier and was not successful in the market. In 1979, AMI released the S2811. It was designed as a microprocessor peripheral, and it had to be initialized by the host. The S2811 was likewise not successful in the market.

In 1979, Bell Labs introduced the first single chip DSP, the Mac 4 Microprocessor. Then, in 1980 the first stand-alone, complete DSPs -- the NEC µPD7720 and AT&T DSP1 -- were presented at the IEEE International Solid-State Circuits Conference '80. Both processors were inspired by the research in PSTN telecommunications.

The first DSP produced by Texas Instruments (TI), the TMS32010 presented in 1983, proved to be an even bigger success, and TI is now the market leader in general purpose DSPs. Another very successful design was the Motorola 56000, but they were not as successful with follow-up models and today are no longer a leader in this market.