1. 简介
LPDDR全称为(Low Power Double Data Rate SDRAM),翻译过来为"低功耗双倍速率动态随机存取存储器"。
Double Data Rate指的是在一个时钟周期内发送或接收两笔数据,可以理解为在时钟上升沿和下降沿都在传输数据,在同样的时钟频率下获得翻倍的传输效率。
目前DDR规范已经来到了6.0版本,消费类电子主要使用LPDDR5,高性能PC及服务器也在慢慢从DDR4替代为DDR5。
DDR的速率用MT/s来表示,其中MT表示:Mega Transaction,也就是用每秒钟进行多少次传输来描述速率,如图所示:
DDR带宽一般使用MB/s或GB/s来表示每秒传输的字节数。假设DDR4速率为3200MT/s,位宽为32bit,下面介绍对应计算方法:
理论带宽 = 速率 * 位宽/8 = 3200MT/s * 32/8=12.8GB/s
但实际带宽还需要乘上效率系数才行,因为在DDR的总线上不只有数据,还有一些命令的传输,如reflash,读写命令等,一般效率为70~90%之间。
实际带宽 = 速率 * 位宽/8 * 效率 = 3200MT/S * 32/8 * 0.7=8.96GB/s
2. 结构框图
3. Layout拓扑
DDR在PCB Layout中主要有两种拓扑结构,分别为T型和fIy-by。拓扑结构的改变,也会导致信号之间产生不同的偏差,所以不同的拓扑上Training过程中也会有一些差异。
T型拓扑主要在DDR3之前会使用,适用于传输速率不是很高的场景,T型拓扑在Layout上更容易实现CA、CLK的等长布线,使得CA、CLK相对于DQ之间的skew能够在PCB设计上就满足spec要求。
DDR3开始,时钟频率已经超过1GHz了,如果使用T型拓扑,信号质量会很差,相应的眼图质量也很差,fly-by拓扑则可以解决这个问题,但是会衍生出另一个问题:CA/CLK到达每个颗粒的时间不一致。为了解决这个问题,在 Training上也会有些调整,主要是增加了Write Leveling这个步骤。
4. 内存条
4.1 类型
1. SIMM(Single Inline Memory Module, 单列直插内存模块)
2. DIMM(Dual Inline Memory Module, 双列直插内存模块)
3. UDIMM(Unbuffered DIMN, 无缓冲双列直插内存模块)
4. RDIMM(Registered DIMM,带寄存器双列直插内存模块)
5. LRDIMM(Load-Reduced DIMM,比RDIMM多了DATA Buffer)
6. SODIMM(Small Outline DIMM, 小一号的DIMM)
4.2 SIMM与DIMM区别
SIMM为单列直插内存条,算是上个世纪的产物了,一开始在PCB上只有单面贴了内存颗粒(1、4、16MB),后续容量需求增大后,也出现了双面贴内存颗粒的形式,它同样拥有两排金手指,但是两排金手指的信号是一样的,信号数量分为30和72这两种形式,传输数据位宽分别为8bit和32bit。
DIMM为双列直插内存条,形式上与SIMM区别不大,金手指引脚增加到168个,数据位宽增加到64bit,每个面都有 64bit数据信号。
4.3 常见内存条形态
5. Training
以LPDDR4举例,其标准里面描述的Training类型有以下:
1. ZQ Calibration
2. Command Bus Training
3. CA Vref Training
4. Read Preamble Training
5. RD DQ Calibration
6. Write Leveling
7. DQS-DQ Training
8. DQ Vref Training
5.1 ZQ Calibration
主要用于将SDRAM内部驱动电阻组校准为较为精准的240Ω,其目的是阻抗匹配,提高信号完整性。原理是利用外部高精度240Ω作为参考,调节内部电阻,并检测分压值,当电压达到VDDQ/2的附近,则完成校准。
5.2 Command Bus Training
主要是调整CS与CA的相位,使得这些信号在被CK采样时,满足SETUP和HOLD时序,从而保证SDRAM能够正确且稳定的接收到相应的命令。
5.3 CA Vref Training
作用在于找到一个合适的参考电压,在该参考电压下能获得最宽的眼图,通常是配置 Command Bus Training使用,这两个training步骤可以找到CA的眼图中心,提高数据采样的稳定性。
5.4 Read Preamble Training
作用是让DDR controller能正确采样到DQS。一般在读操作中,DDR controller会截取一段DQS区间去采样,提前或延后了都会导致数据丢失,所以需要做这个操作,避免丢失数据。
5.5 RD DQ Calibration
作用是对齐读DDR时的DQS和DQ。使得在DDR controller侧,通过DQS能采样到有效的DQ,从而保证DDR controller能够正确接收到数据。
5.6 Write Leveling
作用是对齐CK和DQS,因为在fly-by拓扑中,DDR颗粒间接收到的CK是有偏差的,为了消除这个偏差,则需要做Write Leveling操作,使得CK和DQS到达每个DDR颗粒都是对齐的。
5.7 DQS-DQ Training
作用是对齐DQS和DQ,因为在写操作时,DQ是通过DQS采样的,所以需要将DQS的边沿对齐到DQ中心,从而保证DQ能稳定被采样到。
5.8 DQ Vref Training
作用同样也是寻找一个合适的参考电压,在该参考电压下能获得最宽的眼图。通常是配置 DQS-DQ Training使用,这两个training步骤可以找到DQ的眼图中心,提高数据采样的稳定性。
6. 应用场景
LPDDR在SoC系统上作为一个从设备,在同一个总线上的Master(具备主动发起访存能力)设备都能够对 LPDDR发起读写访问,所以其作用也具备多样性。
1. 运行大型的软件系统;
2. 运行时异常log的临时存储;
3. 通过PCIe映射给Host使用。

,感谢阅读,如果喜欢感谢三连。
相关文章:MBIST学习和验证笔记

