Articles and Papers
BDTI
HOME << FREE INFO << ARTICLES AND PAPERS << BDTI

DSP Software Optimization Techniques for the Latest Processors

9/28/99

Click here to start

Table of Contents

DSP Software Optimization Techniques for the Latest Processors

Optimization

Why Optimize?

The Light and Dark Side of Optimization

Optimization for Modern Processors

Where to Optimize?

Application Profiling

Application Profiling (cont’d)

High-Level Language Optimizations

Compiler Shortcomings

High-Level Language Optimizations

Simplify Complex Statements

Simplify Pointers

Arrange Data in Memory Banks

Help the Compiler

Loop Optimization

A Recipe for Loop Optimization

Profiling an FIR Filter on a DSP

Four Categories of Algorithmic Transformations, With Examples

1. Unrolling Across Outer Loops

Block FIR Filter using "Zipping"

Radix-2 vs Radix-4 FFT Butterfly Structures

2. Combining Loops

LMS Adaptive FIR Filter

3. Moving Operations Outside Loop

Circular Buffering for FIR Filter

Radix-2 FFT

4. Arranging Data in Memory

IIR Filter Biquad Section

Radix-2 FFT

Scheduling Techniques

Scheduling Techniques

Software Pipelining

Software Pipelining

FIR Filter on 'C62xx

FIR Filter on 'C62xx

Loop Unrolling

Vector Addition on TMS320C2700

Dot Product on TigerSHARC

Dot Product on TigerSHARC

FIR Filter on MMX Pentium

FIR on MMX Pentium

Don’t Follow the Rules

Specialized Instructions

Non-Conventional Use of Execution Units

Other Tweaks

If Algorithmic Transformations Don’t Help...

Conclusions

For More Information...


Top of page