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.

[参考译文] AM5716:L3/L4互连 NOC 编程

Guru**** 2589280 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/638925/am5716-l3-l4-interconnect-noc-programing

器件型号:AM5716

 代表字段重新过帐、因为上一个线程现在已锁定、没有任何响应

您好!

AM5716 具有 L3/L4互连 NOC、这是一种命令和确认以及响应和确认的架构、因此可以在命令和响应之间实现非阻塞访问。 我想知道如何对我们的软件进行编程、使其成为 NOC 的非阻塞访问。 因为外设的访问时间对于我们的应用至关重要。
 
例如、我的理想情况是具有一个序列、在这个序列中、只连续向每个外设发出命令而无需等待响应、并且读取或写入等处理在收到响应后立即开始。 为了实现这一点、我应该如何对软件进行编程? 此外、我如何知道收到了响应?

我在 TRM (SPRUHZ7E)的 P.3021上看到了注释、并在 Arteris 和 Sonics 网站上搜索了相关信息、但似乎只有在器件上实现 NOC 的信息。 我希望该文档像编程方法一样。

总之、您能否告诉我是否有某种特定的编程方法可以很好地使用 NOC 架构? 我是否需要了解特定的编程方法? 如果可能、我会征求器件架构专家的意见。

此致、
Kazu

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

    我已通知工厂团队。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    根据与团队的讨论、我们不认为系统互连/NOC 中有太多的软件可编程性。
    一个可能的选项是将来自 CPU 的访问配置为已发布而不是未发布的写入。 在已布置的写入案例中、L3的响应是立即的、而到外设的命令进入后接地。 对于未布置的情况、外设的响应被发送到 CPU。
    正如您所提到的,如果是已发布的情况,软件必须有某种方法来了解通过可能读取某些端点寄存器已成功处理请求的状态。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Mukul、

    感谢您的信息。 我重写了这个问题。

    如果从 CPU 到外设的默认访问方法是未过帐写入、请详细说明我如何实现过帐写入。

    如前所述、软件在向其写入数据后是否需要读取每个端点寄存器(例如 UART)?

    在这种情况下、由于软件开销不小、我猜处理速度会更慢。

    或者、只需设置 CPU 或 L3的寄存器、就可以实现更改为已布置写入的目的吗?

    此致、
    Kazu

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

    Kazu

    您能否进一步详细说明用例并告诉我此用例涉及哪些主器件/CPU (ARM 或 DSP 以及其他主器件?)。  

    从 A15发布的待办事项可能需要正确的 MMU 属性(我没有任何软件示例)。  

    除严格排序外的大多数访问都能够从 A15发布。  

    这种方法通常在软件中可能很昂贵、因为软件必须确保按寄存器读取、或者通过其他方法确保端点为下一个数据做好准备等  

     

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

    Mukul、

    感谢你的答复。

    在我们的系统中、IPU1_C0主要访问外设。 它是 IPU1中两个 Cortex-M4中的一个(而不是 IPU2)。

    我已经确认 CM4可以正确访问 GPIO、UART 等。 我还通过配置 IPU1_UNICACHE_MMU 确认了程序运行速度更快、LED 闪烁间隔更短。

    我指的是 PDKv1.0.6的 GEL 和 CSL 示例程序。 但我找不到 IPU1_MMU 的初始化代码。

    请参阅以下内容。
    AM571x TRM (SPRUHZ7F):图7-1。 IPUx 子系统概述

    如果我需要设置 MMU 的特定配置以高效使用 NOC、请告诉我 IPU1 MMU (IPU1_UNCACHE_MMU 或 IPU1_MMU)的配置。 如果我需要设置 NOC 的配置寄存器等内容、以便能够高效地使用 NOC、还请告诉我相关信息。 谢谢你。

    此致、
    Kazu

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Kazu
    此实施的最终目标是什么?
    您是否有一个尝试通过 IPU1 M4到达终端外设的特定延迟目标?
    您是否尝试过使用优先级等?

    关于 IPU MMU 编程、我的同事向我介绍了以下可能对您有所帮助的资源/信息

    M4的 PDK 和 IPC 示例确实提供了 AMMu 配置、用于访问 L3/L4互连上的外设。 PDK 驱动程序示例中 Ammu 的处理方式与 IPC 如何使用这些设置不同、并在此处进行了说明:
    processors.wiki.ti.com/.../Linux_IPC_on_AM57xx

    如果您使用裸机 IPU1代码测量延迟、则 CSL 示例中显示了用于访问 PCIe 等外设的 Ammu 设置:
    pdk_am57xx_1_0_8\packages/ti\cSL\examples\pci\write_loopback

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

    Mukul、

    感谢您的信息。

    我在下面再详细介绍一下我们的情况。 无论如何、我稍后会向您发送延迟目标。

    CA15使用 RTOS (自有调度程序)而不是 Linux、CM4是裸机(无操作系统)。

    我已经参考了您建议的 PDL CSL 示例。 我使用了它并对其进行了自定义、以测试 LED 闪烁间隔、如前所述。

    此致、
    Kazu

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    好的、感谢您的进一步说明。 您可以随时(通过 Todoroki San)分享 E2E 上或之外有关客户具体情况的剩余信息。
    我将重申、对于您共享的场景、我们建议对没有相关 NOC 寄存器进行编程。
    大多数这种情况应可通过 MMU/cache 设置、优先级以及潜在的过帐访问与非过帐访问进行管理(请注意前面所述的注意事项)。

    请告诉我、我们是否可以关闭此主题、或者您是否需要进一步的帮助。

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

    非常感谢。 我们将启用缓存并尝试 Ammu 的一些配置。 如果 NOC 没有达到我们预期的性能、我将在新主题中向您提出问题。

    此致、
    Kazu