掌桥专利:专业的专利平台
掌桥专利
首页

一种基于NAND Flash可靠性的数据处理方法

文献发布时间:2024-04-18 19:58:30


一种基于NAND Flash可靠性的数据处理方法

技术领域

本发明涉及存储器技术领域,尤其涉及一种基于NAND Flash可靠性的数据处理方法。

背景技术

固态硬盘(Solid State Disk,SSD)如今在市场中的地位广为人知,其被广泛应用在手机、电脑、服务器等电子设备中,其高性能、低成本以及高可靠性的优势让它逐渐取代了曾经的主流存储设备机械硬盘。作为SSD中主要的存储介质,NAND Flash在存储市场扮演着非常重要的角色,其具有显著的读写速度、非常高的存储密度以及非常稳定可靠的数据存储能力。随着大数据时代的到来,消费者对数据存储容量扩大的需求越来越迫切,NANDFlash为了获得更大的存储密度,从曾今的2D NAND Flash发展到如今的3D NAND Flash,而在3D NAND Flash时代则通过降低3D NAND Flash的单元尺寸或增加每个单元可表示的比特信息位的个数来增加存储密度,而上述的方法都会使得3D NAND Flash的数据保持能力降低,数据可靠性下降。

在对导致NAND Flash可靠性下降的诸多因素中,数据保持特性对存储单元的阈值电压态的影响情况最为严重,已成为3D NAND Flash可靠性研究中的一个热点问题。例如在3D TLC NAND Flash阵列中每个存储单元可用8种不同数值的阈值电压态表示,其中每一种阈值电压态代表存储单元中存储着不同的电荷数量,越高的电压态表示隧穿氧化层方向上的电场强度越高,而数据保持特性又与电荷流失、漏电流以及电荷的去俘获过程有关,所以存储单元处在越高的阈值电压态则越容易出现向左偏移的情况出现,即为闪存数据保持特性相关的阈值电压态非对称错误。

目前的数据处理方法通过将要写入NAND Flash的数据从主机端传输到NANDFlash Controller(NFC)时,这些数据一种可能是未经处理直接传输,数据中的阈值电压态的单元分布比例随机,或是传统的数据处理方法,经过利用线性反馈移位寄存器实现的随机化数据加扰模块后改变为几乎数量均等的形式提高数据可靠性,但均未将数据保持特性相关的可靠性问题考虑在内,使得在数据保持时间较长时会出现较大的原始误码率,NANDFlash的数据可靠性较低。

发明内容

鉴于上述的分析,本发明实施例旨在提供一种基于NAND Flash可靠性的数据处理方法,用以解决现有的NAND Flash的数据处理方法未考虑数据保持特性影响,NAND Flash的数据可靠性较低的问题。

本发明实施例提供了一种基于NAND Flash可靠性的数据处理方法,包括以下步骤:

获取待写入的NAND Flash各物理页数据,其中,NAND Flash中物理页的存储单元至少由一个逻辑页表征;

选取m个逻辑页进行移位操作,m大于等于1,并基于预设的码长将待写入的NANDFlash各物理页数据划分为各子数据,其中,各子数据由各逻辑页子数据表征,每个逻辑页子数据均包括数据位数据,在选取的进行移位的逻辑页中增设标识冗余位数据;

对各子数据中选取的逻辑页子数据的数据位数据进行循环移位,得到各子数据每次移位后的数据可靠性评分及移位前的数据可靠性评分,进而得到各子数据最小的数据可靠性评分;其中,选取的进行移位的逻辑页子数据循环移位的最大移位次数为逻辑页子数据中数据位数量减1;

将各子数据最小的数据可靠性评分对应的m个移位逻辑页子数据的数据位数据和移位次数作为各子数据编码后的相应m个逻辑页子数据的数据位数据和标识冗余位数据,各子数据中其余逻辑页子数据的数据位数据不变,得到编码后的各子数据,进而得到编码后NAND Flash数据。

进一步地,所述数据可靠性评分RS通过以下方式得到:

式中,n表示当前子数据中存储单元总数,RBER(state(k))表示当前子数据中第k个存储单元对应的电压态的原始误码率。

进一步地,所述对选取的进行移位的逻辑页子数据的数据位数据进行循环移位为循环右移或循环左移,并且每次移动1位。

可选地,若m=1,则

基于移位前各子数据得到的相应子数据的数据可靠性评分;

基于选取的该逻辑页依次对各子数据中该逻辑页子数据的数据位数据进行循环移位,得到各子数据每次移位后各存储单元对应的电压态,进而得到各子数据每次移位后的数据可靠性评分;

根据各子数据每次移位后的数据可靠性评分及移位前的数据可靠性评分,得到各子数据最小的数据可靠性评分;

将各子数据最小的数据可靠性评分对应的该移位逻辑页子数据的数据位数据和移位次数作为各子数据编码后的相应逻辑页子数据的数据位数据和标识冗余位数据,各子数据中其余逻辑页子数据的数据位数据不变,得到编码后的各子数据。

可选地,若m大于1,则

从m个逻辑页中任选一个未移位的逻辑页进行循环移位,得到各子数据最小的数据可靠性评分,进而将各子数据最小的数据可靠性评分对应的当前逻辑页子数据的数据位数据和移位次数作为各子数据编码后的当前逻辑页子数据的数据位数据和标识冗余位数据;

基于编码后的各子数据的当前逻辑页,重复上述步骤,对下一个未移位的逻辑页进行循环移位,直至m个逻辑页均完成移位,得到编码后相应的各逻辑页子数据,各子数据中其余逻辑页子数据的数据位数据不变,进而得到编码后的子数据。

可选地,若m大于1,则

根据选取的逻辑页个数m,依次选取任一逻辑页,分别作为第1,…,m个逻辑页;并将基于移位前各子数据得到的相应子数据数据可靠性评分作为相应子数据的数据可靠性评分的初始值;

通过执行以下遍历步骤依次对各子数据中的逻辑页子数据的数据位数据进行循环移位,得到各子数据最小的数据可靠性评分:

基于第1个逻辑页,对当前子数据中该逻辑页子数据的数据位数据进行循环移位,每移位1次,执行以下步骤,直至该逻辑页的当前移位次数等于最大移位次数:

基于第2个逻辑页,对当前子数据在该逻辑页子数据的数据位数据进行循环移位,每移位1次,执行以下步骤,直至该逻辑页的当前移位次数等于最大移位次数:

依次类推,

基于第m个逻辑页,对当前子数据中该逻辑页子数据的数据位数据进行循环移位,每移位1次,得到当前子数据的数据可靠性评分,若该数据可靠性评分小于数据可靠性评分的初始值,则将该数据可靠性评分作为数据可靠性评分的初始值;

将遍历完后得到的数据可靠性评分的初始值作为当前子数据最小的数据可靠性评分;

将各子数据最小的数据可靠性评分对应的m个移位逻辑页子数据的数据位数据和移位次数作为各子数据编码后的相应的m个逻辑页子数据的数据位数据和标识冗余位数据,各子数据中其余逻辑页子数据的数据位数据不变,得到编码后的各子数据。

进一步地,各逻辑页子数据的总存储数据位数d相同,且与子数据存储单元一一对应,其中,选取的进行移位的逻辑页子数据中的数据位和标识冗余位满足下式:

d=n′+l,

其中,

式中,l表示选取的进行移位的逻辑页子数据中标识冗余位的数量;n′表示选取的进行移位的逻辑页子数据中数据位的数量,

进一步地,所述预设的码长为8、16、32、64或128个存储单元。

进一步地,根据NAND Flash中存储的在不同保持时间和编程擦除次数下的各电压态的误码率获取当前各电压态的原始误码率。

进一步地,所述数据处理方法还包括译码过程,具体为:

根据预设的码长得到待译码NAND Flash的各子数据,根据各子数据中各逻辑页子数据中的标识冗余位得到个逻辑页子数据数据位数据的位移次数,进而根据相应位移次数将相应逻辑页子数据进行反向循环移位,得到译码后各子数据,进而得到译码后的NANDFlash数据。

与现有技术相比,本发明可实现如下有益效果:

本发明提供的一种基于NAND Flash可靠性的数据处理方法,通过将NAND Flash数据划分为各子数据后,根据选取的逻辑页对各子数据中的相应逻辑页子数据进行循环移位,得到各子数据每次移位后的数据可靠性评分及移位前的数据可靠性评分,进而得到各子数据最小的数据可靠性评分,继而得到编码后的各子数据,最后得到编码后NAND Flash数据,通过该编码方式得到的数据可靠性更高;通过各子数据中各存储单元的电压态原始误码率得到数据可靠性评分,充分考虑了数据保持特性中的电压态误码率的非对称性因素,降低对误码率贡献占主导的电压态的数量比例,提升了数据的可靠性。

本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。

附图说明

附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。

图1为本发明实施例1提供的基于NAND Flash可靠性的数据处理方法的流程示意图;

图2为本发明实施例1提供的实现数据处理方法的系统结构示意图;

图3为本发明实施例2提供的3D TLC NAND Flash随数据保持时间变长各电压态的阈值变化示意图;

图4为本发明实施例2供的数据处理中编码过程示意图;

图5为本发明实施例2提供的数据处理中译码过程示意图;

图6为本发明实施例2提供的方式一编码与随机编码后各电压态占比的统计柱状图;

图7为本发明实施例2提供的不同码长下方式一编码与随机编码后各电压态占比的统计柱状图;

图8为本发明实施例2提供的不同编码方式与随机编码后各电压态占比的统计柱状图;

图9为本发明实施例2提供的不同码长下方式三编码与随机编码后各电压态占比的统计柱状图。

具体实施方式

下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。

实施例1

本发明的一个具体实施例,公开了一种基于NAND Flash可靠性的数据处理方法,如图1所示,包括以下步骤:

S1、获取待写入的NAND Flash各物理页数据,其中,NAND Flash中物理页的存储单元至少由一个逻辑页表征;可以理解的是,在NAND Flash中各物理页的存储单元通过阈值电压态存储比特数据,比特数据位数与逻辑页个数相等,通过建立阈值电压态、待存储的比特数据与逻辑页的映射关系,进行相关数据的表示和存储。其中,阈值电压态表征的存储电荷数量。

具体地,所述NAND Flash包括3D SLC/MLC/TLC/QLC NAND Flash。其中,3D SLCNAND Flash中每一物理页中包含一个逻辑页,每一存储单元存储1bit信息;3D MLC NANDFlash中每一物理页中包含两个逻辑页,每一存储单元存储2bit信息;3D TLC NAND Flash中每一物理页中包含三个逻辑页,每一存储单元存储3bit信息;3D QLC NAND Flash中每一物理页中包含四个逻辑页,每一存储单元存储4bit信息。更具体地,本实施例的数据处理方法适用于任何层数的SLC/MLC/TLC/QLC NAND Flash。

S2、选取m个逻辑页进行移位操作,m大于等于1,并基于预设的码长将待写入的NAND Flash各物理页数据划分为各子数据,其中,各子数据由各逻辑页子数据表征,每个逻辑页子数据均包括数据位数据,在选取的进行移位的逻辑页中增设标识冗余位数据;其中,m小于等于NAND Flash物理页中逻辑页的总个数。可以理解的,根据不同类型NAND Flash中物理页包含的逻辑页总个数选择可以移位的逻辑页个数,示例性的,物理页仅包含一个逻辑页,则只能选择m=1,物理页包含三个逻辑页,则m可以为1或2或3。

实施时,码长的选取根据实际需求进行设定,其中,码长越小,数据的码率就越低(因为有后续应用添加的标识冗余位占用了存储单元的面积)。优选地,所述预设的码长为8、16、32、64或128个存储单元;示例性的,NAND Flash每一个物理页有147456个存储单元,码长为8则码率为72.73%,码长为128时则码率为94.81%。

实施时,各逻辑页子数据的总存储数据位数d相同,且与子数据存储单元一一对应,其中,选取进行移位的逻辑页子数据中的数据位和标识冗余位满足下式:

d=n′+l,

其中,

式中,l表示选取进行移位的逻辑页子数据中标识冗余位的数量;n′表示选取进行移位的逻辑页子数据中数据位的数量,

可以理解的是,各个逻辑页子数据中总存储数据位数d与与预设码长中的存储单元数量n相等,是一一对应的关系;也就是说,选取的进行移位的逻辑页子数据中的数据位与标识冗余位数量的和为总存储数据位数d,其余未移位的逻辑页子数据中的数据位的数量为总存储数据位数d。本实施例中,为选取的进行移位的各逻辑页子数据增加标识冗余位,记录编码过程中的移位次数,用于在译码过程中读取进行译码,并且是标识冗余位是沿逻辑页横向增加的方式,后续逻辑页进行译码时,根据相应逻辑页子数据中的标识冗余位即可,避免了采用纵向增加,使得在一个逻辑页进行后续译码时需要同时获取所有逻辑页的数据,操作复杂。

S3、对各子数据中选取的逻辑页子数据的数据位数据进行循环移位,得到各子数据每次移位后的数据可靠性评分及移位前的数据可靠性评分,进而得到各子数据最小的数据可靠性评分;其中,选取的进行移位的逻辑页子数据循环移位的最大移位次数为逻辑页子数据中数据位数量减1。

实施时,所述数据可靠性评分RS通过以下方式得到:

式中,n表示当前子数据中存储单元总数,RBER(state(k))表示当前子数据中第k个存储单元对应的电压态的原始误码率。其中,RS表示数据可靠性评分(ReliabilityScore),RBER表示原始误码率(Raw Bit Error Rate)。

具体实施时,根据NAND Flash中存储的在不同保持时间和编程擦除次数下的各电压态的误码率获取当前各电压态的原始误码率。

具体地,NAND Flash中存储的在不同保持时间和编程擦除次数下的各电压态的误码率是根据实际芯片的大量测试获得的统计数据,存储在主机端的NAND FlashController中,作为数据处理中编码时的一个查找表,在使用时直接获取即可。其中,编程(program)/擦除(erase)的次数P/Ecycle为对于一个存储单元来说,编程一次擦除一次,算作一次P/E cycle,因为擦除是按块进行的,所以P/E cycle的基本单元是块,示例性的,P/Ecycle为0k则指的是一个块编程/擦除了0次,P/E cycle为3k则指的是一个块编程/擦除了3千次。

可以理解的是,用于数据局部的非均匀性,每个码长的子数据中的电压态分布比例是不均匀且随机的,本实施例利用数据在不同位置上的非一致性对每一码长的子数据进行循环移位操作,根据实际数据测得的各电压态对应的原始误码率信息将子数据中各电压态对应的原始误码率进行加和后求取的平均值作为数据可靠性评分,通过循环移位改变电压态在子数据中的比例,直到达到最小的数据可靠性评分,通过该方式提高存储数据的可靠性。

实施时,所述对选取的进行移位的逻辑页子数据的数据位数据进行循环移位为循环右移或循环左移,并且每次移动1位。

S4、将各子数据最小的数据可靠性评分对应的m个移位逻辑页子数据的数据位数据和移位次数作为各子数据编码后的相应m个逻辑页子数据的数据位数据和标识冗余位数据,各子数据中其余逻辑页子数据的数据位数据不变,得到编码后的各子数据,进而得到编码后NAND Flash数据。

实施时,通过以下具体方式得到编码后的子数据:

方式一:若m=1,则

基于移位前各子数据得到的相应子数据的数据可靠性评分;

基于选取的该逻辑页依次对各子数据中该逻辑页子数据的数据位数据进行循环移位,得到各子数据每次移位后各存储单元对应的电压态,进而得到各子数据每次移位后的数据可靠性评分;

根据各子数据每次移位后的数据可靠性评分及移位前的数据可靠性评分,得到各子数据最小的数据可靠性评分;

将各子数据最小的数据可靠性评分对应的该移位逻辑页子数据的数据位数据和移位次数作为各子数据编码后的相应逻辑页子数据的数据位数据和标识冗余位数据,各子数据中其余逻辑页子数据的数据位数据不变,得到编码后的各子数据。

可以理解的是,在移位前,根据各子数据的电压态分布可得出移位前的数据可靠性评分,该数据可靠性评分与每次移位后各子数据的数据可靠性评分进行对比,若该数据可靠性评分为最小的数据可靠性评分,则将移位前该移位逻辑页子数据的数据位数据和移位次数作为各子数据编码后的该逻辑页子数据的数据位数据和标识冗余位数据,其中移位次数为0。

方式二:若m大于1,则

从m个逻辑页中任选一个未移位的逻辑页进行循环移位,得到各子数据最小的数据可靠性评分,进而将各子数据最小的数据可靠性评分对应的当前逻辑页子数据的数据位数据和移位次数作为各子数据编码后的当前逻辑页子数据的数据位数据和标识冗余位数据;

基于编码后的各子数据的当前逻辑页,重复上述步骤,对下一个未移位的逻辑页进行循环移位,直至m个逻辑页均完成移位,得到编码后相应的各逻辑页子数据,各子数据中其余逻辑页子数据的数据位数据不变,进而得到编码后的子数据。可以理解的是,在对m个逻辑页子数据进行移位时,是在上一逻辑页子数据移位结果,即编码后的逻辑页子数据的基础上进行下一逻辑页子数据的循环移位,得到数据可靠性评分。

应该注意的是,各逻辑页在移位前,根据各子数据的电压态分布可得出移位前的数据可靠性评分,该数据可靠性评分参与各子数据最小的数据可靠性评分的选择。也就是说,对下一个未移位逻辑页进行循环移位时,会根据此时子数据中各逻辑子数据得到该逻辑页移位前的数据可靠性评分,即上一个移位逻辑页得到的最小的数据可靠性评分,为此次移位逻辑页的移位前的数据可靠性评分。

方式三:若m大于1,则

根据选取的逻辑页个数m,依次选取任一逻辑页,分别作为第1,…,m个逻辑页;并将基于移位前各子数据得到的相应子数据数据可靠性评分作为相应子数据的数据可靠性评分的初始值;

通过执行以下遍历步骤依次对各子数据中的逻辑页子数据的数据位数据进行循环移位,得到各子数据最小的数据可靠性评分:

基于第1个逻辑页,对当前子数据中该逻辑页子数据的数据位数据进行循环移位,每移位1次,执行以下步骤,直至该逻辑页的当前移位次数等于最大移位次数:

基于第2个逻辑页,对当前子数据在该逻辑页子数据的数据位数据进行循环移位,每移位1次,执行以下步骤,直至该逻辑页的当前移位次数等于最大移位次数:

依次类推,

基于第m个逻辑页,对当前子数据中该逻辑页子数据的数据位数据进行循环移位,每移位1次,得到当前子数据的数据可靠性评分,若该数据可靠性评分小于数据可靠性评分的初始值,则将该数据可靠性评分作为数据可靠性评分的初始值;

将遍历完后得到的数据可靠性评分的初始值作为当前子数据最小的数据可靠性评分;

将各子数据最小的数据可靠性评分对应的m个移位逻辑页子数据的数据位数据和移位次数作为各子数据编码后的相应的m个逻辑页子数据的数据位数据和标识冗余位数据,各子数据中其余逻辑页子数据的数据位数据不变,得到编码后的各子数据。

示例性的,若m=3,即选取了3个逻辑页,分别为第1、2、3逻辑页,则,第1逻辑页中的数据位数据每进行一次移位,第2逻辑页的数据位数据要进行一轮移位循环,即进行最大次数的移位;同理,第2逻辑页的数据位数据每进行一次移位,第3逻辑页中的数据位数据也进行一轮移位循环,每移位一次,即计算一次当前子数据的数据可靠性评分,若该数据可靠性评分小于数据可靠性评分的初始值,则将该数据可靠性评分作为数据可靠性评分的初始值;当遍历完所有的移位之后,即可得到最小的可靠性评分。

进一步地,所述数据处理方法还包括译码过程,具体为:

根据预设的码长得到待译码NAND Flash的各子数据,根据各子数据中各逻辑页子数据中的标识冗余位得到个逻辑页子数据数据位数据的位移次数,进而根据相应位移次数将相应逻辑页子数据进行反向循环移位,得到译码后各子数据,进而得到译码后的NANDFlash数据。

实施时,上述数据处理方法在下述系统实现,如图2所示,该系统包括主机、数据处理编码模块、数据处理译码模块、ECC编码纠错模块、ECC译码纠错模块、NAND Flash;其中,数据处理编码模块用于完成本实施例中的编码过程,数据处理译码模块用于完成本实施例中的译码过程。

具体地,在数据编码过程中,将待写入NAND Flash的数据从主机端传输到NANDFlash中经过数据处理编码模块(Pattern Change Encode Module)中的循环移位编码方式得到编码后的数据,然后再传输到ECC编码纠错模块(ECC Encode Module)进行纠错,最后再输入到NAND Flash中。

在数据读取过程中,首先将要读取的数据从NAND Flash中读出传输到ECC译码纠错模块(ECC Decode Module)进行纠错,再传输到数据处理译码模块,经过循环移位译码方式得到译码后数据,再传输到主机端完成读过程。

与现有技术相比,本实施例提供了一种基于NAND Flash可靠性的数据处理方法,通过将NAND Flash数据划分为各子数据后,根据选取的逻辑页对各子数据中的相应逻辑页子数据进行循环移位,得到各子数据每次移位后的数据可靠性评分及移位前的数据可靠性评分,进而得到各子数据最小的数据可靠性评分,继而得到编码后的各子数据,最后得到编码后NAND Flash数据,通过该编码方式得到的数据可靠性更高;通过各子数据中各存储单元的电压态原始误码率得到数据可靠性评分,充分考虑了数据保持特性中电压态误码率的非对称性因素,降低对误码率贡献占主导的电压态的数量比例,提升了数据的可靠性。

实施例2

为验证上述实施例中一种基于NAND Flash可靠性的数据处理方法的正确性,本实施例以3D TLC NAND Flash为例对上述实施例中的方案,进行试验验证。

在3D TLC NAND Flash阵列中每个存储单元可用8种不同数值的阈值电压态表示,其中每一种阈值电压态代表存储单元中存储着不同的电荷数量,越高的电压态表示隧穿氧化层方向上的电场强度越高,而数据保持特性又与电荷流失、漏电流以及电荷的去俘获过程有关,所以存储单元处在越高的阈值电压态则越容易出现向左偏移的情况出现,即闪存数据保持特性相关的阈值电压态非对称错误。

示例性地,对3D TLC NAND Flash中一个block中共384个容量为18K字节的页经过随机化编码处理后写入闪存的数据进行了测试,表1中为在P/E cycles=0k,Temperature=125°,Retention Time=600min时8种电压态的原始误码率(RBER)情况。其中,E态表示擦除态,是8种电压态中的最低态。

表1不同电压态的原始误码率

如图3所示,测试数据中每一个单元的阈值电压分布统计(图3中只列出了P1-P7态,实线为初始阈值电压分布,虚线为数据保持时间过后的阈值电压分布),可以明显观察到阈值电压的明显偏移,而且阈值态越高,偏移情况越严重。

综上,在3D TLC NAND Flash中每个存储单元可用8种不同数值的电压态表示3个比特的信息,随着数据保持时间的增加、编程擦除循环(program/erase cycling)次数的增加、读操作等影响因素导致原始的阈值电压态发生偏移和展宽等现象,在固定的读取电压情况下出现数据错误的现象,导致可靠性下降,影响系统性能。

本实施例中,根据实施例1进行3D TLC NAND Flash数据处理时,因为每一个存储单元都存储3bit的信息,可呈现出8种不同的阈值电压态,在编码时也根据存储单元中存储的信息编码到不同的电压阈值态,每一个电压态对应的3位比特信息,即存储单元由3个逻辑页(lower page、middle page、upper page)表征,电压态与比特信息的映射关系有很多种,使用格雷码方式编码,本实施例中采用如下表2所示的格雷码表示的映射关系。

表2格雷映射

本实施例中以码长为8个存储单元、选取一个逻辑页(lower page)进行循环右移为例,各子数据中的各逻辑页的数据位为8bits,标识冗余位为3bits,数据处理过程如下:

循环移位编码过程:通过对lower page进行向右循环移位的操作改变不同电压态的比例,经过循环右移一次后,lower page的0/1发生变化,其他两个逻辑页数值和位置未改变,根据映射关系,编码后的电压态发生改变,后面三位标识冗余位由000变为001,虚线框中P6态变为P1态,P2态变为P5态,其它电压态的数量未发生改变,格雷码映射以及编码方式,如图4所示。

循环移位译码过程:由循环移位编码过程已知,通过降低码率来引入标识冗余位,标识冗余位在逻辑页中是横向存放的,即在读取TLC NAND Flash中单独一个逻辑页时即可进行译码,而不需要同时获取3个逻辑页的信息。标识冗余位中的信息表示本逻辑页循环移位的次数,从而通过相应逻辑页的标识位信息即可对数据进行反向循环移位实现译码过程,将lower page根据标识冗余位的位移次数进行循环左移,即可得到译码后的数据,如图5所示。

分别对选取lower page、middle page、upper page各单独逻辑页进行方式一循环移位编码以及随机化数据加扰编码进行对比(码长均为8),编码后各电压态占比情况及编码后预测的原始误码率情况如表3所示,编码后各电压态占比情况,如图6所示。其中,randomizer为随机化加扰编码,uppshift8CL为选取upper page循环移位编码,midshift8CL为选取middle page循环移位编码,lowshift8CL为选取lower page循环移位编码。其中,CL表示码长(code length)。

表3方式一与随机编码后各电压态占比

由表3和图6可知,实施例1提供的方式一循环移位编码方式,改变数据中的电压态占比,降低容易出现错误的高电压态的占比,可以降低数据整体的误码率,得到较好的效果,并且选择方式一进行循环移位编码时,选取任一逻辑页进行循环移位均可改变数据中的电压态占比,降低数据整体误码率。

将不同码长下选取lower page单独逻辑页进行方式一循环移位编码以及随机化数据加扰编码进行对比,编码后的各电压态占比情况以及编码后预测的原始误码率情况,如表4所示(仅列出码长为128和8的情况),编码后的各电压态占比情况,如图7所示。其中,randomizer为随机化加扰编码,lowshift128CL为码长为128的选取lower page循环移位编码,lowshift64CL为码长为64的选取lower page循环移位编码,lowshift32CL为码长为32的选取lower page循环移位编码,lowshift16CL为码长为16的选取lower page循环移位编码,lowshift8CL为码长为8的选取lower page循环移位编码。

表4不同码长的方式一编码后各电压态占比

由表4和图7可知,实施例1提供的方式一循环移位编码方式,不同码长均可改变数据中的电压态占比,降低容易出现错误的高电压态的占比,降低数据整体的误码率,并且随着码率的降低即码长的变小对高电压态比例的降低效果越来越显著,但也会相应牺牲越来越多的存储单元来做标识冗余位。

选取单独一个逻辑页的方式一循环位移编码、两个逻辑页的方式二和方式三循环位移编码以及随机加扰编码进行对比,码长为8,编码后的各电压态占比情况以及编码后预测的原始误码率情况,如表5所示,编码后的各电压态占比情况,如图8所示。其中,randomizer为随机化加扰编码,1shift8CL为方式一循环移位编码,2shift8CL为两个逻辑页的方式二循环移位编码,2optshift8CL为两个逻辑页的方式三循环移位编码;其中,2shift8CL、2optshift8CL为方式二和方式三中选取逻辑页数量m=2的情况。

表5不同编码方式后各电压态占比

由表5和图8可知,实施例1提供的方式一、二、三循环移位编码方式,均可改变数据中的电压态占比,降低容易出现错误的高电压态的占比,降低数据整体的误码率,并且方式二和方式三编码方式的编码后数据可靠性优于方式一编码方式。

将不同码长下选取两个逻辑页的方式三循环位移编码以及随机加扰编码进行对比,编码后的各电压态占比情况以及编码后预测的原始误码率情况,如表5所示,编码后的各电压态占比情况,如图9所示。其中,Randomizer为随机化加扰编码,2optshift128CL为码长为128下的方式三循环移位编码,2optshift64CL为码长为64下的方式三循环移位编码,2optshift32CL为码长为32下的方式三循环移位编码,2optshift16CL为码长为16下的方式三循环移位编码,2optshift8CL为码长为8下的方式三循环移位编码。

由表6和图9可知,实施例1提供的方式三循环移位编码方式,不同码长下均可改变数据中的电压态占比,降低容易出现错误的高电压态的占比,降低数据整体的误码率。

表6不同码长的方式三编码后各电压态占比

综上,实施例1提供的一种基于NAND Flash可靠性的数据处理方法,充分考虑了数据保持时间的相关特性,能够有效的提高数据可靠性。

本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

相关技术
  • 一种基于NAND FLASH的数据存储方法、终端设备及存储介质
  • 一种基于极化码和元数据信息的NAND FLASH差错控制方法
  • Nand flash的数据处理方法、装置和一种Nand flash
  • Nand flash的数据处理方法、装置和一种Nand flash
技术分类

06120116502017