基础门控训练(Basic Gate Training)是一种确保DDR内存系统能够在不同延迟条件下准确读取数据的机制。其目标是通过调节DQS门控信号的时序来找到一个最佳的位置,以避免由于时延不一致引起的数据错误。以下是该过程的详细步骤和说明。
训练过程的主要步骤
- 从最小延迟设置开始,DQS门控的初始位置为左侧(延迟最少)。
- 训练分为两个阶段:首先确定左侧(最少延迟)的位置,然后确定右侧(最多延迟)的位置。
- 从左侧开始,以1/8个DDR时钟周期的增量向右移动门控,直到读取事务成功。
- 记录下当前成功的右边界位置,以及上一个失败的左边界位置。
- 在这两个边界之间进行进一步搜索,使用二分搜索算法加速过程,找到左侧有效位置(门控关闭位置)。
- 一旦找到左侧有效位置,接下来从右侧(延迟更多的一端)开始,将门控位置向右移动1/4个DDR时钟周期,避免由于抖动引起的读取不稳定区域。
- 接着,继续向右移动,以1/8个DDR时钟周期的增量,直到读取事务失败。
- 记录当前的右边界位置,使用与之前相同的二分搜索算法来确定右侧有效位置(门控开启位置)。
- 为了避免错误的读取结果,门控位置会在多个读取中进行验证。如果在某个位置上有一次读取失败,则认为该位置不正确。
- 可以通过设置DTCR.DTRPTN控制每个门控位置评估的额外读取次数。
- 通过DTCR.DTCMPD控制是否在门控位置评估过程中比较读取数据与期望数据。
- DDR时钟周期是从DQS门控时钟周期(DXnGSR0.GDQSPRD)得出的,延迟计算基于此周期值。
- 当基础门控训练被触发时,所有当前的门控训练结果都会被丢弃,算法会从头开始训练。
举例说明
假设有一个DDR内存系统,DQS门控的时钟周期tCK为1ns。整个训练过程可以描述如下:
初始设置:
DQS门控初始位置设置为0ns。
寻找左侧有效位置:
- 从0ns开始,以1/8个DDR时钟周期(0.125ns)向右移动:
- 位置0ns:成功读取(记录为当前右边界)。
- 位置0.125ns:成功读取(记录为当前右边界)。
- 位置0.25ns:成功读取(记录为当前右边界)。
- 位置0.375ns:失败读取(记录为当前左边界)。
- 通过二分搜索,确认左侧有效位置可能在0.25ns附近,确定该位置为0.25ns。
寻找右侧有效位置:
- 从0.375ns开始,向右移动1/4个DDR时钟周期(0.25ns):
- 新位置为0.625ns,继续读取,成功读取。
- 移动到0.75ns,成功读取。
- 移动到0.875ns,成功读取。
- 移动到1ns,失败读取(当前右边界为0.875ns)。
- 再次使用二分搜索,找到右侧有效位置为0.875ns。
确定最终门控位置:
- 最终的门控位置取左侧和右侧有效位置的中位数,即(0.25ns + 0.875ns) / 2 = 0.5625ns。
验证门控位置:
- 在位置0.5625ns进行多次读取验证,如果所有读取均成功,则该门控位置被确认有效。
通过这一系列步骤,基础门控训练确保了DQS信号的门控位置能够在不同的电路条件下保持准确性,提高了DDR内存系统的可靠性。
本文作者:
ICXNM-ZLin
本文链接: https://talent-tudou.github.io/2024/10/27/DDR/Basic Gate Training/
版权声明: 本作品采用 CC BY-NC-SA 4.0 进行许可。转载请注明出处!
本文链接: https://talent-tudou.github.io/2024/10/27/DDR/Basic Gate Training/
版权声明: 本作品采用 CC BY-NC-SA 4.0 进行许可。转载请注明出处!