什么是PPR
PPR,即Post Package Repair,封装后修复技术,是一种对封装后内存颗粒的故障进行修复的技术。为什么强调封装后呢?是因为更早期的时候这种技术是用于封装前的内存故障修复,即在wafer上对还未切割、封装的内存芯片进行修复。
最早在JEDEC DDR4 SDRAM标准中对PPR技术有比较规范的定义,允许SDRAM颗粒在发现内存故障后,对具体的某一个故障地址(Rank/BankGroup/Bank/Row)所在的行进行整行替换修复(Row Repair),所有SDRAM内存原厂要在每个BankGroup区域预留至少一个冗余行(Redundant Row)。当然,有些内存原厂预留的冗余空间会多于规范所要求的数量,甚至是每个Bank预留了1-2个冗余行,以用于内存故障修复替换。
PPR的修复方式主要分为hPPR(Hard PPR)和sPPR(Soft PPR),在JEDEC DDR5 SDRAM标准中新增了mPPR(MBIST PPR)的定义。在不同的场景下,根据需求选择不同的PPR模式,配合BMC、BIOS、OS实现一系列高级RAS特性。
Hard PPR
JEDEC标准中的定义,DDR5 SDRAM通过PPR修复技术,可以在一个BankGroup中修复替换至少一个行地址。hPPR修复资源使用记录可以记载在DRAM的模式寄存器之中(MR54/55/56/57),在实施PPR修复之前可以查询对应的MR寄存器获取修复资源使用情况。
值得注意的是,hPPR是一种永久性、不可逆的修复,通过高压熔断指定行的Electric-fuse,并将对应行地址重新映射到新的冗余行后,熔断丝无法重新回退到熔断前的状态。因此为了防止一些误操作导致非预期的修复动作发生,规范中要求控制器需要配置使能DRAM对应的模式寄存器并输入一串秘钥(sequential MRW guard key)才可以进入PPR模式。
PPR的修复主要是通过控制器对DRAM下发一系列的ACT、WRA、PRE命令组合,来完成整个修复过程,有兴趣的同学可以直接查看JEDEC规范,此处不再赘述。
Soft PPR
sPPR与hPPR的修复方式大体接近,不同的是sPPR是暂时性的而hPPR是永久性的修复,sPPR不会物理上熔断efuse,只是逻辑上的重映射,只要DRAM重置或者掉电,这个修复动作就会被复原。
sPPR的修复替换速度比hPPR更快,且修复动作不会被记录在对应的模式寄存器上,修复资源限制是每个BankGroup有一个冗余行(默认)或每个Bank有一个冗余行(可选)。
通过hPPR方式耗尽冗余行资源的BankGroup,无法再进行sPPR。对一个已耗尽冗余行资源的BankGroup发送修复命令序列,DRAM会忽略这次修复命令跳过修复。
mPPR
mPPR,Memory Build-In Self Test Post Package Repair,其中MBIST即内存内置自检技术,mPPR则是在MBIST完成后对发现的内存故障进行修复的技术,修复方式与hPPR/sPPR类同。
MBIST和mPPR是不同但相关联的两个阶段,主机控制器端通过对DRAM的模式寄存器MR23写入对应OP CODE并对模式寄存器MR24发送一串秘钥(GUARD KEY),进入MBIST流程,MBIST使用原厂提前预设的测试算法对DRAM进行测试并找出故障单元地址,MBIST完成后,主机控制器端读取模式寄存器MR22判断是否有故障被找到,并决定是否要进行mPPR,而mPPR完成后,也需要再次读取模式寄存器MR22确认修复状态,如果是“Fail Remain”状态,主机控制器端再进一步决策是否要继续进行新一轮的MBIST或mPPR。
mPPR的修复资源与hPPR/sPPR的修复资源不共用,相互独立。mPPR动作主要发生于内存上电初始化自检阶段,检测出故障并修复后,会立即将状态更新至模式寄存器MR22中。
结语
内存修复技术不算新技术,十几年前就被几大内存原厂应用于wafer级的修复,助力DRAM良率提升,存储阵列周边除了设计有冗余行,也设计有冗余列,即可以进行列地址的替换修复,修复方式除了电气熔断修复替换,还有激光修复的方式。从DDR4开始,PPR技术才正式在原厂下游开始应用,可以配合许多模块(BMC/BIOS等),构建更高级的检错、容错特性及故障预测预防系统,提高产品RAS能力。
本文参考资料:JESD79-5C.01_v1.31