一种闪存管理方法及系统的制作方法

文档序号:6336537阅读:197来源:国知局
专利名称:一种闪存管理方法及系统的制作方法
技术领域
本发明属于数据存储技术领域,尤其涉及一种闪存管理方法及系统。
背景技术
闪存芯片的存储空间是按照块和页的概念来组织的,以三星的闪存芯片 K9F2808U0C为例,该闪存芯片包含1024个块,每个块有32页,每个页有528字节。其中这 528字节中分为512字节的数据区和16字节的冗余区,冗余区用于存放ECC代码、坏块信息 和文件系统相关代码。现有技术中,一般将包含一个或多个无效位的存储块标记为坏块,在使用闪存芯 片时,必须根据初始的坏块信息识别出坏块,并建立坏块信息表,进行写或擦除操作时将欲 操作块的地址与坏块信息表的地址相比较,若是坏块则跳过,为了提高存储空间的效率,单 个数据位数据错误引起的读写失败都可以用ECC(校错和纠错)方法处理。这种方法的缺 点是一旦该块中多个数据位出现了错误,使得ECC方法无法纠正时,则把该块列为坏块跳 过使用,而NANDFlash出错的时候一般不会造成整个Block或是Page不能读取或是全部出 错,而是整个Page (例如512Bytes)中只有一个或几个bit出错,因此将整个块不使用浪费 了闪存的存储空间。随着多级单元闪存技术的出现,Flash制程的提高,对于控制器的纠错能力的需求 也大大提高。因此,面对具备同样纠错能力的控制器时,Flash的稳定性不如从前了,具体 表现为包含无效位的页和块增多了,如果将这些包含无效位的块和页弃而不用,造成了闪 存资源的极大浪费,也容易造成使用该闪存的存储设备的存储容量不足针对该问题,可以通过对包含无效页的块附加标志,当使用附加有标志的块时,只 使用其中的有效页,从而达到提高闪存存储空间的利用率的目的,但是该方法虽然在一定 程度上改善了闪存存储空间浪费的问题,但仍然因为少数几个位的出错而浪费了整个页的 存储空间,存储空间的利用率还是不高。

发明内容
本发明的目的在于提供一种闪存管理方法,旨在解决现有技术提供的根据建立的 坏块信息表或附加有无效页标志的块,在闪存中写入数据方法,存在闪存存储空间利用率 不高,浪费存储空间的问题。本发明是这样实现的,一种闪存管理方法,所述方法包括下述步骤获取闪存的页内的每个位是否有效的状态;根据获取到的位的有效状态确定所述位所在的字节的有效状态,对包含有无效状 态位的无效字节进行标记,所述无效字节包含一个或者多个无效位;根据页内每个字节的标记状态,创建字节信息表,所述字节信息表记录有页内每 个字节的标记状态;对页进行写操作时,读取创建的所述字节信息表中标记的无效字节,在闪存存储
4空间的数据区中跳过所述无效字节;根据在数据区中跳过的无效字节的数量,在冗余区中划分出与所述在数据区中跳 过的无效字节的数量相对等的字节进行数据写入,所述划分出的字节用于进行数据写入。本发明的另一目的在于提供一种闪存管理系统,所述系统包括位状态获取模块,用于获取闪存的页内的每个位是否有效的状态;无效字节标记模块,用于根据获取到的位的有效状态确定所述位所在的字节的有 效状态,对包含有无效状态位的无效字节进行标记,所述无效字节包含一个或者多个无效 位;字节信息表创建模块,用于根据页内每个字节的标记状态,创建字节信息表,所述 字节信息表记录有页内每个字节的标记状态;第一写操作模块,用于对页进行写操作时,读取创建的所述字节信息表中标记的 无效字节,在闪存存储空间的数据区中跳过所述无效字节;以及冗余区字节划分模块,用于根据在数据区中跳过的无效字节的数量,在冗余区中 划分出与所述在数据区中跳过的无效字节的数量相对等的字节,所述划分出的字节用于进 行数据写入。在本发明实施例中,获取闪存的页内的每个位是否有效的状态;根据获取到的位 的有效状态确定所述位所在的字节的有效状态,对包含有无效状态位的无效字节进行标 记,所述无效字节包含一个或者多个无效位;根据页内每个字节的标记状态,创建字节信息 表,所述字节信息表记录有页内每个字节的标记状态;对页进行写操作时,读取创建的所述 字节信息表中标记的无效字节,在闪存存储空间的数据区中跳过所述无效字节,根据在数 据区中跳过的无效字节的数量,在冗余区中划分出与所述在数据区中跳过的无效字节的数 量相对等的字节进行数据写入,所述划分出的字节用于进行数据写入,有效的提高了存储 空间的利用率,提高了闪存存储设备的容量。


图1是本发明实施例一提供的闪存管理方法的实现流程图;图2是本发明实施例三提供的闪存管理方法的实现流程图;图3是本发明实施例四提供的闪存管理方法的实现流程图;图4是本发明实施例五提供的闪存管理系统的结构框图;图5是本发明实施例六提供的闪存管理系统的结构框图;图6是本发明实施例七提供的闪存管理系统的结构框图;图7是本发明实施例八提供的闪存管理系统的结构框图;图8是本发明实施例提供的数据写入示意图。
具体实施例方式为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施 例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发 明,并不用于限定本发明。在本发明实施例中,本发明根据位的有效状态,确定闪存中每个页内字节的有效状态,对其中无效的字节进行标记并建立字节信息表,在对页进行写操作时,根据字节信息 表中的字节的标记信息跳过无效字节,并在冗余区中补足无效字节,有效的提高了存储空 间的利用率,提高了闪存存储设备的容量。本发明实施例的目的在于提供一种闪存管理方法,所述方法包括下述步骤获取闪存的页内的每个位是否有效的状态;根据获取到的位的有效状态确定所述位所在的字节的有效状态,对包含有无效状 态位的无效字节进行标记,所述无效字节包含一个或者多个无效位;根据页内每个字节的标记状态,创建字节信息表,所述字节信息表记录有页内每 个字节的标记状态;对页进行写操作时,读取创建的所述字节信息表中标记的无效字节,在闪存存储 空间的数据区中跳过所述无效字节;根据在数据区中跳过的无效字节的数量,在冗余区中划分出与所述在数据区中跳 过的无效字节的数量相对等的字节进行数据写入,所述划分出的字节用于进行数据写入。本发明的另一目的在于提供一种闪存管理系统,所述系统包括位状态获取模块,用于获取闪存的页内的每个位是否有效的状态;无效字节标记模块,用于根据获取到的位的有效状态确定所述位所在的字节的有 效状态,对包含有无效状态位的无效字节进行标记,所述无效字节包含一个或者多个无效 位;字节信息表创建模块,用于根据页内每个字节的标记状态,创建字节信息表,所述 字节信息表记录有页内每个字节的标记状态;第一写操作模块,用于对页进行写操作时,读取创建的所述字节信息表中标记的 无效字节,在闪存存储空间的数据区中跳过所述无效字节;以及冗余区字节划分模块,用于根据在数据区中跳过的无效字节的数量,在冗余区中 划分出与所述在数据区中跳过的无效字节的数量相对等的字节,所述划分出的字节用于进 行数据写入。在本发明实施例中,获取闪存的页内的每个位是否有效的状态;根据获取到的位 的有效状态确定所述位所在的字节的有效状态,对包含有无效状态位的无效字节进行标 记,所述无效字节包含一个或者多个无效位;根据页内每个字节的标记状态,创建字节信息 表,所述字节信息表记录有页内每个字节的标记状态;对页进行写操作时,读取创建的所述 字节信息表中标记的无效字节,在闪存存储空间的数据区中跳过所述无效字节,根据在数 据区中跳过的无效字节的数量,在冗余区中划分出与所述在数据区中跳过的无效字节的数 量相对等的字节进行数据写入,所述划分出的字节用于进行数据写入。实施例一图1示出了本发明实施例一提供的闪存管理方法的实现流程,其具体的步骤如下 所述在步骤SlOl中,获取闪存的页内的每个位是否有效的状态。在步骤S102中,根据获取到的位的有效状态确定所述位所在的字节的有效状态, 对包含有无效状态位的无效字节进行标记,所述无效字节包含一个或者多个无效位。在步骤S103中,根据页内每个字节的标记状态,创建字节信息表,所述字节信息表记录有页内每个字节的标记状态。在步骤S104中,对页进行写操作时,读取创建的所述字节信息表中标记的无效字 节,在闪存存储空间的数据区中跳过所述无效字节。在步骤S105中,根据在数据区中跳过的无效字节的数量,在冗余区中划分出与所 述在数据区中跳过的无效字节的数量相对等的字节进行数据写入,所述划分出的字节用于 进行数据写入。在本发明实施例中,通过对位状态的检测,建立字节信息表,对页进行写操作时, 跳过所述字节信息表中标记的无效字节,在冗余区划分出相应的字节进行数据存储补足, 从而提高闪存的存储效率,提高了闪存存储设备的容量。实施例二在本发明实施例中,在对位状态进行检测时,需要判断页与页之间的无效字节的 位置是否相同,即判断当前标记的无效字节所在页的位置是否与已经标记的无效字节在其 所在页的位置相同;当当前标记的无效字节所在页的位置与已经标记的无效字节在其所在 页的位置相同时,控制不再创建字节信息表,使用所述已经标记的无效字节所在页的字节 信息表;当当前标记的无效字节所在页的位置与已经标记的无效字节在其所在页的位置不 同时,继续执行所述根据页内每个字节的标记状态,创建字节信息表的步骤。在本发明实施例中,无效字节位置相同的页可使用相同的字节信息表,因此本发 明实施例可以节约存储字节信息表的存储空间。上述仅为本发明的一个实施例,在此不用以限制本发明。实施例三图2示出了本发明实施例三提供的闪存管理方法的实现流程,其具体的步骤如下 所述在步骤S201中,根据字节信息表,对块内包含无效字节的页进行标记,建立页信 息表,所述页信息表包含每个块内的页是否标记的信息。在本发明实施例中,该实施例是在实施例一的基础上执行的,即使用实施例一所 建立的字节信息表,来进一步建立字节信息表。在步骤S202中,当对块内的页进行写入操作时,根据页信息表判断当前操作的页 是否有标记,是则执行步骤S203,否则执行步骤S204。在步骤S203中,当当前操作的页有标记时,调用字节信息表,根据所述字节信息 表中所包含的无效字节的信息,跳过所述无效字节,在所述无效字节的下一字节进行数据 写操作。在步骤S204中,在没有标记的页中,按顺序写入数据。在本发明实施例中,该实施例是在上述实施例一和实施例二的基础上进行的数据 写操作,根据预先建立的字节信息表,当进行页写入操作时,根据页是否有标记进行写操 作,有标记的,则调用字节信息表,跳过无效字节;没有标记的,按顺序写入,提高写入速度。实施例四图3示出了本发明实施例四提供的闪存管理方法的实现流程,其具体的步骤如下 所述在步骤S301中,根据页信息表和字节信息表,对闪存内包含标记页的块进行标记,建立块信息表,所述块信息表包含每个块是否标记的信息;在步骤S302中,当对闪存内的块进行写入操作时,判断当前操作的块是否有标 记,是则执行步骤S303,否则执行步骤S304。在步骤S303中,当当前操作的块有标记时,调用页信息表和字节信息表,根据所 述页信息表和字节信息表中所包含的无效字节的信息,跳过所述无效字节,在所述无效字 节的下一字节进行数据写操作。在步骤S304中,在没有标记的块中,按顺序写入数据。在本发明实施例中,该实施例是在上述实施例一至实施例三的基础上进行的数据 写操作,根据预先建立的页信息表和字节信息表,当进行块写入操作时,根据块是否有标记 进行写操作,有标记的,则调用页信息表和字节信息表,跳过无效字节;没有标记的,按顺序 写入,提高写入速度。实施例五图4示出了本发明实施例五提供的闪存管理系统的结构框图,为了便于说明,图 中仅给出了与本发明实施例相关的部分。位状态获取模块11获取闪存的页内的每个位是否有效的状态;无效字节标记模 块12根据获取到的位的有效状态确定所述位所在的字节的有效状态,对包含有无效状态 位的无效字节进行标记,所述无效字节包含一个或者多个无效位;字节信息表创建模块13 根据页内每个字节的标记状态,创建字节信息表,所述字节信息表记录有页内每个字节的 标记状态;第一写操作模块14对页进行写操作时,读取创建的所述字节信息表中标记的无 效字节,在闪存存储空间的数据区中跳过所述无效字节;冗余区字节划分模块15根据在数 据区中跳过的无效字节的数量,在冗余区中划分出与所述在数据区中跳过的无效字节的数 量相对等的字节,所述划分出的字节用于进行数据写入。上述仅为本发明的一个系统实施例,其各模块的功能如上述方法实施例所述,在 此不再赘述。实施例六图5示出了本发明实施例六提供的闪存管理系统的结构框图,为了便于说明,图 中仅给出了与本发明实施例相关的部分。位状态获取模块11获取闪存的页内的每个位是否有效的状态;无效字节标记模 块12根据获取到的位的有效状态确定所述位所在的字节的有效状态,对包含有无效状态 位的无效字节进行标记,所述无效字节包含一个或者多个无效位;字节信息表创建模块13 根据页内每个字节的标记状态,创建字节信息表,所述字节信息表记录有页内每个字节的 标记状态;第一写操作模块14对页进行写操作时,读取创建的所述字节信息表中标记的无 效字节,在闪存存储空间的数据区中跳过所述无效字节;冗余区字节划分模块15根据在数 据区中跳过的无效字节的数量,在冗余区中划分出与所述在数据区中跳过的无效字节的数 量相对等的字节,所述划分出的字节用于进行数据写入。作为本发明的另一个实施例,判断模块16判断当前标记的无效字节所在页的位 置是否与已经标记的无效字节在其所在页的位置相同;当所述判断模块16判断当前标记 的无效字节所在页的位置与已经标记的无效字节在其所在页的位置相同时,控制模块17 控制不再创建字节信息表,使用所述已经标记的无效字节所在页的字节信息表;当所述判
8断模块16判断当前标记的无效字节所在页的位置与已经标记的无效字节在其所在页的位 置不同时,继续执行所述字节信息表创建模块14根据页内每个字节的标记状态,创建字节 信息表的步骤。上述仅为本发明的一个系统实施例,其各模块的功能如上述方法实施例所述,在 此不再赘述。实施例七图6示出了本发明实施例七提供的闪存管理系统的结构框图,为了便于说明,图 中仅给出了与本发明实施例相关的部分。位状态获取模块11获取闪存的页内的每个位是否有效的状态;无效字节标记模 块12根据获取到的位的有效状态确定所述位所在的字节的有效状态,对包含有无效状态 位的无效字节进行标记,所述无效字节包含一个或者多个无效位;字节信息表创建模块13 根据页内每个字节的标记状态,创建字节信息表,所述字节信息表记录有页内每个字节的 标记状态;第一写操作模块14对页进行写操作时,读取创建的所述字节信息表中标记的无 效字节,在闪存存储空间的数据区中跳过所述无效字节;冗余区字节划分模块15根据在数 据区中跳过的无效字节的数量,在冗余区中划分出与所述在数据区中跳过的无效字节的数 量相对等的字节,所述划分出的字节用于进行数据写入。作为本发明的另一个实施例,判断模块16判断当前标记的无效字节所在页的位 置是否与已经标记的无效字节在其所在页的位置相同;当所述判断模块16判断当前标记 的无效字节所在页的位置与已经标记的无效字节在其所在页的位置相同时,控制模块17 控制不再创建字节信息表,使用所述已经标记的无效字节所在页的字节信息表;当所述判 断模块16判断当前标记的无效字节所在页的位置与已经标记的无效字节在其所在页的位 置不同时,继续执行所述字节信息表创建模块14根据页内每个字节的标记状态,创建字节 信息表的步骤。页信息表建立模块18根据字节信息表,对块内包含无效字节的页进行标记,建立 页信息表,所述页信息表包含每个块内的页是否标记的信息;页标记判断模块19当对块内 的页进行写入操作时,根据页信息表判断当前操作的页是否有标记;当所述页标记判断模 块19判断当前操作的页有标记时,第二写操作模块20调用字节信息表,根据所述字节信息 表中所包含的无效字节的信息,跳过所述无效字节,在所述无效字节的下一字节进行数据 写操作;当当所述页标记判断模块19判断当前操作的页没有标记时,顺序写入数据即可。上述仅为本发明的一个系统实施例,其各模块的功能如上述方法实施例所述,在 此不再赘述。实施例八图7示出了本发明实施例八提供的闪存管理系统的结构框图,为了便于说明,图 中仅给出了与本发明实施例相关的部分。位状态获取模块11获取闪存的页内的每个位是否有效的状态;无效字节标记模 块12根据获取到的位的有效状态确定所述位所在的字节的有效状态,对包含有无效状态 位的无效字节进行标记,所述无效字节包含一个或者多个无效位;字节信息表创建模块13 根据页内每个字节的标记状态,创建字节信息表,所述字节信息表记录有页内每个字节的 标记状态;第一写操作模块14对页进行写操作时,读取创建的所述字节信息表中标记的无效字节,在闪存存储空间的数据区中跳过所述无效字节;冗余区字节划分模块15根据在数 据区中跳过的无效字节的数量,在冗余区中划分出与所述在数据区中跳过的无效字节的数 量相对等的字节,所述划分出的字节用于进行数据写入。作为本发明的另一个实施例,判断模块16判断当前标记的无效字节所在页的位 置是否与已经标记的无效字节在其所在页的位置相同;当所述判断模块16判断当前标记 的无效字节所在页的位置与已经标记的无效字节在其所在页的位置相同时,控制模块17 控制不再创建字节信息表,使用所述已经标记的无效字节所在页的字节信息表;当所述判 断模块16判断当前标记的无效字节所在页的位置与已经标记的无效字节在其所在页的位 置不同时,继续执行所述字节信息表创建模块14根据页内每个字节的标记状态,创建字节 信息表的步骤。页信息表建立模块18根据字节信息表,对块内包含无效字节的页进行标记,建立 页信息表,所述页信息表包含每个块内的页是否标记的信息;页标记判断模块19当对块内 的页进行写入操作时,根据页信息表判断当前操作的页是否有标记;当所述页标记判断模 块19判断当前操作的页有标记时,第二写操作模块20调用字节信息表,根据所述字节信息 表中所包含的无效字节的信息,跳过所述无效字节,在所述无效字节的下一字节进行数据 写操作;当当所述页标记判断模块19判断当前操作的页没有标记时,顺序写入数据即可。块信息表建立模块21根据页信息表和字节信息表,对闪存内包含标记页的块进 行标记,建立块信息表,所述块信息表包含每个块是否标记的信息;当对闪存内的块进行写 入操作时,块标记判断模块22判断当前操作的块是否有标记;当所述块标记判断模块22判 断当前操作的块有标记时,第三写操作模块23调用页信息表和字节信息表,根据所述页信 息表和字节信息表中所包含的无效字节的信息,跳过所述无效字节,在所述无效字节的下 一字节进行数据写操作;当所述块标记判断模块22判断当前操作的块没有标记时,按顺序 写入数据。上述仅为本发明的一个系统实施例,其各模块的功能如上述方法实施例所述,在 此不再赘述。实施例九作为本发明的一个具体实施例,如图8所示,假设该页数据区中的第5字节和第20 字节为无效字节,则当对该页进行写操作时,直接跳过该标记的无效字节(第5字节和第20 字节),从其有效的第6字节和第21字节开始写数据,因第5字节和第20字节损失的存储 空间,可以用冗余区中的第1字节和第2字节补充,从而充分利用闪存的存储空间。在本发明实施例中,获取闪存的页内的每个位是否有效的状态;根据获取到的位 的有效状态确定所述位所在的字节的有效状态,对包含有无效状态位的无效字节进行标 记,所述无效字节包含一个或者多个无效位;根据页内每个字节的标记状态,创建字节信息 表,所述字节信息表记录有页内每个字节的标记状态;对页进行写操作时,读取创建的所述 字节信息表中标记的无效字节,在闪存存储空间的数据区中跳过所述无效字节,根据在数 据区中跳过的无效字节的数量,在冗余区中划分出与所述在数据区中跳过的无效字节的数 量相对等的字节,所述划分出的字节用于进行数据写入,有效的提高了存储空间的利用率, 提高了闪存存储设备的容量。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1. 一种闪存管理方法,其特征在于,所述方法包括下述步骤 获取闪存的页内的每个位是否有效的状态;根据获取到的位的有效状态确定所述位所在的字节的有效状态,对包含有无效状态位 的无效字节进行标记,所述无效字节包含一个或者多个无效位;根据页内每个字节的标记状态,创建字节信息表,所述字节信息表记录有页内每个字 节的标记状态;对页进行写操作时,读取创建的所述字节信息表中标记的无效字节,在闪存存储空间 的数据区中跳过所述无效字节;根据在数据区中跳过的无效字节的数量,在冗余区中划分出与所述在数据区中跳过的 无效字节的数量相对等的字节进行数据写入,所述划分出的字节用于进行数据写入。
2.如权利要求1所述的方法,其特征在于,所述方法还包括下述步骤判断当前标记的无效字节所在页的位置是否与已经标记的无效字节在其所在页的位 置相同;当当前标记的无效字节所在页的位置与已经标记的无效字节在其所在页的位置相同 时,控制不再创建字节信息表,使用所述已经标记的无效字节所在页的字节信息表;当当前标记的无效字节所在页的位置与已经标记的无效字节在其所在页的位置不同 时,继续执行所述根据页内每个字节的标记状态,创建字节信息表的步骤。
3.如权利要求1所述的方法,其特征在于,所述方法还包括下述步骤根据字节信息表,对块内包含无效字节的页进行标记,建立页信息表,所述页信息表包 含每个块内的页是否标记的信息;当对块内的页进行写入操作时,根据页信息表判断当前操作的页是否有标记; 当当前操作的页有标记时,调用字节信息表,根据所述字节信息表中所包含的无效字 节的信息,跳过所述无效字节,在所述无效字节的下一字节进行数据写操作; 当当前操作的页没有标记时,按顺序在页中写入数据。
4.如权利要求3所述的方法,其特征在于,所述方法还包括下述步骤根据页信息表和字节信息表,对闪存内包含标记页的块进行标记,建立块信息表,所述 块信息表包含每个块是否标记的信息;当对闪存内的块进行写入操作时,判断当前操作的块是否有标记; 当当前操作的块有标记时,调用页信息表和字节信息表,根据所述页信息表和字节信 息表中所包含的无效字节的信息,跳过所述无效字节,在所述无效字节的下一字节进行数 据写操作;当当前操作的块没有标记时,按顺序在块中写入数据。
5. 一种闪存管理系统,其特征在于,所述系统包括位状态获取模块,用于获取闪存的页内的每个位是否有效的状态; 无效字节标记模块,用于根据获取到的位的有效状态确定所述位所在的字节的有效状 态,对包含有无效状态位的无效字节进行标记,所述无效字节包含一个或者多个无效位;字节信息表创建模块,用于根据页内每个字节的标记状态,创建字节信息表,所述字节 信息表记录有页内每个字节的标记状态;第一写操作模块,用于对页进行写操作时,读取创建的所述字节信息表中标记的无效字节,在闪存存储空间的数据区中跳过所述无效字节;以及冗余区字节划分模块,用于根据在数据区中跳过的无效字节的数量,在冗余区中划分出与所述在数据区中跳过的无效字节的数量相对等的字节,所述划分出的字节用于进行数 据写入。
6.如权利要求5所述的系统,其特征在于,所述系统还包括判断模块,用于判断当前标记的无效字节所在页的位置是否与已经标记的无效字节在 其所在页的位置相同;以及控制模块,用于当所述判断模块判断当前标记的无效字节所在页的位置与已经标记的 无效字节在其所在页的位置相同时,控制不再创建字节信息表,使用所述已经标记的无效 字节所在页的字节信息表;当所述判断模块判断当前标记的无效字节所在页的位置与已经标记的无效字节在其 所在页的位置不同时,继续执行所述字节信息表创建模块根据页内每个字节的标记状态, 创建字节信息表的步骤。
7.如权利要求5所述的系统,其特征在于,所述系统还包括页信息表建立模块,用于根据字节信息表,对块内包含无效字节的页进行标记,建立页 信息表,所述页信息表包含每个块内的页是否标记的信息;页标记判断模块,用于当对块内的页进行写入操作时,根据页信息表判断当前操作的 页是否有标记;以及第二写操作模块,用于当所述页标记判断模块判断当前操作的页有标记时,调用字节 信息表,根据所述字节信息表中所包含的无效字节的信息,跳过所述无效字节,在所述无效 字节的下一字节进行数据写操作;当当前操作的页没有标记时,按顺序在页中写入数据。
8.如权利要求7所述的系统,其特征在于,所述系统还包括块信息表建立模块,用于根据页信息表和字节信息表,对闪存内包含标记页的块进行 标记,建立块信息表,所述块信息表包含每个块是否标记的信息;块标记判断模块,用于当对闪存内的块进行写入操作时,判断当前操作的块是否有标 记;以及第三写操作模块,用于当所述块标记判断模块判断当前操作的块有标记时,调用页信 息表和字节信息表,根据所述页信息表和字节信息表中所包含的无效字节的信息,跳过所 述无效字节,在所述无效字节的下一字节进行数据写操作; 当前操作的块没有标记时,按顺序在块中写入数据。
全文摘要
本发明适用于数据存储技术领域,提供了一种闪存管理方法及系统,所述方法包括下述步骤获取闪存的页内的每个位是否有效的状态;根据获取到的位的有效状态确定位所在的字节的有效状态,对包含有无效状态位的无效字节进行标记;根据页内每个字节的标记状态,创建字节信息表,字节信息表记录有页内每个字节的标记状态;对页进行写操作时,读取创建的所述字节信息表中标记的无效字节,在闪存存储空间的数据区中跳过无效字节;根据在数据区中跳过的无效字节的数量,在冗余区中划分出与在数据区中跳过的无效字节的数量相对等的字节进行数据写入,划分出的字节用于进行数据写入。本发明实施例有效的提高了存储空间的利用率,提高了闪存存储设备的容量。
文档编号G06F12/02GK102004698SQ20101055524
公开日2011年4月6日 申请日期2010年11月23日 优先权日2010年11月23日
发明者李志雄, 邓恩华 申请人:深圳市江波龙电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1