DDR5是DRAM的下一个发展,带来了一系列旨在提高可靠性,可用性和可维护性(RAS)的新功能。降低功率;并大大提高性能。 DDR4和DDR5之间的一些主要功能差异如下:
By Randall Rooney and Neal Koyle
本白皮书是Micron(镁光)早期DDR5白皮书“Micron®DDR5 SDRAM的介绍:不仅仅是一代更新”的后续内容,该白皮书着重介绍了第五代双倍数据速率(DDR5)SDRAM关键的关键特性,这些特性可提供出色的性能DDR4的改进。在本文中,我们提供了与上一代SDRAM相比改进的性能,RAS和易于实现的更多详细信息。
Performance
Overall Bank Increase
当存储器密度增加时,需要扩展存储体的数量以解决增加的存储器密度。 DDR5标准使银行组数量增加了一倍,而每个银行组的银行数量保持不变。通过允许在任何给定时间打开更多页面,并通过增加高页面点击率的统计概率,可以提高整体系统效率。
在特定银行组访问范围内,银行组到银行组交错定时访问比银行到银行短。这些时序参数具有“长”时序定义(tCCD_L,tWTR_L,tRRD_L)和“短”时序定义(tCCD_S,tWTR_S,tRRD_S)。较长的时间是指银行组内的银行到银行,而较短的时间是指访问不同的银行组(如图1所示)。为了提供一些观点,tCCD_L可以接近tCCD_S的两倍。增加的银行组通过增加使用短时间的可能性来减轻内部时间限制。
Figure 1: DDR5 Bank/Bank Group Timings
Data Burst Length Increase
DDR5 SDRAM的默认突发长度从BL8(在DDR4上可以看到)增加到BL16,并提高了命令/地址和数据总线的效率。现在,相同的读取或写入CA总线事务可以在数据总线上提供两倍的数据,同时限制了同一存储库中IO /阵列时序约束的暴露。减少访问给定数据量所需的命令,还可以改善读写访问的电源配置文件。
突发长度的增加还减少了访问同一64B高速缓存行数据有效负载所需的IO数量。默认突发长度的增加为DDR5 DIMM体系结构启用了一个双子通道(如图2所示),从而增加了总体通道并发性,灵活性和数量。对于使用128B高速缓存行数据有效负载的系统,DDR5添加了专门针对x4配置的设备的32位突发长度选项。这进一步改善了命令/地址,数据总线效率和总体功率分布。
Figure: 2: Simplified DDR5 40-Pin Sub-Channel DIMM Example
Refresh Commands
除了DDR5和早期DDR SDRAM产品上可用的标准ALL-BANK REFRESH命令(REFab)外,DDR5还引入了SAME-BANK REFRESH(REFsb)命令。发出REFsb命令时,REFsb命令以所有存储体组中的相同存储体为目标,这由存储体位通过命令/地址位指定。
SDRAM设备上的REFRESH命令要求在发出命令之前,目标为刷新的存储体处于空闲状态(预充电,无数据活动),并且这些存储体在REFRESH命令期间(时序参数tRFC)无法恢复后续的写入和读取活动。 。 REFRESH命令以平均周期性间隔(时序参数tREFI)发出。对于REFab命令,系统必须确保在发出命令之前所有存储区都处于空闲状态,在“正常”刷新模式下平均每3.9µs一次,对于16Gb DDR5 SDRAM器件,其持续时间为295ns。
REFsb命令的性能优势在于,在发出命令之前,每个存储体组中只有一个存储体需要空闲。发出REFsb命令时,剩下的12个存储体(对于16Gb x4 / x8设备;图3中的蓝色单元)不必处于空闲状态,并且对非刷新存储体的唯一时序约束是相同存储体刷新-激活延迟(时序参数tREFSBRD)。只能以细粒度刷新(FGR)模式发出REFsb命令,这意味着每个存储体平均必须每1.95µs接收一次REFRESH命令。对于16Gb DDR5 SDRAM器件,REFsb持续时间仅为130ns,这也将系统访问锁定(tRFCsb)减少为主动刷新存储体(图3中的红色单元)。使用REFsb时的一个限制是,每个“相同存储体”必须在发出第二个REFsb命令之前必须收到一个REFsb命令,但是REFsb命令可以以任何存储体顺序发出。
图3:DDR5 REFsb Bank映射
根据读/写命令的比率,仿真表明,与REFsb相比,使用REFsb时,系统性能吞吐量提高了6%至9%,如图4所示。此外,REFsb将刷新影响从11.2ns降低到平均空闲等待时间至5.0ns,如表1所示。计算基于标准排队理论,适用于具有随机驱动数据流量的单个存储区。
图4:DDR5系统吞吐量性能改进
Refresh Adder to Average Idle Latency | |
REFab | 11.2ns |
REFsb | 5.0ns |
Table 1: DDR5 Average Idle Latency Adder
Performance Improvement
利用上述功能(2个存储体,2个存储体组,BL16和相同的存储体刷新)并模拟64B随机访问工作负载,与DDR4双列模块3200 MT / s相比,性能得到了显着提高,如图5所示。在这种情况下,我们假设每个系统和1DPC八个通道。
图5:按速度/模块等级的DDR5性能提升
可靠性,可用性和可维护性(RAS)
纠错码(ECC)
诸如片上ECC之类的RAS改进通过在从DDR5器件输出数据之前在READ命令期间执行校正来减轻了系统错误校正的负担。 DDR5 SDRAM ECC实现为单纠错(SEC),将128个数据位与8个奇偶校验位配对以形成136位代码字,并在WRITE命令期间存储在DRAM中。在对该地址的后续READ命令期间,将基于136位计算校正子,纠正可能发生的任何一位错误。
DDR5设计使用汉明码实现ECC,其中数据位按象限排列以与系统级纠错范围一致。由于具有128个数据位的8个奇偶校验位不允许进行双位检测,因此汉明码将对一个象限中的两个错误位的“校正子”位“别名”为另一个象限,或者为“未使用”的数据位。这意味着象限1和/或2中的两个错误位将别名为象限3或4,或未使用
数据位。同样,象限3和/或4中的两个错误位将别名为象限1或2,或未使用的数据位。这使得错误仍然会出现,因为系统级错误纠正的两位失败。
DDR5 SDRAM ECC的另一个功能是错误检查和清理(ECS)功能。 ECS功能是读取内部数据并在发生错误时写回更正的数据。可以将ECS用作由多用途命令(MPC)发起的手动功能,或者DDR5 SDRAM可以在自动模式下运行ECS,其中DRAM根据需要调度并执行ECS命令以完成数据的完整清理建议的24小时内,将数组中的位保留下来。在完成全阵列清理后,DDR5报告清理期间纠正的错误数(一旦错误计数超过最小失败阈值),并报告错误数最高的行,最低阈值。
PPR增强
打包后修复(PPR)分为两个单独的修复功能,即hPPR(硬)和sPPR(软),可以将其更好地描述为永久性修复(hPPR)和临时性修复(sPPR)。 hPPR在电源重启时是非易失性的,而sPPR不是。
DDR4 SDRAM定义每个存储体有几行,称为关联行,在sPPR事件之前需要对其进行备份。 sPPR的一项重要DDR5增强功能是减少执行sPPR修复之前需要备份的行。 DDR5仅需要将要进行sPPR的存储区中的一个目标行。这样可以最大程度地减少备份和存储大量信息所需的系统时间,通常在每行数据约2µs的范围内。
PPR的另一个关键功能是能够跟踪资源可用性。在启动时,每个DRAM设备将确定每个存储体中PPR资源的可用性,然后设置一组模式寄存器(MR54-57)来跟踪此信息。在使用多管芯3DS堆叠封装的情况下,将通过相同的模式寄存器跟踪多管芯3DS堆叠封装中的每个管芯。此增强功能使对任何给定已部署系统的内存基础的RAS功能的可见性得以增强。
简化实施
多用途命令(MPC)
DDR5器件上时钟频率的增加给在完成初始化和训练之前执行操作提出了挑战。为了解决这些挑战,开发了多功能命令(MPC)以执行接口初始化,训练和定期校准等功能。在较早的DDR SDRAM设备上,这些功能要么是单个命令,要么是模式寄存器设置。
当命令/地址总线包含MPC指令代码以及8个操作位时,将启动MPC功能,最多可以执行256个不同的功能。 MPC的默认模式设置是CS_n为LOW的多个时钟周期,其中命令/地址总线在整个多周期周期内保持恒定。这允许通过MPC输入并完成CS训练模式。一旦CS_n与CK对齐,MPC可以切换到单周期模式以提高操作效率。
除了执行初始化,训练和校准功能外,MPC还用于重置DLL,在2N和1N命令时序之间切换,PDA枚举编程和ID选择,设置片上端接的端接值以及配置DLL和其他阵列时序。
Conclusion
DDR5架构将增加美光凭借我们的DRAM解决方案为行业带来的价值。显着的性能改进(部分通过增加存储组,突发长度和更新同一个存储库而成为可能)将有助于满足下一代系统的严格要求,并降低总拥有成本。 DDR5片上错误纠正代码和封装后修复增强功能改善了系统RAS。最后,使用新的MULTIPURPOSE命令功能简化了内存管理的实现。
DDR5将为计算系统提供更多的可能性,令人兴奋,而Micron随时准备与系统架构师合作,帮助他们发挥这一新产品线的全部潜力。
Feature/Option | DDR4 | DDR5 | DDR5 Advantage |
---|---|---|---|
Data rates | 1600-3200 MT/s | 3200-6400 MT/s | Increases performance and bandwidth |
VDD/VDDQ/VPP | 1.2/1.2/2.5 | 1.1/1.1/1.8 | Lowers power |
Internal VREF | VREFDQ | VREFDQ, VREFCA, VREFCS | Improves voltage margins, reduces BOM costs |
Device densities | 2Gb-16Gb | 8Gb-64Gb | Enables larger monolithic devices |
Prefetch | 8n | 16n | Keeps the internal core clock low |
DQ receiver equalization | CTLE | DFE | Improves opening of the received DQ data eyes inside the DRAM |
Duty cycle adjustment (DCA) | None | DQS and DQ | Improves signaling on the transmitted DQ/DQS pins |
Internal DQS delay monitoring | None | DQS interval oscillator | Increases robustness against environmental changes |
On-die ECC | None | 128b+8b SEC, error check and scrub | Strengthens on-chip RAS |
CRC | Write | Read/Write | Strengthens system RAS by protecting read data |
Bank groups (BG)/banks | 4 BG x 4 banks (x4/x8) 2 BG x 4 banks (x16) | 8 BG x 2 banks (8Gb x4/x8) 4 BG x 2 banks (8Gb x16) 8 BG x 4 banks (16-64Gb x4/x8) 4 BG x 4 banks (16-64Gb x16) | Improves bandwidth/performance |
Command/address interface | ODT, CKE, ACT, RAS, CAS, WE, A<X:0> | CA<13:0> | Dramatically reduces the CA pin count |
ODT | DQ, DQS, DM/DBI | DQ, DQS, DM, CA bus | Improves signal integrity, reduces BOM costs |
Burst length | BL8 (and BL4) | BL16, BL32 (and BC8 OTF, BL32 OTF) | Allows 64B cache line fetch with only 1 DIMM subchannel. |
MIR (“mirror” pin) | None | Yes | Improves DIMM signaling |
Bus inversion | Data bus inversion (DBI) | Command/address inversion (CAI) | Reduces VDDQ noise on modules |
CA training, CS training | None | CA training, CS training | Improves timing margin on CA and CS pins |
Write leveling training modes | Yes | Improved | Compensates for unmatched DQ-DQS path |
Read training patterns | Possible with the MPR | Dedicated MRs for serial (userdefined), clock and LFSR -generated training patterns | Makes read timing margin more robust |
Mode registers | 7 x 17 bits | Up to 256 x 8 bits (LPDDR type read/write) | Provides room to expand |
PRECHARGE commands | All bank and per bank | All bank, per bank, and same bank | PREsb enables precharging-specific bank in each BG |
REFRESH commands | All bank | All bank and same bank | REFsb enables refreshing of specific bank in each BG |
Loopback mode | None | Yes | Enables testing of the DQ and DQS signaling |