DRAM经过25年发展从早期SDRAM升级到如今数据中心常见DDR4/5(DDR6标准已建立但尚未量产),每代次是如何优化的呢?
预取并行度是指一次数据传输过程中,内存控制器可以处理多少组数据。这个数字越大,表示内存系统可以一次性处理的数据量越多,从而提高数据吞吐量。
例如,DDR5的16n预取并行度(内存控制器双通道,8n/通道)意味着它可以一次处理16组数据,而DDR1只能处理一组数据。这种增加预取并行度的方法使得内存系统能够在保持核心速度不变的情况下,通过ping-ponging方式提高I/O速率,从而提高整体系统性能。
缓存行(Cache Line)大小驱动着整个行业的发展。具体来说:
不同预取量对应着不同传输效率,展开来看:
Prefetch 可以升级到x16或者更高,来优化传输带宽吗?
内存设计确实可以通过提高预取(prefetch)并行度来优化传输效率,但这并非没有限制。在考虑是否可以设计出更高并行度如x16的设备时,需要考虑几个关键因素:
因此,尽管理论上可以设计x16设备,但在实践中,考虑到上述限制,业界通常会选择更优化的方案,如增加通道数(比如DDR5中的两个独立的40位子通道),使用更先进的工艺节点来降低功耗和提高速度,或是采用其他类型的内存技术(如HBM,高带宽内存)来达到更高的带宽和效率,而不只是单纯增加单个设备的数据线数量。
相对于并行预取策略的高效,如何优化DRAM io 和系统 io 间的模型信号的相干性,是更底层的优化策略。
图中显示了信号反射对可靠数据传输的挑战,特别是在系统输入输出(I/O)方面。
图中左侧是一个模拟电路图,显示了信号反射的情况,右侧则是实际测量得到的眼图。眼图是一种用来评估数字通信系统中信号质量的方法,它可以帮助我们理解信号在经过长距离传输后受到噪声干扰的程度。图中可以看到,由于反射导致的符号间干扰(Inter-symbol interference, ISI)显著影响了可用的数据窗口(data eyes),这会降低系统的传输速率和可靠性。因此,解决这种问题成为了设计高速通信系统的一个重要技巧。
SDRAM--DDR1
SDRAM到DDR1的过渡过程,Transmeta Crusoe处理器作为第一个支持这两种类型的CPU。图中左边是PC-133 SDRAM的架构,右边是DDR1-400的架构。中间有一个小插图展示了一个Transmeta Crusoe CPU。在SDRAM中,数据、地址和时钟信号都是分开的,而在DDR1中,数据和数据 strobe是结合在一起的,而且还有终结电压(Termination Voltage)和寄生电容(CaC)。此外,DDR1还采用了线路末端终止(Line-end termination)技术来减少反射问题。
通过 数据 strobe、终结电压(Termination Voltage)、寄生电容(CaC)和线路末端终止(Line-end termination)技术 来优化SDRAM的信号质量。
DDR1--DDR2
Strobe Pair 是 DDR2 中的一种设计特性,用于减少不对称性错误。它由两个互补的信号 DQS 和 DQS# 组成,它们是差分信号,可以提高信号质量和稳定性。这个设计有助于改善数据传输的准确性和效率,并且在数据和脉冲线上使用了片上终接(On-die termination) 来减少传输线的反射。此外,DDR2也继续使用了T分支路由来进行寄生电容补偿(CaC)。
图中还包含了一个详细的内部缓冲器示意图,说明了如何通过开关(sw1、sw2、sw3)来控制终端电阻(Rival1、Rival2、Rival3),从而实现片上终接。
DDR2--DDR3
DDR3引入了命令敏感的ODT(Command-sensitive ODT),提高了信号质量,并且为数据和地址使用了不同的电压参考(Separate voltage references for data versus addresses)。
图中还包括一个内部电路图,显示了VREF_DQ和VREF_CA是如何连接到数据和地址/命令线上的。
DDR3--DDR4
DDR4引入了更精细的参考电压调整(Shmooing the reference voltage allows tighter calibration),并且图中包括了一个内部电路图,显示了VREF是如何连接到数据线上的。
在介绍当前主流DDR5之前,回顾下从SDRAM到DDR4整个系统优化过程,主要分为两个部分。