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.
你好
我在前面的问题中错误地单击了"已解决"按钮。
-链接: 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.这里的任务是指 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 传输那样好。