SPRAA56
4RTA Techniques for Performance Measurement
The RTA techniques described in this section are largely
In the case of the video application, performance overhead of the RTA tools is expected to be minimal because the calls are made at the frame rate of 30 or 25 Hz, or even in some cases every 30 or 25 frames, a very slow rate when compared to the speed of the DSP. In applications where the frame rate is faster than
See Appendix A: Performance Impact for information on measuring overhead.
4.1Measuring Function Execution Time with the UTL Module
The first technique for benchmarking uses the UTL module from Reference Frameworks. The UTL_stsStart and UTL_stsStop calls were inserted before and after functions of interest, and UTL_stsPeriod was used in each of the three data tasks to measure the period of one complete loop through each task. Because the UTL module acts as a wrapper for DSP/BIOS STS objects, the STS objects needed to be created during DSP/BIOS configuration. The following naming convention is used to create the statistics objects:
“sts” + task pseudonym + function benchmarked
The appInstrument.tci Tconf configuration script contains the following loop that creates these STS objects. For example, the stsProcCell0 STS object is created for the first processing function (cell 0) in the process task.
/* Array of string names to be used to create STS objects */ var stsNames = new Array("InVid", "OutVid", "Proc");
var stsStruct = new Array(
new Array("BusUtil", "Cell0", "Period", "Total", "Wait0"), new Array("BusUtil", "Cell0", "Period", "Total", "Wait0"),
new Array("BusUtil", "Cell0", "Cell1", "Period", "Total", "Nframes")
)
/* STS objects for use with UTL_sts* functions */ for (i = 0; i < APPSTSTIMECOUNT; i++) {
for (j = 0; j < stsStruct[i].length; j++) {
var stsTime = tibios.STS.create("sts" + stsNames[i] + stsStruct[i][j] ); if(stsStruct[i][j] != "BusUtil") {
stsTime.unitType = "High resolution time based"; stsTime.operation = "A * x";
} else {
stsTime.unitType = "Not time based"; stsTime.operation = "Nothing";
}
}
}
The Tconf scripts are used to generate the DSP/BIOS configuration CDB file at design time, which in turn links the appropriate kernel modules into the executable image during a build.
DSP/BIOS | 11 |