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.

TMS320C6670: MSMCSRAM too small, DDR3 too slow!?

Part Number: TMS320C6670

Hi,

I am trying to store a very large array onto memory, 2*0x14a000. I can't fit it onto MSMCSRAM as the maximum size is 0x1ff000.

To test I use a smaller array first... this (1*0x14a000) fits into MSMCSRAM and the program works fine.

When I use DDR3 instead, however, it runs too slowly (20* as slow), and the time taken for the loop is 10* longer than the constraint I have.

Is there a way to speed up the DDR3 or to access larger/more MSMCSRAM?

Thanks,

David

  • 1. There is no way to increase the size of MSMC memory - it is part of the device
    2. You can use double buffering and move data from DDR to L2 (say) using DMA concurrent with the CPU processing the previous chank of data. Thus you can somewhat mask-out the time to move data

    Do search on e2e on ping-pong or double buffers and see how many already implemented a similar scheme


    Ran
  • Thanks Ran.

    The way we solved the problem was to first move from our dumb code which had loops which read directly from DDR3, to using MEMCPY() instead.

    We used MEMCPY() to copy the required window of data in the given 1ms interval (15360 samples), from the large buffer in DDR3 (11*15360 samples) to MSMCSRAM.

    This improved the speed 10-fold.

    We then secondly replaced the MEMCPY() with EDMA.

    For interested readers, please check: 

    http://processors.wiki.ti.com/index.php/EDMA3

    Regards,

    David