ARM’s Digital Signal Controllers, Cortex-M4, Cortex-M33 and Cortex-M7, address the need for high-performance generic code processing, as well as digital signal processing applications.
The addition of DSP extensions to the Thumb instruction set, as defined in ARM’s architecture ARMv7-M, ARMv8-M and the optional floating-point unit (FPU), are designed to improve the performance of numerical algorithms. In addition, they provide the opportunity to perform signal processing operations directly on the Cortex-M4/M33/M7, while maintaining the ease of use of the Cortex-M programmer’s model.
Wide range of DSP and SIMD instructions
The Cortex-M4/M33/M7 provide SIMD instructions that operate on 8-or 16-bit integers. All registers are still 32-bits wide, but the SIMD instructions operate on 2 x 16-bit values or 4 x 8-bit values at a time within a 32-bit register.
One 32-bit word can hold 2x16-bit values or 4x8-bit values
Instructions that work on 8- or 16-bit data types are useful for processing data such as video or audio, as they do not require full 32-bit precision. The SIMD instructions allow these 2x16-bit or4x8-bit operations to be performed in parallel.
The CMSIS-DSP library is a suite of common signal processing and mathematical functions that have been optimized for Cortex-M4, Cortex-M7 and Cortex-M33 processors. The library is freely available as part of the CMSIS release from ARM and includes all source code.
The functions in the library are divided into several categories:
- Basic math functions, such as Vector Dot Product, Vector Multiply, Vector Addition
- Fast math functions, such as Square Root, Sine and Cosine
- Complex math functions, such as Complex Dot Product, Complex-by-real Multiplication
- Filters, such as FIR, IIR, Biquad and Convolution
- Matrix functions, such as Matrix Multiplication, Complex Matrix Multiplication
- Transforms, such as Complex FFT functions
- Motor control functions, including Vector Clarke Transform, Vector Park Transform, PID Motor Control
- Statistical functions, including Root Mean Square (RMS), Standard deviation, Maximum and Power
- Support functions, e.g. conversion of datatypes from float to fixed point
- Interpolation functions.
The CMSIS-DSP library has separate functions for operating on 8-bit integers, 16-bit integers, 32-bit integers, and 32-bit floating point values.
Strong ecosystem for DSP applications
A wide range of DSP software packages for Cortex-M4, Cortex-M7 and Cortex-M33 is available.
Learn more about ARM's DSP ecosystem partners who offer these software packages below:
Video and speech codecs:
Audio enhancement algorithms:
|MP3 Decoder||G.711||Echo cancellation|
|MP3 Encoder||G722||Noise suppression|
|MPEG-2 Layer 2 Decoder||G.722.1||Beamforming|
|MPEG-2 Layer 2 encoder||G.722.2||Voice Activity Detection|
|AAC-LC decoder||G.723.1||Key Word Spotting|
|AAC-LD decoder||G.728||Wind noise reduction|
|AAC-ELC encoder||G.729||Automatic Gain Control|
|SBC bluetooth decoder||AMR Narrowband|
|SBC Bluetooth encoder||AMR Wideband|
|Ogg Vorbis||AMR Wideband+|
For more help and information, see these resources:
Is what you're looking for not here? Get in touch to suggest additional supporting information.
Find out more
Interested in speaking with someone about licensing ARM technology? Get in touch to speak with one of our sales representatives.