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 太小、DDR3太慢!?

Guru**** 2609895 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/583337/tms320c6670-msmcsram-too-small-ddr3-too-slow

器件型号:TMS320C6670

您好!

我正在尝试将一个非常大的阵列存储到内存中,2*0x14a000。 我无法将其安装到 MSMCSRAM 中、因为最大大小为0x1ff000。

要测试、首先使用较小的阵列... 这个(1*0x14a000)适合 MSMCSRAM 并且程序运行良好。

但是,当我使用 DDR3时,它的运行速度太慢(20*慢),循环所需的时间比我的约束时间长10*。

是否有办法加快 DDR3速度或访问更大/更多的 MSMCSRAM?

谢谢、

David

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    没有办法增加 MSMC 存储器的大小-它是器件的一部分
    2.您可以使用双缓冲并使用 DMA 并发将数据从 DDR 移动到 L2 (例如)、同时 CPU 处理之前的数据组。 因此、您可以在一定程度上屏蔽移动数据的时间

    请在 e2e 上搜索乒乓或双缓冲器、并查看已实施类似方案的数量


    已运行
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢你跑了。

    我们解决这个问题的方法是首先从具有直接从 DDR3读取的循环的 dumb 代码转到使用 memcpy()。

    我们使用 memcpy()将给定1ms 间隔(15360个样本)内所需的数据窗口从 DDR3中的大缓冲区(11*15360个样本)复制到 MSMCSRAM 中。

    这将速度提高了10倍。

    然后、我们第二次将 memcpy()替换为 EDMA。

    如需感兴趣的读者、请查看:  

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

    此致、

    David