Digital Signal Processor
A chip device that provides digital signal processing. The Digital Signal Processor (DSP) can work as an equalizer, limiter, crossover, and have ready-made settings for each musical genre. In addition, many DSPs provide the creation of various spatial effects. Imitation of sound in a concert hall, in a cinema, in a stadium, in a church, etc.
Purpose of a Digital Signal Processor (DSP)
The purpose of a DSP is usually to measure, filter, or compress continuous analog signals. Most general-purpose microprocessors can also execute digital signal processing algorithms. But may not be able to keep up with such real-time processing.
In addition, DSPs usually have better power efficiency. So they are more suitable for portable devices such as mobile phones due to power consumption limitations. DSPs often use special memory architectures that are capable of retrieving multiple data or instructions at the same time.
DSPs often implement data compression technology. In particular, the Discrete Cosine Transform (DCT), which is a widely used compression technology for DSPs.
One implication for software architecture is that hand-optimized assembly code routines are typically packaged into libraries for reuse, rather than relying on advanced compiler technology to process the underlying algorithms. Even with modern compilers, hand-optimized assembly code is more efficient and many of the common algorithms involved in DSP calculations are hand-written to take full advantage of architectural optimizations.
- Combined multiplication-addition operations.
- Widely used in all kinds of matrix operations.
- Function convolution for filtering.
- scalar product.
- Polynomial estimate.
- Fundamental DSP algorithms are highly dependent on the performance of multiple accumulations.
- FIR filters
- Fast Fourier Transform (FFT)
- Commands for increasing parallelism
- SIMD (single instruction stream, multiple data stream, SIMD)
- VLIW (“very long machine instruction”)
- Specialized commands for modulo comparison in ring buffers and bit-back addressing mode for FFT cross-references.
- DSPs sometimes use non-stationary coding to simplify hardware and improve coding efficiency.
- Multiple arithmetic units may require a memory architecture to support multiple accesses per instruction cycle
- Special loop controls such as architectural support for executing multiple command words in a very tight loop without the overhead of command fetching or exit testing.
- Saturated arithmetic, whereby operations that overrun will accumulate at the maximum (or minimum) value that the register can store rather than bypass (maximum +1 as in many general-purpose processors, rather than remaining at the maximum level). Sometimes different sticky-bit modes are available.
- Fixed point arithmetic is often used to speed up arithmetic processing.
- Single-cycle operations to increase the benefits of pipelining
- The floating-point unit is integrated directly into the operating machine
- Pipeline architecture
- Highly parallel combined multiply-add operations (MAC blocks).
- Loop hardware control to reduce or eliminate the effort required for loop operations
DSPs are usually optimized for data streaming and use special memory architectures that can retrieve multiple data or instructions at the same time, such as the Harvard architecture or the modified von Neumann architecture, which use separate programs and data memory (sometimes even simultaneous access on multiple data buses).
DSPs can sometimes rely on code support to learn about cache hierarchies and their associated latency. It’s a compromise that allows for better performance. Direct memory access (DMA) is widely used.
Addressing and virtual memory
DSPs often use multitasking operating systems but do not support virtual memory or memory protection. Operating systems that use virtual memory take longer to switch between processes, which increases latency.
- Hardware addressing modulo
- Allows you to implement ring buffers without testing for turnover.
- Bit-reverse addressing, special memory addressing mode.
- Useful for FFT calculation
- Memory management block exception
- Address generation device
Modern Digital Signal Processor (DSP)
Modern signal processors provide higher performance; this is due in part to both technological and architectural advances such as lower design rules, two-level fast access cache, DMA(E) circuits, and a wider bus system. Not all DSPs provide the same speed, and there are many types of signal processors, each better suited to a particular task.
A new type of DSP offering the fusion of DSP functions and H/W acceleration functions is becoming a major trend. These modem processors include ASOCS ModemX and CEVA XC4000.