内存ODT匹配电阻 如何改善信号完整性的工作原理详解
内存ODT匹配电阻 如何改善信号完整性的工作原理详解
内存ODT(On-Die Termination)匹配电阻是改善信号完整性的重要技术。本文将从信号完整性的角度,深入解析ODT的工作原理,并探讨其在DDR内存中的演进过程。
ODT(On-Die Termination)是在内存芯片内部集成的终端电阻。当信号传输到内存芯片时,ODT会提供一个匹配的终端阻抗,用于吸收信号反射,减少信号干扰。
如果你看到这段解释ODT的文字后发蒙,你并不孤单。当年第一次看Intel Memory Training的文档时,我也非常不理解为什么在电路上串接一个电阻就能吸收信号反射,来改善信号完整性。而理解它,非常有助于掌握JEDEC内存训练过程中一个非常重要的环节。今天我们就一起来了解一下从信号完整性的角度解释一下ODT的作用原理,再一起来看一下ODT在DDR内存在各代的演进,以及布置一个思考题。注意下面的原理讲解,大家想要系统掌握的话,推荐这本书《信号完整性——深入理解高速数字电路设计》,非常通俗浅显易懂,又讲的很全面,相关知识可以在第三章和第四章找到。
信号的变化本质上是电压的变化,信号在传输线的专递也是电压在介质上的传递。我们信号传递不会瞬间在电路中传播,而是以接近光速的一半的速度(FR4)传播。由于这种传播速度非常快,我们通常无法观察到任何明显的延迟。然而,如果我们在纳秒级(十亿分之一秒)的时间尺度上观察电路,会发现一些有趣的现象:在开路的情况下,电流可能会暂时存在,而在短路的情况下,电压可能会暂时下降。
当信号施加到电路上时,电路上的寄生电容和寄生电感(即无功元件)会开始存储能量,电路会像一个瞬时电阻一样从脉冲源吸取电流。如果线路无限长,这种充电效应将持续下去,从信号源的角度来看,电路表现得就像一个电阻器一样。但是,在现实中,由于线路的长度有限,当信号施加后经过一段时间,充电过程会停止,这个时间长度取决于电路的物理长度和光速。由于线路能够暂时充当外加信号的负载,我们通常不再把它仅仅看作是一根电缆,而是称之为“传输线”。从纳秒级别的信号角度来看,所有电路都可以充当传输线,但这种效应持续的时间非常短,只有在线路非常长或脉冲持续时间非常短(即高频信号)时,才会注意到这些效应。我们通常可以把传输线看做一个很长的分节很细的并联电容(电容模型)。
1 开路传输线
当传输线末端开路的时候,信号电压在传输线上传播的时候,就像给一个个并联的电容充电,一节节像末尾穿过去,电荷在一节节电感正极传播,各个导线分节可以看做电荷中继的作用,这样一直到最后一节。最后一节还想向后传播的时候,后面开路了,灭有下一个了,信号的一部分就像碰到墙壁被反弹回来了:
反弹的信号会和原来的信号形成叠加,我们把这种情况称作信号的反射。这会让信号产生畸变,在示波器上看到是这样:
方波产生了一定的形变。那么如果我们把线路末端闭合,也就是短路,是不是就不会产生反射了呢?
2 短路传输线
末端短路的线路信号反射情况更加严重:
在信号还未传输到末端的时候,还和开路一样。
但末端的短路,会反向抵消正向的电荷,信号变形非常有严重:
3 正确端接的传输线
传输线的正确“终端”包括将电阻连接到线路的末端,以便脉冲在末端“看到”的阻抗量与沿线路长度传播时完全相同。终端电阻的目的是完全耗散脉冲的能量,以便不会有任何能量反射回源头。
方波非常好看,几乎完全抵消了反射:
那么这个电阻具体是多少,才能正确完全耗散电压,让信号比较纯净呢?
传输线有个“50 欧姆”额定值的传输线阻抗(来源见推荐书籍),这个末端的电阻的阻抗,需要完全抵消传输线阻抗,也就是50欧姆。
DDR的ODT
DDR的时候,为了信号的改善,DDR在DQ等信号上已经加入了终端电阻,这个电阻在主板上。
但随着DDR频率的提高,原来的方案出现了问题:虽然主板上的终端电阻器可以减少信号线上的一些反射,但却无法防止连接内存模组上Stub产生(传输线粗细也会产生反射,见推荐书籍)的反射。信号从内存控制器传播到 DRAM 时,会在模组上通向 DRAM 的Stub处遇到阻抗不连续性,从而在信号中引入不必要的噪声。随着数据传输速率的提高和Stub的加长,引入的噪声和随之而来的信号劣化问题会变得更加明显,而这种主板终端电阻无法解决这些问题。
ODT是在内存芯片内部集成的终端电阻,通过将终端电阻置于芯片本身而非主板上,线路中的不连续性所产生的反射将大大减少,从而产生更纯净的信号,实现更快的数据传输速率。
那么ODT是不是一个固定的电阻值呢?为什么内存Training的时候,还需要ODT Training呢?ODT 校准(ODT Training,ODT calibration)是一种校准终端阻抗的技术,目的是优化减少信号反射。ODT 校准可以建立一个最佳终端值,以补偿工艺和运行条件的变化。校准后的 ODT 值可显著减少不必要的信号反射,同时由于增加了电阻负载,信号摆幅的衰减也很小。由此产生的更纯净的数据信号可实现更高的数据传输速率。ODT 校准是通过建立一个与外部精密电阻成比例的 ODT 阻抗来实现的。同一外部电阻器也可用于输出驱动器校准。ODT 校准控制器将 ODT 电阻网络上的压降与外部电阻上的压降进行比较。控制器通过粗调和微调修改电阻网络,以获得与外部参考电阻非常接近的阻抗值。
DDR内存中的ODT阻抗可以用MRS(Mode Register Set),通过向内存发送特定的MRS命令,可以配置一组ODT(wr, nom,park)的阻抗值,具体见JEDEC Spec。ODT也在不断进化,如动态ODT,在更多信号(如CA、CS)上加入ODT,更是在DDR5取消了ODT引脚,用Cmd来发送ODT调节指令。有趣的是,因为传输线阻抗受温度影响,ODT补偿的时候,也需要根据运行时温度(一般上是越来越热的)来补偿ODT的阻抗,这个步骤通常是PCU来干的。
本文原文来自CSDN