尊敬的 TI 工程师:
TCI6638K2K SoC 中的 ARM 存储器存取存在问题。 我们怀疑访问 MSMC 系统主端口会阻止 MSMC EMIF 主端口访问。
我没有大量的调试实用程序来直接解决这些问题。 那么、让我解释一下这种情况:
测试1.a:
我们有四个 ARM 内核。 内核0执行各种 NVM 访问(MSMC 系统主端口->TeraNet ->EMIF16)、而内核1&2&3执行多个仅 DDR 访问的任务。
我们使用 ARM 性能监控单元来监控内核。 在此测试中、我们看到 Core 1&2&3中作业的执行时间具有非常高的测量峰值(例如平均时间的10到20倍)。
测试1.b:
我们运行相同的测试、但这次我们不访问 NVM (因此不访问 MSMC 系统主端口)。
我们不会测量上一次测试中出现的任何峰值。
测试2.a:
因此、我们在第二组测试中禁用 NVM 访问。 相反、我们访问 SoC 配置总线以简单地读取计时器寄存器(根据方框图通过 MSMC 系统主端口进行)。
同样、我们在测量中测量一些峰值(但不像第一次测试那样高)。
测试2.b:
我们禁用对计时器的访问、峰值消失。
我们多次重复这些测试、结果始终相似。
根据这一结果、我们通常可以得出 MSMC 系统主端口访问会使 MSMC EMIF 主端口访问停顿的结论。
我的问题自然是、这种情况在 SoC 中是否有效、是否有办法防止这些停滞? 可能是停转正常(我不知道)、但为什么它们需要数千个周期? 我的观点是、我正在寻找经验丰富的人的方向、以便更好地理解和解决(或缓解)问题。
我们有很高的时间要求、这些拖延给我们带来了一个非常糟糕的麻烦(在性能和确定性测量方面)。 如果你能在这种情况下帮助我,我将非常高兴。
谢谢、
Erman
方框图:
注:大约一年前,我在以下文章中提到了类似的问题: https://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/516035
但这篇文章更详细、其中包括 MSMC 主系统端口访问、这使我遇到了一个相当复杂的 SoC 问题...