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.

Some questions of the cache optimization for video encode

My device is DM6446, os is win7 32bit, ccs3.3, and my work is transport X264 encoding to c64x+ DSP.

Now I face some questions about  using cache to optimize my project.

1.  why I cannot put code of a function on L1DSRAM, even when I set the space of L1DSRAM as code/data in dsp/bios ( by using code_section() )

2.   when the input data is on L1DSRAM, is there benefit to put the relevant function on L2SRAM ?

for example, in the function

static inline void x264_macroblock_cache_ref( x264_t *h, int x, int y, int width, int height, int i_list, int ref )
{
    
    int dy, dx;
    for( dy = 0; dy < height; dy++ )
    {
        for( dx = 0; dx < width; dx++ )
        {
            h->mb.cache.ref[i_list][X264_SCAN8_0+x+dx+8*(y+dy)] = ref;
        }
    }
    
}

mb.cache.ref[] is on the L1DSRAM, but when I put the code of this function on L2SRAM instead of the DDR SDRAM, I cannot see any improvement but a worse speed.

why? Should I simultaneity put mb.cache.ref[] on L2SRAM ?

3. Is better to use data_section() than use MEM_alloc()  to put the data on the specified memory section?

PS:All the functions mentioned above are used correctly

thanks