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.

[参考译文] RTOS/AM4378:高速缓存和 EDMA 性能

Guru**** 2609945 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/655319/rtos-am4378-cache-and-edma-performance

器件型号:AM4378

工具/软件:TI-RTOS

您好!

我对大型"机器"比较陌生、因此我需要一些关于了解缓存和 EDMA 性能的建议。

EDMA:

大型或小型中间传输块大小有哪些优势?

什么是"推荐"/通常选择的块大小?

是否有提及此特性的文档?

EDMA 在 DDR 总线上的活动如何影响高速缓存?

高速缓存:
如果使用 EDMA, 则需要 EDMA3_CacheInvalidate()函数。 该函数只是"丢弃"高速缓存中的内存区域、还是也禁用高速缓存?
是否可以在程序实际需要此数据之前"强制"缓存开始从 DDR 收集/加载数据?
例如:
在中断 EDMA (传输完成)中、我希望信号高速缓存->开始高速缓存 EDMA 刚刚复制的数据。
当处理数据的任务开始时、数据将已处于缓存中、CPU 无需等待数据。
我太乐观了吗? )

此致、Mare


 
 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    RTOS 团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    有关详细信息、请参阅 AM437x 技术参考手册第10章。 使用 EDMA 的目的是在不占用 CPU 的情况下传输大块数据。 传输大小由可通过 CTRL_TPTC_CFG 寄存器配置的 DBS (数据突发大小)控制。 它可以是16、32、64到128字节。 然后在配置传输时、在 OPT and Param Set 中、您可以进行 A-SYNC、A-B SYNC 以及计数大小和 B 计数大小。 如果要传输一个大数据块、则 DBS = 128、建议至少使用128个计数、以更好地使用 EDMA。 传输控制器在每次传输时将大数据块拆分为 DBS。 如果数据来自总线宽度受限的外设或数据块很小、则仍可以设置 DBS = 128、但计数将与要一次传输的字节数相同。 这主要有助于减轻 CPU 负载。

    EDMA3_CacheInvalidate()函数仅"丢弃"高速缓存中的内存区域,它不会禁用高速缓存。 您需要在 EDMA 传输完成后使缓存无效、以便 CPU 获取正确的数据。

    此致、Eric