一种用于TLC闪存的速率兼容LDPC码

2020-07-14 01:36:21郏宏鑫郭锐
软件导刊 2020年1期

郏宏鑫 郭锐

摘 要:TLC闪存存储单元随着擦写次数不断增加,错误概率快速增大。基于TLC闪存信道结构,利用原模图LDPC码字扩展以及变量节点与TLC闪存存储页匹配关系,提出了一种速率兼容原模图LDPC码,所设计的速率兼容原模图LDPC码在保持信息位长度相同情况下,可实现可变码率,能够适应TLC闪存擦除次数增多而导致的不同纠错能力需求情况,编译码时只需一对LDPC编码器/译码器即可灵活处理所有码率,从而提高编码器/译码器的硬件利用率。仿真结果表明,所提出的速率兼容原模图LDPC码优于未经过逻辑页匹配的速率兼容原模图LDPC码,当误码率为10-4、码率分别为0.90、0.82、0.75时,所提出的速率兼容原模图LDPC码信噪比性能比基于PEG算法的非规则LDPC码均提高0.2dB以上。

关键词:TLC闪存;原模图LDPC;速率兼容

DOI: 10. 11907/rjdk.191473

开放科学(资源服务)标识码(OSID):

中图分类号:TP393

文献标识码:A

文章编号:1672-7800(2020)001-0242-06

0 引言

三层单元(Triple Level CeIl,TLC)闪存产品存储容量大且价格便宜,在闪存市场应用广泛。但相比于高速且低错误率的NAND闪存产品如SLC、MLC闪存,其读取速率较慢且擦写寿命较短,性能主要受闪存单元中的错误制约。因此,设计有效的纠错方案是提高数据存储可靠性、延长闪存产品寿命的有效方法[1]。目前,TLC闪存纠错码主要使用低密度奇偶校验码,该码被认为足以确保TLC闪存的数据可靠性[2]。而基于原模图的低密度奇偶校验码( Proto-graph LDPC,P-LDPC)是准循环的LDPC码,扩展后校验矩阵保持基础原模图特性,在加性高斯白噪声( AdditiveWhite G aussian Noise,AWCN)信道和部分响应信道中显示出比普通LDPC码更好的性能[3-4]。

基于原模图LDPC的闪存纠错技术越来越受到人们的关注。文献[5]研究了TLC闪存错误模式和错误特征,分析了TLC闪存错误的状态相关性和比特错误特性,但没有提出有效的错误容忍方案解决闪存错误带来的数据存储可靠性问题;文献[6]将原模图LDPC码用于TLC闪存纠错,分析了TLC闪存结构,但由于闪存逻辑页错误会随着闪存使用次数增加而不断增加,所提出的LDPC码仅针对单一错误情况进行设计,码率固定并且硬件利用率不高,从而导致一定的性能浪费;文献[7-9]研究了速率兼容原模图LDPC的实际应用,但是这些码的测试信道都不是TLC闪存信道。因此,本文通过分析TLC闪存信道存储单元逻辑页与原模图变量节点度的对应关系,使用P-EXIT和代码扩展的方法为TLC闪存提出一种速率兼容原模图LDPC码,在分析TLC闪存工作错误原理的基础上,设计一种基于TLC闪存逻辑页匹配的速率兼容原模图(Rate Com -patible Protograph LDPC,RCP-LDPC)码,其码率可变只需一对编码器/解码器即可完成编译码工作[10]。

1 TLC闪存信道分析

1.1 TLC闪存工作原理

TLC闪存通过绝缘层存储二进制信息。当数据被写入或擦除时,TLC闪存芯片中的基本存储单元电子会被不断注入和去除。在绝缘层中的场效应晶体管两端加上强偏电压,可以得到强电场从而产生电子隧道击穿效应,这会影响闪存存储单元中隧道氧化层的导电能力。随着基本TLC存储器单元中的数据被重复擦除和写入,绝缘层的损失将累积,并且隧道氧化物层的绝缘性能将继续恶化,这会导致电荷俘获的发生并影响闪存单元的阈值电压。当闪存读取数据时,将存储单元的电压与阈值电压的相对值进行比较,以确定存储的数据信息[11]。因此,在重写新数据之前,TLC闪存必须擦除数据以进行初始化。TLC闪存的每一个存储单元存在使用过程中为了满足不同电压状态需要主控芯片施加不同的电压,由于只有达到阈值电压才算数据写入完成,因此需要较长时间才能完成。而电子可能会在绝缘层产生滞留,因此随着TLC的使用时间变长,每一次想达到阈值电压都需要更长的时间和更高的电压值。随着擦除周期的加快,隧道氧化层中陷阱捕获电荷的量将改变,并且损耗的逐渐累积最终导致读取数据错误。当闪存芯片的错误率超过TLC闪存错误纠正器的纠错能力时,就达到其使用寿命。另外,如果基本存储单元的门限电压发生了变化,相邻存储单元的门限电压也受到其寄生电容的影响,从而出现错误率增加的情况[12]。

1.2 TLC闪存信道分析

在TLC闪存中,每个闪存单元保存3个二进制位表示的8个符号之一。最左边的位称为最高有效位(Most Sig-nificant Bit.MSB),中间的位称为中央有效位(Central Sig-nificant Bit,CSB),最右边的位称为最低有效位(Least Sig-nificant Bit,LSB)。MSB、CSB、LSB位在闪存操作中会将其视为3个逻辑页(Logical Page)分别对应MSB页、CSB页、LSB页。这3个页由同一个字线控制,如图1所示。在闪存读取操作时,会有7种阈值电压,见图1中的V1 - V7,其中V1到V7的电压依次增加,特别地V0=-∞,V8=+∞。

图1显示,符号‘101一‘001存在可能引起MSB误差的相邻区域,在符号‘110一‘100、‘000一‘010存在可能引起CSB误差的相邻区域,在符号‘111一‘110、‘100一‘101、‘001一‘000、‘010一‘011存在可能引起LSB误差的相邻区域。文献[2]指出相邻的存储单元状态较容易发生转移,跨越中间状态转移到其它状态需要捕获较多的额外电子较为因难;文献[13]通过FPGA实验平台模拟了TLC闪存逻辑页的错误情况如图2所示。图2说明了MSB、CSB、LSB錯误会随着闪存读写次数的增加而增加,并且MSB、CSB、LSB所在逻辑页错误呈现不平衡分布,可以看到LSB的错误率显然高于CSB和MSB.CSB的错误率高于MSB。由于闪存错误会使存储单元的电子分布产生变化,具有较少电子的存储单元状态容易向具有较多电子的存储单元状态发生转变,并且跨越中间状态转变要比转变到相邻存储状态转变捕获的额外电子多,转变难度更大。出现MSB错误所需捕获的电子数最多、电压差最大,CSB错误其次,LSB错误所需的额外电子数目最少。因此,随着读写次数的增加,LSB的错误数要比MSB、CSB增加很多,这也符合图1描述中的符号电平分布规律。

2 基于TLC闪存信道的RCP-LDPC码设计

2.1 原模图变量节点与MSB、CSB、LSB对应分析

其中,bij表示原模图的变量节点连接到校验节点的平行边数目,原模图基础矩阵B可以通过n次扩展操作并且进行多重边重分配得到原模图LDPC码的校验矩阵%。生成的校验矩阵可以享有基础矩阵的优异特性。经过n次扩展置换后可以获得长度为nP的编码矩阵%,其变量节点可以按照长度n分成P个矩阵块,每个矩阵块中包含相同类型的变量节点。原模图不同的置换方式将影响各矩阵分块中变量节点度的分布,从而影响校验矩阵H的性能。由于TLC闪存随着擦写次数增加,MSB、CSB、LSB存在不平衡的错误,而原模图变量节点的度又反映了变量节点参与校验方程的程度而影响到其纠错能力,因此,找到合适的原模图变量节点度与闪存逻辑页的匹配将会改善TLC闪存的纠错性能。

为了便于描述变量节点与TLC闪存逻辑页之间的关系,引入群置换Q,群置换Q表示原模图矩阵块之间顺序的交换,例如置换Q(654321)表示将原来下标顺序为123456对应成下标为654321所代表的值,例如式(1)中原模图的置换。

由于LSB的出错率大于CSB和MSB.且CSB要大于MSB,可以令原模图变量节点构成矩阵块的左部分、中间部分、右部分依次对应MSB、CSB、LSB,由于不同的置换群Q将影响原模图变量节点度分布从而影响TLC闪存的纠错性能,对应过程表示成图4所示,因此找到适合的置换方式十分重要。

2.2 RCP-LDPC码设计

设计性能良好的原模图码需要具备以下两个特征:①低迭代解码阈值:原模图变量节点度分布应包含至少一个非常高度的变量节点和一定数量度为2的变量节点[14-15];②线性最小距离增长:具有大于或等于3变量节点度的原模图自动具有这样的属性[16]。如果其结构里包含了度数为2的节点,文献[3]提出了一种解决方案,该解决方案要求原模图中2度节点的最大数量要小于等于校验节点总数的值减1,并且在这些2度变量节点之间既不应有平行边也不应有短循环的存在[17],这样就可以满足线性最小距离增长。

为了设计适合于TLC闪存的速率兼容原模图LDPC码,可以先以码率为0.5的基础矩阵开始,这里以文献[5]里的速率0.5矩阵为基础,由于其矩阵中存在2个相同的度为3的变量节点,置换表示存在重复可能,考虑原模线性最小距离增长特性,对原模图矩阵变量进行修改,得到0.5码率的原模图基础矩阵见式(5),该原模图包含有两个度为2的变量节点和一个度为8的高度变量节点,其中校验节点的个数为3,满足小于等于校验节点数目减1的条件。由于LSB的错误率比MSB和CSB大,CSB的错误率比LSB大,且呈现一定程度的不平衡关系。且高度变量节点扩展后与校验节点之间的关系复杂,纠错能力强的可能性更高,因此首先让未经过匹配的原模图分三块排列,变量节点块度高的矩阵块对应MSB、变量节点块度低的矩阵块对应LSB,剩下的变量节点块对应CSB。通过不同的群置换Q匹配,其中Q匹配需要满足一定的条件。最左侧对应原模图变量节点度最大所在列2,最右侧对应原模图变量节点度最小所在列,即Q (IXXXX6)形式,易知满足这种形式的共有24种,例如随机置换Q (132546)得到的用于速率兼容的基础原模图码见式(6)。如果直接对这么多种置换形式分别进行代码扩展,计算量将非常庞大,与传统LDPC码类似,原模图LDPC码的纠错性能还可以通过分析其纠错门限值预测纠错性能。通常,门限值越低,纠错性能越优异,而原模图LDPC门限值分析需要专门为原模图设计的P_EXIT[18]方法。

用P-EXIT计算原模图门限值过程如下:给定一个原模图基础矩阵为B=(bij),其中bij对应第i行第j列的元素,首先明确原模图中的5种互信息:IEv(i,j)表示变量节点j传递给校验节点i的LLR信息与变量节点i之间的外

如果对于所有的j,均有IA。(j)=1,则此时的信噪比为该原模图LDPC码在此信道下的门限值,否则返回至第二步继续迭代,当达到之前设定的迭代次数时则增大信噪比,直到求出门限值为止。P-EXIT分析各种置换得到的门限表于表1中给出,由于置换数目众多表1中只给出了几个典型的匹配门限值。表中分析得到具有最低解码门限值的原模图见式(7),选择该矩阵作为速率兼容原模图母码,相应的置换为Q (142356)。

由于原模图基于母码扩展后仍可以保持原模图母码的特性。对于TLC闪存,通过将速率0.5原模图母码添加一定数目的列向量,即增加变量节点数目的方法将原模图扩展到高码率,新添加的变量节点度保证原模图满足线性最小距离增长和低迭代解码阈值条件,得到的原模图如式(8)所示。

此时原模图的码率为0.9。其中n M,nC,nL是分别对应到MSB、CSB、LSB页面添加的新变量节点的数量,速率扩展到0.9码率的原模图也具有原模图母码的线性最小距离增长和低迭代解码阈值特性。基于码率为0.9的原模图,本文遵循文献[20]的方法保持信息位长度相同,即变量节点数减去校验节点的值相同,仅改变扩展后LDPC码字的长度,通过添加相同数量的变量节点和校验节点,可以得到一系列码率低于0.9的原模图,相应的码率为27/(30+N),其中N指新添加2种节点数量,通过添加不同的校验节点和变量节点数目,可以得到一系列码率低于0.9的速率自适应原模图。它们信息节点的长度都为27n(n为原模图扩展次数)。如构建码率为0.82的原模图,可以在B0.9基础上额外添加3个变量节点和校验检点,新添加的第1个变量节点对应到MSB,第2个变量节点对应到CSB,第3个变量节点对应到LSB,限制最大平行边数为2来简化搜索过程,通过P-EXIT分析可得到码率0.82原模图的原模图结构为:

其中,添加的全零子矩阵和对角子矩阵确保速率0.82的原模图码的前导奇偶校验位与速率0.9码的前导奇偶校验位相同。同样,可以获得速率为0.75的代码。通过这种方式,得到速率为0.9、0.82、0.75的RCP-LDPC碼,它们具有相同的信息位长k=27n。矩阵最后几列存在几个度为1的变量节点,但这些变量节点没有连接到同一个校验节点构成环,因此它们能够被可靠译码。此外,RCP-LDPC码可以使用基于速率为0.75的编码器和解码器进行编码和解码,提高了硬件利用率。

3 RCP-LDPC仿真分析

對本文提出的RCP-LDPC码进行仿真分析,主要分析码字的误码性能。构造出的RCP-LDPC码率分别为0.90、0.82、0.75,信息位长分别设置为3 072和6 144,在TLC闪存信道(近似为AWCN信道)下进行3次仿真实验以综合评估性能。仿真帧率设置10 000,信息位码长3 072的仿真结果如图5所示。

由图5可知,在误码率为10-4时,速率0.90、0.82、0.75对应的信噪比分别为4.98dB、3.96dB、2.88dB。在信噪比为4dB时,码率0.75的RCP-LDPC误码率约为1.5×10-7,码率0.82的RCP-LDPC误码率约为1×10-4,而码率0.9的RCP-LDPC误码率为1.7×10-3,在信噪比为6dB时,速率0.9 RCP-LDPC误码率达到1×10-6

对于TLC闪存信道,由对应式(6)随机匹配的原模图生成的RCP-LDPC码和基于PEG算法的非规则LDPC码以及对应式(7)的原模图生成的RCP-LDPC码进行相应码率的对比仿真,信息位码长3 072的仿真结果如图6-图8所示、信息位码长6 144的仿真结果如图9-图11所示。

由以上仿真结果可以看出,对于不同信息位长,在TLC闪存信道中所提出的式(5)对应的RCP-LDPC码在码率分别为0.90、0.82和0.75时均比式(6)对应的随机匹配RCP-LDPC码和非规则LDPC码获得了更好误码率性能。信息位码长3072、误码率为10-4时,本文RCP-LDPC码相比于基于PEG算法的非规则LDPC码获得的增益统计如表2所示。

4 结语

本文基于码字扩展方法提出了适合TLC闪存信道的RCP-LDPC码。所提出的原模图码信息字长相同且具有0.90、0.82、0.75等码率,可以动态地适应TLC闪存不同使用时段的出错状况。RCP-LDPC码继承了原模图母码低迭代解码阈值和线性最小距离增长的优点,同时有优于基于PEG算法的非规则LDPC码误码率性能和更快纠错收敛速度。仿真结果表明,本文RCP-LDPC码在误码率为10-4时,各码率信噪比性能相比基于PEC算法的非规则LDPC码均提高了0.2dB以上。

参考文献:

[1]

WONG G.SSD market overvieW[Ml//Inside Solid State Drives (SS-Ds). Dordrecht: Springer, 2013.

[2]

NAKAMURA T,DECUCHI Y,TAKEUCHI K.AEP-LDPC ECC witherror dispersion coding for burst error reduction of 2D and 3D NANDflash memories[C].Monterey: 2017 IEEE International Memory Work-shop (IMW).2017.

[3]

FANGY,BI G,GUANY L,et al.A survey on protograph LDPC codesand their applications [J]. IEEE Communications Surveys&Tutori-als, 2015, 17(4):1989-2016.

[4]

VAN NGUYEN T. NOSRATINIA A . DIVSALAR D.Protograph-basedLDPC codes for partial response channels [ C ] . 2012 IEEE Internation-al Conference on Communications ( ICC ) , 2012 : 2166-2170.

[5] 阳小珊 .朱立谷 ,张猛 ,等 . NAND闪存编程干扰错误研究 [J] .中国传媒大学学报 : 自然科学版 , 2018 ( 3 ) : 3.

[6]

YAAKOBI E , CRUPP L. SWANSON S, et al. Error-correcting codesfor TLC flash [D]. San Diego: University of California San Diego,2011.

[7]

ZHONC X.CAI K, CHEN P, et al. Rate-compatible protograph LDPCcodes for spin-torque transfer magnetic random access memory (STT-MRAM) [C]. 2018 Asia-Pacific Magnetic Recording Confer-ence.2018.

[8]

CHEN P, CAI K. ZHENC S. Rate-adaptive protograph LDPC codesfor Multi-Level-Cell NAND flash memory [ J] . IEEE CommunicationsLetters.2018.22( 6) : 1112-11 15.

[9]

CHEN C, WANG L. LIU S. The design of protograph LDPC codes assource codes in a JSCC system [J]. IEEE Communications Letters,2018,22(4) : 672-675.