一种阈值电压飘移感知的LDPC码译码方法与流程

文档序号:17933606发布日期:2019-06-15 01:08阅读:249来源:国知局
一种阈值电压飘移感知的LDPC码译码方法与流程

本发明属于固态盘存储技术领域,更具体地,涉及一种阈值电压飘移感知的ldpc码译码方法。



背景技术:

三维堆叠闪存具有高存储密度的特性,因此作为存储设备被广泛用于固态盘、智能手机以及计算机系统中。但是,高的存储密度降低了数据存储可靠性。ldpc码(low-densityparity-check,低密度奇偶校验码)具有强纠错能力,被应用于三维堆叠闪存中,以保证数据存储可靠性。ldpc是一种软判决纠错码,在译码之前需要使用多个电平获取软判决信息,高精度的软判决信息能够提升译码性能和降低译码延迟。在三维堆叠闪存中,为了获得高精度的软判决信息,需要准确获取存储单元的阈值电压范围。

如图1所示,受到可编程擦写循环(program/erase,简称p/e)、保存干扰等信道干扰后,闪存中存储单元的阈值电压会发生飘移,从而存储单元实际的阈值电压分布与理想的分布会产生偏差。在三维堆叠型闪存中,这种飘移现象十分显著,而现有的闪存译码方法在获取软判决信息时,并没有考虑三维堆叠闪存中存储单元阈值电压的飘移特性,这使得所获取的软判决信息精度不高,导致译码性能较低,且译码延迟较高,进而增加了三维堆叠闪存的读开销。



技术实现要素:

针对现有技术的缺陷和改进需求,本发明提供了一种阈值电压飘移感知的ldpc码译码方法,其目的在于,利用存储单元阈值电压的飘移特征精确获取软判决信息,以提高ldpc码的译码性能,并降低译码延迟。

为实现上述目的,本发明提供了一种阈值电压飘移感知的ldpc码译码方法,包括:

(1)获得待译码数据所属闪存页p当前的飘移参数,以根据存储单元阈值电压分布与飘移参数的对应关系,获得当前闪存页p中存储单元的阈值电压分布d;

(2)将标准读参考电压和阈值电压分布d的各尾端点处的电压均作为采样电压,通过施加不同的采样电压确定各存储单元的阈值电压所在的电压范围[vi,vj];

(3)根据电压范围[vi,vj]计算软判决信息,并根据软判决信息对待译码数据进行ldpc码译码;

其中,飘移参数包括擦写次数和数据保存时间,vi<vj。

存储单元的阈值电压分布会随着飘移参数(擦写次数和数据保存时间)的不同而发生不同程度的飘移,本发明所提供的阈值电压飘移感知的ldpc码译码方法,根据当前的飘移参数获取存储单元当前的阈值电压分布,并根据所获取到的电压分布获取软判决信息,能够准确获得阈值电压的飘移信息,并根据阈值电压的飘移特征获得精确的软判决信息,从而提高译码性能并降低译码延迟。

进一步地,存储单元阈值电压分布与飘移参数的对应关系的建立方式包括:

(s1)从三维堆叠闪存中选取多个闪存块,作为样本集,并将存储单元的阈值电压总范围划分为m个子区间;

(s2)向样本集中的各闪存块顺序地写入随机数据,直至各闪存块均被写满,记录当前擦写次数;

(s3)将三维堆叠闪存静置一个时间间隔后转入(s4);静置期间不对三维堆叠闪存进行操作;

(s4)获得当前的数据保存时间,以得到当前的飘移参数;

(s5)获得样本集中各闪存块的各存储单元的阈值电压,以统计阈值电压落在每个子区间内的存储单元数,从而拟合得到当前飘移参数所对应的阈值电压分布;

(s6)重复执行(s3)~(s5)多次,以得到多个不同的飘移参数及对应的阈值电压分布;

(s7)根据指定的擦写次数对样本集中的各闪存块执行擦写操作后,执行(s2)~(s6);

(s8)重复执行(s7)多次,以得到多个不同的飘移参数及对应的阈值电压分布,并拟合得到存储单元阈值电压分布与飘移参数的对应关系。

本发明通过采样和拟合的方法,能够准确获取到存储单元阈值电压分布与飘移参数的对应关系,使得能够在译码过程中根据存储单元阈值电压分布的飘移特征获取精确的软判决信息;通过顺序写入数据能够提高写入效率并减少闪存页之间的干扰。

作为进一步优选地,步骤(s1)中,子区间的划分与闪存芯片所支持的readoffset操作中读电压档位的划分一致。

作为进一步优选地,样本集中的闪存块均匀地分布在不同的闪存通道中;

在同一通道中,样本集中的闪存块均匀地分布在不同的芯片中;

在同一芯片中,样本集中的闪存块均匀地分布在不同的晶圆中;

在同一晶圆中,样本集中的闪存块均匀地分布在不同的分组中。

通过上述方法选取闪存块,能够在写入数据时充分利用三维堆叠闪存内部的写并行性,从而提高写入效率。

进一步地,步骤(3)包括:

(31)判断电压范围[vi,vj]的区间类型,若为飘移区间,则将电压范围[vi,vj]作为目标区间[vl,vu],并转入步骤(32);否则,转入步骤(34);

(32)根据目标区间[vl,vu]计算软判决信息llr′(k),并根据软判决信息llr′(k)对待译码数据进行ldpc码译码;

(33)若译码成功,则转入步骤(35);否则,在目标区间[vl,vu]内选取一个采样电压vs,并确定存储单元阈值电压所在的范围是电压范围[vl,vs]还是电压范围[vs,vu],将所确定的电压范围作为新的目标区间[vl,vu],转入步骤(32);

(34)根据电压范围[vi,vj]计算软判决信息llr(k),并根据软判决信息llr(k)对待译码数据进行ldpc码译码;转入步骤(35);

(35)译码结束;

其中,k为闪存页p的各比特在存储单元所存储比特中的编号;阈值电压分布d中,飘移区间的下界点为标准读参考电压vref,上界点为第一状态的右尾端点处电压v1,或者飘移区间的上界点为标准读参考电压vref,下界点为第二状态的左尾端点处电压v2;第一状态和第二状态为未发生飘移时紧邻标准读参考电压vref的两个存储单元状态,且v1<vref<v2。

由于存储单元阈值电压的飘移,飘移区间内的存储单元状态无法准确确定,需要多次迭代才能译码成功;非飘移区间内的存储单元状态在很大概率上可根据阈值电压所在的范围直接确定,并译码成功;上述译码方法,当存储单元阈值电压处于不同区间时,采用不同的译码方式,能够提高译码效率并保证译码准确性。

作为进一步优选地,软判决信息llr(k)的计算公式为:

其中,stk表示存储单元中第k个比特为0的状态集合,sl和sl均表示存储单元的状态,和pm(v)分别表示状态sl和状态sl的概率密度函数,n表示存储单元的状态总数。

总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:

(1)本发明所提供的阈值电压飘移感知的ldpc码译码方法,根据当前的飘移参数获取存储单元当前的阈值电压分布,并根据所获取到的电压分布获取软判决信息,能够准确获得阈值电压的飘移信息,并根据阈值电压的飘移特征获得精确的软判决信息,从而提高译码性能并降低译码延迟。

(2)本发明所提供的阈值电压飘移感知的ldpc码译码方法,通过采样和拟合的方法,能够准确获取到存储单元阈值电压分布与飘移参数的对应关系,使得能够在译码过程中根据存储单元阈值电压分布的飘移特征获取精确的软判决信息。

(3)本发明所提供的阈值电压飘移感知的ldpc码译码方法,所选取的样本闪存块均匀的分布在三维堆叠闪存的并行操作单元中,能够在写入数据时充分利用三维堆叠闪存内部的写并行性,从而提高写入效率;采用顺序写的方式写入数据,能够提高写入效率并减少闪存页之间的干扰。

(4)本发明所提供的阈值电压飘移感知的ldpc码译码方法,当存储单元阈值电压落在飘移区间时,采用多次迭代的方式译码,并且当存储单元阈值电压落在非飘移区间时,直接译码,能够提高译码效率并保证译码准确性。

附图说明

图1为现有的存储单元阈值电压分布飘移示意图;

图2为本发明实施例提供的阈值电压飘移感知的ldpc码译码方法流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

在详细解释本发明的技术方案之前,先对相关的基本概念进行简要介绍。在三维堆叠闪存中,闪存单元以存储电荷的方式存储比特数据,随着存储的电荷量不同,存储单元的阈值电压将处于不同的电压范围,对应地,存储单元将处于不同的状态,用于存储不同的比特数据。根据存储单元所存储的比特数量,存储单元的阈值电压会被划分为互不重叠的多个电压范围,分别表示不同的状态。例如,一个slc(singlelevelcell)存储单元用于存储一个比特数据,其阈值电压被划分为两个互不重叠的电压范围,相应地,slc存储单元具有两个状态;一个mlc(multilevelcell)存储单元用于存储两个比特数据,其阈值电压被划分为四个互不重叠的电压范围,相应地,mlc存储单元具有四个状态。外围电路需要借助于一系列标准读参考电压确定存储单元的状态,进而确定存储单元所存储的比特数据值,具体所需的标准读参考电压的数量由存储单元所存储的比特数决定。在slc存储单元中,仅需一个标准读参考电压;在mlc存储单元中,需要3个标准读参考电压。

对于一个给定的状态,阈值电压分布曲线上阈值电压最小的点和阈值电压最大的点分别为对应状态左尾端点和右尾端点。如图1中实线所示,未发生飘移时,相邻状态的阈值电压分布曲线不会相交,分别记这两个状态中阈值电压较小的状态为状态p1,阈值电压较大的状态为状态p2,状态p1右尾端点处的阈值电压为v1,状态p2左尾端点处的阈值电压为v2,两个状态之间的标准读参考电压为vref,则满足v1<vref<v2;如图1中虚线所示,而发生飘移后,相邻状态的阈值电压分布曲线会相交;在本发明中,当阈值电压分布发生飘移后,将相邻状态的阈值电压分布曲线相交产生的电压范围称为漂移区间,具体地,飘移区间的下界点为标准读参考电压vref,上界点为状态p1的右尾端点处电压v1,或者飘移区间的上界点为标准读参考电压vref,下界点为状态p2的左尾端点处电压v2。

根据图1可知,存储单元的阈值电压落在飘移区间时,存储单元状态无法直接确定;而存储单元的阈值电压落在非飘移区间时,存储单元状态在很大概率上可根据阈值电压所在的范围直接确定。

为了解决现有的ldpc码译码方法在存储单元阈值电压分布发生飘移时无法获取精确的软判决信息而导致译码性能低且译码延迟高的问题,本发明所提供的阈值电压飘移感知的ldpc码译码方法,如图2所示,包括:

(1)获得待译码数据所属闪存页p当前的飘移参数,以根据存储单元阈值电压分布与飘移参数的对应关系,获得当前闪存页p中存储单元的阈值电压分布d;

飘移参数包括擦写次数和数据保存时间;

在一个可选的实施方式中,存储单元阈值电压分布与飘移参数的对应关系的建立方式包括:

(s1)从三维堆叠闪存中选取多个闪存块,作为样本集,并将存储单元的阈值电压总范围划分为m个子区间;

在一个可选的实施方式中,子区间的划分与闪存芯片所支持的readoffset操作中读电压档位的划分一致;在本实施例中,具体地,档位选取范围为-128~127,总共256个档位,每个档位代表10mv;

样本集中的100个闪存块均匀地分布在不同的闪存通道中;在同一通道中,样本集中的闪存块均匀地分布在不同的芯片中;在同一芯片中,样本集中的闪存块均匀地分布在不同的晶圆中;在同一晶圆中,样本集中的闪存块均匀地分布在不同的分组中;

通过上述方法选取闪存块,能够在后续向样本集中的闪存块写入数据时充分利用三维堆叠闪存内部的写并行性,从而提高写入效率;

(s2)向样本集中的各闪存块顺序地写入随机数据,直至各闪存块均被写满,记录当前擦写次数;

通过顺序写入数据能够提高写入效率并减少闪存页之间的干扰;

(s3)将三维堆叠闪存静置一个时间间隔后转入(s4);静置期间不对三维堆叠闪存进行操作;

静置的时间间隔可根据闪存特性和实际需要设置成一天、一周、一个月,或其他时间间隔;

(s4)获得当前的数据保存时间,以得到当前的飘移参数;

(s5)获得样本集中各闪存块的各存储单元的阈值电压,以统计阈值电压落在每个子区间内的存储单元数,从而拟合得到当前飘移参数所对应的阈值电压分布;

(s6)重复执行(s3)~(s5)多次,以得到多个不同的飘移参数及对应的阈值电压分布;

(s7)根据指定的擦写次数对样本集中的各闪存块执行擦写操作后,执行(s2)~(s6);

在本实施例中,为获得多个不同的飘移参数以及对应的阈值电压分布,将三维堆叠闪存的擦写次数从0次增加到7000次,以500为间隔统计数据;

(s8)重复执行(s7)多次,以得到多个不同的飘移参数及对应的阈值电压分布,并拟合得到存储单元阈值电压分布与飘移参数的对应关系;

本发明通过采样和拟合的方法,能够准确获取到存储单元阈值电压分布与飘移参数的对应关系,使得能够在译码过程中根据存储单元阈值电压分布的飘移特征获取精确的软判决信息;

(2)将标准读参考电压和阈值电压分布d的各尾端点处的电压均作为采样电压,通过施加不同的采样电压确定各存储单元的阈值电压所在的电压范围[vi,vj];其中,vi<vj;

除标准读参考电压外,将当前的阈值电压分布d的各尾端点处的阈值电压也作为采样电压,能够更为准确地获取到存储单元阈值电压落入的电压范围;

(3)根据电压范围[vi,vj]计算软判决信息,并根据软判决信息对待译码数据进行ldpc码译码;

在一个可选的实施方式中,步骤(3)具体包括:

(31)判断电压范围[vi,vj]的区间类型,若为飘移区间,则将电压范围[vi,vj]作为目标区间[vl,vu],并转入步骤(32);否则,转入步骤(34);

(32)根据目标区间[vl,vu]计算软判决信息llr′(k),并根据软判决信息llr′(k)对待译码数据进行ldpc码译码;k为闪存页p的各比特在存储单元所存储比特中的编号;

(33)若译码成功,则转入步骤(35);否则,在目标区间[vl,vu]内选取一个采样电压vs,并确定存储单元阈值电压所在的范围是电压范围[vl,vs]还是电压范围[vs,vu],将所确定的电压范围作为新的目标区间[vl,vu],转入步骤(32);

(34)根据电压范围[vi,vj]计算软判决信息llr(k),并根据软判决信息llr(k)对待译码数据进行ldpc码译码;转入步骤(35);

软判决信息llr′(k)和软判决信息llr(k)的计算方法相同;软判决信息llr(k)的计算公式为:

其中,stk表示存储单元中第k个比特为0的状态集合,sl和sl均表示存储单元的状态,和pm(v)分别表示状态sl和状态sl的概率密度函数,n表示存储单元的状态总数,n=2n,n为存储单元存储的比特总数;对于三维堆叠tlc(triple-levelcell),n=3,n=8,对应地,

(35)译码结束;

由于存储单元阈值电压的飘移,飘移区间内的存储单元状态无法准确确定,需要多次迭代才能译码成功;非飘移区间内的存储单元状态在很大概率上可根据阈值电压所在的范围直接确定,并译码成功;上述译码方法,当存储单元阈值电压处于不同区间时,采用不同的译码方式,能够提高译码效率并保证译码准确性。

本发明所提供的阈值电压飘移感知的ldpc码译码方法,根据当前的飘移参数获取存储单元当前的阈值电压分布,并根据所获取到的电压分布获取软判决信息,能够准确获得阈值电压的飘移信息,并根据阈值电压的飘移特征获得精确的软判决信息,从而提高译码性能并降低译码延迟。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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