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.

[参考译文] AM6442:A53 <->对共享 DDR 和 MSRAM 提供 R5F 独占访问支持

Guru**** 2925550 points

Other Parts Discussed in Thread: AM6442, AM2434

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1636065/am6442-a53---r5f-exclusive-access-support-on-shared-ddr-and-msram

器件型号: AM6442
主题: AM2434 中讨论的其他器件

您能否确认 Arm 独占访问是否可以可靠地用于 AM6442 上的交叉内核共享存储器同步?

背景:
-我们关注 Cortex-A53 和 Cortex-R5F 之间的共享存储器通信,以及 Cortex-M4F 的一些共享数据可见性。
-对于 M4F 端,我们只需要共享 32 位数据。
-对于 A53 <-> R5F 路径、如果支持、我们希望交换 64 位数据。
-如果 A53 <-> R5F 共享内存不支持或不保证 64 位数据交换,我们还想确认是否支持和建议 32 位数据交换。

为了清晰起见、我们所考虑的机械臂专属类型是:
- Cortex-R5F:64 位独占性、如 LDREXD/STREXD(如果仅支持 32 位、则为 32 位 LDREX /STREX)
- Cortex-A53:64 位排除、如 LDXR / STXR(如果仅支持 32 位、则为 32 位字排除)

-我们希望了解共享 DDR 和共享片上 SRAM 的这一点(在 MCU+ SDK 文档中称为 MSRAM )。  
-我们已查看公共 MCU+ SDK/IPC/SPINLOCK 文档,但我们找不到明确的 AM6442 特定的声明,说明了对 DDR 或 MSRAM 上 A53/R5F 共享内存独占访问的全局独占监控支持(或等效支持)。
-我们了解 AM6442 上提供 HW SPINLOCK。 但是、在我们的应用中、锁定/解锁路径周围测得的时间似乎比预期的时间长、因此我们正在检查是否可以使用 Arm 独占访问作为替代方法。

您能否确认以下几点?

AM6442 是否为 A53 和 R5F 之间的共享存储器独占访问实现全局独占监控、外部全局监控或任何等效的 SoC 级机制?

2.在共享 DDR 存储器上的 A53 <-> R5F 是否支持 Arm 独占访问?

3.是否在共享 MSRAM 上的 A53 <-> R5F 支持 Arm 独占访问?

4.对于 A53 <-> R5F 路径:
  -是否使用 Arm 独占访问支持 64 位共享数据交换?
  -如果不支持或不保证 64 位,是否支持和建议 32 位共享数据交换?

5.对于 M4F 方面:
  -我们只需要 32 位共享数据可见性/交换
  -是否支持带有共享 DDR 和/或 MSRAM 的 M4F 的 32 位共享数据交换?
  -如果与 A53/R5F 相比、M4F 有任何限制、请澄清

6、如果支持、在哪些内存属性下、排他访问应正常工作?
  例如:
  -正常+可共享+不可缓存
  -正常+可共享+可缓存
  -与内部/外部可共享、MMU/MPU 设置、缓存启用状态、回写/直写等相关的任何限制
  -特别是,当区域被配置为“正常可共享不可缓存“时,排他性访问是否预计在 DDR 和 MSRAM 上正常工作?

7.如果 AM6442 上的 A53 <->R5F 共享存储器无法保证 Arm 独家支持、则 HW SPINLOCK 模块是否应被视为 TI 推荐的唯一用于交叉内核互斥的硬件基元?

8.如果您对此主题有任何相关的 TRM 部分、应用手册或之前的 E2E 主题、请分享一下吗?

我们想在最终确定共享存储器同步设计之前确认这一点。

谢谢你。

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

    您好、

    我正在查看上述详细信息。 请等待一段时间恢复。

    此致、

    Tushar

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

    尊敬的 Tushar-san:

    非常感谢您查看此内容—我们非常感谢您的支持。

    即使不是所有的点可以一次确认,任何信息,你能够分享,因为它变得可用将对我们非常有帮助。 此外、如果您有预计的时间范围、可能会提供更多详细信息、请随时告知我们。

    再次感谢您的帮助。

    此致、
    Hoshina Hiroki

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

    嗨、Hiroki-san、

    感谢您的耐心。 我在内部进行了检查、得到的信息是所有启动器、外设和 DDR 都通过 CBASS 接口连接、用户不需要执行独占控制。  如果不同的启动器对同一存储器点进行了访问、 CBASS 仲裁将决定只有一个启动器访问存储器、而另一个启动器必须等待直到完成。

    请参阅下图。

    CBASS 接口 根据优先级从高电平到低电平对事务进行仲裁。 如果进入同一端点的事务具有相同的优先级、则 CBASS 会对这些事务使用轮询方法。

    CBASS IP 提供 QoS 块、允许用户对事务的属性(如优先级,ASEL 编码和订单 ID)进行编程。 有关更多信息、请参阅 drivers_QoS 

    此致、

    Tushar

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

    尊敬的 Tushar-san:
    非常感谢您的详细说明和检查。

    我将审查您分享的信息,包括 CBASS 优先权和仲裁行为,并确认我们方面的行为。 根据结果、我将相应地进行—要么认为此项目已解决、要么在需要时跟进任何其他问题。
    再次感谢您的支持。

    此致、
    Hoshina Hiroki

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

    嗨、Hiroki-san、

    感谢您的更新。 期待收到您的回复。

    此致、

    Tushar

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

    尊敬的 Tushar-san:

    感谢您的跟进、再次感谢您对 CBASS 仲裁和 QoS 的详细说明。

    审查您分享的信息后、仲裁和优先级方面现已明确。

    但是、我意识到与处理器子系统之间的 ARM 独占访问语义相关的一个架构点仍然不清楚、因此我想再问一个问题进行确认。

    您能否确认 AM64x 器件是否支持共享存储器(DDR 或片上 SRAM(如 OCMC SRAM,如适用)的基于 ARM 独占访问的原子读取 — 修改-写入操作?

    具体而言、我们考虑以下顺序:

    1. Cortex-A53 内核对地址 X 执行独占加载
    2. Cortex-R5F 内核对二者之间的同一地址 X 执行正常的 CPU 写入。
    3. Cortex-A53 内核执行相应的独占存储来寻址 X

    在这种情况下、是否可以在这些器件(已实施)上保证 Cortex-A53 内核上的独占存储将失败?

    换言之、这些器件上的 Cortex-A53 和 Cortex-R5F 子系统是否一致地保持和失效了独占监控状态?

    除了 Cortex-A53 Left right arrow Cortex-R5F 情况外、您是否还请阐明在以下情况下 AM64x 器件是否支持 ARM 独占访问语义:

    • Cortex-A53 Left right arrowCortex-A53 (在多个 A53 内核之间)
    • Cortex-R5F Left right arrowCortex-R5F (多个 R5F 内核之间)
    • 涉及 Cortex-M4F 内核的任何情况(例如,Cortex-A53Left right arrowCortex-M4F 或 Cortex-R5FLeft right arrowCortex-M4F)     

    如果可能、您是否还能单独指明支持是否因访问宽度而不同:

    • 32 位独占访问(例如 AArch32 中的 LDREX/STREX)
    • 64 位独占访问(例如 AArch32 中的 LDREXD/STREXD、或 64 位 LDXR/STXR(如适用))

    我的理解是,CBASS 仲裁控制交易排序和仲裁,但本身并不提供跨子系统 ARM 独占访问语义,因此我希望你在这一点上的确认。

    此致、
    Hoshina Hiroki

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

    嗨、Hiroki-san、

    对延迟深表歉意。 请参阅  :AM2434:AM2434:在 64 位原子写入到共享 MSRAM  响应期间、ldrexd 上数据中止、以了解 R5F 内核上的独占原子操作。  

    此致、

    Tushar

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

    尊敬的 Tushar-san:

    感谢您先前的澄清。

    从引用的线程中、我了解共享 MSRAM 不支持 64 位独占访问(例如 LDREXD/STREXD)、DDR 也可能不支持。 我们将考虑这一点。

    但是、我没有在引用的线程中找到任何明确提及 32 位独占访问的内容。

    接下来、您能否阐明 AM64x 器件的共享存储器 (MSRAM 和/或 DDR) 是否支持 32 位独占访问 (LDREX/STREX)?

    根据我前面的问题、这是指跨内核的标准 ARM 独占访问语义。

    非常感谢您的支持。

    此致、
    Hoshina Hiroki

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

    嗨、Hiroki-san、

    正如 Tushar Thakur 分享的线程中所提到的 ,这一限制是对 AM2434 互连/AXI 总线不支持全球专用监视器的费用。 因此、 也不太可能支持 32 位独占访问 (LDREX/STREX)。

    我仍然可以进行测试以确认这一点、您可以期待星期四 EOD 提供更新。

    此致、

    会面。

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

    尊敬的 Meet-san:

    感谢您的澄清。

    我同意您的解释、这种限制可能是由于 AM2434 互连/AXI 总线中缺乏全球专用监视器支持。

    但是、我的理解是、所引用讨论中的确认具体涉及 64 位独占访问。

    因此、我认为仅基于 32 位独占访问的行为可能还不够。

    感谢您愿意针对 32 位访问执行测试来确认这一点。

    非常感谢您的支持。

    此致、
    Hoshina Hiroki

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

    嗨、Hiroki-san、

    非常感谢您愿意执行测试来确认 32 位访问。

    我对此进行了测试、其行为类似于 64 位访问、这仅适用于 R5 内部访问 (CACHE/TCM)、并会触发 MSRAM/DDR 访问中止。

    此致、

    会面。

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

    你好 Meet-san 和 Tushar-san,

    非常感谢您的支持和详细说明。

    Meet-San、我特别感谢执行测试和确认行为所花费的时间。
    共享 MSRAM/DDR 不支持 32 位和 64 位独占访问、这对于我们的设计注意事项非常有帮助。

    Tushar-san,也感谢你在整个讨论过程中的持续支持和协调。

    有了这种理解、我们将继续假设使用 ARM 独占访问的原子操作不可用于内核间的共享存储器、并将相应地设计同步。

    再次感谢您的大力支持。

    此致、
    Hoshina Hiroki