一种NAND闪存出现ECC无法纠错时的数据恢复方法转让专利

申请号 : CN201510403709.0

文献号 : CN104932951B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 符方晓

申请人 : 符方晓

摘要 :

本发明公开了一种MLC/TLC/QLC Nand闪存出现ECC无法纠正错误时的数据恢复方法。本发明实施例方法包括:当读操作到来时,设所读page为当前page;判断当前page的bit错误是否可通过ECC纠正,若否,则判断此Page是否有lower Page,若有lower page,将lower pages的数据读出来并记录bit翻转信息;根据当前page的lower pages的bit翻转信息修改当前page的数据;然后重新对当前page做ECC纠正。本发明能恢复大部分Nand Flash出现ECC无法纠正的错误时的数据。

权利要求 :

1.一种MLC/TLC/QLC NAND闪存出现ECC无法纠正错误时的数据恢复方法,其特征在于,包括读NAND闪存的操作;

设所读page为当前page,判断当前page的bit错误是否可通过ECC纠正,若是则读操作完成,若否则将当前page的lower pages读出来做ECC并记录bit翻转信息,然后根据lower pages的bit翻转信息修改当前page的bits;

重新对当前page做ECC校验;

其中:根据lower pages的bits翻转信息修改当前page的数据时,依据的原则是如果lower pages的二进制正确值小于错误值则设置当前page对应bit的值为1,如果lower pages的二进制正确值大于错误值则设置当前page对应bit的值为0,也就是说在高位bit已经确定的情况下,低位bit的设置必须使得整个CELL的估计值与读出来的错误值的差距比较小。

2.根据权利要求1所述的数据恢复方法,其特征在于,

所述NAND闪存中每个CELL存储大于或者等于2bit数据,二进制高位数据属于lower page,二进制低位数据属于upper page。

3.根据权利要求1所述的数据恢复方法,其特征在于,还包括,

对于MLC NAND,如果发现lower page对应bit从正确的0变成的错误的1,那么整个CELL的正确值可能是二进制00或者01,显然01更加接近错误值10或者11,所以直接设置当前page对应bit的值为1。

说明书 :

一种NAND闪存出现ECC无法纠错时的数据恢复方法

技术领域

[0001] 本文涉及存储技术领域,尤其涉及MLC,TLC和QLC NAND的数据恢复。

背景技术

[0002] SLC NAND = Single-Level Cell ,即1bit/cell;MLC NAND = Multi-Level Cell,即2bit/cell,速度一般寿命一般,价格一般,约3000---10000次擦写寿命,我们将每个CELL对应的2个page叫做low page,up page; TLC NAND = Trinary-Level Cell,即3bit/cell,也有NAND闪存厂家叫8LC,速度慢寿命短,价格便宜,约500-1000次擦写寿命,我们将每个CELL对应的3个page叫做low page,middle page,up page; QLC NAND = Quad-Level Cell架构,即4bit/cell,我们将每个CELL对应的4个page叫做low page,secondlow page,middle page,up page。
[0003] 在本文中lower page和upper page是相对的,比如在QLC NAND中, secondlow page相对于low是upper page,但是secondlow page相对于middle page是lower page,而low page, secondlow page,middle page,up page是指的一种类型的page,不是相对的概念。
[0004] 跟SLC比起来,MLC,TLC和QLC的特点是容量大成本低,存储不稳定,出错的几率较大,需要进行错误修正才能使用。大容量的MLC,TLC和QLC NAND 一般采用可以纠错的错误检查和纠正( 英文:Error Correcting Code,缩写:ECC) 编码来保证存储数据的完整性。
[0005] MLC,TLC和QLC NAND一个CELL存放2 bit以上的数据,这些bit分别属于不同的page,二进制高位属于lower page,二进制低位属于upper page。比如对于TLC NAND来说,一个CELL存放二进制110(十进制为6),表示low page里面相应bit为1,middle page里面的相应bit为1,up page相应bit为0。

发明内容

[0006] 本发明实施例提供了一种NAND 闪存的数据恢复方法,用于解决NAND数据出现ECC无法纠错时的数据恢复方法。
[0007] 本发明实施例提供了一种NAND 闪存出现ECC无法纠错时的数据恢复方法,包括;如果发现读取操作无法通过ECC纠正当前page所有的bit翻转错误的时候,将当前page的lower pages读出来做ECC纠错之后记录bit翻转信息,根据lower pages的bit翻转信息修改当前page的数据。
[0008] 所述修改当前page的bit的原则是,如果lower pages的二进制正确值小于错误值则设置当前page对应bit的值为1,如果lower pages的二进制正确值大于错误值则设置当前page对应bit的值为0,这样可以使得在高位bits已经确定的情况下,低位bit的设置使得整个CELL的估计值与读出来的错误值的差距比较小。比如对于MLC NAND,low page经过ECC之后发现某个CELL的bit从0(ECC后的正确值)翻转成了1(ECC前的错误值),那么整个CELL存放的正确值可能是01或者00,而整个CELL的错误值可能是10或者11,很显然对于错误值10(十进制2)或者11(十进制3)来说,正确值为01的可能性比较大,直接设置当前page相应位置的bit为1。
[0009] 根据lower pages的bit翻转信息修改完当前page的数据之后重新对当前page做ECC纠错。

附图说明

[0010] 图1为NAND闪存CELL数据与所属page关系示意图。
[0011] 图2为本发明的NAND 闪存出现ECC无法纠错时的数据恢复方法的一个实施案列的流程图。具体实施方案
[0012] 本发明实施例提供了一种NAND 闪存出现ECC无法纠错时的数据恢复方法,用于解决MLC,TLC和QLC NAND数据存储不可靠的问题。
[0013] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0014] 本发明的说明书和权利要求书及上述附图中的术语“包含”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包含没有清楚地列出的或对于这些过程、方法、系统、产品或设备固有的其它步骤或单元。
[0015] 分析发现MLC NAND,TLC NAND和QLC NAND闪存一个存储单元称为CELL,可以存储2个bit以上的信息,这些bit信息分别属于不同的page,二进制高位属于lower page,二进制低位属于upper page。比如对于MLC NAND,二进制10(十进制2),其中low page对应bit为1,up page对应bit为0。又比如对于TLC NAND,二进制011,其中low page对应bit为0,middle page对应bit为1,up page对应bit为1。对于QLC NAND,对于二进制1100,low page对应bit为1,secondlow page对应bit为1,middle page对应bit为0,up page对应bit为0。
[0016] 分析发现对于NAND闪存来说,如果CELL发生错误,那么错误值与正确值的差比较小的可能性比较大。比如一个CELL的正确值为2,那么它跳变成1的可能性比0要大。又比如一个CELL的正确值为1,那么它跳变成2的可能性比3要大。针对这种情况,当CELL的二进制高位跳变情况已经确定之后,直接设置低位的值正确几率比较大。比如对于MLC NAND,如果发现lower page对应bit从正确的0变成的错误的1,那么整个CELL的正确值可能是二进制00或者01,显然01更加接近错误值10或者11,所以直接设置upper page对应bit的值为1。又比如对于TLC,假如已经确定高位2个bit值从正确值01变成错误值10,那么正确值可能是
010或者011,相对于错误值100或者101,都是011比较接近,所以直接设置upper page对应bit为1。
[0017] NAND接收到读操作到来,设需要读取的page为当前page,读取NAND并作ECC纠错。
[0018] 如果ECC纠错成功就直接返回,否则继续。
[0019] 将当前page的lower pages读出来并做ECC纠错,并保存bit翻转信息。
[0020] 根据lower pages的bit翻转信息修改完当前page的数据之后,重新对当前page的数据做ECC纠错。
[0021] 如果无法纠错,返回[0019]重试N次,N为配置的一个经验值。
[0022] 对于TLC NAND,如果up page和middle page同时出现ECC无法纠正的错误,那么根据low page的bit翻转信息先恢复middle page的数据,然后再恢复up page的数据。同理,如果QLC NAND的up page,middle page和 secondlow page同时出现ECC无法纠错的情况时,那么使用相同方法先恢复secondlow page和 middle page的数据,最后恢复up page的数据。
[0023] 以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。