一种闪存的坏块管理方法、装置和一种存储装置转让专利

申请号 : CN201611143916.8

文献号 : CN106601303B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄志铭庞荣

申请人 : 建荣半导体(深圳)有限公司建荣集成电路科技(珠海)有限公司珠海煌荣集成电路科技有限公司

摘要 :

本发明属于数据存储领域,提供一种闪存的坏块管理方法、装置和一种存储系统,以提高整个NAND Flash的利用率。所述方法包括:从块队列中取出待写块;检查待写块是否被标识了再生流程旗标;若待写块被标识了再生流程旗标,则判断被标识了再生流程旗标的待写块是否满足利用率要求;若被标识了再生流程旗标的待写块满足利用率要求,则将满足利用率要求的待写块纳入写数据流程执行写操作。本发明提供的技术方案一方面并不会影响闪存的读写效能;另一方面,可以避免NAND Flash等闪存的存储空间的浪费,从而提高整个NAND Flash的利用率。

权利要求 :

1.一种闪存的坏块管理方法,其特征在于,所述方法包括:从块队列中取出待写块;

检查所述待写块是否被标识了再生流程旗标;

若所述待写块被标识了再生流程旗标,则将所述被标识了再生流程旗标的待写块执行块擦除操作;

对所述执行了块擦除操作的待写块进行写预处理操作,以确定所述被标识了再生流程旗标的待写块可用空间是否满足利用率要求;

若所述被标识了再生流程旗标的待写块满足利用率要求,则将所述满足利用率要求的待写块纳入写数据流程执行写操作。

2.如权利要求1所述的方法,其特征在于,所述对所述执行了块擦除操作的待写块进行写预处理操作,以确定所述被标识了再生流程旗标的待写块可用空间是否满足利用率要求,包括:检测所述被标识了再生流程旗标的待写块的每一扇区;

若检测到所述被标识了再生流程旗标的待写块存在一个坏扇区,则将坏扇区计数器的值累加1,并再次检测下一扇区;

在重复上述过程后,若所述坏扇区计数器的值大于预设阈值,则将所述被标识了再生流程旗标的待写块标识为坏块,否则,确定所述被标识了再生流程旗标的待写块可用空间满足利用率要求。

3.如权利要求1或2所述的方法,其特征在于,所述从块队列中取出待写块之前,所述方法还包括:获取块的状态;

若所述块的状态为不佳,则将所述状态不佳的块标识再生流程旗标;

将所述状态不佳且标识了再生流程旗标的块存入所述块队列。

4.如权利要求1或2所述的方法,其特征在于,若所述被标识了再生流程旗标的待写块不满足利用率要求,则所述方法还包括:将所述被标识了再生流程旗标且不满足利用率要求的待写块标记为坏块。

5.一种闪存的坏块管理装置,其特征在于,所述装置包括:取块模块,用于从块队列中取出待写块;

旗标检查模块,用于检查所述待写块是否被标识了再生流程旗标;

判断模块,用于若所述待写块被标识了再生流程旗标,则将所述被标识了再生流程旗标的待写块执行块擦除操作;

预处理模块,用于对所述执行了块擦除操作的待写块进行写预处理操作,以确定所述被标识了再生流程旗标的待写块可用空间是否满足利用率要求;

写模块,用于若所述判断模块的判断结果为所述被标识了再生流程旗标的待写块满足利用率要求,则将所述满足利用率要求的待写块纳入写数据流程执行写操作。

6.如权利要求5所述的装置,其特征在于,所述预处理模块包括:检测单元,用于检测所述被标识了再生流程旗标的待写块的每一扇区;

累加单元,用于若所述检测单元检测到所述被标识了再生流程旗标的待写块存在一个坏扇区,则将坏扇区计数器的值累加1,并使所述检测单元再次检测下一扇区;

确定单元,用于所述检测单元和累加单元重复上述过程后,若所述坏扇区计数器的值大于预设阈值,则将所述被标识了再生流程旗标的待写块标识为坏块,否则,确定所述被标识了再生流程旗标的待写块可用空间满足利用率要求。

7.如权利要求5或6所述的装置,其特征在于,所述装置还包括:状态获取模块,用于所述取块模块从块队列中取出待写块之前,获取块的状态;

旗标标识模块,用于若所述块的状态为不佳,则将所述状态不佳的块标识再生流程旗标;

入队模块,用于将所述状态不佳且标识了再生流程旗标的块存入所述块队列。

8.如权利要求5或6所述的装置,其特征在于,所述装置还包括:坏块标记模块,用于若所述被标识了再生流程旗标的待写块不满足利用率要求,则将所述被标识了再生流程旗标且不满足利用率要求的待写块标记为坏块。

9.一种存储系统,其特征在于,所述存储系统包括权利要求5至8任意一项所述的闪存的坏块管理装置。

说明书 :

一种闪存的坏块管理方法、装置和一种存储装置

技术领域

[0001] 本发明属于数据存储领域,尤其涉及一种闪存的坏块管理方法、装置和一种存储装置。

背景技术

[0002] Flash memory简称闪存或Flash,是电子清除式可编程只读存储器(EEPROM)的一种,允许在操作中多次擦(Erase)或写(Program)。闪存是一种特殊的、以大区块擦写的EEPROM,其成本和速度都远较普通的以字节为单位写入的EEPROM有优势,也因此成为非挥发性固态存储最重要、也最广为采纳的技术。
[0003] 目前Flash主要分为NOR型和NAND型两种结构,NAND Flash相较于NOR Flash具有擦写速度快、存储密度高、单位陈本低的有点。由于Flash的一个主要限制在于它的物理单元在写操作时只能由1变成0,因此,当NAND Flash的一个单元写过之后只能借由擦除操作(Erase)来恢复1的状态。NAND Flash在物理上分为块(Block)和页(Page)两种基本单位,NAND Flash由若干块组成,而其中每个块由若干页组成。一个页在进行写入数据之前,必须先保证其所在的块已经经过了擦除,且每次该页需要重新写入数据之前必须先擦除其对应的块。
[0004] 由于NAND Flash工艺越来越先进,而导致NAND Flash耐久性和可靠度变得更差,同时,由于NAND Flash原厂对闪存坏块的定义是:若确定某个块(Block)的某个或某些页面有位错误并且超出检错纠错(Error Correcting Code,ECC)的能力范围,则该整个块就会被定义为坏块,然而,实际情况是该块的其他很多页面是好的且可以使用,因此,这种对坏块定义的方法直接导致了一旦NAND Flash有坏页发生,则会降低整个NAND Flash的利用率。

发明内容

[0005] 本发明的目的在于提供一种闪存的坏块管理方法、装置和一种存储系统,以提高整个NAND Flash的利用率。
[0006] 本发明第一方面提供一种闪存的坏块管理方法,所述方法包括:
[0007] 从块队列中取出待写块;
[0008] 检查所述待写块是否被标识了再生流程旗标;
[0009] 若所述待写块被标识了再生流程旗标,则判断所述被标识了再生流程旗标的待写块是否满足利用率要求;
[0010] 若所述被标识了再生流程旗标的待写块满足利用率要求,则将所述满足利用率要求的待写块纳入写数据流程执行写操作。
[0011] 本发明第二方面提供一种闪存的坏块管理装置,所述装置包括:
[0012] 取块模块,用于从块队列中取出待写块;
[0013] 旗标检查模块,用于检查所述待写块是否被标识了再生流程旗标;
[0014] 判断模块,用于若所述待写块被标识了再生流程旗标,则判断所述被标识了再生流程旗标的待写块是否满足利用率要求;
[0015] 写模块,用于若所述判断模块的判断结果为所述被标识了再生流程旗标的待写块满足当前利用率要求,则将所述满足利用率要求的待写块纳入写数据流程执行写操作。
[0016] 本发明第三方面提供一种存储系统,所述存储系统包括上述闪存的坏块管理装置。
[0017] 从上述本发明技术方案可知,通过检查从块队列中取出的待写块被标识了再生流程旗标,在判断被标识了再生流程旗标的待写块满足利用率要求后,再将所述满足利用率要求的待写块纳入写数据流程执行写操作。因此,一方面,在将待写块纳入写数据流程前进行的判断被标识了再生流程旗标的待写块满足利用率要求,其并不会影响闪存的读写效能;另一方面,由于被标识了再生流程旗标的块未必不能使用,在被标识了再生流程旗标的待写块满足当前写数据要求时将其纳入写数据流程,可以避免NAND Flash等闪存的存储空间的浪费,从而提高整个NAND Flash的利用率。

附图说明

[0018] 图1是本发明实施例一提供的闪存的坏块管理方法的实现流程示意图;
[0019] 图2是本发明实施例二提供的闪存的坏块管理装置的结构示意图;
[0020] 图3是本发明实施例三提供的闪存的坏块管理装置的结构示意图;
[0021] 图4是本发明实施例四提供的闪存的坏块管理装置的结构示意图;
[0022] 图5-a是本发明实施例五提供的闪存的坏块管理装置的结构示意图;
[0023] 图5-b是本发明实施例六提供的闪存的坏块管理装置的结构示意图;
[0024] 图5-c是本发明实施例七提供的闪存的坏块管理装置的结构示意图;
[0025] 图6-a是本发明实施例八提供的闪存的坏块管理装置的结构示意图;
[0026] 图6-b是本发明实施例九提供的闪存的坏块管理装置的结构示意图;
[0027] 图6-c是本发明实施例十提供的闪存的坏块管理装置的结构示意图。

具体实施方式

[0028] 为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0029] 本发明实施例提供一种闪存的坏块管理方法,所述方法包括:从块队列中取出待写块;检查所述待写块是否被标识了再生流程旗标;若所述待写块被标识了再生流程旗标,则判断所述被标识了再生流程旗标的待写块是否满足利用率要求;若所述被标识了再生流程旗标的待写块满足利用率要求,则将所述满足当前利用率要求的待写块纳入写数据流程执行写操作。本发明实施例还提供相应的闪存的坏块管理装置和一种存储系统。以下分别进行详细说明。
[0030] 请参阅附图1,是本发明实施例一提供的闪存的坏块管理方法的实现流程示意图,主要包括以下步骤S101至步骤S104,详细说明如下:
[0031] S101,从块队列中取出待写块。
[0032] 在本发明实施例中,块队列可视为缓存,入队列的是待写块,这些待写块既可能是可进行正常读写的块,又可能是被标识了再生流程旗标(unhealthy flag)的块。
[0033] S102,检查待写块是否被标识了再生流程旗标。
[0034] S103,若待写块被标识了再生流程旗标,则判断所述被标识了再生流程旗标的待写块是否满足利用率要求。
[0035] 在本发明实施例中,一旦块被标识了再生流程旗标(unhealthy flag),意味着该块的读写情况可能不稳定,例如,其物理单元有时不能恢复为状态“1”,后续被使用的概率或权重就会降低,因此,需要进一步处理。
[0036] 作为本发明一个实施例,若待写块被标识了再生流程旗标,则判断所述被标识了再生流程旗标的待写块是否满足利用率要求可以通过如下步骤S1031和S1032实现:
[0037] S1031,将被标识了再生流程旗标的待写块执行块擦除操作。
[0038] 需要说明的是,在本发明实施例中,待写块在写入数据之前,无论待写块是否被标识了再生流程旗标,均要通过对其执行块擦除(Erase)操作来恢复状态“1”。
[0039] S1032,对执行了块擦除操作的待写块进行写预处理操作,以确定所述被标识了再生流程旗标的待写块可用空间是否满足利用率要求。
[0040] 在本发明实施例中,被标识了再生流程旗标的待写块可用空间是否满足利用率要求可以是被标识了再生流程旗标的待写块可用空间是否太少,例如,若被标识了再生流程旗标的待写块的大部分扇区都是坏的,则其可用空间就不会满足利用率要求。
[0041] 作为本发明一个实施例,对执行了块擦除操作的待写块进行写预处理操作,以确定被标识了再生流程旗标的待写块可用空间是否满足利用率要求可通过如下步骤S’1至S’3实现:
[0042] S’1,检测被标识了再生流程旗标的待写块的每一扇区。
[0043] 扇区(sector)是闪存中比块(block)更小的单元。由于被标识了再生流程旗标的待写块可能只是其中的部分扇区坏了,因此,可以逐一检测被标识了再生流程旗标的待写块的每一扇区。
[0044] S’2,若检测到被标识了再生流程旗标的待写块存在一个坏扇区,则将坏扇区计数器的值累加1,并再次检测下一扇区。
[0045] 与现有技术只要块中存在坏扇区就将该块标记为坏块从而导致该整个块都不再利用不同,在本发明实施例中,可以设置一个坏扇区计数器来对检测出来的坏扇区计数,检测到被标识了再生流程旗标的待写块存在一个坏扇区,则只对该坏扇区做标记,同时将坏扇区计数器的值累加1,并再次检测块中的下一扇区。
[0046] S’3,在重复上述S’1和S’2的过程后,若坏扇区计数器的值大于预设阈值,则将被标识了再生流程旗标的待写块标识为坏块,否则,确定被标识了再生流程旗标的待写块可用空间满足利用率要求。
[0047] 在重复上述S’1和S’2的过程后,若坏扇区计数器的值大于预设阈值,则表明被标识了再生流程旗标的待写块的坏扇区过多,已经不适合再次被利用,因此,可以将被标识了再生流程旗标的待写块标识为坏块。若坏扇区计数器的值不大于预设阈值,则确定被标识了再生流程旗标的待写块可用空间满足利用率要求,可以继续利用。
[0048] S104,若被标识了再生流程旗标的待写块满足利用率要求,则将所述满足利用率要求的待写块纳入写数据流程执行写操作。
[0049] 在上述实施例中,若被标识了再生流程旗标的待写块不满足当前写数据要求,则表明被标识了再生流程旗标的待写块不适合再利用,因此可以将被标识了再生流程旗标的待写块标记为坏块。
[0050] 为了将状态或稳定性不佳的块先挑选出来做如附图1的步骤S101至S104那样的处理,进一步确定是否应该被确定为坏块,在本发明实施例中,在从块队列中取出待写块之前,可以获取块的状态;若所述获取的块的状态为不佳,则将所述状态不佳的块标识再生流程旗标;将所述状态不佳且标识了再生流程旗标的块存入块队列,以便在后续流程中按照附图1的步骤S101至S104那样的做进一步的处理。需要说明的是,所述块的状态为不佳,可以是指其稳定性不佳,例如,不能恢复为状态“1”,或者是其中的坏扇区过多,或者是经初步判断符合是坏块的标准,等等。
[0051] 从上述附图1示例的闪存的坏块管理方法可知,通过检查从块队列中取出的待写块被标识了再生流程旗标,在判断被标识了再生流程旗标的待写块满足利用率要求后,再将所述满足利用率要求的待写块纳入写数据流程执行写操作。因此,一方面,在将待写块纳入写数据流程前进行的判断被标识了再生流程旗标的待写块满足利用率要求,其并不会影响闪存的读写效能;另一方面,由于被标识了再生流程旗标的块未必不能使用,在被标识了再生流程旗标的待写块满足当前写数据要求时将其纳入写数据流程,可以避免NAND Flash等闪存的存储空间的浪费,从而提高整个NAND Flash的利用率。
[0052] 请参阅附图2,是本发明实施例二提供的闪存的坏块管理装置的结构示意图。为了便于说明,附图2仅示出了与本发明实施例相关的部分。附图2示例的闪存的坏块管理装置主要包括取块模块201、旗标检查模块202、判断模块203和写模块204,详细说明如下:
[0053] 取块模块201,用于从块队列中取出待写块。
[0054] 在本发明实施例中,块队列可视为缓存,入队列的是待写块,这些待写块既可能是可进行正常读写的块,又可能是被标识了再生流程旗标(unhealthy flag)的块。
[0055] 旗标检查模块202,用于检查待写块是否被标识了再生流程旗标。
[0056] 判断模块203,用于若待写块被标识了再生流程旗标,则判断被标识了再生流程旗标的待写块是否满足利用率要求。
[0057] 在本发明实施例中,一旦块被标识了再生流程旗标(unhealthy flag),意味着该块的读写情况可能不稳定,例如,其物理单元有时不能恢复为状态“1”,后续被使用的概率或权重就会降低,因此,需要进一步处理。
[0058] 写模块204,用于若判断模块203的判断结果为被标识了再生流程旗标的待写块满足利用率要求,则将满足利用率要求的待写块纳入写数据流程执行写操作。
[0059] 附图2示例的判断模块203包括块擦除单元301和预处理单元302,如附图3所示本发明实施例三提供的闪存的坏块管理装置,其中:
[0060] 块擦除单元301,用于将被标识了再生流程旗标的待写块执行块擦除操作。
[0061] 需要说明的是,在本发明实施例中,待写块在写入数据之前,无论待写块是否被标识了再生流程旗标,均要通过对其执行块擦除(Erase)操作来恢复状态“1”。
[0062] 预处理单元302,用于对执行了块擦除操作的待写块进行写预处理操作,以确定被标识了再生流程旗标的待写块可用空间是否满足利用率要求。
[0063] 在本发明实施例中,被标识了再生流程旗标的待写块可用空间是否满足利用率要求可以是被标识了再生流程旗标的待写块可用空间是否太少,例如,若被标识了再生流程旗标的待写块的大部分扇区都是坏的,则其可用空间就不会满足利用率要求。
[0064] 附图3示例的预处理单元302包括检测单元401、累加单元402和确定单元403,如附图4所示本发明实施例四提供的闪存的坏块管理装置,其中:
[0065] 检测单元401,用于检测被标识了再生流程旗标的待写块的每一扇区。
[0066] 扇区(sector)是闪存中比块(block)更小的单元。由于被标识了再生流程旗标的待写块可能只是其中的部分扇区坏了,因此,检测单元401可以逐一检测被标识了再生流程旗标的待写块的每一扇区。
[0067] 累加单元402,用于若检测单元401检测到所述被标识了再生流程旗标的待写块存在一个坏扇区,则将坏扇区计数器的值累加1,并使检测单元401再次检测下一扇区。
[0068] 与现有技术只要块中存在坏扇区就将该块标记为坏块从而导致该整个块都不再利用不同,在本发明实施例中,可以设置一个坏扇区计数器来对检测出来的坏扇区计数,检测单元401每检测到被标识了再生流程旗标的待写块存在一个坏扇区,则只对该坏扇区做标记,同时将坏扇区计数器的值累加1,并使检测单元401再次检测被标识了再生流程旗标的待写块中下一扇区。
[0069] 确定单元403,用于检测单元401和累加单元402重复上述过程后,若坏扇区计数器的值大于预设阈值,则将被标识了再生流程旗标的待写块标识为坏块,否则,确定被标识了再生流程旗标的待写块可用空间满足利用率要求。
[0070] 在检测单元401和累加单元402重复了上述过程后,若坏扇区计数器的值大于预设阈值,则表明被标识了再生流程旗标的待写块的坏扇区过多,已经不适合再次被利用,因此,可以将被标识了再生流程旗标的待写块标识为坏块。若坏扇区计数器的值不大于预设阈值,则确定被标识了再生流程旗标的待写块可用空间满足利用率要求,可以继续利用。
[0071] 上述附图2至附图4任一示例的闪存的坏块管理装置还可以包括坏块标记模块501,如附图5-a至附图5-c实施例五至实施例七示例的闪存的坏块管理装置。坏块标记模块
501用于若被标识了再生流程旗标的待写块不满足利用率要求,则将被标识了再生流程旗标且不满足利用率要求的待写块标记为坏块。
[0072] 上述附图2至附图4任一示例的闪存的坏块管理装置还可以包括状态获取模块601、旗标标识模块602和入队模块603,如附图6-a至附图6-c实施例八至实施例十示例的闪存的坏块管理装置,其中:
[0073] 状态获取模块601,用于取块模块201从块队列中取出待写块之前,获取块的状态;
[0074] 旗标标识模块602,用于若状态获取模块601获取的块的状态为不佳,则将状态不佳的块标识再生流程旗标;
[0075] 入队模块603,用于将状态不佳且标识了再生流程旗标的块存入块队列。
[0076] 本发明实施例还提供一种存储系统,其包括上述附图2至附图6-c任一示例的闪存的坏块管理装置。
[0077] 需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
[0078] 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。
[0079] 以上对本发明实施例所提供的闪存的坏块管理方法、装置和一种存储系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。