Digital signal processor
A digital signal processor (engl. Digital signal processor , DSP ) is an electronic component and serves for the continuous processing of digital signals (eg. As audio or video signals). The DSP is used in conjunction with analog-to-digital converters and digital-to-analog converters to process analog signals . Some DSP chips already contain A / D and D / A converters. The term DSP is also only used for the computing component within software and electronics.
DSPs not only serve as a replacement for complex analog filter technology, but can also perform tasks that would be difficult or impossible to solve using analog technology:
- High-order frequency filter with low phase error (e.g. influencing the sound when mixing and in mixing consoles )
- Dynamic compression and noise reduction with dynamic ( adaptive ) parameters
- Noise blanking taking into account the character of the signal
- Implementation of effects such as echo , reverberation or alienation of voices
- Echo cancellation
- Data compression for further digital processing
- Speech recognition and speech synthesis
- Signal and protocol analysis in oscilloscopes
- Fast digital image editing
A DSP must be able to safely process a certain amount of data per unit of time. This results from the requirement of a mostly fixed and externally specified data rate at which the input data reach the DSP or the processed data must be output again. A kind of handshake or a time stop during data processing is usually not possible with this real-time processing.
The following measures serve to increase the processing speed:
- Special synchronous, serial interfaces for the input and output of digital signals.
- So-called MAC commands for simultaneous multiplication and addition in one machine cycle.
- Address generators for the implementation of loops and ring buffer structures without software overhead.
- Implementation of the processor in Harvard architecture .
- Existence of a dedicated hardware stack .
- Multiple access to the memory in one cycle.
- Very-Long-Instruction-Word-Instructions .
Signal processors and their instruction set are subdivided according to their ability to perform arithmetic operations
- either solely by means of fixed-point arithmetic (engl. Fixed Point )
- or in addition also as a floating point arithmetic (engl. floating point )
to be able to perform.
Signal processors with fixed point arithmetic are usually simpler in structure and have lower power consumption. For this, the implementation of certain algorithms is more complicated, since the programmer has to consider with each calculation whether there may be overflows in the number representation and where the binary point is. A typical field of application for fixed-point DSPs is, for example, the processing of audio signals. Typical representatives of signal processors with fixed point arithmetic are the DSP series ADSP218x and Blackfin BF53x from Analog Devices and the TMS320VC5x from Texas Instruments .
Signal processors with floating point arithmetic are more complex in structure, since their arithmetic units can process the more complex representation of floating point numbers. With the same computing power, this usually results in a higher power consumption. The advantage lies in the mostly simple implementation of complicated algorithms. A typical field of application for floating point DSPs is, for example, the processing of video signals. Typical representatives of signal processors with floating point arithmetic are the components called SHARC from Analog Devices and the TMS320VC67x from Texas Instruments.
- There are several arithmetic units ( ALUs ), including a multiply accumulate arithmetic unit ( MAC ). This arithmetic unit enables the operation A * = A + B · C in a single processor cycle and is primarily used to increase the speed of the calculations required for spectral operations - for example for fast Fourier transformation or convolution .
- In Boolean operations limited arithmetic units in some DSPs (z. B. are TI TMS320Cxx) used for independent data manipulation (PLU = Parallel Logic Unit ).
- Also it will address generation units (AGU) was used. The AGU consists of programmable counters, shifters and other logical elements. As a result, the address calculations for the operands, for example, can be carried out in parallel with arithmetic operations in order not to reduce the memory transfer rate. Some AGU support indirect register addressing with subsequent incrementation. They are used in computations where data is repeatedly computed that is sequentially arranged in memory. Bit reversed addressing is also used for the fast Fourier transform (FFT) algorithm .
- The execution unit (EXU) has the task of data manipulation. Each cluster can read out the registers of the neighboring cluster. Example: TI TMS320C6201
- Nested no-overhead hardware looping using a dedicated loop stack.
- In addition, today's DSPs can often be massively programmed in parallel, that is, several computing and / or memory transfer operations can be carried out simultaneously in a single processor cycle.
- Prefetch and predecoding of the instructions ( pipelining ) for a very high execution speed of the instructions .
- Loop commands speed up the execution of loops. These are executed under hardware control. Some DSPs use pipelines ( pipelining ) and instruction caches , the execution to accelerate loops. There are two types of loop commands:
- Single instruction hardware loop - repetition of an operation
- Multi instruction loop - repetition of an entire block of instructions
F0=F3*F7, F1=F11+F15, F2=F11–F15, DM(I0,M1)=F2, F3=PM(I8,M9);
a quasi-simultaneously in the floating point multiplication, a floating-point addition, floating point subtraction, a write access to the memory with modulo -cyclic Postincrement / -decrement and a read access to the memory with modulo-cyclic Postincrement / decrement takes place.
- Several serial or parallel I / O interfaces ;
- Interrupt execution with low overhead or DMA ( Direct Memory Access );
- A / D converter and D / A converter .
In the early 1970s, Lincoln Laboratories developed the Lincoln FDP ( Fast Digital Processor ) with Von Neumann structure as the first dedicated digital signal processor. The LSP / 2 was then manufactured with the more suitable Harvard architecture. However, this computer still consisted of several thousand discrete ICs. The first single-chip DSPs hit the market in the early 1980s. Typical representatives were the Intel 2920, TMS32010 from Texas Instruments or the NEC µPD7720.
Elements of DSPs are also increasingly found in desktop CPUs, such as in the AltiVec extensions of the PowerPC or (to a lesser extent) in the SIMD extensions from Intel and AMD . This is due to the increasing prevalence of multimedia content; Data formats such as the JPEG format , MP3 or MPEG2 require DCT coding or decoding, the calculation of which is actually a classic DSP task. The calculation of the increasingly widespread encryption also benefits from these instruction set extensions. In the area of embedded systems, too, the microcontrollers are supplemented by DSP functionalities, which can increase computing power and reduce power consumption. Typical examples are the ARM Cortex M4, the NEON extension for the large ARM Cortex cores, the dsPIC from Microchip and the XS1 series from XMOS .
The generic DSP is facing increasing competition from RISC / CISC CPUs which, with special extensions, can process complex computing tasks such as RSA / AES / 3DES in a highly optimized manner. In addition, tasks related to fast signal processing are increasingly being relocated to flexible parallel digital structures, such as those used in e.g. B. are increasingly and inexpensively available in increasingly powerful Field Programmable Gate Arrays ( FPGAs ).
Digital signal processors are used today in the following areas and devices, among others:
- Mixing consoles for influencing the sound ( frequency spectrum , pitch adjustment , reverb, etc.)
- digital equalizer
- FM sound processing
- MP3 player
- Amateur radios
- Modern shortwave radio receivers
- Generation and demodulation of single sideband modulation
- Spectrum analyzers
- Audio accelerators and sound cards in personal computers
- On-board electronics in motor vehicles (especially engine control )
- Hard drives
- Crossover for loudspeakers
- Power electronics (e.g. generation of special signal forms to control electric motors)
- electronic sound generator (e.g. virtual analog synthesizer )
- Texas Instruments: TMS320F243, TMS320F241 DSP Controllers (Rev. D). (PDF; 1.5 MB)
- Helmut Bähring: Examples of digital signal processors . In: Helmut Bähring (ed.): Application-oriented microprocessors . Springer, Berlin / Heidelberg 2010, ISBN 978-3-642-12291-0 , doi : 10.1007 / 978-3-642-12292-7_10 .
- Literature on the subject of digital signal processors in the catalog of the German National Library
- Computer History Museum timeline / 1979-DSP . In: computerhistory.org.
- Explanations to DSPs Uni Ulm
- Literature Technical seminar on DSPs
- Modem Data Pump DSP software. AlgoTron, accessed May 8, 2013 .