SPRAC21A June 2016 – June 2019 OMAP-L132 , OMAP-L138 , TDA2E , TDA2EG-17 , TDA2HF , TDA2HG , TDA2HV , TDA2LF , TDA2P-ABZ , TDA2P-ACD , TDA2SA , TDA2SG , TDA2SX , TDA3LA , TDA3LX , TDA3MA , TDA3MD , TDA3MV
Following is the C code for the L2 Stride-Jmp Read function. The difference from the earlier pipeline read is as highlighted.
long long temp1, temp2, temp3, temp4;
void l2_stride_jmp_read(unsigned byte_cnt)
{
long long *restrict src = (long long *)ext_buf[0];
unsigned int wrStartTime, wrStopTime;
int i;
wrStartTime = CSL_tscRead();
for (i=0; i<byte_cnt/8; i+=32 )
{
temp1 = src[i];
temp2 = src[i+16];
}
wrStopTime = CSL_tscRead();
WBINVALIDATE
wrDuration = (float)(wrStopTime-wrStartTime)/(DSP_FREQ/1000);
}
The pipeline can be viewed as in Figure 23. It can be observed that this code would make sure the two load engines are occupied every cycle of the pipeline.