判断NAND闪存数据可靠性的方法、存储介质及存储设备转让专利

申请号 : CN202210214044.9

文献号 : CN114281271B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 宛丽娟薛红军蒲强孟欣

申请人 : 北京得瑞领新科技有限公司

摘要 :

本发明涉及数据存储技术领域,提供了一种判断NAND闪存数据可靠性的方法、存储介质及存储设备,该方法包括:根据NAND闪存中物理块block上的物理页page的错误类型对NAND闪存中各个物理块的数据可靠性进行级别划分;根据各个物理块对应的数据可靠性级别确定各个物理块的优化处理方式;对各个物理块按照与其数据可靠性级别匹配的优化处理方式进行处理。本发明根据NAND闪存中物理块block上的物理页page的错误类型对NAND闪存中各个物理块的数据可靠性进行级别划分,对不同级别的数据可靠性使用不同的优化处理方式,避免因为data retention等因素影响产生的误判,从而延长SSD的使用寿命,同时,对于真实不可靠的block,能够提前发现,保证数据的可靠性。

权利要求 :

1.一种判断NAND 闪存数据可靠性的方法,其特征在于,所述方法包括:根据NAND 闪存中物理块block上的物理页page的错误类型对NAND 闪存中各个物理块的数据可靠性进行级别划分;

根据各个物理块对应的数据可靠性级别确定各个物理块的优化处理方式;

对各个物理块按照与其数据可靠性级别匹配的优化处理方式进行处理;

所述根据NAND 闪存中物理块block上的物理页page的错误类型对NAND 闪存的数据可靠性进行级别划分,包括:

当NAND 闪存中block上的page出现读错误,且通过ReadRetry纠错方法可实现纠错时,则判定当前物理块的数据可靠性级别为物理页不可靠;

当NAND 闪存中block上的属性为lower page的page出现读错误,且通过ReadRetry纠错方法不能实现纠错,则判定当前物理块的数据可靠性级别为物理块不可靠。

2.根据权利要求1所述的方法,其特征在于,所述数据可靠性级别包括物理页不可靠、物理块不可靠和坏块;

所述对各个物理块按照与其数据可靠性级别匹配的优化处理方式进行处理包括:若block的数据可靠性级别为物理页不可靠,则对出现读错误的page进行数据回收;

若block的数据可靠性级别为物理块不可靠,则对当前block进行数据回收,并在数据回收完成后进行擦除以便继续使用;

若block的数据可靠性级别为坏块,则对当前block进行数据回收,并在数据回收完成之后将当前block 标为坏块。

3.根据权利要求1所述的方法,其特征在于,所述根据NAND 闪存中物理块block上的物理页page的错误类型对NAND 闪存的数据可靠性进行级别划分,还包括:记录数据可靠性级别为物理页不可靠的block上出现读错误的page数量;

当page数量大于预设的第一数量阈值时,则判定当前block的数据可靠性级别变更为物理块不可靠。

4.根据权利要求3所述的方法,其特征在于,所述根据NAND 闪存中物理块block上的物理页page的错误类型对NAND 闪存的数据可靠性进行级别划分,还包括:当NAND 闪存中block上的除属性为lower page以外的page出现无法通过ReadRetry纠错方法纠错的读错误,且出错的page数量大于预设的第二数量阈值时,则判定当前block的数据可靠性级别为物理块不可靠,所述第一数量阈值大于所述第二数量阈值。

5.根据权利要求1‑4任一项所述的方法,其特征在于,所述方法还包括:根据各目标block上的每一出错page的错误类别为各目标block进行不可靠性记点打分,目标block是可靠性级别为物理块不可靠的block;

当目标block的记点打分值大于预设的记点阈值时,判定当前block为坏块。

6.根据权利要求5所述的方法,其特征在于,所述根据各目标block上的每一出错page的错误类别为各目标block进行不可靠性记点打分,包括:若出错page的错误类别为第一类别,则记点值为0,所述第一类别为可通过ReadRetry纠错方法实现纠错的错误;

若出错page的错误类别为第二类别或第三类别,则记点值大于0,所述第二类别为block上的属性为lower page的page出现读错误,且通过RAID纠错方法可实现纠错的错误,所述第三类别为block上的除属性为lower page以外的page出现读错误,且通过RAID纠错方法可实现纠错的错误。

7.根据权利要求6所述的方法,其特征在于,所述记点值的取值大小与page 的稳定性属性成反比。

8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1‑7任一项所述方法的步骤。

9.一种存储设备,其特征在于,包括存储控制器,所述存储控制器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1‑7任一项所述方法的步骤。

说明书 :

判断NAND闪存数据可靠性的方法、存储介质及存储设备

技术领域

[0001] 本发明涉及数据存储技术领域,尤其涉及一种判断NAND 闪存数据可靠性的方法、存储介质及存储设备。

背景技术

[0002] NAND闪存的一个特性就是随着使用以及数据存储的时间变长,存储在闪存里的数据越容易发生比特翻转,出现随机性的错误。这些错误的来源有数据保持(data 
retention)、擦写次数增多(Program/Erase Count)、读干扰、存储单元之间的耦合等,这些
因素都会影响NAND中数据的可靠性。因此,在SSD的使用过程中,需要采用一些数据完整性
的技术保证数据的可靠性。常见的技术有:ECC纠错、RAID数据恢复、重读(read retry)、扫
描重写技术(read scrub)、数据随机化等。重读技术可以不断改变参考电压,来尝试找到可
以读出数据的电压点,直到正确读出数据。RAID纠错技术是由不同die上的block组成阵列,
类似磁盘阵列,其中的一个die用来存储校验数据,阵列中其他die存储用户数据。另外,数
据恢复后,还需要介入数据回收处理(Garbage Collection: GC),将数据写入其他可靠的
物理位置中。
[0003] 为了能够有效地提高NAND 闪存数据可靠性,如何准确判断数据是否可靠以及可靠的程度具有重要意义。但是现有技术方案无法做到这一点,现有技术不仅容易出现误杀
block的情况,减小SSD的使用空间,而且不能尽早的将不可靠的block剔除,有数据丢失的
风险。

发明内容

[0004] 鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的判断NAND 闪存数据可靠性的方法、存储介质及存储设备。
[0005] 本发明的一个方面,提供了一种判断NAND 闪存数据可靠性的方法,所述方法包括:
[0006] 根据NAND 闪存中物理块block上的物理页page的错误类型对NAND 闪存中各个物理块的数据可靠性进行级别划分;
[0007] 根据各个物理块对应的数据可靠性级别确定各个物理块的优化处理方式;
[0008] 对各个物理块按照与其数据可靠性级别匹配的优化处理方式进行处理。
[0009] 进一步地,所述数据可靠性级别包括物理页不可靠、物理块不可靠和坏块;
[0010] 所述对各个物理块按照与其数据可靠性级别匹配的优化处理方式进行处理包括:
[0011] 若block的数据可靠性级别为物理页不可靠,则对出现读错误的page进行数据回收;
[0012] 若block的数据可靠性级别为物理块不可靠,则对当前block进行数据回收,并在数据回收完成后进行擦除以便继续使用;
[0013] 若block的数据可靠性级别为坏块,则对当前block进行数据回收,并在数据回收完成之后将当前block 标为坏块。
[0014] 进一步地,所述根据NAND 闪存中物理块block上的物理页page的错误类型对NAND 闪存的数据可靠性进行级别划分,包括:
[0015] 当NAND 闪存中block上的page出现读错误,且通过ReadRetry纠错方法可实现纠错时,则判定当前物理块的数据可靠性级别为物理页不可靠;
[0016] 当NAND 闪存中block上的属性为lower  page的page出现读错误,且通过ReadRetry纠错方法不能实现纠错,则判定当前物理块的数据可靠性级别为物理块不可靠。
[0017] 进一步地,所述根据NAND 闪存中物理块block上的物理页page的错误类型对NAND 闪存的数据可靠性进行级别划分,还包括:
[0018] 记录数据可靠性级别为物理页不可靠的block上出现读错误的page数量;
[0019] 当page数量大于预设的第一数量阈值时,则判定当前block的数据可靠性级别变更为物理块不可靠。
[0020] 进一步地,所述根据NAND 闪存中物理块block上的物理页page的错误类型对NAND 闪存的数据可靠性进行级别划分,还包括:
[0021] 当NAND 闪存中block上的除属性为lower page以外的page出现无法通过ReadRetry纠错方法纠错的读错误,且出错的page数量大于预设的第二数量阈值时,则判定
当前block的数据可靠性级别为物理块不可靠,所述第一数量阈值大于所述第二数量阈值。
[0022] 进一步地,所述方法还包括:
[0023] 根据各目标block上的每一出错page的错误类别为各目标block进行不可靠性记点打分,目标block是可靠性级别为物理块不可靠的block;
[0024] 当目标block的记点打分值大于预设的记点阈值时,判定当前block为坏块。
[0025] 进一步地,所述根据各目标block上的每一出错page的错误类别为各目标block进行不可靠性记点打分,包括:
[0026] 若出错page的错误类别为第一类别,则记点值为0,所述第一类别为可通过ReadRetry纠错方法实现纠错的错误;
[0027] 若出错page的错误类别为第二类别或第三类别,则记点值大于0,所述第二类别为block上的属性为lower page的page出现读错误,且通过RAID纠错方法可实现纠错的错误,
所述第三类别为block上的除属性为lower page以外的page出现读错误,且通过RAID纠错
方法可实现纠错的错误。
[0028] 进一步地,所述记点值的取值大小与page 的稳定性属性成反比。
[0029] 第二方面,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上判断NAND 闪存数据可靠性的方法的步骤。
[0030] 第三方面,本发明还提供了一种存储设备,包括存储控制器,所述存储控制器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所
述计算机程序时实现如上判断NAND 闪存数据可靠性的方法的步骤。
[0031] 本发明实施例提供的判断NAND 闪存数据可靠性的方法、存储介质及存储设备,根据NAND 闪存中物理块block上的物理页page的错误类型对NAND 闪存中各个物理块的数据
可靠性进行级别划分,对不同程度的可靠度使用不同的处理方式,避免因为data 
retention等因素影响产生的误判,而误杀block,从而延长SSD的使用寿命,同时,对于真实
不可靠的block ,能够提前发现,保证数据的可靠性。
[0032] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够
更明显易懂,以下特举本发明的具体实施方式。

附图说明

[0033] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明
的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0034] 图1为本发明实施例提供的判断NAND 闪存数据可靠性的方法流程图;
[0035] 图2为本发明实施例提供的实现坏块判别的方法流程图。

具体实施方式

[0036] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例
所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围
完整的传达给本领域的技术人员。
[0037] 本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措
辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加
一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
[0038] 本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该
理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的
意义一致的意义,并且除非被特定定义,否则不会用理想化或过于正式的含义来解释。
[0039] 图1示意性示出了本发明一个实施例的判断NAND 闪存数据可靠性的方法的流程图。参照图1,本发明实施例的判断NAND 闪存数据可靠性的方法具体包括以下步骤:
[0040] S11、根据NAND 闪存中物理块block上的物理页page的错误类型对NAND 闪存中各个物理块的数据可靠性进行级别划分。
[0041] 本发明实施例中,数据可靠性级别包括物理页不可靠、物理块不可靠和坏块。其中:
[0042] 物理页不可靠即为Level 0:nand page级别的不可靠,但是其所在的block依然可靠;
[0043] 物理块不可靠即为Level 1:nand block级别的不可靠,但是此block在擦除之后能恢复可靠;
[0044] 坏块即为Level 2:nand block在擦除之后也不能恢复可靠,即bad block。
[0045] S12、根据各个物理块对应的数据可靠性级别确定各个物理块的优化处理方式。具体的,根据物理块对应的数据可靠性级别的不同,优化处理方式包括以下三种:第一,对
block上出现读错误的page进行数据回收处理,当前block继续保持原状态,继续使用;第
二,对block进行数据回收处理并当前block擦除后将继续使用;以及第三,对block进行数
据回收处理并将当前block 标为坏块。
[0046] S13、对各个物理块按照与其数据可靠性级别匹配的优化处理方式进行处理。
[0047] 本发明实施例中,对各个物理块按照与其数据可靠性级别匹配的优化处理方式进行处理,具体包括以下内容:若block的数据可靠性级别为物理页不可靠,则对出现读错误
的page进行数据回收,当前block继续保持原状态,继续使用;若block的数据可靠性级别为
物理块不可靠,则对当前block进行数据回收,并在数据回收完成后进行擦除以便继续使
用;若block的数据可靠性级别为坏块,则对当前block进行数据回收,并在数据回收完成之
后将当前block 标为坏块。
[0048] 本实施例中,对于级别为Level 0即 nand page级别的不可靠,将对此page的数据进行回收处理,将数据写到新的物理地址,当前block擦除后将继续使用;对于级别为level 
1 即nand block 级别的不可靠,将对此block上的数据进行回收处理,回收完成并擦除之
后,将还会使用此block;对于level 3,回收block上的数据之后,将block 标为坏块,将不
再使用。
[0049] 本发明根据NAND 闪存中物理块block上的物理页page的错误类型对NAND 闪存中各个物理块的数据可靠性进行级别划分,对不同级别的数据可靠性使用不同的优化处理方
式,避免因为data retention等因素影响产生的误判,而误杀block,从而延长SSD的使用寿
命,同时,对于真实不可靠的block ,能够提前发现,保证数据的可靠性。
[0050] 本发明实施例中,page的错误类型包括三类,第一类别为block上的page出现读错误,且通过ReadRetry纠错方法可实现纠错的错误,第二类别为block上的属性为lower 
page的page出现读错误,且通过ReadRetry纠错方法不能实现纠错的错误,第三类别为
block上的除属性为lower page以外的page出现读错误,且通过ReadRetry纠错方法不能实
现纠错的错误。
[0051] 在一个具体实施例中,可直接根据block上的page的错误类型对NAND 闪存中各个物理块的数据可靠性进行级别划分。具体实现如下:
[0052] 当NAND 闪存中block上的page出现读错误,且通过ReadRetry纠错方法可实现纠错时,则判定当前物理块的数据可靠性级别为物理页不可靠;
[0053] 当NAND 闪存中block上的属性为lower  page的page出现读错误,且通过ReadRetry纠错方法不能实现纠错时,则判定当前物理块的数据可靠性级别为物理块不可
靠。由于与page 的稳定性属性为lower 的page 较其他物理page更不容易出错,因此,当
block上的属性为lower page的page出现读错误,且通过ReadRetry纠错方法不能实现纠
错,需要启动更高级别的纠错方式才能实现纠错,例如:RAID纠错方法,则可直接判定当前
物理块的数据可靠性级别为物理块不可靠。
[0054] 在本发明的另一个实施例中,对于数据可靠性级别为物理页不可靠的block进行监测,并记录数据可靠性级别为物理页不可靠的block上出现读错误的page数量,当page数
量大于预设的第一数量阈值时,则判定当前block的数据可靠性级别变更为物理块不可靠。
[0055] 在本发明的另一个实施例中,当NAND 闪存中block上的除属性为lower page以外的page出现无法通过ReadRetry纠错方法纠错的读错误,需要启动更高级别的纠错方式才
能实现纠错,例如:RAID纠错方法,且出错的page数量大于预设的第二数量阈值时,则判定
当前block的数据可靠性级别为物理块不可靠。
[0056] 其中,第一数量阈值大于所述第二数量阈值。本实施例中,第一数量阈值可选为10‑70,第二数量阈值可选为2‑7,具体可根据对NAND 闪存的可靠性要求进行设置,阈值取
值越小,NAND 闪存中数据越可靠。
[0057] 图2为本发明实施例提供的实现坏块判别的方法流程图,本发明通过以下方法实现坏块的判别,具体如下:
[0058] S21、根据各目标block上的每一出错page的错误类别为各目标block进行不可靠性记点打分,目标block是可靠性级别为物理块不可靠的block;
[0059] S22、当目标block的记点打分值大于预设的记点阈值时,判定当前block为坏块。
[0060] 其中,根据各目标block上的每一出错page的错误类别为各目标block进行不可靠性记点打分,具体包括:若出错page的错误类别为第一类别,则记点值为0,所述第一类别为
可通过ReadRetry纠错方法实现纠错的错误;若出错page的错误类别为第二类别或第三类
别,则记点值大于0,所述第二类别为block上的属性为lower page的page出现读错误,且无
法通过ReadRetry纠错方法纠错的错误,所述第三类别为block上的除属性为lower page以
外的page出现读错误,且无法通过ReadRetry纠错方法纠错的错误。记点值的取值大小与
page 的稳定性属性成反比。本发明依据nand特性,使用不同的权重统计记点,更符合实际
应用,在保证数据可靠的同时,能够延长SSD寿命,保证性能不受影响。
[0061] 本发明实施例中,以上各数据可靠性级别level的划分原则主要依赖于数据纠错统计:
[0062] a. 当NAND 闪存中block 上的某个page数据读出错,启动了read retry纠错,并能将数据读回,此时认为出错page的错误类别为第一类别,启动以上level 0处理流程,同
时记录block上的出错page 数量,但当前block不参与记点打分;
[0063] b. 满足以下三个条件,则认为此block不可靠,将启动level 1 的优化处理流程,具体包括:①如果NAND 闪存中block上触发level 0的page数大于所设定的第一数量阈值;
②读某个lower page的数据时出错,需要触发RAID纠错将数据读回;③除lower page以外
的page出现读错误,需要触发RAID纠错将数据读回,且出错的page数量大于所设定的第二
数量阈值。
[0064] 此时,当前block参与记点打分,更新block的记点打分值,具体记点打分规则为:对于满足条件①的block,记点数设为0,即不参加记点;对于满足条件②③的block,记点值
大于0,记点值的取值大小依赖物理page 属性,记点值的取值大小与page 的稳定性属性成
反比。
[0065] 例如,对于MLC nand, 记点值lower page > upper page;
[0066] 对于TLC nand, 记点值lower page > upper page > exter page。
[0067] c. 当以上b流程中block对应的记点打分值大于预设的记点阈值时,判定当前block为坏块,将启动level 2对应的优化处理流程。
[0068] 本发明实施例中,对于由data retention和read disturb触发的大量读错误,由于这些错误大多数可通过read retry将数据读回来,本发明将这种block称之为弱块,擦除
后可恢复为好块,本发明结合以上a原则及b 原则的第①项,可过滤出retention和read 
disturb的影响,将数据尽快回收并擦除block,恢复可靠性,避免因retention引起的数据
出错而误杀block,可延长SSD使用寿命,对于以上b原则的②③项和c原则,能够剔除因电器
元件或是磨损造成的不能恢复可靠的block,并将其标为坏块,不再使用,保证闪存性能不
受影响。
[0069] 第二方面,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上判断NAND 闪存数据可靠性的方法的步骤。
[0070] 第三方面,本发明还提供了一种存储设备,包括存储控制器,所述存储控制器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所
述计算机程序时实现如上判断NAND 闪存数据可靠性的方法的步骤。
[0071] 对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施
例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书
中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
[0072] 此外,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述判断NAND 闪存数据可靠性的方法的步骤。
[0073] 本实施例中,所述判断NAND 闪存数据可靠性的方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这
样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指
令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程
序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算
机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中
间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装
置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read‑Only 
Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件
分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法
和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机
可读介质不包括电载波信号和电信信号。
[0074] 此外,本发明实施例还提供了一种存储设备,包括存储控制器,所述存储控制器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行
所述程序时实现如上判断NAND 闪存数据可靠性的方法的步骤。例如图1所示的步骤S11
~
S13。
[0075] 在一个具体实施例中,存储设备为固态硬盘SSD。
[0076] 本发明实施例提供的判断NAND 闪存数据可靠性的方法、存储介质及存储设备,根据NAND 闪存中物理块block上的物理页page的错误类型对NAND 闪存中各个物理块的数据
可靠性进行级别划分,对不同程度的可靠度使用不同的处理方式,避免因为data 
retention等因素影响产生的误判,而误杀block,从而延长SSD的使用寿命,同时,对于真实
不可靠的block ,能够提前发现,保证数据的可靠性。
[0077] 此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围
之内并且形成不同的实施例。例如,所要求保护的实施例的任意之一都可以以任意的组合
方式来使用。
[0078] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可
以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;
而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和
范围。