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.

[参考译文] TMS320C6657:TMS320C6657:有关 C6657 DDR ECC 功能的问题:如何测试功能

Guru**** 2528360 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1269645/tms320c6657-tms320c6657-question-about-c6657-ddr-ecc-function-how-to-test-the-feature

器件型号:TMS320C6657

您好,Shankari

来自 sprugv8e 第2.17节:

问题1:

>>>  

ECC 在写入过程中存储在 SDRAM 内部。 启用 ECC 后、
执行任何功能性读取或写入、所有 DDR3存储器空间被配置为 ECC
 首先写入 64位对齐和64位倍数的已知数据。 这是
确保在功能使用之前将正确的 ECC 值存储在 ECC SDRAM 中。

<<<<<<<<<<<<<<<<<<

"首先写入已知数据":0是否可以作为已知数据、还是应该是其他一些模式?

问题2:

>>>

字节计数不是64位份额的倍数或非64位对齐地址的写访问
在 ECC 保护的地址范围内执行、将导致 写入 ECC 错误中断。 在本
情况下、DDR3存储器控制器会向 SDRAM 写入数据。 但是、写入 SDRAM 的 ECC 值
将损坏

<<<<<<<<<<<<<<<<<<<<<<<

是否有可以在链接器中设置的64位对齐选项? 如果我们必须通过所有代码为位于 DDR3中的每个变量手动将 DATA_ALIGN 设置为64位、则这是一个噩梦。

问题3:

>>>>>

如果存在一位错误、DDR3存储器控制器会校正数据并在读取时将其发送
获取位置反馈。 对于2位错误、DDR3存储器控制器生成读取 ECC 错误中断。 请注意、在中
在这两种情况下、SDRAM 中的数据仍然损坏。  这是系统软件的责任
纠正 SDRAM 中的数据

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

在发生1位错误和2位错误的情况下、"系统软件"的责任是什么意思:SDRAM 仍然损坏、应该对 SW 的哪个部分进行分录以更正 SDRAM 中的数据?

问题4:

 >>>

如果 ECC 被禁用、ECC 字节通道被保持在复位状态以省电。  因此、如果正向压降
必须在启用 ECC 后触发、以确保 ECC 字节通道为水平

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

该语句表示必须在启用 ECC 后进行矫正设置。 是否有任何特定的 ECC 信道被提及?

Br

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

    TAM:

    让我重新研究一下并返回。

    此致

    尚卡里

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

    TAM:

    问题2:

    >>>

    字节计数不是64位份额的倍数或非64位对齐地址的写访问
    在 ECC 保护的地址范围内执行、将导致 写入 ECC 错误中断。 在本
    情况下、DDR3存储器控制器会向 SDRAM 写入数据。 但是、写入 SDRAM 的 ECC 值
    将损坏

    <<<<<<<<<<<<<<<<<<<<<<<

    是否有可以在链接器中设置的64位对齐选项? 如果我们必须通过所有代码为位于 DDR3中的每个变量手动将 DATA_ALIGN 设置为64位、则这是一个噩梦。

    [/报价]

    我认为链接器中没有这样的选项。

    为什么要采取错误的机会?

    实际上、64位份额和64位对齐地址的倍数是完全可能实现的。

    我随附用于 DDR3内存测试的示例代码。

    e2e.ti.com/.../7624.sprac04.zip

    此致

    尚卡里

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

    您好,Shankari

    感谢您的回复。

    我需要填充整个 DDR3存储器空间还是仅部分 DDR3的模式

    Br

    TAM 转接

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

    TAM:

    是否需要填充整个 DDR3存储器空间或仅填充部分 DDR3

    您可以自行选择测试哪个存储器空间。

    请查看我上一篇文章中随附的示例源代码以测试 DDR3内存。 这将让您有个好主意。

    此致

    尚卡里

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

    >>>

    如果 ECC 被禁用、ECC 字节通道被保持在复位状态以省电。  因此、如果正向压降
    必须在启用 ECC 后触发、以确保 ECC 字节通道为水平

    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

    该语句表示必须在启用 ECC 后进行矫正设置。 是否有任何特定的 ECC 信道被提及?

    [/报价]

    是的、正确。 该操作在 ECC 启用后完成。

    请参阅" 2.13.1完全调平(自动调平) "。  https://www.ti.com/lit/ug/sprugv8e/sprugv8e.pdf

    可以通过向读取写入矫正斜坡控制寄存器(RDWR_LVL_RMP_CTRL)的 RDWRLVL_EN 字段写入"1"来启用矫正(全向和增量)。 启用后、可通过向读取/写入矫正控制寄存器(RDWR_LVL_CTRL)的 RDWRLVLFULL_START 位写入‘1来触发完全矫正。 一旦触发、将执行全部三个全平(写入矫正、读取 DQS 门训练和读取数据眼图训练)。 因此、无法独立控制各个调平类型以实现完全调平。

    liang minghua 说:
    是否有任何指定的 ECC 通道?

    对每个字节通道(时钟 DQS 对)单独执行调平(完整和增量)。 因此、每个字节通道的矫正过程会单独收敛。 为了确保调平正确收敛、必须给 DDR3控制器一组初始值以在调平期间使用。 调平过程使用这些初始值到达每个字节通道的一组收敛值。 这些初始值应插入到引导配置部分中的一组存储器映射寄存器中。 用户应注意、下面步骤2和3中的 DATAx 寄存器按如下所示映射到特定字节通道(请注意 C665x 和其他器件型号之间的差异)。 对于写入矫正和栅极矫正初始值、即数据 n_PHY_WRLVL_INIT_RA比 和数据 n_PHY_GATELVL_INIT_RATIO 映射到同一字节通道、该映射是一致的。 数据 m_PHY_WRLVL_init_ratio 和数据 m_PHY_GATELVL_init_ratio 映射到同一字节通道。

    有关更多信息、请参阅部分  2.13.4编程完全调平 https://www.ti.com/lit/ug/sprugv8e/sprugv8e.pdf

    此致

    尚卡里

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

    TAM:

    问题3:

    >>>>>

    如果存在一位错误、DDR3存储器控制器会校正数据并在读取时将其发送
    获取位置反馈。 对于2位错误、DDR3存储器控制器生成读取 ECC 错误中断。 请注意、在中
    在这两种情况下、SDRAM 中的数据仍然损坏。  这是系统软件的责任
    纠正 SDRAM 中的数据

    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

    在发生1位错误和2位错误的情况下、"系统软件"的责任是什么意思:SDRAM 仍然损坏、应该对 SW 的哪个部分进行分录以更正 SDRAM 中的数据?

    [/报价]

    在这里、它是指通过 DDR3发送数据并将数据写入 SDRAM 的软件。 (例如,main.c 是我所张贴的软件,它执行 DDR3内存测试并通过 DDR3内存控制器将数据写入 SDRAM 中)

    对于2位错误、DDR3存储器控制器生成读取 ECC 错误中断。 此中断必须在软件中接收并进行处理。

    对于一位错误、在读取操作期间、

    1. DDR3存储器控制器读取数据和 ECC 值。

    2.重新生成 ECC,并比较 ECC 是否相同,

    3.如果不一致,则检测到一个位错误,就会校正数据并将其发送到读取接口,但故障数据仍在 SDRAM 中。-------- 这就是它的意思。

    请注意、它在将数据发送到读取接口之前校正数据、但不会通过将"已更正数据"写回 SDRAM 来实际校正数据

    这就是为什么他们说、在两种情况下(片上错误和2位错误)、数据在 SDRAM 中仍然是损坏的

    它遵循  SECDED 算法-  单错校正、双错检测 。  

    此致

    尚卡里

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

    您好,Shankari

    感谢您的答复。  

    我对术语有点困惑:SDRAM 和 DDR3。 当我们访问  

    在此背景下、您能解释一下 DDR3存储器和 SDRAM 存储器的区别。

    内存范围8000000 FFFFFFFF --> 2G DDR3 EMIF 指的是 DDR3内存。 以及我们在其关联中讨论 SDRAM 和

    Br

    TAM 转接

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能解释一下 DDR3内存和 SDRAM 内存在这种情况下的区别吗?

    DDR3是接口、SDRAM 是存储器。

    我们所说的 DDR3内存意味着, 通过 DDR3连接的内存设备(这里- SDRAM)。

    DDR3的数据表中提供了存储器映射。

    ===

    在发生1位错误和2位错误时,您认为"系统软件"的责任是什么意思?SDRAM 仍然损坏,应将该软件的哪一部分与 SDRAM 中的数据进行更正?

    我的意思是、  

    这里指的是将数据发送到 SDRAM 并向其中写入数据的软件 通过 DDR3 。 (例如,main.c 是执行"DDR3 内存测试"并通过 DDR3内存控制器将数据读/写至 SDRAM 的软件(在我之前附上的文章中)。

    此致

    尚卡里