Since winIDEA 2010 build 9.10.144 and winIDEA 2011 9.11.14 iSYSTEM's profiler supports the so called "Range" operation mode additional to Entry/Exit mode. Range mode should be selected when compiler optimizations make the function exit identification unsecure or impossible.
Basics: What does a profiler?
The profiler is used to identify performance bottlenecks (which function runs most often), execution time deviations (how long is a function's minimum and maximum execution time) and invocation periods (how often does a function run).
Entry/Exit Mode:
Up to now the profiler used the so called Entry/Exit mode. In that mode the profiler is configured to record execution of instructions at a specific function's entry and exit point, and if executed, the instruction address and the time are recorded. From that above measurement values are deduced.
This method relies on accurate exit information which is best if profiler hardware has access to real-time program flow - e.g. on an ICE system with access to all buses. Because of the amount of information on ICE systems, filtering should be used to reduce the trace information.
Disadvantage of this mode is the reliance on accurate exit information. Compiler optimizations can obscure the exit information.
Range Mode:
In range mode the profiler monitors the continuous stream of program flow. If the program counter moves from one function body to another, the profiler considers this a call of a function or the return from the current function (depending on the instruction) and records the instruction address and time.
Therefore range mode is independent from function exit information.
Range mode is a stateless algorithm that makes it insusceptible to weak debug information, compiler optimizations and RTOS stack manipulations. In addition RTOS task switches are noted by execution profiler even if no data trace is available.
Disadvantage of range mode is that the complete program flow must be available which is unpractical for bus trace systems e.g. ICE.
To set range mode, open the the Hardware - Analyzer Setup and change the Profiler Operation mode to "Range" in winIDEA 2011 or "Range Analyzed" in winIDEA 2010.
For more information see www.isystem.com.
Comments