【问题标题】:ARM Cortex M7 MPU shareablility impact on M7 performanceARM Cortex M7 MPU 可共享性对 M7 性能的影响
【发布时间】:2021-10-24 17:53:43
【问题描述】:

我正在运行一个系统测试用例,其中 QSPI、SRAM、DRAM 和设备(外围)存储器 MPU 区域在 ARM_MPU_RASR 中保持为可共享。测试用例正在执行 SRAM 到 SRAM 的可缓存复制操作。这种配置导致 M7 性能低得多 ~70MB/s。 当除设备内存之外的所有设备都禁用可共享性时,性能将显着提高到 ~600 MB/s。 有人可以解释这种行为背后的原因吗? CM7的MPU可共享属性和CA53的MMU可共享属性有什么区别?

【问题讨论】:

  • 你有什么特定的设备?如果在内部可共享域内有不同的方法来维护缓存一致性,这可能是相关的。
  • 完全猜测,但也许 M7 并不能真正有效地参与 MESI,因此存储不能只访问它的 SRAM(这基本上是 L1d 缓存吗?),而是必须广播到其他核心,甚至等待确认无效。对于小的一致性请求队列,延迟 x 带宽乘积可能会变得太大,从而限制了实际带宽。
  • @PeterCordes 该设备是 NXP 用于车联网的 S32G2 处理器。

标签: arm benchmarking cpu-architecture cortex-m cortex-a


【解决方案1】:

根据ARM Cortex-M7 Processor Technical Reference Manual (TRM)

默认情况下,只有普通的、不可共享的内存区域可以缓存在 RAM 中。 仅当启用了适当的缓存并且内存类型为 可缓存的。如果 CACR.SIWT 设置为 1,则可以缓存共享的可缓存内存区域。

因此,在这里,SRAM 区域似乎被视为不可缓存,从而导致吞吐量降低。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-02
    • 1970-01-01
    • 2022-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 2023-02-08
    相关资源
    最近更新 更多