一种针对NAND-Flash存储介质的LDPC码译码方法与流程

文档序号:15927985发布日期:2018-11-14 01:20阅读:225来源:国知局

本发明涉及通信技术领域,具体涉及一种针对nand-flash存储介质的ldpc码译码方法。

背景技术

ldpc(低密度奇偶校验,lowdensityparitycheck)码是在二十世纪六十年代由gallager首次提出的一种线性分组码,与turbo码相比,ldpc码在硬件实现上更为容易,而且其译码时延也更短。由于ldpc码是一种能够最大程度逼近香农极限性能的纠错码,所以该码目前已成为itu关于5g通信标准中选用的一类纠错码。

在ldpc码被提出的初期,尽管其在纠错上表现出了很好的性能,却并没有得到很好的发展,原因是当时的存储及计算能力存在限制。直到1996年,mackay与neal在前人所作成果的基础上进行总结,再从ldpc码的实际性能以及理论的角度出发,通过详细论述,来展示ldpc码确实是一种实用的好码。而且,在gallager研究的基础上,mackay与neal详细讨论了置信传播算法(beliefpropagation,bp)的具体实现方法。此成果在纠错编码领域中是里程碑式的,它大大推动了ldpc码的研究。后来经过20年的发展,ldpc码正在逐渐发挥着它的优势,在通信、存储和计算机等领域都起着不可或缺的作用。例如,在光纤通信、网络数据传输、深空通信和高速无线局域网通信等方面,ldpc码都起了重要的作用。

ldpc码的译码方法一般分为硬判决译码和软判决译码。硬判决译码通过对比特位进行翻转来实现纠错,它具有译码复杂度低、硬件实现简单的优点,但其缺点就是性能较差,在某些实际应用中不能达到预期的纠错性能。而软判决译码中有一种比较经典的译码算法,称为bp译码算法。bp译码算法及其在对数域上的llr-bp译码算法是以并行的方式进行译码的,其性能较硬判决译码算法有很大的提升,但译码复杂度也会随之增加。由于基于并行调度的译码算法在一次迭代中无法利用到本次迭代更新所得到的消息,因而其译码性能存在瓶颈,且收敛速度慢。针对这种情况,zhang以及hocevar等人各自提出了一种基于串行调度的译码算法,使得当前迭代所更新的信息可以立即传递出去用于后续的更新,使得译码收敛速度提升了一倍,同时拥有更低的误码平层。在基于串行调度的译码算法的基础上,为进一步加快收敛速度,并提升译码性能,近年来有人陆续提出了各种动态调度算法,但其优异的译码性能及快速的收敛速度却是以极高的译码复杂度为代价来换取的。

nand-flash是一种目前应用比较广泛的非易失性固态存储器,具有读写速度快、功耗低及体积轻巧等特点。根据一个存储单元内能够存储数据比特的位数的不同,nand-flash又可以分为slc、mlc、tlc以及qlc等类型。slc表示一个存储单元可以存储1个比特的数据,mlc表示一个存储单元可以存储2个比特的数据,tlc表示一个存储单元可以存储3个比特的数据,qlc表示一个存储单元可以存储4个比特的数据。随着技术的发展,nand-flash的存储容量越来越大,但与此同时,存储密度的提高使得各电压分布状态之间的交叠情况愈加严重,大大增加了存储单元之间的干扰,并使得nand-flash的噪声耐受能力大幅度下降。nand-flash中主要存在着存储单元之间的干扰噪声、编程噪声、随机电报噪声以及数据滞留噪声。因此,为了保证数据的可靠性,必须将纠错码应用于nand-flash存储系统中。随着nand-flash存储容量的增加,基于硬判决译码的bch码以及rs码的纠错能力已经远远不能满足系统对于译码性能的要求,因此,需要使用一种纠错能力强的码来将其应用于nand-flash闪存中。由于ldpc码具有优异的纠错性能,能够最大程度地逼近香农极限,并且具有较快的收敛速度以及较低的误码平层,因此,将ldpc码应用于nand-flash闪存,是针对目前闪存技术存储数据可靠性问题的主要解决手段,也是当前高密度存储领域的主要研究热点。

将ldpc码应用于nand-flash中,不仅要保证译码性能,也要满足nand-flash的具体应用场景。比如,需要满足高密度闪存的低时延、高吞吐量和低成本等方面的要求。因此,需要在译码性能与译码效率之间作出合理的权衡。



技术实现要素:

ldpc码的硬判决译码算法以及传统llr-bp并行译码算法的纠错性能并不够好,无法满足nand-flash在高存储密度下对于数据可靠性的要求。同时,由于动态调度译码算法的复杂度非常高,硬件实现难度大,完全不符合高密度闪存对于低时延以及高吞吐量的要求。

为了克服现有技术的缺陷,本发明提供一种针对nand-flash存储介质的ldpc码译码方法,对译码性能与译码复杂度作出权衡,以传统串行调度译码算法为基础,针对nand-flash的信道特点,提供一种针对nand-flash存储介质的基于变量节点消息预处理的ldpc码译码方法,使算法在译码初期能够集中计算资源,利用被认为是可靠的消息去更新被认为是不可靠的消息,同时对这些不可靠的消息进行封锁,阻止其参与到其他变量节点的更新过程中。这种译码方法可以加快算法的收敛速度,并提高译码性能。

针对上述技术问题,本发明是这样加以解决的:一种针对nand-flash存储介质的ldpc码译码方法,包括如下步骤:

s1.在nand-flash存储介质信道中,每个储存单元可能存在的各电压状态之间存在着重叠区域,且nand-flash存储介质信道的擦写次数越多,重叠区域就越明显,将电压值处于重叠区域内的存储单元筛选出来,并从每个存储单元中挑选出一位取值趋于不确定的比特,将这些比特所对应的变量节点记为模糊变量节点,并封锁模糊变量节点的v2c消息的传递,v2c消息指变量节点传递给校验节点的信息;同时,将处于重叠区域内的存储单元中没有被挑选出来的比特以及处于非重叠区域内的存储单元中的所有比特筛选出来,将这些比特所对应的变量节点归类为非模糊变量节点;

s2.根据与校验节点相连的模糊变量节点的个数来对校验节点的类别进行划分,具体为:没有连接任何模糊变量节点的这类校验节点称为0类校验节点,记为t0;连接了1个模糊变量节点的这类校验节点称为i类校验节点,记为t1;连接了2个模糊变量节点的这类校验节点称为ii类校验节点,记为t2;连接了n个(n≥3)模糊变量节点的这类校验节点称为n类校验节点,记为tn;

s3.基于校验节点类别,对模糊变量节点执行消息预处理操作:使用非模糊变量节点的消息来对模糊变量节点进行更新,直至所有模糊变量节点都转变成非模糊变量节点,并且可以产生被认为是可靠的消息时,消息预处理操作结束。经过消息预处理操作后,所有模糊变量节点被处理完毕,此时可认为它们已经变得足够可靠,因此可以使它们的消息得到传播,贡献到后续的迭代更新过程中。

s4.执行交替译码调度策略:首先对所有变量节点按顺序进行更新,并将更新前后llr值符号相反的变量节点划分为震荡变量节点,形成震荡变量节点集合,记为o;然后,对集合o中的变量节点进行顺序更新和译码;若译码失败并且尚未达到最大迭代次数,则清空集合o,并继续重复s4;若译码成功或达到最大迭代译码次数,则退出译码过程,译码结束。在步骤s4中,为了划分出震荡变量节点集合o,需要对每个变量节点进行检测:假设变量节点为vi,更新前的llr值为l(vi),更新后的llr值为l’(vi)。若l(vi)·l’(vi)<0,则表明该变量节点vi处于震荡状态,尚未达到收敛,因此需要将该类变量节点依次划分进集合o中,再按顺序对集合o中的所有变量节点进行更新。

本发明译码方法首先将模糊变量节点筛选出来,先封锁其消息的传递,降低译码复杂度,再对其进行更新,使其转变成非模糊变量节点,加快算法的收敛速度,并提高译码性能。

进一步地,所有模糊变量节点形成模糊变量节点集合v,所有非模糊变量节点形成非模糊变量节点v’;所述消息预处理操作的具体步骤如下:

s31.按顺序对集合v中的模糊变量节点进行循环搜索,只对连接着至少2个i类校验节点的模糊变量节点进行更新;经过更新后,模糊变量节点转变为非模糊变量节点,同时可以传递出被认为是可靠的消息,并将该变量节点从集合v中移除;重复s31,直至再也找不到符合本步骤更新条件的模糊变量节点;

s32.按顺序对集合v中的模糊变量节点进行循环搜索,只对连接着至少1个i类校验节点的模糊变量节点进行更新;经过更新后,将该变量节点从集合v中移除;若某个模糊变量节点所连接着的校验节点中,只含有1个i类校验节点,则该模糊变量节点在更新后将会向该i类校验节点传递被认为是不可靠的消息;为防止被认为是不可靠的消息的传递,需要将该模糊变量节点划分到集合v1中;重复s32,直至再也找不到符合本步骤更新条件的模糊变量节点;

s33.对集合v1中的每个变量节点进行更新,阻止在s32中产生的被认为是不可靠的v2c消息的传播,此时消息预处理操作完成。

进一步地,对模糊变量节点进行更新的具体步骤如下:

设模糊变量节点为vi,非模糊变量节点为v’,对所有i类校验节点c1j∈n’(vi),更新c2v消息其中n’(vi)表示与模糊变量节点vi相连的t1的集合,表示i类校验节点c1j传递给模糊变量节点vi的消息,c2v消息指校验节点传递给变量节点的信息,具体计算公式如下:

其中,n(c1j)\vi表示除了模糊变量节点vi外的所有与i类校验节点c1j相连的非模糊变量节点v’的集合,表示非模糊变量节点v’传递给i类校验节点c1j的v2c消息;

根据上述更新得到的c2v消息,求出模糊变量节点vi更新后的llr值:

其中,l’(vi)表示模糊变量节点vi更新后的llr值,表示模糊变量节点vi接收到的信道初始llr值,表示i类校验节点c1j传递给模糊变量节点vi的c2v消息;

与此同时,模糊变量节点vi更新与之连接的所有校验节点cj∈n(vi)的v2c消息:

其中,n(vi)\cj表示除了校验节点cj外所有与模糊变量节点vi相连的校验节点的集合,n(vi)表示所有与模糊变量节点vi相连的校验节点的集合。

进一步地,对非模糊变量节点进行更新的具体方法如下:

设变量节点为vk,对所有校验节点cl∈n(vk)更新消息其中n(vk)表示与变量节点vk相连的所有校验节点的集合,表示校验节点cl传递给变量节点vk的消息,具体计算公式如下:

其中,n(cl)\vk表示除变量节点vk外的所有与校验节点cl相连的变量节点v*的集合,表示变量节点v*传递给校验节点cl的v2c消息。

根据上一步所获得的c2v消息,通过(5)式求得变量节点vk更新后的llr值:

其中,n(vk)表示与变量节点vk相连的所有校验节点的集合,表示校验节点cl传递给模糊变量节点vk的c2v消息。

与此同时,变量节点vk传递给与之连接的所有校验节点cl∈n(vk)的v2c消息,通过以下式子进行计算:

其中,n(vk)\cj表示除了校验节点cj外所有与变量节点vi相连的校验节点的集合。利用上述对步骤s4中变量节点的具体更新方法,可以实现对所有变量节点的更新、对震荡变量节点集合o的划分以及对集合o的更新操作。

与现有技术相比,本发明的有益效果在于:

本发明充分利用了nand-flash信道的特点,针对落在重叠区域的部分变量节点的出错率较高的情况,将这一类变量节点划分进一个集合中,并将该类变量节点定义为模糊变量节点,相应的其他变量节点则定义为非模糊变量节点。非模糊变量节点的出错率非常低,因此可以将其看作是一类高度可靠的变量节点。在步骤s1中,模糊变量节点集合v中的所有变量节点的硬判决值都是趋于不确定的,即认为它们传递的消息是不可靠的,所以不允许这些模糊变量节点的消息发生传播。消息预处理方法利用被认为是可靠的非模糊变量节点的消息对模糊变量节点进行更新,同时在这个过程中完全禁止模糊变量节点的消息传播,只有当所有模糊变量节点都被更新并且已被认为是可靠的时候,才可以在后续的迭代中贡献出它们的消息。消息预处理方法结束后,随着迭代次数的增加,大部分变量节点都趋于稳定,而容易出错的变量节点都处于震荡状态,因此本发明提出交替译码调度策略,直接利用本次迭代的信息来进行震荡判断,准确地定位震荡节点,使其往正确的方向进行译码。通过消息预处理操作及交替译码调度策略,可以在原有译码方法的基础上显著地提升译码性能,加快译码收敛速度。

附图说明

图1是mlc类型的nand-flash各存储单元的电压分布概率密度曲线图。

图2是本发明译码方法的总体流程图。

图3基于模糊变量节点消息预处理的流程图。

图4(a)至(d)是本发明步骤s31中更新的示意图。

图5(a)至(d)是本发明步骤s32中更新的示意图。

图6(a)至(d)是本发明步骤s4中更新的示意图。

图7(a)至(d)是本发明对震荡变量节点进行顺序更新的示意图。

图8是0.9-(3780,3402)ldpc码的纠错性能对比。

图9是0.92-(8000,7360)ldpc码的纠错性能对比。

图10是0.92-(8000,7360)ldpc码的收敛性能对比。

具体实施方式

下面结合附图和具体实施方式对本发明进行详细说明。

vnbp-mp表示variable-node-basedbelief-propagationwithmessagepre-processing的缩写,表示“带消息预处理的基于变量节点的置信传播译码算法”,是本发明译码方法的简称。

mlc类型的nand-flash在擦写周期pe=15000、滞留时间系数t=1时的信道模型如图1所示,横坐标为阈值电压,纵坐标为概率密度,每条曲线分别代表各存储状态下的概率密度函数。在mlc类型的nand-flash中,每个存储单元存储两个比特的数据,因此可以表示四种数据存储状态,从低到高依次是:11(擦除态)、10(编程态)、00(编程态)以及01(编程态)。为了获得每个单元中存储着的2个比特的信息,本发明首先使用一组非均匀的读取电压——r1,r2,r3,r4,r5和r6来获得每个存储单元所处量化区域d1至d4。通过这组非均匀的读取电压,再结合(7)、(8)式,可以求得每个存储单元中高、低位比特所对应的变量节点的初始llr值,其中,分别表示状态为11、10、00及01的电压分布概率密度函数,分别用(9)、(10)、(11)、(12)式来表示:

其中,lmsb为高位比特所对应变量节点的初始llr值,llsb为低位比特所对应变量节点的初始llr值。

另外,v1,v2及vmax分别代表mlc类型的nand-flash中四个状态的阈值电压,对应状态的电压分布如图1所示。δvpp表示在对存储单元进行写入操作时,每次充电所充入的电压值。在mlcnand-flash中存储的数据遭受着各种噪声干扰,导致各电压状态的概率密度曲线也随着噪声的引入而发生改变。其中,分别表示11、10、00及01四个状态经受噪声干扰后得到的概率密度分布的标准差,分别表示四个状态的数据滞留噪声的概率密度分布的均值。另外,erf(x)为高斯误差函数,表达式如下:

根据图2所示的vnbp-mp译码方法的总体流程图,并结合图3所示的基于模糊变量节点消息预处理的流程图,vnbp-mp译码方法的具体步骤如下:

s1.对于每帧ldpc码字,通过非均匀读取电压,获得每个存储单元所处的量化区域,从电压分布概率密度函数可知存储单元中是否存在重叠区域,实际上重叠区域是一直存在的,在实验仿真中,当擦写次数为大约10000次之后,重叠区域会比较明显。通过从每个存储单元中挑选出一位取值趋于不确定的比特,将这些比特所对应的变量节点记为模糊变量节点,进而筛选出所有模糊变量节点,并将其划分进模糊变量节点集合v中,其他比特所对应的变量节点记为非模糊变量节点。在mlc类型的nand-flash中,模糊变量节点定义为处于图1中e1、e3区域中的低位比特以及处于图1中e2区域中的高位比特所对应的变量节点,而剩余的变量节点都被定义为非模糊变量节点。然后,根据每个变量节点所处的区域,利用(7),(8)式计算其初始llr信息值。

s2.根据存放在集合v中的模糊变量节点集合,可以对所有校验节点的类别进行判断,具体为:没有连接任何模糊变量节点的这类校验节点称为0类校验节点,记为t0;连接了1个模糊变量节点的这类校验节点称为i类校验节点,记为t1;连接了2个模糊变量节点的这类校验节点称为ii类校验节点,记为t2;连接了n个(n≥3)模糊变量节点的这类校验节点称为n类校验节点,记为tn;

s3.执行基于变量节点的消息预处理操作,如图3所示。其中,具体步骤如下:

s31.如图4(a)至(d)所示,黑色圆点表示模糊变量节点,白色圆点表示非模糊变量节点,方框表示校验节点c1至c5,下面的t0至t2表示校验节点的类型。首先按顺序对集合v中的变量节点进行循环搜索,当找到连接着至少2个i类校验节点相连的模糊变量节点时进行更新。如图4(a)和(b)中的v11,则利用(1)式更新所有属于i类的校验节点c1和c4传递给模糊变量节点v11的c2v消息然后利用(2)式来更新模糊变量节点v11的llr值l’(v11),最后再利用(3)式更新模糊变量节点v11传递给校验节点cj的v2c消息其中cj∈n(v11),n(v11)表示与模糊变量节点v11相连的所有校验节点。此时,模糊变量节点v11转变为非模糊变量节点,与之相连的所有校验节点的类别发生改变,属于i类的校验节点c1和c4变为属于0类校验节点,属于ii类的校验节点c3变为属于i类校验节点。然后搜索到下个模糊变量节点v12时,v12从更新v11前不符合本步骤更新条件变为符合,所以也要对v12进行与v11相同步骤的更新,间图4(c)和(d),更新后,属于i类的校验节点c2和c3变为属于0类校验节点,属于ii类的校验节点c5变为属于i类校验节点。重复s31,直至再也找不到符合本步骤更新条件的模糊变量节点。

s32.接下来,如图5(a)至(d)所示,当找到连接着至少1个i类校验节点的模糊变量节点时,如图5(a)和(b)中所示的v21,则利用(1)式更新所有属于i类的校验节点c1传递给模糊变量节点v21的c2v消息然后利用(2)式来更新模糊变量节点v21的llr值l’(v21),最后再利用(3)式更新模糊变量节点v21传递给校验节点cj的v2c消息其中cj∈n(v21),n(v21)表示与模糊变量节点v21相连的所有校验节点,。此时,与之相连的所有校验节点的类别发生改变,属于ii类的校验节点c3和c5变为属于i类校验节点,属于i类的校验节点c1变为属于0类校验节点。校验节点类别的变化保证了这种搜索方式可以一直找到符合条件的模糊变量节点,直至所有模糊变量节点恰好都能被更新到。当所有模糊变量节点被更新完毕时,所有校验节点都变成0类。若在步骤s32的更新过程中找到的模糊变量节点只连接着1个i类校验节点,如图5(c)和(d)中的v22,在v21更新后,c3的类型变成i类,所以v22变成了只连接着1个i类校验节点的模糊变量节点。对于v22,根据式(3),v22传递给ii类及n类校验节点的v2c信息可以接收到来自i类校验节点传递出的被认为是可靠的c2v信息,而v22传递给i类校验节点的v2c信息在式(3)的更新中是不能接收到其他i类校验节点传递给v22的被认为是可靠的c2v信息,所以将被认为是不可靠的,因此需要将v22更新后再划分进集合v1中,并在后续步骤s33中对集合v1中所有会产生被认为是不可靠的v2c信息的变量节点进行处理。在图5(b)至(d)中,带有水平条纹的圆点表示集合v1中的变量节点。重复步骤s32,直至再也找不到符合以上条件的模糊变量节点。当步骤s32结束时,所有会产生被认为是不可靠的v2c消息的变量节点都已划分进集合v1中。

s33.将集合v1中的变量节点记为v3i。利用(4)式更新校验节点cj传递给变量节点v3i的c2v消息其中cj∈n(v3i),n(v3i)表示与变量节点v3i相连的所有校验节点,,c2v消息指校验节点传递给变量节点的信息。然后利用(5)式来更新变量节点v3i的llr值l’(v3i),最后再利用(6)式更新变量节点v3i传递给校验节点cj的v2c消息此时,基于变量节点的消息预处理操作完成,原本处于集合v中的模糊变量节点都可以在后续的更新中贡献出它们被认为是可靠的消息。

s4.执行交替译码调度策略。对所有变量节点进行顺序更新,具体更新过程如图6(a)至(d)所示。首先,图6(a)所示的利用(4)式更新校验节点cj传递给变量节点v1的c2v消息其中cj∈n(v1),n(v1)表示与变量节点v1相连的所有校验节点c1、c3和c4。然后利用(5)式来更新变量节点v1的llr值l’(v1),若符号与上一次更新的llr值l(v1)相反,则标记为震荡变量节点,并将其划分进集合o中。最后如图6(b)再利用(6)式更新变量节点v1传递给校验节点cj的v2c消息如图6(c)至(d)中的变量节点v2,它在实施如同v1的更新过程中得到的llr值的符号与上一次更新的llr值的符号相反,所以将v2标记为震荡变量节点,在图6(d)中用带有垂直条纹的圆点表示,并划分在集合o中。当所有变量节点都被更新一次后,再对集合o中所有震荡变量节点进行顺序更新,如图7(a)至(d)所示。以vo1为例,分别对其应用(4)、(5)、(6)式去更新其相应的l’(vo1)以及值,其中cj∈n(vo1),n(vo1)表示与变量节点vo1相连的所有校验节点。对vo2也执行相同的更新操作,直至震荡变量节点全部更新完毕,最后清空集合o。重复步骤s4,即重复以上对所有变量节点以及震荡变量节点集合o的交替译码调度策略,直至译码成功或达到最大迭代次数,本发明所提出的译码方法的具体步骤到此结束。

本发明所提出的vnbp-mp译码方法中,基于变量节点的消息预处理方法是核心。因为除了当前要被更新的模糊变量节点之外,i类校验节点连接着的都是被认为是可靠的非模糊变量节点,相应求得的c2v消息必然被认为是可靠的,因此可以将其c2v消息传递给与之相连的模糊变量节点。而对于ii类或n类校验节点来说,除了当前要被更新的模糊变量节点之外,这类校验节点还连接着1个或(n-1)个模糊变量节点,根据c2v消息的更新公式,只要存在着一条被认为是不可靠的v2c消息,相应求得的c2v消息的符号值就趋于不确定的。换句话来说,这条被更新的c2v消息被认为是不可靠的,因此不应该将该c2v消息传递给待更新的模糊变量节点。通过这种消息封锁机制,可以有效地阻止被认为是不可靠的消息的传播,同时将被认为是可靠的消息高效地利用起来,使其能在译码初期得到广泛的传播,从而大大提升译码成功率,并且加快译码收敛速度。

为了验证本发明专利所提出的vnbp-mp译码方法的优异性能,本实施例需要进行计算机仿真。具体方法是,利用peg方法构造两种高码率的规则ldpc码字,码长分别是(3780,3402)以及(8000,7360)。对每个码字的信息比特进行分组,不重复地将相邻的2个信息比特存储在mlcnand-flash的一个单元中。由于存储在该单元中的数据会受到各种噪声的干扰,各状态所表示的电压值并不是一个确切值,而是呈现出一个分布,如图1所示。因此可将ldpc码字在mlcnand-flash中的写入、擦除以及读取过程看作是通过了一个有噪信道。本发明使用visualstudio2015作为仿真平台,首先对llrbp并行译码方法、sbp串行译码方法、aslam等人提出的qabp译码方法以及本发明所提出的vnbp-mp译码方法进行译码性能上的比较。编程语言使用c++,设置滞留时间系数t=1以及最大迭代次数imax=5。当错误帧数达到100帧时,停止仿真迭代,统计相应的误帧率fer,并画出相应的译码性能图,如图8、9所示。

图8为(3780,3402)码字在mlc类型的nand-flash信道上采用不同译码算法所获得的译码性能对比图,横坐标为擦写周期pe,纵坐标为误帧率fer。从图中观察可知,本发明提出的vnbp-mp译码算法具有最好的纠错性能。llrbp译码算法是通过并行的调度方式进行更新的,本次迭代所得到的新消息只能用于下一次迭代,因此其纠错性能都远远不及其他三种串行译码算法。另外,与sbp译码算法相比,vnbp-mp译码算法的译码性能有很大的提升,其中,当擦写周期pe=15000时,vnbp-mp算法的fer仅为sbp算法的1/3。而在fer为10-4的情况下,vnbp-mp算法的擦写次数比sbp算法多了接近1000次,这表明:vnbp-mp算法在信道条件更恶劣的情况下依然能够达到与sbp算法一样的纠错性能。aslam等人提出的qabp算法在擦写周期为11000次以及13000次时的译码性能与vnbp-mp算法相差不大,但在其他擦写次数下,其译码性能均不及后者。

图9为(8000,7360)码字在mlc类型的nand-flash信道上采用不同译码算法所得到的译码性能对比图,横坐标为擦写周期pe,纵坐标为误帧率fer。在图9所示的任意擦写次数下,vnbp-mp译码算法的译码性能比其他三种译码算法都要优异。在擦写周期pe=16000时,与qabp算法的fer相比,vnbp-mp算法的fer降低了超过一倍。在擦写周期pe=15000时,与sbp算法的fer相比,vnbp-mp算法的fer仅是前者的1/6。而且,结合图8、9可知,随着码字的增长,vnbp-mp算法的纠错性能优越性会越来越明显。

图10为(8000,7360)码字在mlc类型nand-flash的信道上采用不同译码算法所得到的收敛性能对比图,纵坐标为误帧率fer,横坐标为译码算法的最大迭代次数maxiter。设定擦写周期pe=16000以及滞留时间系数t=1,为比较各算法的译码收敛速度,令最大迭代次数在1至20次的范围内变化。可以看出,与图中其他算法相比,vnbp-mp算法拥有最快的译码收敛速度,即只需要少量的迭代次数就可以获得比较优异的纠错性能。同时,随着最大迭代次数的增加,各算法逐渐达到收敛状态,而vnbp-mp算法具有最好的收敛性能。

sbp串行译码方法的相关文献:j.zhang,m.p.c.fossorier.shufflediterativedecoding[j].ieeetransactionsoncommunications,feb.2005,53(2):209-213.

qabp译码方法的相关文献:c.aslam,y.guanandk.cai.low-complexityquantization-awarebelief-propagation(qa-bp)decodingformlcnandflashmemory[c].201510thinternationalconferenceoninformation,communicationsandsignalprocessing(icics),singapore,dec.2015,pp:1-5.

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1