2406207_zh-CN

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2406207_zh-CN

2406207_zh-CN

QorIQ T1022 DDR 验证套件以良好优势通过,但在应用程序中发现内存损坏。

你好,

我们正在使用QorIQ T1022设计,并已使用 NXP DDR 验证套件完成了 DDR 启动和验证。

结果令人鼓舞:

  • 所有DDR验证测试均成功通过。
  • 我们在所有测试条件下都取得了良好的时间裕度。
  • 压力测试期间,验证套件未报告任何错误。

然而,当我们加载并运行主应用程序时,我们开始观察到一些似乎与内存相关的问题/损坏。仅使用 DDR 验证测试无法重现这些问题。

这就引出了一个问题:我们是否应该使用其他机制或测试方法来检测可能仅在真实应用程序工作负载下才会出现的问题。

我们感兴趣的是了解:

  • T1022 上的标准 DDR 验证套件测试可以检测出哪些类型的 DDR 或内存子系统问题?
  • 是否存在已知的应用层面的场景,可以暴露出在 DDR 训练和验证过程中未检测到的问题?
  • T1022 上是否有其他压力测试、性能监视器、错误计数器或调试技术可以帮助确定根本原因?
  • 有没有人遇到过这样的情况:DDR验证结果显示裕量极佳,但后来在生产应用中却出现了内存损坏或不稳定的情况?

非常感谢您能提供任何关于其他诊断方法、硬件检查或软件调试方法的指导。

谢谢!

QorIQ T1 设备Re: QorIQ T1022 DDR Validation Suite Passes with Good Margin, but Memory Corruption Seen in Applicat

你好,

QCVS DDRv 工具通过 JTAG 从单个内核使用顺序、确定性访问模式来测试 DDR 时序裕量(写入均衡、读/写居中、时钟调整)。它不进行锻炼:

  • 多主/多核并发访问 — T1022 具有两个 e5500 内核以及 DPAA(数据路径加速架构),帧管理器、队列管理器和 DMA 引擎同时争用 DDR 总线。只有在实际流量下才会出现由竞争引起的时序违规。
  • 缓存一致性压力 — 涉及缓存刷新、失效和一致性 DMA 传输的应用程序工作负载会创建验证套件永远不会生成的访问模式。
  • 散热和电源变化——在室温下轻负载下测量的 DDR 裕量,在 SoC 满负荷运行时,AVDD_DDR 电源在负载下下降时,可能会显著降低。
  • DQ 映射错误 — 如果 DQ_MAPn 寄存器不正确,控制器可能仍然会通过验证(使用已知的训练模式),但在实际应用流量下会损坏数据。这是T1022特有的一个已记录的问题。
  • 边缘单比特 ECC 错误 — 验证套件可能不会累积足够的交易来触发 SBE 阈值报告,而运行数小时的实际应用程序会默默地累积这些错误。

DQ映射错误配置

  • DQ_MAPn 寄存器提供 动态随机存取存储器(DRAM) DQ 信号到控制器的映射。如果这些是错误的,控制器就无法正确解释训练模式,并且在实际工作负载下会发生数据损坏。NXP 已在 T1022 设计中证实了这一点:清除所有 DQn_MAP 寄存器(对于 1:1 映射设置为 0)是建议的诊断步骤。
  • 内存排序/流水线效应(PowerPC e5500)
  • e5500 核心的内存顺序细节有据可查。写入操作可能无法在后续读取操作之前完全提交到 DDR,尤其是在没有显式 msync/isync 屏障的情况下。恩智浦的应用团队已确认: “在错误注入被禁用之前,写入操作可能尚未完全提交到内存。随后的读取操作可能会命中缓存或流水线,而不会立即触发 ECC 逻辑。”应用程序代码中缺少 DMA 设置或共享内存结构周围的屏障,可能会导致表面上的损坏,而这实际上是一致性排序问题。
  • ECC单比特错误累积
  • T1022 DDR 控制器支持 ECC。单比特错误 (SBE) 由硬件默默纠正,但计入 ERR_SBE[SBEC]。如果 SBE 计数器超过阈值 ERR_SBE[SBET],则会产生严重中断。在验证流量较小的情况下,永远不会达到此阈值。在实际应用中,累积的 SBE 最终可能会变成无法纠正的多位错误 (MBE),这是致命的——数据无法恢复。
  • 多位ECC错误表现为应用程序崩溃
  • NXP 已记录了 QorIQ 平台(P2020、T1042)上的案例,其中应用程序崩溃(例如,lwz 指令在看似有效的地址上发生故障)可追溯到 DDR 中的 MBE 事件。崩溃不是软件错误——而是 e5500 内核从 DDR 控制器接收到损坏的数据,并引发 IVOR1 机器检查异常。重要的是,即使内存区域被缓存抑制,MCSR 寄存器仍然显示 0xA000(不可纠正的 L1 缓存/标记错误),因为 DDR 控制器会发出一个损坏数据信号,该信号被内核识别为 L1 错误。

将您的电路板设计与以下内容进行交叉核对:

  • AN3940 — DDR3 同步动态随机存取存储器(SDRAM) 内存接口的硬件和布局设计考虑因素
  • AN5097 — DDR4 同步动态随机存取存储器\\(SDRAM\\) 内存接口的硬件和布局设计考虑因素
  • AN4039 — PowerQUICC 和 QorIQ DDR3 SDRAM 控制器寄存器设置注意事项

请特别注意:AVDD_DDR 电源噪声和去耦、DDR 复位信号路由(HRESET_B 到 动态随机存取存储器(DRAM) RESET)以及终端电阻值。


此致

タグ(1)
評価なし
バージョン履歴
最終更新日:
水曜日
更新者: