A Digital Signal Processor (DSP) is a specialized microprocessor designed specifically for (real-time) digital signal processing. DSPs can also be used to perform general-purpose computation, but they are not optimised for this function.
Rather than general computations, DSPs are usually ha an instruction set (ISA) optimised for/by:
- Multiply-accumulate (MAC) operations (good for all kinds of matrix operations).
- Deep pipelining.
- DMA processing.
- Saturation arithmetic (i.e. figures do not "wrap around" from maximum positive values to minimum negative values but saturate at the max/min level.
- Separate program and data memories.
- Most DSPs are fixed-point, however, floating point DSPs are common for more demanding applications.
- Specialized instructions for modulo addressing in ring-buffers and for FFT cross-referencing.