|
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!
|
|
 |