beautypg.com

Summary, An253 – Cirrus Logic AN253 User Manual

Page 11

background image

AN253

11

variables have been interleaved with data dependant instructions in order to reduce their respective stall
penalties.

5. Summary

The optimization guidelines suggested in this document are:

-

Write and test all source code before attempting any optimizations

-

Focus optimizations on sections of code that are executed most frequently, and take the most CPU
cycles to execute

-

Identify and resolve any implementation inefficiencies generated by the compiler

-

Set the appropriate target processor for the compiler, linker and assembler

-

Turn off all of the compilers debug options

-

Set the compiler to optimize the code for speed

-

Set the MaverickCrunch coprocessor to run in asynchronous mode with data-forwarding enabled

-

Avoid single or double floating-point division

-

Avoid creating data dependencies in algorithms when performing MaverickCrunch operations

-

Optimize data-dependent pipeline stalls by interleaving the dependent instructions with
independent instructions

-

Utilize both the ARM and MaverickCrunch's registers, and the data caching capabilities of the ARM
core to reduce the latency of fetching data from external memory

In summary, this document has detailed many optimization techniques that can improve the performance
of applications written for the MaverickCrunch coprocessor.