
SPRAA56
DSP/BIOS Real-Time Analysis (RTA) and Debugging Applied to a Video Application
27
Appendix A. Performance Impact
A.1 Overhead of Performance Measurement Techniques
Because most of the benchmarking APIs are called once every 30 frames, the additional CPU
load expected after adding the instrumentation is low. The measured performance of the
benchmarking techniques is given in Table 3. A spreadsheet containing the expected and actual
timing values is provided with the software distribution.
Table 3.
Measured Performance of Benchmarking Techniques
Benchmark
Execution Time
(Avg) [instr]
Execution Time
(Max) [instr]
CPU Load
Execution Rate
[per N frames]
MBX check in process Task
3641
17112
0.00018205
1
LOAD module call
1182
2432
0.00000197
30
Single Call to UTL_stsStart
517
13968
0.00043945
16
Single Call to UTL_stsStop
325
488
0.00027625
16
Capture Task benchmarking
1848
15064
0.00000308
30
Display Task benchmarking
2288
7824
3.81333E-06
30
Process Task benchmarking
3196
18568
5.32667E-06
30
Control Task
1533
2856
0.00007665
?
SubTotal Load (Task bchmrk)
7332
0.0003666
30
SubTotal Load (UTL calls)
13472
0.0006736
30
Total Load of benchmarking
17357.4
0.00086787
1
These benchmarks are given in instructions, and the individual CPU load of each function is
calculated by dividing the benchmark by 20M instructions per frame, the number of cycles
available on a 600 MHz 64x device in a 30 fps NTSC system.
These benchmarks were measured using UTL_stsStart and UTL_stsStop API calls bracketing
the regions of code to be benchmarked. For example, to benchmark the LOAD_getcpuload
function, the measurement code was the following:
UTL_stsStart( stsBenchmark1 );
benchVid.cpuLoad.current = LOAD_getcpuload();
UTL_stsStop( stsBenchmark1 );
This method of benchmarking allows execution time to be measured in real-time, although if an
interrupt or context switch occurs between the UTL calls, the time spent executing the interrupt
or out-of-context code would also be included in the benchmark.
A.2 RTA Effects on CPU Load
The CPU load was measured with RTA debugging turned off and the UTL_DBGLEVEL set to
40. The total CPU load of the application with the instrumentation turned off was 93% average
and 95% peak. The CPU load of the instrumented application was 93% average and 95% peak
when using the same video content, a repeating high-motion sequence from a DVD. The
benchmarking did not make a statistically significant impact on the CPU load.