SW Performance Optimization


Especially for Realtime-Critical Embedded Systems, software performance is the most important design goal, aiming to achieve the required functionality with the given hardware. Often customers cannot focus on this design goal due to resource leakage, time pressure, or a lack of experience with the specific processor platform.

KWest can optimize your code so as to obtain maximum performance. Improvements in speed by more than a factor of 5 are often no exception.

To achieve this goal, KWest applies a 4 step-approach:

1) Code & Data Profiling

Where are the 20% of the code that consume more than 80% of the CPU performance? Which data should be processed in L1, and which can be handled in L2?


2) Data Flow Analysis

Can any data transfer or data buffers be handled by DMA (e.g., Ping-Pong-Buffers, Ring Buffers, etc.)? Set up Data transfers according to 1).


3) Toolchain-Level Optimization

Rewrite Code to support the compiler's optimization strategy
Apply manual function inlining
Optimize Data alignment
Improve Code Localization for better Cache Hit Rate
Use fract math instead of floating-point calculations
Remove pipeline stalls through unnecessary conditional branches

4) Exploit Architecture

Make use of Dual-Issue CPUs
Use special instructions, such as MAC
Rewrite parts of code in hand-optimized assembler


By applying these techniques, our customers are able to use cheaper devices, add new features, or reduce power consumption of the system.

Would you like to boost the performance of your system?
Please let us know!





:: © Copyright 2009 by KWest GmbH, all rights reserved ::
top