Instrumentation Performance
3-16
❏ For performance reasons, implicit hardware interrupt monitoring is
disabled by default. When disabled, there is no effect on performance.
When enabled, updating the data in statistics objects consumes between
20 and 30 instructions per interrupt for each interrupt monitored.
3.4.1 Instrumented Versus Non-instrumented Kernel
It is possible to disable support for kernel instrumentation by changing the
global properties of the application. The GBL module has a property called
Enable Real Time Analysis. By setting this property to false, you can achieve
optimal code size and execution speed. This is accomplished by linking with
a DSP/BIOS library that does not support the implicit instrumentation.
However, this also has the effect of removing support for DSP/BIOS Analysis
Tools and explicit instrumentation such as the LOG, TRC, and STS module
APIs.
The Table 3-1 presents examples of code size increases when working with
the instrumented versus non-instrumented kernel. These figures provide a
general idea of the amount of code increase that can be expected when
working with the instrumented kernel.
Table 3-1 uses as samples two projects that utilize many of the DSP/BIOS
features. By including DSP/BIOS modules, the applications incorporate the
instrumentation code. Therefore the following numbers are representative of
the amount of code size incurred by the instrumentation, and are not affected
by the size or variations among users' applications. The first application,
Slice, contains the TSK, SEM, and PRD modules, while the second, Echo,
uses the PRD and SWI modules. Neither application is specifically designed
for minimizing code size.
For information on DSP/BIOS kernel performance benchmarks, including a
comparison of the instrumented versus non-instrumented kernels’
performances, see Application Report SPRA662, DSP/BIOS Timing
Benchmarks on the TMS320C6000 DSP.
Table 3-1. Examples of Code-size Increases Due to an Instrumented Kernel
a. Example: Slice
Description (all sizes in MADUs)
C55x Platform
C6000 Platform
Size with non-instrumented kernel 32,000 78,900
Size with instrumented kernel 33,800 86,600
Size increase with instrumented kernel 1,800 7,700