本文为作者原创内容,首发于同名微信公众号【TechShareMore】,首发时间:2026年2月11日,已获得作者本人独家授权,同步发布于CSDN。

本文完整整理自JEDEC Standard No.79-5D标准文档第4.17章节,聚焦DDR5 SDRAM的读训练模式(Read Training Pattern)核心机制、模式配置、LFSR生成规则、示例序列及时序要求,结构清晰易读,可直接用于技术分享或工程实践参考。

4.17 读训练模式(Read Training Pattern)

读训练模式的核心作用是在启用DRAM写操作前,让主机读取已知数据模式,完成内存接口训练。由于DDR5支持更高工作频率,简单重复模式已无法满足训练需求,因此引入线性反馈移位寄存器(LFSR)模式,同时保留串行模式,并支持连续突发输出,适配不同训练场景。

核心基础特性

1.触发方式:主机向MR31地址发送MRR命令,DRAM返回BL16格式的读训练模式数据(忽略MR0中的突发长度设置)。

2.CRC约束:使用读训练模式前必须禁用CRC功能,连续突发模式下需额外确保读CRC已禁用。

3.模式分类:支持两种核心模式(串行模式/Serial、LFSR模式),LFSR模式可衍生出高频时钟模式;支持两种输出方式(MRR命令触发/默认、连续突发输出)。

4.寄存器依赖:模式配置、种子值、反转设置、LFSR分配需通过MR25-MR30寄存器编程,未编程时使用上电默认值。

5.状态保留:退出连续突发模式后,DRAM不保存当前LFSR状态,可能清空MR26-MR30配置,再次使用需重新编程。

图片

Table 93 - Read Training Pattern Address(读训练模式地址表)


4.17.1 概述(Introduction)

本节详细说明读训练模式的配置方式、支持的操作模式及核心规则,是后续功能实现的基础。

1. 模式寄存器配置(关键MR地址定义)

读训练模式的所有参数通过专用模式寄存器配置,核心寄存器及功能如下:

MR地址

操作模式

核心描述

默认值

MR25

读训练模式设置

控制模式格式、LFSR选项、连续突发模式

OP[0]=0(Serial)、OP[1]=0(LFSR0)、OP[2]=0(LFSR1)、OP[3]=0(默认模式)

MR26

Read Pattern   Data0/LFSR0

串行模式下存储数据位D7-D0,LFSR模式下存储LFSR0种子

0x5A

MR27

Read Pattern   Data1/LFSR1

串行模式下存储数据位D15-D8,LFSR模式下存储LFSR1种子

0x3C

MR28

Read Pattern   Invert - Lower DQ Bits

控制低字节DQ位(x4/x8/x16通用)的模式反转

0x00

MR29

Read Pattern   Invert - Upper DQ Bits

控制x16器件高字节DQ位的模式反转

0x00

MR30

Read LFSR   Assignments

配置每个DQ通道使用LFSR0还是LFSR1

0xFE

MR31

Read Training   Pattern

触发读训练模式的MR地址(无寄存器字段,仅用于MRR命令)

-

图片

Table 94 - Read Training Mode Settings(读训练模式设置表)

图片

Table 95 - Read Pattern Data0 / LFSR0(数据0/LFSR0寄存器表)

图片

Table 96 - Read Pattern Data1 / LFSR1(数据1/LFSR1寄存器表)

图片

Table 97 - Read Pattern Invert - Lower DQ Bits(低字节DQ反转寄存器表)

图片

Table 98 - Read Pattern Invert - Upper DQ Bits(高字节DQ反转寄存器表)

2. 核心操作规则

-连续突发模式配置:通过MRW命令设置MR25:OP[3]=1启用,MRR访问MR31后自动持续输出模式,需通过MRW设置MR25:OP[3]=0退出(需发送两次MRW确保稳定退出)。

-连续突发模式约束:仅允许MRR(仅MR31地址)和退出连续突发的MRW命令,其他MRR地址无效,需复位恢复。

-ODT设置:连续突发模式下,目标rank的DQ ODT设为RTT_OFF、DQS ODT设为DQS_RTT_OFF;非目标rank需将RTT_PARK编程为与RTT_NOM_RD一致(如需提供终止)。

-寄存器默认值恢复场景:进入自我刷新、掉电、退出连续突发模式时,MR26-MR30的配置可能恢复默认值,需重新编程。

3. 两种核心模式说明

-串行模式(Serial,MR25:OP[0]=0):通过MR26/MR27存储16位固定模式,支持按DQ通道独立反转,适用于低频率场景。

-LFSR模式(MR25:OP[0]=1):基于8位Galois LFSR生成模式,支持两个独立LFSR实例(LFSR0/LFSR1),适配高频总线,可切换为时钟模式(仅输出0/1交替的高频时钟)。


4.17.2 LFSR模式生成(LFSR Pattern Generation)

LFSR模式是DDR5高频场景下的核心训练模式,其生成逻辑、配置规则及操作约束如下:

1. LFSR核心参数

-多项式:采用Galois LFSR,多项式为  

x^8 + x^6 + x^5 + x^4 + 1

 。

-实例数量:两个独立LFSR(LFSR0/LFSR1),分别使用MR26/MR27作为种子寄存器,支持不同DQ通道分配不同LFSR实例。

-输出频率:每个UI(单位间隔)更新一次输出值,BL固定为16。

图片

Figure 95 - Read Training Pattern LFSR(读训练模式LFSR逻辑图)

2. 关键配置规则

-种子寄存器:MR26(LFSR0)和MR27(LFSR1)的种子值决定初始输出,若设为0x00,LFSR将输出恒定0模式。

-LFSR分配:通过MR30配置每个DQ通道(DQL0-DQL7、DQU0-DQU7)使用LFSR0(0B)或LFSR1(1B),实现不同通道独特模式,覆盖串扰场景。

图片

Table 99 - Read LFSR Assignments(LFSR分配表)

-时钟模式选项

- MR25:OP[1]=1:LFSR0切换为时钟模式,仅分配给LFSR0的DQ通道输出0/1交替信号(首UI为0)。  
- MR25:OP[2]=1:LFSR1切换为时钟模式,规则同上。 

-LFSR状态更新:仅当处于LFSR模式且未启用时钟模式时,MRR访问MR31才会更新LFSR状态;串行模式或时钟模式下,LFSR状态保持不变。

3. 反转设置

  • 低字节DQ(DQL0-DQL7)通过MR28控制反转,高字节DQ(DQU0-DQU7,仅x16)通过MR29控制。

  • 寄存器中某bit设为1时,对应DQ通道的输出模式反转;设为0则保持原模式。


4.17.3 读训练模式示例(Read Training Pattern Examples)

原文提供3个典型示例,涵盖串行模式、LFSR模式、LFSR时钟模式,核心配置及输出特点如下:

示例1:串行模式(Serial)

-编程配置:Read Training Pattern Format=0(Serial)、Read Pattern Data0=0x1C、Read Pattern Data1=0x59、Lower DQ Invert=0x55、Upper DQ Invert=0x55。

-输出特点:每个DQ通道按MR26/MR27的16位数据重复输出,奇数索引通道反转模式,偶数通道保持原模式,位序列呈现规律性交替。

图片

Table 100 - Serial Bit Sequence Example(串行位序列示例表)

示例2:LFSR模式(默认选项)

-编程配置:Read Training Pattern Format=1(LFSR)、LFSR0/LFSR1 Pattern Option=0、Read Pattern Data0=0x5A、Read Pattern Data1=0x3C、LFSR Assignments=0xFE、Lower DQ Invert=0x00、Upper DQ Invert=0xFF。

-输出特点:DQL通道使用LFSR0输出,DQU通道使用LFSR1输出且反转,位序列无固定重复周期,适配高频串扰测试。

图片

Table 101 - LFSR Bit Sequence Example(LFSR位序列示例表)

示例3:LFSR时钟模式

-编程配置:Read Training Pattern Format=1(LFSR)、LFSR1 Pattern Option=1(时钟模式)、Read Pattern Data0=0x00(恒定0)、LFSR Assignments=0x04、Lower/Upper DQ Invert=0xFB。

-输出特点:分配给LFSR1的DQ通道(如DQL2、DQU2)输出0/1交替时钟信号,其他通道输出恒定1(因LFSR0种子为0x00且反转)。

图片

Table 102 - LFSR Bit Sequence Example(LFSR时钟模式位序列示例表)


4.17.4 读训练模式时序图(Read Training Pattern Timing Diagrams)

时序部分定义了MRR触发模式输出、连续突发模式的时序关系,核心时序参数及约束如下:

1. 核心时序关系

-普通模式时序:MRR命令触发后,数据输出时序与普通读命令一致,BL固定为16,需遵循DDR5前导码时序要求。

-连续突发模式时序:进入后持续输出BL16重复模式,退出命令(MR25:OP[3]=0)后,DRAM在tCont_Exit内停止输出(可能截断当前突发),需等待tCont_Exit_Delay后才能发送其他命令。

-背靠背模式:支持MRR命令每8tCK连续触发,输出背靠背BL16模式,间隔为tMRR_p(快于普通MRR间隔tMRR)。

2. 关键时序图引用

图片

Figure 96 - Timing Diagram for Read Training Pattern(读训练模式基础时序图)

图片

Figure 97 - Timing Diagram for Back to Back Read Training Patterns(背靠背读训练模式时序图)

图片

Figure 98 - Timing Diagram for Continuous Burst Mode Read Training Patterns(连续突发模式读训练时序图)

3. 核心时序参数表

Table 103 - Timing Parameters for Read Training Patterns(读训练模式时序参数表)

参数名称

符号

最小值

最大值

单位

核心说明

连续突发退出到下一条命令延迟

tCont_Exit_Delay

tCont_Exit + tMRD

-

-

确保模式输出完全停止

连续突发退出到训练模式结束

tCont_Exit

-

RL + BL/2 + 10nCK

-

可能提前停止输出

两次退出连续突发MRW命令最大间隔

tCBME

-

CL - 10nCK

-

第二次MRW需在该间隔内发送


4.17章节关键备注汇总

1.CRC约束:使用读训练模式(尤其是连续突发模式)前,必须禁用读CRC,否则会导致模式输出异常。

2.寄存器恢复:自我刷新、掉电、退出连续突发模式后,MR26-MR30可能恢复默认值,需重新编程种子、反转和LFSR分配。

3.连续突发模式操作:进入后仅允许MR31地址的MRR和退出MRW命令,其他命令可能导致DQ行为异常,需复位恢复。

4.非目标rank ODT:连续突发模式下,非目标rank的RTT_PARK需与目标rank的RTT_NOM_RD一致(如需终止),退出后需恢复RTT_PARK为正常配置。

5.LFSR状态:仅LFSR模式(非时钟选项)下,MRR访问MR31才会更新LFSR状态,其他场景状态保持不变。

未经作者本人授权,禁止任何形式的转载、洗稿、商用,侵权必究。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐