A Digital Signal Processor (DSP) is a system whose architecture is optimised to perform high speed mathematical processing of digitised analogue signals in real time.
A DSP system will generally comprise of an Analogue to Digital Converter (ADC), a processing core and often will also include a Digital to Analogue Converter (DAC).
The ADC will sample and digitise an analogue signal to convert it into a series of numbers which are then passed to the processing core to be mathematically processed. The DAC will convert the resultant processed value back into an analogue form – for example a speaker output.
Many DSP applications involve a stream of data to be continuously calculated, (e.g. decoding an MP3 file) where the DSP must be able to sustain the calculation throughput so that no gaps or jumps occur during playback. In order to achieve this, the DSP architecture has been optimised to minimise the number of processor cycles required to perform each calculation – ideally to a single cycle. It is this hardware optimisation that differentiates DSP’s from most general purpose processors.
– In a general purpose processor there is usually a single memory space for both data and instructions (Neumann architecture) whereas a DSP will have separate memory areas for data and instructions, each with its own bus which increases the processing throughput (Harvard Architecture).
– A DSP typically has separate processing units for multiply/accumulate (MAC) Arithmetic Logic Unit (ALU) for addition/subtraction and for bit shifting unit. General purpose processors can take many instruction cycles to perform these operations.
– Often a DSP will have a program sequencer which allows program loops to be set up for repetitive processing whereby the sequence and any loop testing is performed in hardware to save the software overhead normally encountered in general purpose processor programs.
Typical applications for DSP’s
– Audio/Video compression/decompression (e.g. MP3 recording / playback)
– Digital image processing/video enhancing
– Signal filtering
– Data compression
– Signal noise reduction
– Echo cancellation
– Medical signal processing