Tested and effective methods for speeding up DSP algorithms
Jun 11 2007 (3:15 AM), Embedded.com
Many electronics and digital products use digital signal processing (DSP) algorithms in them. Before any algorithm gets into the product, an optimization process is applied to it. The optimization process ensures that the algorithm uses the least possible resources from the system, while delivering the performance the design requires. The optimization is performed to save memory space, clock cycles, and power levels.
Reducing the required memory means shrinking the algorithm foot-print, and reducing the cycle consumption means speeding the algorithm. In most cases power savings have resulted with just these two kinds of optimizations.
But understanding algorithm, processor architecture, compiler and fine 'C' and assembly language practice is required to efficiently optimize an algorithm. Since early days, assembly coding has been used to achieve these goals.
But with the availability of powerful 'C' compliers it is now possible for most embedded programmers to successfully perform both source and algorithm level optimization if they follow some basic tested and effective guidelines.
This article describes the optimization process basics and various practical 'C' level skills needed to accelerate an algorithm. Processor and complier specific options are excluded as they are typically found in the respective vendor documents.
To read the full article, click here
Related Semiconductor IP
- RVA23, Multi-cluster, Hypervisor and Android
- 64 bit RISC-V Multicore Processor with 2048-bit VLEN and AMM
- NPU IP Core for Mobile
- H.264 Decoder
- V-by-One® HS plus Tx/Rx IP
Related White Papers
- Speeding up the CORDIC algorithm with a DSP
- DSP hardware extensions speed up 3G wireless multimedia
- Speeding DSP solutions with FPGAs
- Image stabilizers: Utilizing DSP for more advanced, scalable stabilization algorithms
Latest White Papers
- RISC-V source class riscv_asm_program_gen, the brain behind assembly instruction generator
- Concealable physical unclonable functions using vertical NAND flash memory
- Ramping Up Open-Source RISC-V Cores: Assessing the Energy Efficiency of Superscalar, Out-of-Order Execution
- Transition Fixes in 3nm Multi-Voltage SoC Design
- CXL Topology-Aware and Expander-Driven Prefetching: Unlocking SSD Performance