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.

[参考译文] TDA4VH-Q1:如何使用 C7x 的 L3 存储器

Guru**** 2551110 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1567289/tda4vh-q1-how-to-use-the-l3-memory-of-c7x

器件型号:TDA4VH-Q1
Thread 中讨论的其他器件:TDA4VH

工具/软件:

TDA4VH 定制板

SDK 11.0  

FreeRTOS+Linux

我们在 C7x 的链接器文件中发现了一个 3M 大小的 MSMC 存储器、并了解到应通过 appMemAlloc 函数使用该存储器。

我们想知道此 L3 MSMC MEM 和 L1 L2 MEM 之间有何差异。

2.如果我们要使用它,我们必须使用 appMemAlloc 吗? 否则、它将处于空闲状态吗?

通过使用 perf 接口、我们可以观察到 c7x_2 的 L1_MEM、L2_MEM 和 L3_MEM 均未使用。 这可能是什么原因? 我们是否需要单独配置以启用 L1、L2 和 L3? 还是主动分配存储器?

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

    您好、

    1.我们想知道此 L3 MSMC MEM 和 L1 L2 MEM 之间有何差异。



    L1 存储器是每个 C7x 内核中尺寸最小、速度最快的存储器。 它用作指令和数据的主存储器、具有最低的访问延迟。
    L1 存储器包含 32KB L1 程序存储器、所有高速缓存和 48KB L1 数据存储器、可配置为高速缓存或 SRAM。

    L2 存储器:存储器比 L1 慢、通常用作辅助存储器、延迟低于外部存储器。 L2 存储器的大小为 512KB、  可配置为缓存或 SRAM。

    L3 MSMC 是  SoC 上的多个内核可访问的共享区域。 它比 L1 和 L2 大得多且慢得多、 除了 8MB 共享中央 MSMC 之外、每个 C7x/MMA 内核都有自己的专用 3MB 本地 MSMC。

    您还可以参考以下文档: /cfs-file/__key/communityserver-discussions-components-files/791/3225.SPRUJ52-_2D00_-J84S4-AM69A-TRM.pdf

    2.如果我们要使用它、我们是否必须使用 appMemAlloc? 否则、它将处于空闲状态吗?


    是的、您可以使用  
    appMemAlloc (heap_id、size、align) 用于分配的 API。默认情况下不分配这些存储器;您必须从这些区域显式请求存储器。

    3.通过使用 perf 接口、我们可以观察到 c7x_2 的 L1_MEM、L2_MEM 和 L3_MEM 都未使用。 这可能是什么原因? 我们是否需要单独配置以启用 L1、L2 和 L3? 还是应该主动分配内存?

    是的、应该在链接器脚本中配置这些存储器区域。\n\n 您能否检查并确认这些区域是否在您的链接器脚本中配置。

    您还可以参考以下文档:
     https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-sk-tda4vm/latest/exports/docs/linux/How_to_Guides/FAQ/How_to_Configure_MSMC_memory.html
     https://software-dl.ti.com/tisci/esd/21_05_01/2_tisci_msgs/general/core.html?highlight=msmc#tisci-msg-query-msmc


    此致、
    Shabary S Sundar

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

    你(们)好

    L2 存储器:存储器比 L1 慢、通常用作辅助存储器、延迟比外部存储器低。 L2 存储器的大小为 512KB、  可配置为缓存或 SRAM。

    目前、C7x 中 L2 高速缓存的默认大小为 64K、L2 SRAM 的大小为 448K。 如果我们要将二级高速缓存的大小配置为 512K、我们该如何操作?

    本文档介绍了如何将 8M MSMC 配置为高速缓存或 SRAM 大小。 但是、在 C7x 中如何将 3M MSMC 配置为高速缓存或 SRAM 大小?

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

    您好、

    您可以参阅 C7x 主文件中的 appCacheInit API 来了解 L2 缓存大小、但请注意、我们尚未真正验证其他缓存大小。 此外 、可能还需要进行其他更改、因为此更改会减小 SRAM 大小。  

    此致、

    Brijesh

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

    你(们)好

    我们将 C7x_1 的 L2 高速缓存从 64K 增加到 128K、并相应地将 L2 SRAM 从 448K 降低到 384K。

    但是、在创建 TIDL 期间、由于存储器不足、L2 SRAM 的分配失败。 模型似乎应该配置相应的 L2 SRAM 大小。 我们应该如何修改模型的配置、使其可以使用 L3 SRAM 或其他 RAM?

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

    您好、

    目前、C7x 中 L2 高速缓存的默认大小为 64K、L2 SRAM 的大小为 448K。 如果我们要将二级高速缓存的大小配置为 512K、我们该如何操作?

    您能否分享有关为何要更改默认配置的更多详细信息?  

    此致、
    Shabary S Sundar

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

    你(们)好

    我们在 C7x 上运行了一个由我们自己实现的节点“拼接“。 此节点主要通过调用 VXLIB_remapBilinear_bc_i8u_i32f_o8u 来实现其函数。 但是、我们发现此节点需要很长时间才能完成、因此我们希望对其进行优化。

    有关具体详细信息、请参阅此部分。  TDA4VH-Q1:VXLIB 重新映射性能优化 

    因此、目前我们的目标是通过增加二级高速缓存的内存来提高“拼接“节点的效率。

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

    您好、

    因此、目前我们的目标是通过增加二级缓存的内存来提高“拼接“节点的效率。

    由于 VXLIB 重新映射内核仅针对 C66x 进行了优化、因此 即使增加 L2 高速缓存也不会大幅提高性能。

    此致、
    Shabary S Sundar