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.

[参考译文] TMS320C6657:L1P 作为数据存储器

Guru**** 2589280 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/587542/tms320c6657-l1p-as-data-memory

器件型号:TMS320C6657

您好!

我知道 L1P 是正常程序的缓存/SRAM、但我希望不仅使用 L1D、而且使用 L1P 作为数据存储器。 我尝试制作一个测试程序并验证它。 请参阅随附的文件。 我看到了一个有关 L1P 验证的奇怪现象。 L1P 的 verify_data 函数通过、但 verify_data2函数失败。 verify_data2函数在第109行的读取 src (L2)和 dst (L1P)之间插入了一个虚拟 printf。 请告诉我,你能否解释一下这种现象的一种机制。

此致、
Kazu

e2e.ti.com/.../l1p_5F00_test.zip

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

    我已将此内容转发给软件专家。 他们的反馈应发布在此处。

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

    您好!

    [引用 user="Cvetolin Shulev-XID"]我已将其转发给软件专家。 他们的反馈应在此处发布。[/引述]

    我正在等待专家的回答。 请给我一些建议。

    此致、

    Kazu

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

    喀祖:

    请参阅 C66 CorePac 参考手册、网址为:

      www.ti.com/.../sprugw0c.pdf

    C66内部架构的相关说明。 具体而言、请注意第2.2.1.1节、了解如何在 L1P 配置为 SRAM 时写入 L1P。 因此,我不确定 Set_data 函数()在您的测试中的表现如何,因为它使用主模式而不是 DMA。

    因此、除了没有高速缓存的程序执行效率低下之外、我认为您实际上不能将 L1P 用作与 L1D 类似的数据 RAM。

    请告诉我们这是否有帮助。

    Jian

     

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

    您正在尝试通过将 L1P 用作数据存储器来实现哪些目标? 您可能会出于多种原因寻求此解决方案、但知道您的原因将让我们满足您的实际要求。

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

    Jian 和 RandyP 大家好、

    感谢你的答复。

    [引用 user="RandyP"] 您正在尝试通过将 L1P 用作数据存储器来实现哪些目标? [/报价]

    C66x 需要快速访问我们的应用程序的随机数据。 由于我想避免缓存丢失的损失、我将 L1配置为 SRAM 并使用 DMA 定期从 L2更新 L1的内容。 此外、由于 L1D 没有足够的大小、我将使用 L1P 作为 SRAM。 即使我们从 L2而不是 L1P 运行程序、我们的应用软件看起来也具有足够的性能。 相反、我们必须能够将数据放置在 L1P-SRAM 中。

    [引用 user="jian35385"]请参阅 C66 CorePac 参考手册,网址 为:www.ti.com/.../sprugw0c.pdf

    根据"C66x CorePac UG (SPRUGW 0 C):2.2.1 L1P 存储器"、C66x 可以像 L1D-SRAM 那样从 L1P-SRAM 读取数据、不能吗? 这对我来说是很好的信息。 但是、由于 C66x 无法将数据写入 L1P-SRAM、因此我可能需要自定义当前软件、而不是用于 C665x。

    此致、
    Kazu

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

    Kazu、

    感谢您对使用 L1P 作为数据存储器的意图的明确解释。 当目标是 DSP 的0等待状态访问时、这是不可能的。

    从技术上讲、C6000架构是经过修改的 Harvard 架构、其中程序和数据总线物理分离。 这使得两条总线能够完全同时访问不同的存储器、并且这使器件的可用存储器带宽加倍。 在 L1P/L1D 级别、这种分离在物理上得到执行、因为程序提取总线不连接到 L1D 存储器、数据读取/写入总线不连接到 L1P 存储器。 这种分离对于实现 L1存储器的0等待状态访问至关重要。

    C66x CorePac 无法将其 L1P 存储器作为数据进行访问。 这不能通过 DSP 数据读取或写入来实现。

    在 C6657等多核 C66x 器件上、CorePac0可以使用全局地址读写 CorePac1的 L1P 存储器。 但该访问速度不是0等待状态、与 L2、MSMC 甚至 DDR3访问相比、它可能非常慢。

    您将需要制定其他方法来优化性能、从而获得所需的性能。 L1P SRAM 不能按您所描述的方式使用。

    您提到了使用 DMA 将数据从 L2移动到 L1D。 您将使用 IDMA1实现从 L2到 L1D 的 CorePac 内部传输、从而获得最佳性能。 如果您使用的是 EDMA3、则传输速度将比使用 IDMA1时慢得多。

    如果您想描述应用程序的要求和算法以帮助优化、请将其发布为新线程、但在此处发布指向新线程的链接、以便我们可以找到它。

    此致、

    RandyP

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

    RandyP、您好!

    感谢您的支持。 这对您有很大帮助。

    此致、

    Kazu