闪速存储器的坏块管理方法转让专利

申请号 : CN201210157878.7

文献号 : CN102722443B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 唐红飞

申请人 : 三星半导体(中国)研究开发有限公司三星电子株式会社

摘要 :

本发明提供一种闪速存储器的坏块管理方法。所述方法包括下述步骤:将闪速存储器的存储空间划分为包括多个块的第一区域和包括多个块的第二区域;对闪速存储器进行坏块检测,以得到关于坏块的信息;根据得到的关于坏块的信息,建立第一区域中的坏块与第二区域中的正常块之间的映射关系,并生成包括关于建立的映射关系的信息的块映射快速访问表;将生成的块映射快速访问表分别存储在第二区域中的多个坏块管理信息块中,其中,所述多个坏块管理信息块是第二区域中的不具有与第一区域中的坏块的映射关系的任意的正常块。

权利要求 :

1.一种闪速存储器的坏块管理方法,其特征在于,所述方法包括下述步骤:将闪速存储器的存储空间划分为包括多个块的第一区域和包括多个块的第二区域;

对闪速存储器进行坏块检测,以得到关于坏块的信息;

根据得到的关于坏块的信息,建立第一区域中的坏块与第二区域中的正常块之间的映射关系,并生成包括关于建立的映射关系的信息的块映射快速访问表;

将生成的块映射快速访问表分别存储在第二区域中的多个坏块管理信息块中,其中,所述多个坏块管理信息块是第二区域中的不具有与第一区域中的坏块的映射关系的任意的正常块;

从所述多个坏块管理信息块中的一个坏块管理信息块中读取块映射快速访问表;

当接收到对闪速存储器的第一区域中的访问目标块的访问请求时,从读取的块映射快速访问表中检索关于访问目标块的映射关系的信息,并根据检索的结果来对闪速存储器进行访问。

2.根据权利要求1所述的方法,其特征在于,块映射快速访问表还包括用于校验块映射快速访问表的完整性的校验信息。

3.根据权利要求1所述的方法,其特征在于,块映射快速访问表还包括用于指示块映射快速访问表的建立/更新时间的时间戳。

4.根据权利要求1所述的方法,其特征在于,所述方法还包括下述步骤:在所述多个坏块管理信息块中的每个坏块管理信息块中写入用于指示该块是用于存储块映射快速访问表的坏块管理信息块的标签。

5.根据权利要求1所述的方法,其特征在于,所述方法还包括下述步骤:如果没有检索到关于访问目标块的映射关系的信息,则根据该访问请求访问第一区域中的访问目标块。

6.根据权利要求1所述的方法,其特征在于,所述方法还包括下述步骤:如果检索到关于访问目标块的映射关系的信息,则根据检索到的访问目标块的映射关系,将该访问请求转换为对第二区域中的具有与访问目标块的映射关系的块的访问请求;

根据转换后的访问请求访问第二区域中的具有与访问目标块的映射关系的块。

7.根据权利要求5所述的方法,其特征在于,所述方法还包括下述步骤:当根据该访问请求访问第一区域中的访问目标块时,如果检测到访问目标块是坏块,则建立访问目标块与第二区域中的未使用的正常块之间的映射关系;

根据新建立的映射关系,将该访问请求转换为对第二区域中的具有新建立的与访问目标块的映射关系的块的访问请求;

根据转换后的访问请求访问第二区域中的具有新建立的与访问目标块的映射关系的块,其中,未使用的正常块是第二区域中的不具有与第一区域中的坏块的映射关系、且不用于存储块映射快速访问表的正常块。

8.根据权利要求7所述的方法,其特征在于,所述方法还包括下述步骤:利用新建立的映射关系来更新块映射快速访问表。

9.根据权利要求7所述的方法,其特征在于,所述方法还包括下述步骤:如果检测到访问目标块是坏块,则对访问目标块中存储的数据进行读取;

在建立了访问目标块与第二区域中的未使用的正常块之间的映射关系之后,将读取到的数据存储在第二区域中的具有与访问目标块的映射关系的块中。

10.根据权利要求6所述的方法,其特征在于,所述方法还包括下述步骤:当根据转换后的访问请求访问第二区域中的具有与访问目标块的映射关系的块时,如果检测到第二区域中的具有与访问目标块的映射关系的块为坏块,则建立访问目标块与第二区域中的未使用的正常块之间的映射关系,根据新建立的映射关系,将该访问请求转换为对第二区域中的具有新建立的与访问目标块的映射关系的块的访问请求,根据转换后的访问请求访问第二区域中的具有新建立的与访问目标块的映射关系的块,其中,未使用的正常块是第二区域中的不具有与第一区域中的坏块的映射关系、且不用于存储块映射快速访问表的正常块。

11.根据权利要求10所述的方法,其特征在于,所述方法还包括下述步骤:利用新建立的映射关系来更新块映射快速访问表。

12.根据权利要求10所述的方法,其特征在于,所述方法还包括下述步骤:如果检测到第二区域中的具有与访问目标块的映射关系的块为坏块,则对第二区域中的具有与访问目标块的映射关系的块中存储的数据进行读取;

在建立了访问目标块和第二区域中的未使用的正常块之间的映射关系之后,将读取到的数据存储在第二区域中的具有新建立的与访问目标块的映射关系的块中。

13.根据权利要求8或权利要求11所述的方法,其特征在于,所述方法还包括下述步骤:在更新块映射快速访问表的步骤之后,将更新的块映射快速访问表存储在所述多个坏块管理信息块中,以更新所述多个坏块管理信息块。

14.根据权利要求13所述的方法,其特征在于,所述方法还包括下述步骤:在更新所述多个坏块管理信息块时,如果检测到作为更新对象的坏块管理信息块是坏块,则将更新的块映射快速访问表存储在第二区域中的不具有与第一区域中的坏块的映射关系、且不用于存储块映射快速访问表的任意的正常块中,以形成新的坏块管理信息块。

15.根据权利要求14所述的方法,其特征在于,所述方法还包括下述步骤:在所述新的坏块管理信息块中写入用于指示该块是用于存储块映射快速访问表的坏块管理信息块的标签。

16.根据权利要求1所述的方法,其特征在于,从所述多个坏块管理信息块中的一个坏块管理信息块中读取块映射快速访问表的步骤包括:从所述多个坏块管理信息块中读取用于校验块映射快速访问表的完整性的校验信息;

根据对应的校验信息来校验对应的坏块管理信息块中的块映射快速访问表的完整性;

从通过了完整性校验的坏块管理信息块中的一个坏块管理信息块中读取块映射快速访问表。

17.根据权利要求1所述的方法,其特征在于,从所述多个坏块管理信息块中的一个坏块管理信息块中读取块映射快速访问表的步骤包括:从所述多个坏块管理信息块中读取用于指示块映射快速访问表的建立/更新时间的时间戳,以确定存储在对应的坏块管理信息块中的对应的块映射快速访问表的建立/更新时间;

比较块映射快速访问表的建立/更新时间的先后,以选择从存储有最近建立/更新的块映射快速访问表的坏块管理信息块中读取最近建立/更新的块映射快速访问表。

18.根据权利要求1所述的方法,其特征在于,从所述多个坏块管理信息块中的一个坏块管理信息块中读取块映射快速访问表的步骤包括:从所述多个坏块管理信息块中读取用于校验块映射快速访问表的完整性的校验信息;

根据对应的校验信息来校验对应的坏块管理信息块中的块映射快速访问表的完整性;

从通过了完整性校验的坏块管理信息块中读取用于指示块映射快速访问表的建立/更新时间的时间戳,以确定存储在对应的坏块管理信息块中的对应的块映射快速访问表的建立/更新时间;

比较块映射快速访问表的建立/更新时间的先后,以选择从存储有最近建立/更新的块映射快速访问表的坏块管理信息块中读取最近建立/更新的块映射快速访问表。

19.根据权利要求18所述的方法,其特征在于,所述方法还包括下述步骤:将读取的最近建立/更新的块映射快速访问表存储在所述多个坏块管理信息块中的除了存储有最近建立/更新的块映射快速访问表的坏块管理信息块之外的其他的坏块管理信息块中。

20.一种闪速存储器的坏块管理方法,其特征在于,所述方法包括下述步骤:从闪速存储器的存储区域中的第二区域中的多个块中确定用于存储块映射快速访问表的多个坏块管理信息块,其中,块映射快速访问表包括关于闪速存储器的存储区域中的第一区域中的多个块中的坏块与闪速存储器的存储区域中的第二区域中的所述多个块中的正常块之间的映射关系的信息;

根据识别出的所述多个坏块管理信息块中的用于校验块映射快速访问表的完整性的校验信息,来校验对应的坏块管理信息块中存储的对应的块映射快速访问表的完整性;

如果在识别出的所述多个坏块管理信息块中存在两个或多于两个的坏块管理信息块通过了完整性校验,则从通过了完整性校验的所述两个或多于两个的坏块管理信息块中读取用于指示对应的坏块管理信息块中的对应的块映射快速访问表的建立/更新时间的时间戳,以确定块映射快速访问表的建立/更新时间;

比较块映射快速访问表的建立/更新时间的先后,以选择从存储有最近建立/更新的块映射快速访问表的坏块管理信息块中读取最近建立/更新的块映射快速访问表;

将读取的最近建立/更新的块映射快速访问表加载到闪速存储器的缓存或与闪速存储器接口连接的外部装置的缓存中。

21.一种闪速存储器的坏块管理方法,其特征在于,所述方法包括下述步骤:从外部接收对闪速存储器的存储区域中的第一区域中的多个块的访问目标块的访问请求;

确定在闪速存储器的缓存或与闪速存储器接口连接的外部装置的缓存中加载有块映射快速访问表,其中,块映射快速访问表包括关于闪速存储器的存储区域中的第一区域中的所述多个块中的坏块与闪速存储器的存储区域中的第二区域中的多个块中的正常块之间的映射关系的信息;

从加载的块映射快速访问表中检索关于访问目标块的映射关系的信息;

如果检索到关于访问目标块的映射关系的信息,则根据检索到的访问目标块的映射关系,将该访问请求转换为对第二区域中的具有与访问目标块的映射关系的块的访问请求;

如果检测到第二区域中的具有与访问目标块的映射关系的块不是坏块,则将转换后的访问请求发送到闪速存储器的驱动程序。

22.根据权利要求21所述的方法,其特征在于,

如果没有检索到关于访问目标块的映射关系的信息,则检测访问目标坏是否为坏块,如果检测到访问目标块不是坏块,则将访问请求发送到闪速存储器的驱动程序。

23.根据权利要求22所述的方法,其特征在于,

如果检测到访问目标块是坏块,则建立访问目标块与第二区域中的未使用的正常块之间的映射关系,其中,未使用的正常块是第二区域中的不具有与第一区域中的坏块的映射关系、且不用于存储块映射快速访问表的正常块,对访问目标块中存储的数据进行读取,并在建立了访问目标块与第二区域中的未使用的正常块之间的映射关系之后,将读取到的数据存储在第二区域中的具有新建立的与访问目标块的映射关系的块中,利用新建立的映射关系来更新加载的块映射快速访问表,

将更新的块映射快速访问表存储在第二区域中的多个坏块管理信息块中,并在检测到所述多个坏块管理信息块不是坏块时,将访问请求转换为对第二区域中的具有新建立的与访问目标块的映射关系的块的访问请求,将转换后的访问请求发送到闪速存储器的驱动程序。

24.根据权利要求23所述的方法,其特征在于,

在检测到所述多个坏块管理信息块中的一个坏块管理信息块是坏块时,在第二区域中分配一个不具有与第一区域中的坏块的映射关系、且不用于存储块映射快速访问表的正常块作为新的坏块管理信息块,将更新的块映射快速访问表存储在所述新的坏块管理信息块中,并在检测到所述新的坏块管理信息块不是坏块时,将访问请求转换为对第二区域中的具有新建立的与访问目标块的映射关系的块的访问请求,将转换后的访问请求发送到闪速存储器的驱动程序。

25.根据权利要求21所述的方法,其特征在于,

如果检测到第二区域中的具有与访问目标块的映射关系的块是坏块,则建立访问目标块与第二区域中的未使用的正常块之间的映射关系,其中,未使用的正常块是第二区域中的不具有与第一区域中的坏块的映射关系、且不用于存储块映射快速访问表的正常块,对访问目标块中存储的数据进行读取,并在建立了访问目标块与第二区域中的未使用的正常块之间的映射关系之后,将读取到的数据存储在第二区域中的具有新建立的与访问目标块的映射关系的块中,利用新建立的映射关系来更新存储在缓存中的块映射快速访问表,将更新的块映射快速访问表存储在第二区域中的多个坏块管理信息块中,并在检测到所述多个坏块管理信息块不是坏块时,将访问请求转换为对第二区域中的具有新建立的与访问目标块的映射关系的块的访问请求,将转换后的访问请求发送到闪速存储器的驱动程序。

26.根据权利要求25所述的方法,其特征在于,

在检测到所述多个坏块管理信息块中的一个坏块管理信息块是坏块时,在第二区域中分配一个不具有与第一区域中的坏块的映射关系、且不用于存储块映射快速访问表的正常块作为新的坏块管理信息块,将更新的块映射快速访问表存储在所述新的坏块管理信息块中,并在检测到所述新的坏块管理信息块不是坏块时,将访问请求转换为对第二区域中的具有新建立的与访问目标块的映射关系的块的访问请求,将转换后的访问请求发送到闪速存储器的驱动程序。

说明书 :

闪速存储器的坏块管理方法

技术领域

[0001] 本发明涉及一种闪速存储器的坏块管理方法。

背景技术

[0002] 闪速存储器(flash memory)或闪存是当前广泛使用的一种非易失性存储装置。闪速存储器包括NAND型闪速存储器和NOR型闪速存储器。NAND型闪速存储器的包括多个存储单元构成的存储空间,每个存储单元存储一个位(bit)。这样的存储空间可被划分为多个块(block),每个块又可被划分为能够存储多个页(page),每个页可以包括一定数量的存储单元,以存储多个位。NAND型闪速存储器通常以页为单元进行存储(写入)操作,而以块为单元进行擦除操作。例如,为了擦除一个块中的一个页或多个页中记录的数据,需要擦除整个块。
[0003] 闪速存储器中的一个或多个块可能是坏块。坏块可以分为固有坏块和使用坏块。固有坏块是在闪速存储器的生产过程中产生的。使用坏块是在闪速存储器的使用过程中产生的。例如,在对块进行擦除、编程等操作时,可能导致块中记录的数据中的数据校验失败且不能被纠正。在这样的情况下,该块将被标记为坏块,即,使用坏块。
[0004] 因为固有坏块和使用坏块不再具有准确无误的读写功能,所以需要对闪速存储器中的坏块进行有效的管理,以避免程序破坏崩溃、用户数据丢失等问题。
[0005] 当前存在着一种跳过式坏块管理方法,其中,在将数据写入到闪速存储器的某个块时,如果检测到该块是坏块,则跳过该坏块并将数据写入到该块之后的正常块中。这种跳过式的坏块管理方法不适用于诸如烧写操作系统的文件系统映像(例如,YAFFS映像)等的操作。这是因为文件系统映像一般是结构化的数据,内部数据的位置是彼此相关联的,而这种跳过式的坏块管理方法很容易造成文件系统映像内部数据错位,继而造成文件系统部分或全部数据不能正常被访问。
[0006] 当前还存在着另一种分区映射式坏块管理方法,其中,闪速存储器的存储空间被分为用户块区域(UBA)、块隐藏区(Block reservoir)和保留块区域(RBA),将用户块区域中的坏块映射到块隐藏区的正常块,并将记录这样的映射关系的坏块表存储在保留块区域的块中。然而,由于保留块区域仅包括存储有坏块表的块。因此,当存储有坏块表的块在使用过程中变为坏块时,需要对闪速存储器的存储空间进行重新划分,以将另外的块划分到保留块区域中来存储坏块表。
[0007] 在现有技术中,还提出了一种将坏块表存储在闪速存储器的启动块中的方式。然而,因为闪速存储器在使用中会出现新的使用坏块,所以为了对这些新出现的使用坏块进行管理,需要更新坏块表。这时,为了向启动块写入更新的坏块表,需要首先擦除启动块。闪速存储器的启动块通常存储有例如系统引导程序数据等的一些非常重要的数据。因此,如果在擦除启动块之后因各种原因导致启动块的数据写入失败,则可能会导致该闪速存储器与该闪速存储器接口连接的外部装置(例如,计算机、移动电话、音频播放器(MP3)、个人数字助理(PDA)等)无法正常引导启动。

发明内容

[0008] 本发明的示例性实施例的目的在于克服在现有技术中的上述和其他缺点。为此,本发明的示例性实施例提供一种闪速存储器的坏块管理方法,所述方法包括下述步骤:将闪速存储器的存储空间划分为包括多个块的第一区域和包括多个块的第二区域;对闪速存储器进行坏块检测,以得到关于坏块的信息;根据得到的关于坏块的信息,建立第一区域中的坏块与第二区域中的正常块之间的映射关系,并生成包括关于建立的映射关系的信息的块映射快速访问表;将生成的块映射快速访问表分别存储在第二区域中的多个坏块管理信息块中,其中,所述多个坏块管理信息块是第二区域中的不具有与第一区域中的坏块的映射关系的任意的正常块。
[0009] 块映射快速访问表还包括用于校验块映射快速访问表的完整性的校验信息。
[0010] 块映射快速访问表还包括用于指示块映射快速访问表的建立/更新时间的时间戳。
[0011] 所述方法还包括下述步骤:在所述多个坏块管理信息块中的每个坏块管理信息块中写入用于指示该块是用于存储块映射快速访问表的坏块管理信息块的标签。
[0012] 所述方法还包括下述步骤:从所述多个坏块管理信息块中的一个坏块管理信息块中读取块映射快速访问表。
[0013] 所述方法还包括下述步骤:当接收到对闪速存储器的第一区域中的访问目标块的访问请求时,从读取的块映射快速访问表中检索关于访问目标块的映射关系的信息,并根据检索的结果来对闪速存储器进行访问。
[0014] 所述方法还包括下述步骤:如果没有检索到关于访问目标块的映射关系的信息,则根据该访问请求访问第一区域中的访问目标块。
[0015] 所述方法还包括下述步骤:如果检索到关于访问目标块的映射关系的信息,则根据检索到的访问目标块的映射关系,将该访问请求转换为对第二区域中的具有与访问目标块的映射关系的块的访问请求;根据转换后的访问请求访问第二区域中的具有与访问目标块的映射关系的块。
[0016] 所述方法还包括下述步骤:当根据该访问请求访问第一区域中的访问目标块时,如果检测到访问目标块是坏块,则建立访问目标块与第二区域中的未使用的正常块之间的映射关系;根据新建立的映射关系,将该访问请求转换为对第二区域中的具有与访问目标块的映射关系的块的访问请求;根据转换后的访问请求访问第二区域中的具有与访问目标块的映射关系的块,其中,未使用的正常块是第二区域中的不具有与第一区域中的坏块的映射关系、且不用于存储块映射快速访问表的正常块。
[0017] 所述方法还包括下述步骤:利用新建立的映射关系来更新块映射快速访问表。
[0018] 所述方法还包括下述步骤:如果检测到访问目标块是坏块,则对访问目标块中存储的数据进行读取;在建立了访问目标块与第二区域中的未使用的正常块之间的映射关系之后,将读取到的数据存储在第二区域中的具有与访问目标块的映射关系的块中。
[0019] 所述方法还包括下述步骤:当根据转换后的访问请求访问第二区域中的具有与访问目标块的映射关系的块时,如果检测到第二区域中的具有与访问目标块的映射关系的块为坏块,则建立访问目标块与第二区域中的未使用的正常块之间的映射关系,根据新建立的映射关系,将该访问请求转换为对第二区域中的具有新建立的与访问目标块的映射关系的块的访问请求,根据转换后的访问请求访问第二区域中的具有新建立的与访问目标块的映射关系的块,其中,未使用的正常块是第二区域中的不具有与第一区域中的坏块的映射关系、且不用于存储块映射快速访问表的正常块。
[0020] 所述方法还包括下述步骤:利用新建立的映射关系来更新块映射快速访问表。
[0021] 所述方法还包括下述步骤:如果检测到第二区域中的具有与访问目标块的映射关系的块为坏块,则对第二区域中的具有与访问目标块的映射关系的块中存储的数据进行读取;在建立了访问目标块和第二区域中的未使用的正常块之间的映射关系之后,将读取到的数据存储在第二区域中的具有新建立的与访问目标块的映射关系的块中。
[0022] 所述方法还包括下述步骤:在更新块映射快速访问表的步骤之后,将更新的块映射快速访问表存储在所述多个坏块管理信息块中,以更新所述多个坏块管理信息块。
[0023] 所述方法还包括下述步骤:在更新所述多个坏块管理信息块时,如果检测到作为更新对象的坏块管理信息块是坏块,则将更新的块映射快速访问表存储在第二区域中的不具有与第一区域中的坏块的映射关系、且不用于存储块映射快速访问表的任意的正常块中,以形成新的坏块管理信息块。
[0024] 所述方法还包括下述步骤:在所述新的坏块管理信息块中写入用于指示该块是用于存储块映射快速访问表的坏块管理信息块的标签。
[0025] 从所述多个坏块管理信息块中的一个坏块管理信息块中读取块映射快速访问表的步骤包括:从所述多个坏块管理信息块中读取用于校验块映射快速访问表的完整性的校验信息;根据对应的校验信息来校验对应的坏块管理信息块中的块映射快速访问表的完整性;从通过了完整性校验的坏块管理信息块中的一个坏块管理信息块中读取块映射快速访问表。
[0026] 从所述多个坏块管理信息块中的一个坏块管理信息块中读取块映射快速访问表的步骤包括:从所述多个坏块管理信息块中读取用于指示块映射快速访问表的建立/更新时间的时间戳,以确定存储在对应的坏块管理信息块中的对应的块映射快速访问表的建立/更新时间;比较块映射快速访问表的建立/更新时间的先后,以选择从存储有最近建立/更新的块映射快速访问表的坏块管理信息块中读取最近建立/更新的块映射快速访问表。
[0027] 从所述多个坏块管理信息块中的一个坏块管理信息块中读取块映射快速访问表的步骤包括:从所述多个坏块管理信息块中读取用于校验块映射快速访问表的完整性的校验信息;根据对应的校验信息来校验对应的坏块管理信息块中的块映射快速访问表的完整性;从通过了完整性校验的坏块管理信息块中读取用于指示块映射快速访问表的建立/更新时间的时间戳,以确定存储在对应的坏块管理信息块中的对应的块映射快速访问表的建立/更新时间;比较块映射快速访问表的建立/更新时间的先后,以选择从存储有最近建立/更新的块映射快速访问表的坏块管理信息块中读取最近建立/更新的块映射快速访问表。
[0028] 所述方法还包括下述步骤:将读取的最近建立/更新的块映射快速访问表存储在所述多个坏块管理信息块中的除了存储有最近建立/更新的块映射快速访问表的坏块管理信息块之外的其他的坏块管理信息块中。
[0029] 根据本发明的另一方面,提供了一种闪速存储器的坏块管理方法,所述方法包括下述步骤:从闪速存储器的存储区域中的第二区域中的多个块中确定用于存储块映射快速访问表的多个坏块管理信息块,其中,块映射快速访问表包括关于闪速存储器的存储区域中的第一区域中的多个块中的坏块与闪速存储器的存储区域中的第二区域中的所述多个块中的正常块之间的映射关系的信息;根据识别出的所述多个坏块管理信息块中的用于校验块映射快速访问表的完整性的校验信息,来校验对应的坏块管理信息块中存储的对应的块映射快速访问表的完整性;如果在识别出的所述多个坏块管理信息块中存在两个或多于两个的坏块管理信息块通过了完整性校验,则从通过了完整性校验的所述两个或多于两个的坏块管理信息块中读取用于指示对应的坏块管理信息块中的对应的块映射快速访问表的建立/更新时间的时间戳,以确定块映射快速访问表的建立/更新时间;比较块映射快速访问表的建立/更新时间的先后,以选择从存储有最近建立/更新的块映射快速访问表的坏块管理信息块中读取最近建立/更新的块映射快速访问表;将读取的最近建立/更新的块映射快速访问表加载到闪速存储器的缓存或与闪速存储器接口连接的外部装置的缓存中。
[0030] 根据本发明的另一方面,提供了一种闪速存储器的坏块管理方法,所述方法包括下述步骤:从外部接收对闪速存储器的存储区域中的第一区域中的多个块的访问目标块的访问请求;确定在闪速存储器的缓存或与闪速存储器接口连接的外部装置的缓存中加载有块映射快速访问表,其中,块映射快速访问表包括关于闪速存储器的存储区域中的第一区域中的所述多个块中的坏块与闪速存储器的存储区域中的第二区域中的多个块中的正常块之间的映射关系的信息;从加载的块映射快速访问表中检索关于访问目标块的映射关系的信息;如果检索到关于访问目标块的映射关系的信息,则根据检索到的访问目标块的映射关系,将该访问请求转换为对第二区域中的具有与访问目标块的映射关系的块的访问请求;如果检测到第二区域中的具有与访问目标块的映射关系的块不是坏块,则将转换后的访问请求发送到闪速存储器的驱动程序。
[0031] 如果没有检索到关于访问目标块的映射关系的信息,则可以检测访问目标坏是否为坏块。如果检测到访问目标块不是坏块,则可以将访问请求发送到闪速存储器的驱动程序。
[0032] 如果检测到访问目标块是坏块,则可以建立访问目标块与第二区域中的未使用的正常块之间的映射关系,其中,未使用的正常块是第二区域中的不具有与第一区域中的坏块的映射关系、且不用于存储块映射快速访问表的正常块。可选择地,可以对访问目标块中存储的数据进行读取,并可以在建立了访问目标块与第二区域中的未使用的正常块之间的映射关系之后,将读取到的数据存储在第二区域中的具有新建立的与访问目标块的映射关系的块中。另外,可以利用新建立的映射关系来更新加载的块映射快速访问表。然后,可以将更新的块映射快速访问表存储在第二区域中的多个坏块管理信息块中,并可以在检测到所述多个坏块管理信息块不是坏块时,将访问请求转换为对第二区域中的具有新建立的与访问目标块的映射关系的块的访问请求。此后,可以将转换后的访问请求发送到闪速存储器的驱动程序。
[0033] 在检测到所述多个坏块管理信息块中的一个坏块管理信息块是坏块时,可以在第二区域中分配一个不具有与第一区域中的坏块的映射关系、且不用于存储块映射快速访问表的正常块作为新的坏块管理信息块。接下来,可以将更新的块映射快速访问表存储在所述新的坏块管理信息块中,并可以在检测到所述新的坏块管理信息块不是坏块时,将访问请求转换为对第二区域中的具有新建立的与访问目标块的映射关系的块的访问请求。此后,可以将转换后的访问请求发送到闪速存储器的驱动程序。
[0034] 如果检测到第二区域中的具有与访问目标块的映射关系的块是坏块,则可以建立访问目标块与第二区域中的未使用的正常块之间的映射关系,其中,未使用的正常块是第二区域中的不具有与第一区域中的坏块的映射关系、且不用于存储块映射快速访问表的正常块。可选择地,可以对访问目标块中存储的数据进行读取,并可以在建立了访问目标块与第二区域中的未使用的正常块之间的映射关系之后,将读取到的数据存储在第二区域中的具有新建立的与访问目标块的映射关系的块中。另外,可以利用新建立的映射关系来更新存储在缓存中的块映射快速访问表。然后,可以将更新的块映射快速访问表存储在第二区域中的多个坏块管理信息块中,并可以在检测到所述多个坏块管理信息块不是坏块时,将访问请求转换为对第二区域中的具有新建立的与访问目标块的映射关系的块的访问请求。此后,可以将转换后的访问请求发送到闪速存储器的驱动程序。
[0035] 在检测到所述多个坏块管理信息块中的一个坏块管理信息块是坏块时,可以在第二区域中分配一个不具有与第一区域中的坏块的映射关系、且不用于存储块映射快速访问表的正常块作为新的坏块管理信息块。接下来,可以将更新的块映射快速访问表存储在所述新的坏块管理信息块中,并可以在检测到所述新的坏块管理信息块不是坏块时,将访问请求转换为对第二区域中的具有新建立的与访问目标块的映射关系的块的访问请求。此后,可以将转换后的访问请求发送到闪速存储器的驱动程序。
[0036] 根据本发明的示例性实施例的闪速存储器的坏块管理方法可以应用于对尚未使用过的闪速存储器进行的诸如系统映像文件的烧写过程,也可以应用于对已经使用过的闪速存储器进行根据实际使用情况而进行数据结构的重构的过程。本发明的示例性实施例的闪速存储器的坏块管理方法也可以对随闪速存储器的使用而不断出现的新的使用坏块进行管理。
[0037] 在根据本发明的示例性实施例的闪速存储器的坏块管理方法中,将块映射快速访问表存储在隐藏区域的块中,而不是存储在常规区域中的例如记录有引导程序的启动块中。因此,当闪速存储器因使用而出现新的使用坏块并因而需要更新块映射快速访问表和存储更新后的块映射快速访问表时,不需要对启动块进行擦除/重写操作。因此,根据本发明的示例性实施例的闪速存储器的坏块管理方法不会对启动块中存储的数据造成任何影响,因此确保了闪速存储器以及与闪速存储器接口连接的外部装置(例如,计算机、移动电话、音频播放器(MP3)、个人数字助理(PDA)等)的可靠性。
[0038] 在根据本发明的示例性实施例的闪速存储器的坏块管理方法中,将块映射快速访问表分别存储在两个或两个以上的坏块管理信息块中。从而可以防止诸如系统掉电之类的不可预知性突发事件导致数据被破坏,在同一时刻可以仅对一个坏块管理信息块进行更新。因此,即使所述一个坏块管理信息块的更新失败,其他的坏块管理信息块中的信息依然是完整的。
[0039] 根据本发明的示例性实施例的闪速存储器的坏块管理方法可以向用户或上层程序提供一个虚拟的无坏块的存储空间。在这样的情况下,可以实现数据的按块进行的连续写入、连续读取、连续擦除等操作。因此,与现有技术中的跳过式坏块管理方法相比,根据本发明的示例性实施例的闪速存储器的坏块管理方法不需要“跳过”坏块,所以可以提高闪速存储器的访问效率,并提高闪速存储器的数据存储的可靠性。
[0040] 根据本发明的示例性实施例,可以对新出现的坏块中存储的数据进行尽可能的恢复,从而提高了闪速存储器的可靠性。
[0041] 在根据本发明的示例性实施例的闪速存储器的坏块管理方法中,即使存储更新的块映射快速访问表的操作会被中断,也能够从上一次最近更新的坏块管理信息块中恢复得到块映射快速访问表,最大限度地确保了存储器的数据完整性和与闪速存储器接口连接的外部装置的稳定性。

附图说明

[0042] 通过下面结合附图的详细描述,可以更清楚地理解本发明的上面的和其他的特征和优点,在附图中:
[0043] 图1是示出了根据本发明的示例性实施例的闪速存储器的坏块管理方法的流程图;
[0044] 图2是示出了根据本发明的示例性实施例的闪速存储器的坏块管理方法的将存储空间划分为第一区域和第二区域的一个示例的示意图;
[0045] 图3是示出根据本发明的示例性实施例的闪速存储器的坏块管理方法的建立常规区域中的坏块与隐藏区域中的正常块之间的映射关系的示意图;
[0046] 图4是示出了根据本发明的示例性实施例的闪速存储器的坏块管理方法的初始化流程图;
[0047] 图5是示出了根据本发明的示例性实施例的闪速存储器的坏块管理方法的根据读取的块映射快速访问表来执行访问请求的流程图;
[0048] 图6是示出根据本发明的示例性实施例的闪速存储器的坏块管理方法的根据从用户或上层程序发出的访问请求来访问常规区域中的访问目标块的流程图;
[0049] 图7是示出根据本发明的示例性实施例的闪速存储器的坏块管理方法的建立常规区域中的新产生的坏块与隐藏区域中的正常块的新的映射关系的示意图;
[0050] 图8是示出根据本发明的示例性实施例的闪速存储器的坏块管理方法的根据转换后的访问请求访问隐藏区域中的具有与访问目标块的映射关系的块的流程图;
[0051] 图9是示出根据本发明的示例性实施例的闪速存储器的坏块管理方法的建立常规区域中的坏块与隐藏区域中的正常块的新的映射关系的示意图;
[0052] 图10是示出了根据本发明的示例性实施例的闪速存储器的坏块管理方法的在更新坏块管理信息块的过程中在坏块管理信息块中出现坏块时的操作的流程图;
[0053] 图11是示出根据本发明的示例性实施例的闪速存储器的坏块管理方法的将更新的块映射快速访问表存储在新的坏块管理信息块中的示意图;
[0054] 图12是示出了根据本发明的示例性实施例的闪速存储器的坏块管理方法的根据校验信息的初始化操作的流程图;
[0055] 图13是示出了根据本发明的示例性实施例的闪速存储器的坏块管理方法的根据时间戳的初始化操作的流程图;
[0056] 图14是示出了根据本发明的示例性实施例的闪速存储器的坏块管理方法的根据校验信息和时间戳两者的初始化操作的流程图;
[0057] 图15是示出了根据本发明的另一示例性实施例的闪速存储器的坏块管理方法的流程图;
[0058] 图16是示出了根据本发明的另一示例性实施例的闪速存储器的坏块管理方法的流程图。

具体实施方式

[0059] 下文中,将参照附图来详细描述本发明的示例性实施例。然而,本发明的示例性实施例可以以许多不同的形式来实施,且不应该限于这里阐述的示例。相反,提供这些示例使得本公开将是彻底并完整的,并将向本领域技术人员充分地传达本发明的范围。在附图中,相同的标号始终表示相同的元件。
[0060] 图1是示出了根据本发明的示例性实施例的闪速存储器的坏块管理方法的流程图。
[0061] 使用根据本发明的示例性实施例的坏块管理方法的闪速存储器可以是NAND闪速存储器。这样的闪速存储器可以包括多个存储单元,多个存储单元可以构成闪速存储器的存储空间,以存储多个位(bit)。存储空间可以被划分为多个块,每个块可以被划分为多个页,从而对闪速存储器进行诸如数据的读取、写入、擦除等访问操作。
[0062] 如图1中所示,在根据本发明的示例性实施例的闪速存储器的坏块管理方法中,首先,可以将闪速存储器的存储空间划分为包括多个块的第一区域和包括多个块的第二区域(S11)。
[0063] 图2是示出了根据本发明的示例性实施例的闪速存储器的坏块管理方法的将存储空间划分为第一区域和第二区域的一个示例的示意图。在图2中,示例性地将闪速存储器示出为包括按行R0至行R9以及列C0至列C9排列的100个块R0C0至R9C9。然而,本发明的示例性实施例不限于此,使用根据本发明的坏块管理方法的闪速存储器可以包括按任意方式排列的任意数量的块。
[0064] 如图2中所示,可以将闪速存储器的存储空间划分为包括块R0C0至块R7C9等共80个块的第一区域和包括块R8C0至块R9C9等共20个块的第二区域。然而,本发明的示例性实施例不限于此,在本发明的其他的示例性实施例中,可以将第一区域划分为包括任意数量的块,并可以将第二区域划分为包括闪速存储器中的除了包括在第一区域中的块之外的块中的任意或全部的块。除了第一区域和第二区域之外,根据本发明的示例性实施例的闪速存储器的坏块管理方法还可以将未被划分到第一区域和第二区域中的块划分到另外的区域(例如,第三区域、第四区域等)中。即,根据本发明的示例性实施例的闪速存储器的坏块管理方法可以将闪速存储器的存储空间划分为包括至少两个区域。
[0065] 在图2示出的示例性实施例中,可以以RmCn(其中,m和n为从0至9的整数)来代表块的地址。被划分到第一区域和第二区域中的块的地址可以是任意的,例如,与图2中示出的示例性实施例不同,被划分到第一区域和第二区域中的块的地址也可以是不连续的。
[0066] 根据本发明的示例性实施例,可以将第一区域划分为包括地址在预定块的地址之前的块,并可以将第二区域划分为包括该预定块和地址在该预定块的地址之后的块。例如,在图2中示出的示例性实施例中,该预定块可以为块R8C0。根据本发明的另一示例性实施例,可以将第一区域划分为包括预定块和地址在该预定块的地址之前的块,并可以将第二区域划分为包括地址在该预定块的地址之后的块。例如,在图2中示出的示例性实施例中,该预定块可以为块R7C9。因此,在使用根据本发明的示例性实施例的闪速存储器的坏块管理方法的过程中,可以通过判断块的地址是在预定块的地址之前还是在预定块的地址之后,来容易地确定该块是被包括在第一区域中还是被包括在第二区域中。因此,可以更有效率地对使用根据本发明的示例性实施例的坏块管理方法的闪速存储器进行访问。
[0067] 在本发明的示例性实施例中,对用户或上层程序(例如,对闪速存储器的访问请求的发出者)来说,第一区域可以是可见的,而第二区域可以是不可见(隐藏)的。例如,第一区域可以与传统的闪速存储器的存储空间一样地被视为可用存储空间,并可以被进一步划分为引导程序区域、内核区域、系统区域、用户数据区域等。因此,在下文中,第一区域也被称为常规区域,第二区域也被称为隐藏区域。
[0068] 然后,返回参照图1,可以对进行了区域划分的闪速存储器进行坏块检测,以得到关于坏块的信息(S12)。所述关于坏块的信息可以包括坏块的地址信息,例如,可以包括闪速存储器的包括固有坏块和使用坏块在内的所有坏块的地址信息。换句话说,根据本发明的示例性实施例的闪速存储器的坏块管理方法不仅可以对固有坏块进行管理,也可以对使用坏块进行管理。即,根据本发明的示例性实施例的闪速存储器的坏块管理方法可以应用于对尚未使用过的闪速存储器进行的诸如系统映像文件的烧写过程,也可以应用于对已经使用过的闪速存储器进行根据实际使用情况而进行数据结构的重构的过程。然而,本发明的示例性实施例不限于此,如将在下文中进行描述的,本发明的示例性实施例的闪速存储器的坏块管理方法也可以对在闪速存储器的使用过程中出现的新的使用坏块进行管理。
[0069] 接下来,参照图1,根据得到的关于坏块的信息,可以建立常规区域中的坏块与隐藏区域中的正常块之间的映射关系,并生成包括建立的映射关系的块映射快速访问表(S13)。根据本发明的其他的示例性实施例,块映射快速访问表还可以包括其他的信息,例如,用于校验块映射快速访问表的完整性的校验信息、用于指示块映射快速访问表的建立/更新时间的时间戳。这里,时间戳可以是与块映射快速访问表的建立/更新时间的信息。因此,可以根据校验信息和/或时间戳来确定写入坏块管理信息块的块映射快速访问表是否完整和/或是否可用,这将在后面进行更详细地描述。
[0070] 图3是示出根据本发明的示例性实施例的闪速存储器的坏块管理方法的建立常规区域中的坏块与隐藏区域中的正常块之间的映射关系的示意图。
[0071] 如图3中所示,通过对闪速存储器进行坏块检测,可以确定块R2C2、块R3C5和块R8C0是坏块(使用坏块或固有坏块),同时,可以确定其他的块是正常块。在这样的情况下,可以建立坏块R2C2与正常块R8C2之间的映射关系,并可以建立坏块R3C5与正常块R8C3之间的映射关系。在图3中以虚线箭头示出了这样的映射关系。此后,可以生成包括建立的映射关系的块映射快速访问表。然而,本发明的示例性实施例不限于此,在本发明的其他的示例性实施例中,可以任意地建立常规区域中的坏块与隐藏区域中的正常块之间的映射关系。例如,可以建立常规区域中的坏块与隐藏区域中的任意正常块之间的映射关系。
[0072] 如图3中所示,因为坏块R8C0处于隐藏区域中,所以,根据本发明的示例性实施例,可以不为坏块R8C0建立映射关系。
[0073] 此后,返回参照图1,在生成了块映射快速访问表之后,可以将生成的块映射快速访问表分别存储在隐藏区域中的多个坏块管理信息块(例如,第一坏块管理信息块、第二坏块管理信息块、等等)中(S14)。坏块管理信息块可以是隐藏区域中的不具有与常规区域中的坏块的映射关系的任意的正常块。
[0074] 在图3中示出的示例性实施例中,用于记录块映射快速访问表的坏块管理信息块被示例性地示出为块R8C1和块R8C4。
[0075] 本发明的示例性实施例不限于此,在本发明的其他的示例性实施例中,可以将块映射快速访问表分别存储在隐藏区域中的两个以上的不具有与常规区域中的坏块的映射关系的正常块中。即,可以存在三个或更多的坏块管理信息块。这里需要注意的是,在本说明书和权利要求书中,虽然采用了术语第一、第二、第三等来描述坏块管理信息块,但是这些术语仅用来在名称上对多个坏块管理信息块进行区分。因此,可以将块R8C1称为第一坏块管理信息块,并将块R8C4称为第二坏块管理信息块;或者,可以将块R8C1称为第二坏块管理信息块,并将块R8C4称为第一坏块管理信息块。
[0076] 因此,在根据本发明的示例性实施例的闪速存储器的坏块管理方法中,将块映射快速访问表存储在隐藏区域的块中,而不是存储在常规区域中,例如,不将块映射快速访问表存储在常规区域中的记录有引导程序的启动块中。因此,当闪速存储器在使用过程中出现新的使用坏块并因而需要更新块映射快速访问表和存储更新后的块映射快速访问表时,不需要对启动块进行擦除操作。因此,根据本发明的示例性实施例的闪速存储器的坏块管理方法确保了闪速存储器以及与闪速存储器接口连接的外部装置(例如,计算机、移动电话、音频播放器(MP3)、个人数字助理(PDA)等)的可靠性。
[0077] 根据本发明的示例性实施例,在将块映射快速访问表存储在多个坏块管理信息块时中,可以在各个坏块管理信息块中写入用于指示该块是用于存储块映射快速访问表的坏块管理信息块的标签。因此,可以容易地定位存储有块映射快速访问表的坏块管理信息块。例如,可以从上述的用于划分常规区域和隐藏区域的预定块开始顺序访问隐藏区域中的各个块,以通过识别所述标签来确定其是否是坏块管理信息块。因此,提高了闪速存储器的坏块管理方法的执行效率。
[0078] 此外,在根据本发明的示例性实施例的闪速存储器的坏块管理方法中,将块映射快速访问表分别存储在两个或两个以上的坏块管理信息块中。因此,即使当这些坏块管理信息块中的某个或某些块在闪速存储器的使用过程中变为坏块(使用坏块)时,也可以使用从其他的坏块管理信息块中读取的块映射快速访问表来进行坏块管理,从而确保了闪速存储器的可靠性。这将在下文中进行更详细地描述。
[0079] 图4是示出了根据本发明的示例性实施例的闪速存储器的坏块管理方法的初始化流程图。
[0080] 如图4中所示,首先,可以初始化闪速存储器(S41)。然后,可以从多个坏块管理信息块中选择特定的坏块管理信息块(S42),并从所选的坏块管理信息块中读取块映射快速访问表(S43)。这样,即完成了坏块管理方法的初始化。在初始化坏块管理方法之后,当接收到从用户或上层程序发出的对闪速存储器的常规区域中的访问目标块的访问请求时,可在检索块映射快速访问表中进行检索,并可以根据检索结果来执行该访问请求(这将在下面进行更详细地描述)。在一个示例中,可以将读取的块映射快速访问表暂时存储在闪速存储器的缓存或与闪速存储器接口连接的外部装置的缓存中。然而,本发明的示例性实施例不限于此,在本发明的其他的示例性实施例中,可以在闪速存储器被初始化之后,提示用户/上层程序来选择是否加载块映射快速访问表,以确定是否启用坏块管理方法。
[0081] 在本发明的示例性实施例中,可以从多个坏块管理信息块中的任意一个的坏块管理信息块中读取块映射快速访问表。然而,本发明的示例性实施例不限于此,在下面详细描述的本发明的其他的示例性实施例中,可以根据如上所述的校验信息和/或时间戳来进行坏块管理信息块的选择。例如,首先可以根据用于指示该块是用于存储块映射快速访问表的坏块管理信息块的标签来在隐藏区域中确定哪些块是坏块管理信息块。在确定了坏块管理信息块之后,可以根据校验信息来校验它们中存储的块映射快速访问表的完整性,从而选择从通过了完整性校验的坏块管理信息块中读取块映射快速访问表;和/或可以读取在它们中记录的时间戳,并可以通过比较由时间戳指示的块映射快速访问表的建立/更新时间,来选择从存储有最近建立/更新的块映射快速访问表的坏块管理信息块中读取最近建立/更新的块映射快速访问表。
[0082] 因此,根据本发明的示例性实施例,确保了读取的块映射快速访问表是完整的和/或确保了读取的块映射快速访问表中存储的映射关系是最近建立/更新过的。因此,根据本发明的示例性实施例的闪速存储器的坏块管理方法可以可靠地进行坏块管理。
[0083] 图5是示出了根据本发明的示例性实施例的闪速存储器的坏块管理方法的根据读取的块映射快速访问表来执行访问请求的流程图。
[0084] 如图5中所示,当接收到对闪速存储器的常规区域中的块的访问请求(S51)时,可以从读取的块映射快速访问表中检索关于访问目标块的映射关系的信息(S52)。如果在块映射快速访问表中没有检索到关于访问目标块的映射关系的信息(S52,否),则可以根据该访问请求访问常规区域中的访问目标块(S53)。如果在块映射快速访问表中检索到关于访问目标块的映射关系的信息(S52,是),则可以根据检索到的关于访问目标块的映射关系的信息,将该访问请求转换为对隐藏区域中的具有与访问目标块的映射关系的块的访问请求,并根据转换后的访问请求访问隐藏区域中的具有与访问目标块的映射关系的块(S54)。
[0085] 因此,对于发出该访问请求的用户或上层程序来说,闪速存储器是不存在坏块的,或者说,可以认为在闪速存储器的对于用户或上层程序来说可见的常规区域中不存在坏块。因此,根据本发明的示例性实施例的闪速存储器的坏块管理方法可以向用户或上层程序提供一个虚拟的无坏块的存储空间。在这样的情况下,可以实现数据的按块进行的连续写入、连续读取、连续擦除等操作。因此,与现有技术中的跳过式坏块管理方法相比,根据本发明的示例性实施例的闪速存储器的坏块管理方法不需要“跳过”坏块,所以可以提高闪速存储器的访问效率,并提高闪速存储器的数据存储的可靠性。
[0086] 闪速存储器在使用期间,其正常块可能会因为各种原因而变成新的坏块(使用坏块)。下面将详细描述根据本发明的示例性实施例的闪速存储器的坏块管理方法对这样的新产生的坏块所进行的管理。
[0087] 图6是示出根据本发明的示例性实施例的闪速存储器的坏块管理方法的根据从用户或上层程序发出的访问请求来访问常规区域中的访问目标块的流程图。
[0088] 如图6中所示,当接收到对闪速存储器的常规区域中的块的访问请求时,如果在块映射快速访问表中不存在关于访问目标块的映射关系的信息,则可以根据该访问请求访问常规区域中的访问目标块。这时,可以检测访问目标块是否是坏块(S61)。如果检测到访问目标块是正常块(S61,否),则可以根据该访问请求访问常规区域中的访问目标块(S62)。例如,当从用户或上层程序接收的访问请求是写入操作或擦除操作时,可以在进行这样的写入操作或擦除操作过程中进行坏块的检测。
[0089] 然而,如果检测到访问目标块是坏块(S61,是),则可以建立访问目标块与隐藏区域中的不具有与常规区域中的坏块的映射关系、且不用于存储块映射快速访问表的正常块(即,未使用的正常块)之间的映射关系(S63)。此后,可以执行与上面参照图5所描述的步骤相似的步骤,即,可以根据新建立的映射关系,将该访问请求转换为对隐藏区域中的具有新建立的与访问目标块的映射关系的块的访问请求,并可以根据转换后的访问请求访问隐藏区域中的具有新建立的与访问目标块的映射关系的块(S64)。
[0090] 根据本发明的示例性实施例,可以在建立了访问目标块与隐藏区域中的不具有与常规区域中的坏块的映射关系、且不用于存储块映射快速访问表的正常块(即,未使用的正常块)之间的映射关系之后,利用新建立的映射关系来来更新块映射快速访问表,并将更新的块映射快速访问表存储到隐藏区域中的坏块管理信息块中。
[0091] 图7是示出根据本发明的示例性实施例的闪速存储器的坏块管理方法的建立常规区域中的新产生的坏块与隐藏区域中的正常块的新的映射关系的示意图。
[0092] 如图7中所示,当根据接收到的访问请求对块R1C7进行访问时,如果检测到访问目标块R1C7是坏块,则可以建立坏块R1C7与隐藏区域中的不具有与常规区域中的坏块的映射关系、且不用于存储块映射快速访问表的正常块(即,未使用的正常块)R8C5之间的映射关系。在图7中以虚线箭头示出了该新建立的映射关系。
[0093] 根据本发明的其他的示例性实施例,在根据访问请求访问常规区域中的访问目标块的步骤中,如果检测到访问目标块是坏块,则可以对访问目标块中存储的数据进行读取,并在建立了映射关系之后,将读取到的数据存储在隐藏区域中的具有与访问目标块的映射关系的块中。然后,可以根据转换后的访问请求对该块进行访问。如图7中所示,例如,可以对被确定为坏块的块R1C7中存储的数据进行读取,并将读取到的数据存储在块R8C5中。然后,在根据新建立的映射关系来将对访问目标块R1C7的访问请求转换为对块R8C5的访问请求之后,可以对块R8C5进行访问。
[0094] 因此,根据本发明的示例性实施例,可以对新出现的坏块中存储的数据进行尽可能的恢复,从而提高了闪速存储器的可靠性。
[0095] 图8是示出根据本发明的示例性实施例的闪速存储器的坏块管理方法的根据转换后的访问请求访问隐藏区域中的具有与访问目标块的映射关系的块的流程图。
[0096] 如图8中所示,当接收到对闪速存储器的常规区域中的块的访问请求时,如果在块映射快速访问表中存在关于访问目标块的映射关系的信息,则可以将该访问请求转换为对隐藏区域中的具有与访问目标块的映射关系的块的访问请求。因此,可以根据转换后的访问请求来访问隐藏区域中的具有与访问目标块的映射关系的块。这时,可以检测隐藏区域中的具有与访问目标块的映射关系的块是否为坏块(S81)。如果检测到隐藏区域中的具有与访问目标块的映射关系的块是正常块(S81,否),则可以根据转换后的访问请求访问隐藏区域中的具有与访问目标块的映射关系的块(S82)。例如,当从用户或上层程序接收的访问请求是写入操作或擦除操作时,可以在进行这样的写入操作或擦除操作过程中进行坏块的检测。
[0097] 然而,如果检测到隐藏区域中的具有与访问目标块的映射关系的块为坏块(S81,是),则可以建立访问目标块和隐藏区域中的不具有与常规区域中的坏块的映射关系、且不用于存储块映射快速访问表的正常块(即,未使用的正常块)之间的映射关系(S83)。此后,可以执行与上面参照图5所描述的步骤相似的步骤,即,可以根据新建立的映射关系,将该访问请求转换为对隐藏区域中的具有新建立的与访问目标块的映射关系的块的访问请求,并可以根据转换后的访问请求访问隐藏区域中的具有新建立的与访问目标块的映射关系的块(S84)。
[0098] 根据本发明的示例性实施例,可以在建立了访问目标块与隐藏区域中的不具有与常规区域中的坏块的映射关系、且不用于存储块映射快速访问表的正常块(即,未使用的正常块)之间的映射关系之后,利用新建立的映射关系来来更新块映射快速访问表,并将更新的块映射快速访问表存储到隐藏区域中的坏块管理信息块中。
[0099] 图9是示出根据本发明的示例性实施例的闪速存储器的坏块管理方法的建立常规区域中的坏块与隐藏区域中的正常块的新的映射关系的示意图。
[0100] 如图9中所示,当接收到对块R2C2的访问请求,并在块映射快速访问表中存在块R2C2与块R8C2的映射关系时,该访问请求可以被转换为对块R8C2的访问请求。当根据转换后的访问请求对块R8C2进行访问时,如果检测到块R8C2是坏块,则可以建立块R2C2与隐藏区域中的不具有与常规区域中的坏块的映射关系、且不用于存储块映射快速访问表的正常块(即,未使用的正常块)R8C6之间的映射关系。在图9中以虚线箭头示出了该新建立的映射关系。
[0101] 根据本发明的其他的示例性实施例,在根据转换后的访问请求访问隐藏区域中的具有与常规区域中的访问目标块的映射关系的块步骤中,如果检测到隐藏区域中的具有与常规区域中的访问目标块的映射关系的块是坏块,则可以对其中存储的数据进行读取,并在建立了映射关系之后,将读取到的数据存储在隐藏区域中的具有与访问目标块的映射关系的新的块中。如图9中所示,例如,可以对被确定为坏块的块R8C2中存储的数据进行读取,并将读取到的数据存储在块R8C6中。
[0102] 因此,根据本发明的示例性实施例,可以对新出现的坏块中存储的数据进行尽可能的恢复,从而提高了闪速存储器的可靠性。
[0103] 根据在上面描述的闪速存储器的坏块管理方法,可以对常规区域和隐藏区域中新出现的坏块进行坏块管理,从而始终为用户/上层程序提供虚拟的无坏块的存储空间。
[0104] 如上所述,块映射快速访问表可以存储在闪速存储器或与闪速存储器接口连接的外部装置中的缓存中,因此,在建立的新的映射关系之后,可以对存储在缓存中的块映射快速访问表进行更新,并且从缓存中删除原块映射快速访问表并存储更新的块映射快速访问表。即,可以在缓存中进行更新块映射快速访问表的操作。
[0105] 根据本发明的示例性实施例,在利用新建立的映射关系来更新块映射快速访问列表之后,可以将更新的块映射快速访问表存储在坏块管理信息块中,以更新坏块管理信息块。更新坏块管理信息块的操作可以包括擦除坏块管理信息块并然后将坏块管理信息块写入到擦除后的坏块管理信息块中。在一个示例性实施例中,可以顺序地将更新的块映射快速访问表存储在多个坏块管理信息块中。
[0106] 坏块管理信息块自身可能因为各种原因而变为使用坏块。例如,坏块管理信息块可能因为上述的存储更新的块映射快速访问表的操作而变为使用坏块。在下文中,将详细地描述根据本发明的示例性实施例的闪速存储器的坏块管理方法在更新坏块管理信息块的过程中坏块管理信息块自身出现坏块时的操作。
[0107] 图10是示出了根据本发明的示例性实施例的闪速存储器的坏块管理方法的在更新坏块管理信息块的过程中在坏块管理信息块中出现坏块时的操作的流程图。
[0108] 如图10中所示,在更新坏块管理信息块的过程中,可以检测作为更新对象的坏块管理信息块是否为坏块(S101)。在这里,将作为更新对象的坏块管理信息块称为第一坏块管理信息块。第一坏块管理信息块可以是多个坏块管理信息块中的首先被更新的坏块管理信息块。如果检测到第一坏块管理信息块是坏块(S101,是),则可以将更新的块映射快速访问表存储在隐藏区域中的不具有与常规区域中的坏块的映射关系、且不用于存储块映射快速访问表的任意的正常块(即,任意的未使用的正常块)中(S102)。这时,该存储了块映射快速访问表的块即为新的坏块管理信息块。
[0109] 此外,可以在该未使用的正常块中写入用于指示该块是用于存储块映射快速访问表的坏块管理信息块的标签。
[0110] 图11是示出根据本发明的示例性实施例的闪速存储器的坏块管理方法的将更新的块映射快速访问表存储在新的坏块管理信息块中的示意图。
[0111] 如图11中所示,当检测到第一坏块管理信息块R8C1是坏块时,可以将更新的块映射快速访问表存储到块R8C7中。块R8C7可以是隐藏区域中的不具有与常规区域中的坏块的映射关系、且不用于存储块映射快速访问表的正常块(即,未使用的正常块)。此外,可以在新的坏块管理信息块R8C7中写入用于指示该块是用于存储块映射快速访问表的坏块管理信息块的标签。
[0112] 返回参照图10,如果检测到第一坏块管理信息块是正常块(S101,否),则可以将更新的块映射快速访问表存储在第一坏块管理信息块中(S103)。
[0113] 然后,可以重复上面的操作,以更新坏块管理信息块中的除了第一坏块管理信息块之外的其他的坏块管理信息块。如图11中所示,可以在将更新的块映射快速访问表存储到新的坏块管理信息块R8C7中之后,将更新的块映射快速访问表存储到另一(例如,第二)坏块管理信息块R8C5中。
[0114] 根据本发明的示例性实施例,在更新位于缓存中的块映射快速访问表之后,可以紧接着更新坏块管理信息块。因此,可以持久化存储映射信息。
[0115] 在更新坏块管理信息块的过程中,可能会出现这样的情况,即,在将更新的块映射快速访问表存储到坏块管理信息块的步骤完成之前,对闪速存储器或与闪速存储器接口连接的外部装置的供电异常或中断,例如,诸如移动电话等的包括闪速存储器的外部装置的电池电量过低或耗尽。这时,存储在缓存中的更新的坏块管理信息表会因供电异常或中断而丢失,且因更新坏块管理信息块的步骤没有完成而可能没有将更新的坏块管理信息表写入或没有完整地写入作为更新对象的坏块管理信息块中。然而,根据本发明的示例性实施例,在多个坏块管理信息块中存储坏块管理信息表,且更新坏块管理信息块操作是按块顺序进行的,即,当对一个坏块管理信息块的更新完毕之后再进行另一个坏块管理信息块的更新。因此,在出现对闪速存储器或与闪速存储器接口连接的外部装置的供电异常或中断的情况下,受其影响的可以仅是当时正在更新的作为更新对象的一个坏块管理信息块,而其他的坏块管理信息块不受影响。因此,根据本发明的示例性实施例,可以在恢复正常供电之后,从其他的未受影响的坏块管理信息块中读取坏块管理信息块。因此,提高了根据本发明的示例性实施例的闪速存储器的坏块管理方法的可靠性。这将在下文中进行更充分地描述。
[0116] 图12是示出了根据本发明的示例性实施例的闪速存储器的坏块管理方法的根据校验信息的初始化操作的流程图。
[0117] 如图12中所示,首先,可以初始化闪速存储器(S121)。然后,可以从隐藏区域中的各个坏块管理信息块中读取用于校验块映射快速访问表的完整性的校验信息,并可以根据校验信息来校验它们中存储的块映射快速访问表的完整性(S122)。例如,如果某个坏块管理信息块中未存储有校验信息,或者存储在该坏块管理信息块中的块映射快速访问表未能通过完整性校验,则表明该坏块管理信息块中存储的数据不可用。这可能是因为之前在擦除该坏块管理信息块的操作或将更新的块映射快速访问表写入该坏块管理信息块的操作因供电异常或供电中断而被打断所导致的。
[0118] 接下来,可以从通过了完整性校验的坏块管理信息块中的任意一个坏块管理信息块中读取块映射快速访问表(S123),从而完成了坏块管理方法的初始化。
[0119] 可选择地,在从一个通过了完整性校验的坏块管理信息块中读取了块映射快速访问表之后,可以将读取的块映射快速访问表存储到未通过完整性校验的坏块管理信息块中和/或其他的通过了完整性校验的坏块管理信息块中,从而始终保持在至少两个坏块管理信息块中存储有块映射快速访问表。
[0120] 在本发明的当前的示例性实施例中,根据校验信息来确定块映射快速访问表是否完整,从而可以读取可用的块映射快速访问表。因此,即使之前因供电异常或供电中断导致某个坏块管理信息块的更新操作没有完成,也可以读取其他的坏块管理信息块中存储的块映射快速访问表,从而初始化根据本发明的示例性实施例的坏块管理方法。然而,本发明不限于此,在本发明的其他的示例性实施例中,可以根据用于指示块映射快速访问表的建立/更新时间的时间戳或者根据校验信息和时间戳两者来确定块映射快速访问表是否可用。
[0121] 图13是示出了根据本发明的示例性实施例的闪速存储器的坏块管理方法的根据时间戳的初始化操作的流程图。
[0122] 如图13中所示,可以首先初始化闪速存储器(S131)。然后,可以从隐藏区域中的各个坏块管理信息块中读取时间戳,以确定由时间戳指示的存储在各个坏块管理信息块中的块映射快速访问表的建立/更新时间(S132)。这里,时间戳可以是与块映射快速访问表的建立/更新时间的信息。如果因为之前更新某个坏块管理信息块的操作被供电异常或供电中断打断,则该坏块管理信息块中可能未存储有时间戳。因此,可以确定该坏块管理信息块中存储的数据不可用。
[0123] 接下来,可以比较各个块映射快速访问表的建立/更新时间的先后,从而可以从存储有最近建立/更新的块映射快速访问表的坏块管理信息块中读取最近建立/更新的块映射快速访问表(S133),从而完成了坏块管理方法的初始化。
[0124] 可选择地,在从一个存储有最近建立/更新的块映射快速访问表的坏块管理信息块中读取最近建立/更新的块映射快速访问表之后,可以将读取的块映射快速访问表存储到其他的坏块管理信息块中,从而始终保持在至少两个坏块管理信息块中存储有块映射快速访问表。
[0125] 在本发明的当前的示例性实施例中,使用了时间戳来确定块映射快速访问表中哪个是最近建立/更新的块映射快速访问表,从而读取包括有新建立的映射关系的最近建立/更新的块映射快速访问表。因此,即使之前因供电异常或供电中断导致某个坏块管理信息块的更新操作没有完成,也可以读取其他的坏块管理信息块中存储的块映射快速访问表,从而初始化根据本发明的示例性实施例的坏块管理方法。
[0126] 图14是示出了根据本发明的示例性实施例的闪速存储器的坏块管理方法的根据校验信息和时间戳两者的初始化操作的流程图。
[0127] 如图14中所示,可以首先初始化闪速存储器(S141)。然后,可以从隐藏区域中的各个坏块管理信息块中读取校验信息,并可以根据校验信息来校验它们中存储的块映射快速访问表的完整性(S142)。例如,如果某个坏块管理信息块中未存储有校验信息,或者存储在该坏块管理信息块中的块映射快速访问表未能通过完整性校验,则表明该坏块管理信息块中存储的数据不可用。这可能是因为之前在擦除该坏块管理信息块的操作或将更新的块映射快速访问表写入该坏块管理信息块的操作因供电异常或供电中断而被打断所导致的。
[0128] 存在这样一种情况,即,在更新坏块管理信息块的过程中,已经完成了某个坏块管理信息块的更新操作,但是对其他的坏块管理信息块的更新尚未开始。如果在这样的情况下出现供电异常或供电中断,则完成了更新操作的坏块管理信息块中存储有更新的块映射快速访问表,且在其他的坏块管理信息块中存储有原始的块映射快速访问表。因此,这样的更新过的坏块管理信息块和未更新的坏块管理信息块均可以通过如上面参照步骤S142进行描述的完整性校验。
[0129] 因此,根据本发明的当前的示例性实施例,可以从各个通过了完整性校验的坏块管理信息块中读取时间戳,以确定由时间戳指示的存储在各个通过了完整性校验的坏块管理信息块中的块映射快速访问表的建立/更新时间(S143)。接下来,可以通过比较各个块映射快速访问表的建立/更新时间的先后,来从存储有最近建立/更新的块映射快速访问表的坏块管理信息块中读取最近建立/更新的块映射快速访问表(S144)。这样,即完成了坏块管理方法的初始化。
[0130] 可选择地,在从一个存储有最近建立/更新的块映射快速访问表的坏块管理信息块中读取最近建立/更新的块映射快速访问表之后,可以将读取的块映射快速访问表存储到其他的坏块管理信息块中,从而始终保持在至少两个坏块管理信息块中存储有块映射快速访问表。
[0131] 如此,在更新过的坏块管理信息块和未更新的坏块管理信息块均通过了完整性校验的情况下,根据本发明的当前的示例性实施例也可以通过比较块映射快速访问表的建立/更新时间来确定哪个块映射快速访问表存储有最近建立的映射关系。因此,根据本发明的示例性实施例的闪速存储器的坏块管理方法可以不受因供电异常或供电中断的影响,从而提供了稳定可靠的坏块管理。
[0132] 图15是示出了根据本发明的另一示例性实施例的闪速存储器的坏块管理方法的流程图。
[0133] 如图15所示,首先,根据本发明的当前实施例的闪速存储器的坏块管理方法可以通过识别用于指示该块是用于存储块映射快速访问表的坏块管理信息块的标签,来从闪速存储器的多个块中确定多个坏块管理信息块(S151)。如果确定在闪速存储器中不包括坏块管理信息块,即,没有识别出用于指示该块是用于存储块映射快速访问表的坏块管理信息块的标签(S151,否),则将禁用坏块管理方法(S157)。
[0134] 接下来,根据本发明的当前实施例的闪速存储器的坏块管理方法可以根据识别出的各个坏块管理信息块中的校验信息来校验每个坏块管理信息块中存储的块映射快速访问表的完整性(S152)。如果识别出的所有的坏块管理信息块均没有通过完整性校验(S152,否),则将禁用坏块管理方法(S157)。
[0135] 如果在识别出的坏块管理信息块中的多个坏块管理信息块通过了完整性校验(S153,是),则根据本发明的当前实施例的闪速存储器的坏块管理方法可以通过比较由所述多个坏块管理信息块中存储的时间戳指示的块映射快速访问表的建立/更新时间,来确定哪个坏块管理信息块中存储的块映射快速访问表是最近建立/更新的(S154)。
[0136] 此后,可以从确定的存储了最近建立/更新的块映射快速访问表的坏块管理信息块中读取块映射快速访问表,并将其加载到闪速存储器或与闪速存储器接口连接的外部装置的缓存中(S155)。
[0137] 然而,当在识别出的坏块管理信息块中的仅有一个坏块管理信息块通过了完整性校验(S153,否),则根据本发明的当前实施例的闪速存储器的坏块管理方法可以转到步骤S155,即,可以不进行时间戳的比较而直接从该通过了完整性校验的坏块管理信息块中读取块映射快速访问表,并将其加载到闪速存储器的缓存或与闪速存储器接口连接的外部装置的缓存中。
[0138] 在将块映射快速访问表加载到缓存中之后,即可启用根据本发明的当前实施例的闪速存储器的坏块管理方法(S156)。
[0139] 图16是示出了根据本发明的另一示例性实施例的闪速存储器的坏块管理方法的流程图。
[0140] 首先,可以从外部(例如,用户或上层程序)接收对闪速存储器的存储区域中的第一区域中的访问目标块的访问请求(S1600)。接下来,可以确定在闪速存储器的缓存或与闪速存储器接口连接的外部装置的缓存中是否加载有块映射快速访问表(S1601)。如果确定未加载块映射快速访问表(S1601,否),则可以禁用所述闪速存储器的坏块管理方法,并将访问请求发送到诸如闪速存储器的驱动程序等的下层程序。
[0141] 在确定了已经加载了块映射快速访问表的情况下(S1601,是),可以从块映射快速访问表中检索关于访问目标块的映射关系的信息(S1602)。
[0142] 如果在块映射快速访问表中检索到关于访问目标块的映射关系的信息(S1603,是),则可以根据检索到的关于访问目标块的映射关系的信息,将该访问请求转换为对闪速存储器的存储区域中的第二区域中的具有与访问目标块的映射关系的块的访问请求(S1604)。
[0143] 如果检测到所述第二区域中的具有与访问目标块的映射关系的块不是坏块(S1605,否),则可以将转换后的访问请求发送到闪速存储器的驱动程序(S1699)。
[0144] 如图16中所示,如果在块映射快速访问表中没有检索到关于访问目标块的映射关系的信息(S1603,否),则可以检测访问目标坏是否为坏块(S1606)。如果检测到访问目标块不是坏块(S1606,否),则可以将访问请求发送到闪速存储器的驱动程序(S1699)。
[0145] 然而,如果检测到访问目标块是坏块(S1606,是),则可以建立访问目标块与第二区域中的未使用的正常块之间的映射关系(S1607)。未使用的正常块可以是第二区域中的不具有与第一区域中的坏块的映射关系、且不用于存储块映射快速访问表的正常块。这时,可以对访问目标块中存储的数据进行读取,并在建立了访问目标块与第二区域中的未使用的正常块之间的映射关系之后,可以将读取到的数据存储在第二区域中的具有新建立的与访问目标块的映射关系的块中(S1608)。
[0146] 接下来,可以利用新建立的访问目标块与第二区域中的未使用的正常块之间的映射关系,来更新存储在缓存中的块映射快速访问表(S1609)。然后,可以将更新的块映射快速访问表存储在第二区域中的多个坏块管理信息块中(S1610)。
[0147] 当检测到所述多个坏块管理信息块不是坏块时(S1611,否),可以将访问请求转换为对第二区域中的具有新建立的与访问目标块的映射关系的块的访问请求(S1612),并将转换后的访问请求发送到闪速存储器的驱动程序(S1699)。
[0148] 另一方面,当检测到所述坏块管理信息块中的一个坏块管理信息块是坏块时(S1611,是),可以在第二区域中重新分配一个新的坏块管理信息块(S1613),并可以将更新的块映射快速访问表存储在所述新的坏块管理信息块中(S1610)。
[0149] 然后,当检测到所述新的坏块管理信息块不是坏块时(S1611,否),可以将访问请求转换为对第二区域中的具有新建立的与访问目标块的映射关系的块的访问请求(S1612),并将转换后的访问请求发送到闪速存储器的驱动程序(S1699)。
[0150] 此外,如果检测到所述第二区域中的具有与访问目标块的映射关系的块是坏块(S1605,是),则可以解除该映射关系,并可以建立访问目标块与第二区域中的未使用的正常块之间的映射关系(S1607)。接下来,如图16中所示,可以继续执行步骤S1608以及其后的步骤。
[0151] 虽然已经示出并描述了本发明的示例性实施例的示例,但是本领域技术人员应该理解的是,本发明的示例性实施例不限于此,在不脱离根据权利要求所限定的本发明的精神和范围的情况下,可以对这些示例性实施例进行各种修改。