Computer Hardware User Manual

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.