Performance impact, Overhead of performance measurement techniques, Rta effects on cpu load – Texas Instruments SPRAA56 User Manual

Page 27: Appendix a. performance impact, Spraa56, A.1 overhead of performance measurement techniques, A.2 rta effects on cpu load

Advertising
background image

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.

Advertising