This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Issue with the Internal Memory(C64x+ Processor)

Dear All,

Iam working on the H264 Decoder Optimization, in which after Inverse transform the data is added with the Residual data and is written in to the Output Buffer which is in external memory.

What I did is, I have taken  a dummy buffer in the Internal memory say 1 Macroblock size ie   "short IntBuffer[16][16];"  (Considering only Luma) after Inverse Transform instead of writing the data in to the external memory Iam writing to the "IntBuffer" (Internal Memory) thinking that I can do DMA for copying that buffer to the external memory. But Iam seeing performance degradation.  Can anyone put some light on the issue Iam facing?

One more thing is, I have set  L1D Cache as 32KB, L1P Cache as 32KB and L2 Cache as 64KB.

Thanks in Advance,

Prashant

 

 

  • It is hard to say what could be causing your performance degredation based on your description, perhaps the use of the internal memory buffer caused you to have to allocate code/data to external memory which was previously internal thus slowing things down? To get the optimal performace out of your memory map, it would be best if you could use the DMA to bring in and out each buffer to internal memory, preferably in a double buffered fashion so that the DMA transfers can work in parallel with your processing, this way the CPU stays busy and the DDR interface is bursting transfers with the DMA for a high bandwidth efficiency. Unfortunately a setup like this can be complicated and take more internal memory than is available, so unless it is carefully implemented there is the potential that it is faster to just enable more cache and work from DDR, though this really depends on your system conditions and software. Assuming you are running with CCS you may want to try out some of the profiling tools (discussed in CCS help and tutorials) to try to determine where the slowdown is coming from.