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.

[参考译文] DRA829J:ECC 覆盖范围概述

Guru**** 2535150 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1555781/dra829j-overview-of-ecc-coverage

器件型号:DRA829J


工具/软件:

尊敬的 TI-Team:

我们正在研究 DO-178 项目、并需要综合概述受 ECC 保护的 SoC 元件。

TRM 中提供的详细信息分散、难以形成完整的画面。

具体而言、我们需要澄清:

  • ECC 保护涵盖了哪些 SoC 元件(例如,存储器,互连,MMR 等)。
  • 这些组件如何映射到 ECC RAM ID(ECC 聚合器)。
  • 是否为每个受 ECC 保护的 RAM 实施自动校正(例如,检测到错误后的硬件写回)。

您能否提供这样的概述、或将我们指向相应的文档、代码引用或其他可用信息的资源?

此致、
Dmitry

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

    尊敬的 Dmitry:

    ECC 保护涵盖了哪些 SoC 组件(例如,存储器,互连,MMR 等)。

    TI RTOS SDK 中提供的软件诊断库 (SDL) 列出了 SoC 上存在的可用于 ECC 保护的 ECC 聚合器。 您可以在 sdl/sdl/sdl/ src 的 sdl_ecc.h 文件中找到此列表。

    此外、如果 ECC 保护可用、TRM 中列出的每个 IP 将在各自的小节中标注 ECC。

    这些组件如何映射到 ECC RAM ID(ECC 聚合器)。

    ECC 聚合器是通过保护各种器件模块和子系统中的存储器来增强系统可靠性的关键元件。 ECC 聚合器连接到这些具有 ECC 的存储器和互连元件、以提供对模块或子系统中 ECC 保护存储器进行控制和监控的访问。 ECC 聚合器支持错误注入、以帮助进行诊断并评估稳健性。 ECC 聚合器支持的错误注入功能使用户能够有意识地将错误引入其系统、以测试错误校正机制的弹性和有效性。 此功能通过模拟实际的错误场景来帮助评估 ECC 聚合器的稳健性、使用户能够识别潜在的漏洞并改进其错误处理策略。 此功能包括可配置的参数、例如 ECC 聚合器类型、子类型 (RAM ID)、错误类型和注入位置、使用户能够根据其特定要求定制其测试场景。

    如常见问题- 【常见问题解答】TDA4VM:ECC 聚合器的类型、RAM ID 和错误注入 所述、这些 RAM ID 或端点具有不同的类型、可在 SDL/include/RAM/$SOC/的 sdlr_soc_ecc_aggr.h 文件中找到 soc。

    是否对每个受 ECC 保护的 RAM 实施自动校正(例如,错误检测后的硬件写回)。

    单错校正 (SEC):如果发生 single-bit 错误、ECC 聚合器能够检测和校正这些错误、从而确保数据的完整性。 所有端点和校验器都支持 single-bit 错误注入。 对于奇偶校验器和冗余类型、不支持 single-bit 错误校正。


    双错检测 (DED):对于双位错误、ECC 聚合器可以检测这些错误。 但是、它无法纠正这些错误。 相反、它会通过 ESM 中断将这些错误的存在发送到中央处理单元 (CPU)。 所有 RAM 包装器类型和互连 EDC 校验器类型端点均支持此功能。 奇偶校验和冗余校验器类型不支持双位 ECC 错误注入。

    此致、

    Josiitaa

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

    尊敬的  Josiitaa:

    我需要花一些时间来评估 软件诊断库 (SDL)、然后如果它足够或不足够、请返回给您。 其中一个主要问题是文件的可得性、这对于考虑 DO-178 的项目至关重要。

    关于自动修正(在内存中),我的问题的主要驱动因素,如果以下摘录从 PRIUL1D(第 8.2.4.1.4 章):

    这就引出了一个问题:哪些存储器会由硬件自动校正(通过写回校正的数据)、哪些不会。 感谢您在这里进一步澄清。

    此致。
    Dmitry

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

    尊敬的 Dmitry:

    我需要花一些时间来评估 软件诊断库 (SDL)、然后如果它足够了或不够的话、请返回给您。 此处主要关注的问题之一是文件的可用性、这对于考虑 DO-178 的项目至关重要。

    您可以参考 SDL 用户指南 — https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/latest/exports/docs/sdl/sdl_docs/userguide/j721e/overview.html

    这引出了一个问题:哪些存储器会由 HW 自动校正(写回校正的数据)、哪些不会。 我将感谢您在此处进一步澄清。

    本说明特定于支持内联 ECC 的 DDR SDRAM。 这是不涉及 ECC 聚合器的独特情况。

    此致、

    Josiitaa

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

    尊敬的  Josiitaa:

    谢谢、这似乎非常有用。

    本说明特定于支持内联 ECC 的 DDR SDRAM。 这是不涉及 ECC 聚合器的独特情况。

    我是否正确阅读、除了 DDR 之外、 ECC 包装器/聚合器不仅可以更正读取值、而且可以将其写回、以便在存储器本身中更正 全部 其他的记忆,可能包括 寄存器和内部 FIFO?

    此致。
    Dmitry

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

    尊敬的 Dmitry:

    我读得对吗?除了 DDR 之外、 ECC 包装器/聚合器不仅可以更正读取值、而且可以将其写回、以便在存储器中更正 全部 其他的记忆,可能包括 寄存器和内部 FIFO?

    使用 ECC 聚合器为自检执行错误注入时、无需通过 ECC 聚合器注入错误时恢复或修复注入的存储器位置。 我们实际上并不是破坏 RAM 本身。 应用回调足以处理注入的错误。 对于任何实时错误、TI 的 ECC 机制会自动纠正 single-bit 错误。

    此致、

    Josiitaa

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

    尊敬的  Josiitaa:

    对于任何实时错误、single-bit 错误都会通过 TI 的 ECC 机制自动纠正。

    如果仅纠正读取的数据或纠正存储器中的数据本身(即通过硬件方式将校正后的值写回原点)、我仍然无法完全获取。

    这个问题的原因很简单。 假设 SRAM 中的一个字中有一位错误。 CPU 会读取该位并将校正后的值提供给 CPU、但硬件不会校正存储器本身的位(假设)。 那么、同一个字中的第 2 位会损坏。 如果第一个问题没有被 HW 纠正,我们就会陷入麻烦,并出现不可纠正的错误。

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

    尊敬的 Dmitry:  

    如果只更正了读取数据或也更正了内存中的数据(即通过硬件方式将更正后的值写回来源)、我仍然无法完全获取。

    单一位错误在内存中以内联方式纠正。

    此致、

    Josiitaa

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

    尊敬的  Josiitaa:

    这对于除 DDR SDRAM 之外的所有 ECC 保护元件/存储器是否有效?

    此致。
    Dmitry

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

    尊敬的 Dmitry:  

    是的、有关更多详细信息、请参阅 TRM 中的各个 IP 部分。

    此致、

    Josiitaa