What is Digital Signal Processor ?
A digital signal processor (DSP) is a specialized microprocessor designed specifically for digital signal processing, generally in real-time.
Characteristics of Digital Signal Processors
- Designed for real-time processing
- Optimum performance with streaming data
- Separate program and data memories (Harvard architecture)
- Special Instructions for SIMD (Single Instruction, Multiple Data) operations
- No hardware support for multitasking
- The ability to act as a direct memory access device if in a host environment
- Processes digital signals converted (using an Analog-to-digital converter (ADC)) from analog signals. Output is then converted back to analog form using a Digital-to-analog converter (DAC)
Architectural features of digital signal processors
Digital signal processing can be done on general-purpose microprocessors. However, a digital signal processor contains architectural optimizations to speed up processing. These optimizations are also important to lower costs, heat-emission and power-consumption.
Program flow
- Floating-point unit integrated directly into the data-path.
- Pipelined architecture
- Highly parallel accumulator and multiplier
- Special looping hardware. Low-overhead or Zero-overhead looping capability
Memory architecture
- DSPs often use special memory architectures that are able to fetch multiple data and/or instructions at the same time:
- Use of direct memory access
- Memory-address calculation unit
Data operations
- 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 overflow to minimum as in many general-purpose CPUs, instead it stays at maximum). Sometimes various sticky bits operation modes are available.
- Fixed-point arithmetic is often used to speed up arithmetic processing.
- Single-cycle operations to increase the benefits of pipelining.
Instruction sets
- Multiply-accumulate (MAC) operations, which are good for all kinds of matrix operations, such as convolution for filtering, dot product, or even polynomial evaluation (see Horner scheme, also fused multiply-add).
- Instructions to increase parallelism: SIMD, VLIW, superscalar architecture.
- Specialized instructions for modulo addressing in ring buffers and bit-reversed addressing mode for FFT cross-referencing.
- Digital signal processors sometimes use time-stationary encoding to simplify hardware and increase coding efficiency
0 comments:
Post a Comment