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.

[参考译文] [TDA4M]为什么不#39;t 它看起来像"多通道 DDR 1MB 到 DDR 1MB"比"1通道 DDR 1MB 到 DDR 1MB"?

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/838163/tda4m-why-doesn-t-it-seem-like-multi-ch-ddr-1mb-to-ddr-1mb-is-faster-than-1ch-ddr-1mb-to-ddr-1mb

你好

我在前面的问题中错误地单击了"已解决"按钮。

   -链接: http://e2e.ti.com/support/processors/f/791/t/837816

我再次总结了 DRU 和 UDMA 吞吐量。

我收到了 Sivaraj 的一封信

   

很抱歉、 我无法准确理解第一个答案。 第二个答案是"好"。

根据我对第一个答案的理解:

   - UDMA 和持续时间可在一个通道上执行1项任务。 (如果 他们执行2个任务、则需要2个通道。)

   换句话说,如果 DMA (uDMA、DRU) 使用2个通道,则有2个任务。

   -在第一个答案中,高速缓存存储在 MSMC 中。 我还附上了 MSMC 方框图(TRM 中的图8-3)。

   -如果 DRU 执行 "A"任务来从 DDR 传输1MB 数据、则数据路径 为 DDR (读取)->高速缓存(在 MSMC 中)-> DDR (写入)。

   但是、如果 DRU 执行"b"任务在"A"任务完成之前从 DDR 传输2MB 数据、 则"A"任务中将发生缓存缺失。

   - DMA 将再次读取 以存储在缓存中、然后写入 DDR。 此时也会发生中断。

   -因此 、使用多通道的 DRU 传输效率不高、并且由于大量中断、CPU Loas 可能会很高。

请您检查一下我所理解的上述想法吗?

我想详细介绍一下、这对我非常有帮助。

此致

永西格。

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

    您好!

    我想当我在回复中提到"任务"时、你会感到困惑。

    我提到的任务是 UDMA 单元测试应用程序为调度 DMA 操作而创建的 BIOS 软件任务。

    缓存缺失是指在 CPU 中运行多个"SW"任务时的程序和数据缓存缺失。 这是因为上下文切换以及每个任务的数据/堆栈存储器不同

    这不是 DRU/UDMA 跨通道内部的 DMA 调度。 当多通道传输完成后、DRU/UDMA 将根据优先级交错传输、然后以伪并行方式进行传输。

    希望这能澄清

    此致

    Sivaraj R

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢你的答复。
    我认为"任务"和"上下文交换"是可以的。
    如果您能再次查看、我将不胜感激。
      1.您是指一个任务与一个 API 相同吗?

      2. DRU 或 UDMA 可以在一个 API 中使用多通道或单通道来传输数据。 对吧?
          (如 PDK 中的 UDMA_RING_TEST)

      3. MSMC 中的"高速缓存标签 Bank_x"不是数据高速缓存、而是用于标记高速缓存的标签内存。
      4.在汇总的 DRU 吞吐量表中、"多通道 DDR 1Mb 至 DDR 1Mb "具有如此高的 CPU 负载。
        我认为原因是中断和上下文切换很多。
        但是、我想知道为什么使用 DRU 时的上下文切换要比使用 UDMA 多得多?
    此致、
    永西格。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    1.这里的任务是指 BIOS 任务。 请参阅 BIOS 用户指南或一般操作系统概念以了解任务。 一个任务可以包含多个 API 序列

    2.要支持多通道,您需要打开/创建多个 DMA 通道。 这可能来自一个任务或多个任务。 您需要如何在应用程序中进行管理。 在测试应用中、我们为每个通道创建了一个任务、以便它们可以异步运行。

    3.是的

    由于 DRU 吞吐量更高、DRU 中的中断更多、因此上下文切换的次数也会增加。

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

    谢谢 Sivaraj。

    我认为 任务、上下文切换和缓存缺失都可以。

    最后、我有一个问题。

     在之前 的答覆中,你可否解释一下有关的详情?

        -"对于 DRU、DDR 和 CPU 已加载"

        -"对于 uDMA、DDR 未通过单通道充分利用"

    此致

    永西格。

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

    系统中的 DRU 可以通过 DDR 以及 MSMC RAM 提供非常高的吞吐量。 这就是系统的设计方式。 因此、我们将获得最大 DDR 吞吐量、并且 DDR 将满载。 由于 DRU 的数据传输速度更快、因此1MB 传输的完成速度更快、CPU 以更高的速率中断。 因此、我们会得到更高的 CPU 负载。

    根据设计、UDMA 传输不会通过设计为单通道提供最大吞吐量。 当使用多个通道时、我们将获得更好的吞吐量。 即使这样、它也不会像 DRU 传输那样好。