CN102004698A - 一种闪存管理方法及系统 - Google Patents
一种闪存管理方法及系统 Download PDFInfo
- Publication number
- CN102004698A CN102004698A CN 201010555244 CN201010555244A CN102004698A CN 102004698 A CN102004698 A CN 102004698A CN 201010555244 CN201010555244 CN 201010555244 CN 201010555244 A CN201010555244 A CN 201010555244A CN 102004698 A CN102004698 A CN 102004698A
- Authority
- CN
- China
- Prior art keywords
- byte
- page
- information table
- leaf
- mark
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Read Only Memory (AREA)
Abstract
本发明适用于数据存储技术领域,提供了一种闪存管理方法及系统,所述方法包括下述步骤:获取闪存的页内的每个位是否有效的状态;根据获取到的位的有效状态确定位所在的字节的有效状态,对包含有无效状态位的无效字节进行标记;根据页内每个字节的标记状态,创建字节信息表,字节信息表记录有页内每个字节的标记状态;对页进行写操作时,读取创建的所述字节信息表中标记的无效字节,在闪存存储空间的数据区中跳过无效字节;根据在数据区中跳过的无效字节的数量,在冗余区中划分出与在数据区中跳过的无效字节的数量相对等的字节进行数据写入,划分出的字节用于进行数据写入。本发明实施例有效的提高了存储空间的利用率,提高了闪存存储设备的容量。
Description
技术领域
本发明属于数据存储技术领域,尤其涉及一种闪存管理方法及系统。
背景技术
闪存芯片的存储空间是按照块和页的概念来组织的,以三星的闪存芯片K9F2808U0C为例,该闪存芯片包含1024个块,每个块有32页,每个页有528字节。其中这528字节中分为512字节的数据区和16字节的冗余区,冗余区用于存放ECC代码、坏块信息和文件系统相关代码。
现有技术中,一般将包含一个或多个无效位的存储块标记为坏块,在使用闪存芯片时,必须根据初始的坏块信息识别出坏块,并建立坏块信息表,进行写或擦除操作时将欲操作块的地址与坏块信息表的地址相比较,若是坏块则跳过,为了提高存储空间的效率,单个数据位数据错误引起的读写失败都可以用ECC(校错和纠错)方法处理。这种方法的缺点是一旦该块中多个数据位出现了错误,使得ECC方法无法纠正时,则把该块列为坏块跳过使用,而NANDFlash出错的时候一般不会造成整个Block或是Page不能读取或是全部出错,而是整个Page(例如512Bytes)中只有一个或几个bit出错,因此将整个块不使用浪费了闪存的存储空间。
随着多级单元闪存技术的出现,Flash制程的提高,对于控制器的纠错能力的需求也大大提高。因此,面对具备同样纠错能力的控制器时,Flash的稳定性不如从前了,具体表现为包含无效位的页和块增多了,如果将这些包含无效位的块和页弃而不用,造成了闪存资源的极大浪费,也容易造成使用该闪存的存储设备的存储容量不足
针对该问题,可以通过对包含无效页的块附加标志,当使用附加有标志的块时,只使用其中的有效页,从而达到提高闪存存储空间的利用率的目的,但是该方法虽然在一定程度上改善了闪存存储空间浪费的问题,但仍然因为少数几个位的出错而浪费了整个页的存储空间,存储空间的利用率还是不高。
发明内容
本发明的目的在于提供一种闪存管理方法,旨在解决现有技术提供的根据建立的坏块信息表或附加有无效页标志的块,在闪存中写入数据方法,存在闪存存储空间利用率不高,浪费存储空间的问题。
本发明是这样实现的,一种闪存管理方法,所述方法包括下述步骤:
获取闪存的页内的每个位是否有效的状态;
根据获取到的位的有效状态确定所述位所在的字节的有效状态,对包含有无效状态位的无效字节进行标记,所述无效字节包含一个或者多个无效位;
根据页内每个字节的标记状态,创建字节信息表,所述字节信息表记录有页内每个字节的标记状态;
对页进行写操作时,读取创建的所述字节信息表中标记的无效字节,在闪存存储空间的数据区中跳过所述无效字节;
根据在数据区中跳过的无效字节的数量,在冗余区中划分出与所述在数据区中跳过的无效字节的数量相对等的字节进行数据写入,所述划分出的字节用于进行数据写入。
本发明的另一目的在于提供一种闪存管理系统,所述系统包括:
位状态获取模块,用于获取闪存的页内的每个位是否有效的状态;
无效字节标记模块,用于根据获取到的位的有效状态确定所述位所在的字节的有效状态,对包含有无效状态位的无效字节进行标记,所述无效字节包含一个或者多个无效位;
字节信息表创建模块,用于根据页内每个字节的标记状态,创建字节信息表,所述字节信息表记录有页内每个字节的标记状态;
第一写操作模块,用于对页进行写操作时,读取创建的所述字节信息表中标记的无效字节,在闪存存储空间的数据区中跳过所述无效字节;以及
冗余区字节划分模块,用于根据在数据区中跳过的无效字节的数量,在冗余区中划分出与所述在数据区中跳过的无效字节的数量相对等的字节,所述划分出的字节用于进行数据写入。
在本发明实施例中,获取闪存的页内的每个位是否有效的状态;根据获取到的位的有效状态确定所述位所在的字节的有效状态,对包含有无效状态位的无效字节进行标记,所述无效字节包含一个或者多个无效位;根据页内每个字节的标记状态,创建字节信息表,所述字节信息表记录有页内每个字节的标记状态;对页进行写操作时,读取创建的所述字节信息表中标记的无效字节,在闪存存储空间的数据区中跳过所述无效字节,根据在数据区中跳过的无效字节的数量,在冗余区中划分出与所述在数据区中跳过的无效字节的数量相对等的字节进行数据写入,所述划分出的字节用于进行数据写入,有效的提高了存储空间的利用率,提高了闪存存储设备的容量。
附图说明
图1是本发明实施例一提供的闪存管理方法的实现流程图;
图2是本发明实施例三提供的闪存管理方法的实现流程图;
图3是本发明实施例四提供的闪存管理方法的实现流程图;
图4是本发明实施例五提供的闪存管理系统的结构框图;
图5是本发明实施例六提供的闪存管理系统的结构框图;
图6是本发明实施例七提供的闪存管理系统的结构框图;
图7是本发明实施例八提供的闪存管理系统的结构框图;
图8是本发明实施例提供的数据写入示意图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,本发明根据位的有效状态,确定闪存中每个页内字节的有效状态,对其中无效的字节进行标记并建立字节信息表,在对页进行写操作时,根据字节信息表中的字节的标记信息跳过无效字节,并在冗余区中补足无效字节,有效的提高了存储空间的利用率,提高了闪存存储设备的容量。
本发明实施例的目的在于提供一种闪存管理方法,所述方法包括下述步骤:
获取闪存的页内的每个位是否有效的状态;
根据获取到的位的有效状态确定所述位所在的字节的有效状态,对包含有无效状态位的无效字节进行标记,所述无效字节包含一个或者多个无效位;
根据页内每个字节的标记状态,创建字节信息表,所述字节信息表记录有页内每个字节的标记状态;
对页进行写操作时,读取创建的所述字节信息表中标记的无效字节,在闪存存储空间的数据区中跳过所述无效字节;
根据在数据区中跳过的无效字节的数量,在冗余区中划分出与所述在数据区中跳过的无效字节的数量相对等的字节进行数据写入,所述划分出的字节用于进行数据写入。
本发明的另一目的在于提供一种闪存管理系统,所述系统包括:
位状态获取模块,用于获取闪存的页内的每个位是否有效的状态;
无效字节标记模块,用于根据获取到的位的有效状态确定所述位所在的字节的有效状态,对包含有无效状态位的无效字节进行标记,所述无效字节包含一个或者多个无效位;
字节信息表创建模块,用于根据页内每个字节的标记状态,创建字节信息表,所述字节信息表记录有页内每个字节的标记状态;
第一写操作模块,用于对页进行写操作时,读取创建的所述字节信息表中标记的无效字节,在闪存存储空间的数据区中跳过所述无效字节;以及
冗余区字节划分模块,用于根据在数据区中跳过的无效字节的数量,在冗余区中划分出与所述在数据区中跳过的无效字节的数量相对等的字节,所述划分出的字节用于进行数据写入。
在本发明实施例中,获取闪存的页内的每个位是否有效的状态;根据获取到的位的有效状态确定所述位所在的字节的有效状态,对包含有无效状态位的无效字节进行标记,所述无效字节包含一个或者多个无效位;根据页内每个字节的标记状态,创建字节信息表,所述字节信息表记录有页内每个字节的标记状态;对页进行写操作时,读取创建的所述字节信息表中标记的无效字节,在闪存存储空间的数据区中跳过所述无效字节,根据在数据区中跳过的无效字节的数量,在冗余区中划分出与所述在数据区中跳过的无效字节的数量相对等的字节进行数据写入,所述划分出的字节用于进行数据写入。
实施例一
图1示出了本发明实施例一提供的闪存管理方法的实现流程,其具体的步骤如下所述:
在步骤S101中,获取闪存的页内的每个位是否有效的状态。
在步骤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控制不再创建字节信息表,使用所述已经标记的无效字节所在页的字节信息表;当所述判断模块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字节补充,从而充分利用闪存的存储空间。
在本发明实施例中,获取闪存的页内的每个位是否有效的状态;根据获取到的位的有效状态确定所述位所在的字节的有效状态,对包含有无效状态位的无效字节进行标记,所述无效字节包含一个或者多个无效位;根据页内每个字节的标记状态,创建字节信息表,所述字节信息表记录有页内每个字节的标记状态;对页进行写操作时,读取创建的所述字节信息表中标记的无效字节,在闪存存储空间的数据区中跳过所述无效字节,根据在数据区中跳过的无效字节的数量,在冗余区中划分出与所述在数据区中跳过的无效字节的数量相对等的字节,所述划分出的字节用于进行数据写入,有效的提高了存储空间的利用率,提高了闪存存储设备的容量。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种闪存管理方法,其特征在于,所述方法包括下述步骤:
获取闪存的页内的每个位是否有效的状态;
根据获取到的位的有效状态确定所述位所在的字节的有效状态,对包含有无效状态位的无效字节进行标记,所述无效字节包含一个或者多个无效位;
根据页内每个字节的标记状态,创建字节信息表,所述字节信息表记录有页内每个字节的标记状态;
对页进行写操作时,读取创建的所述字节信息表中标记的无效字节,在闪存存储空间的数据区中跳过所述无效字节;
根据在数据区中跳过的无效字节的数量,在冗余区中划分出与所述在数据区中跳过的无效字节的数量相对等的字节进行数据写入,所述划分出的字节用于进行数据写入。
2.如权利要求1所述的方法,其特征在于,所述方法还包括下述步骤:
判断当前标记的无效字节所在页的位置是否与已经标记的无效字节在其所在页的位置相同;
当当前标记的无效字节所在页的位置与已经标记的无效字节在其所在页的位置相同时,控制不再创建字节信息表,使用所述已经标记的无效字节所在页的字节信息表;
当当前标记的无效字节所在页的位置与已经标记的无效字节在其所在页的位置不同时,继续执行所述根据页内每个字节的标记状态,创建字节信息表的步骤。
3.如权利要求1所述的方法,其特征在于,所述方法还包括下述步骤:
根据字节信息表,对块内包含无效字节的页进行标记,建立页信息表,所述页信息表包含每个块内的页是否标记的信息;
当对块内的页进行写入操作时,根据页信息表判断当前操作的页是否有标记;
当当前操作的页有标记时,调用字节信息表,根据所述字节信息表中所包含的无效字节的信息,跳过所述无效字节,在所述无效字节的下一字节进行数据写操作;
当当前操作的页没有标记时,按顺序在页中写入数据。
4.如权利要求3所述的方法,其特征在于,所述方法还包括下述步骤:
根据页信息表和字节信息表,对闪存内包含标记页的块进行标记,建立块信息表,所述块信息表包含每个块是否标记的信息;
当对闪存内的块进行写入操作时,判断当前操作的块是否有标记;
当当前操作的块有标记时,调用页信息表和字节信息表,根据所述页信息表和字节信息表中所包含的无效字节的信息,跳过所述无效字节,在所述无效字节的下一字节进行数据写操作;
当当前操作的块没有标记时,按顺序在块中写入数据。
5.一种闪存管理系统,其特征在于,所述系统包括:
位状态获取模块,用于获取闪存的页内的每个位是否有效的状态;
无效字节标记模块,用于根据获取到的位的有效状态确定所述位所在的字节的有效状态,对包含有无效状态位的无效字节进行标记,所述无效字节包含一个或者多个无效位;
字节信息表创建模块,用于根据页内每个字节的标记状态,创建字节信息表,所述字节信息表记录有页内每个字节的标记状态;
第一写操作模块,用于对页进行写操作时,读取创建的所述字节信息表中标记的无效字节,在闪存存储空间的数据区中跳过所述无效字节;以及
冗余区字节划分模块,用于根据在数据区中跳过的无效字节的数量,在冗余区中划分出与所述在数据区中跳过的无效字节的数量相对等的字节,所述划分出的字节用于进行数据写入。
6.如权利要求5所述的系统,其特征在于,所述系统还包括:
判断模块,用于判断当前标记的无效字节所在页的位置是否与已经标记的无效字节在其所在页的位置相同;以及
控制模块,用于当所述判断模块判断当前标记的无效字节所在页的位置与已经标记的无效字节在其所在页的位置相同时,控制不再创建字节信息表,使用所述已经标记的无效字节所在页的字节信息表;
当所述判断模块判断当前标记的无效字节所在页的位置与已经标记的无效字节在其所在页的位置不同时,继续执行所述字节信息表创建模块根据页内每个字节的标记状态,创建字节信息表的步骤。
7.如权利要求5所述的系统,其特征在于,所述系统还包括:
页信息表建立模块,用于根据字节信息表,对块内包含无效字节的页进行标记,建立页信息表,所述页信息表包含每个块内的页是否标记的信息;
页标记判断模块,用于当对块内的页进行写入操作时,根据页信息表判断当前操作的页是否有标记;以及
第二写操作模块,用于当所述页标记判断模块判断当前操作的页有标记时,调用字节信息表,根据所述字节信息表中所包含的无效字节的信息,跳过所述无效字节,在所述无效字节的下一字节进行数据写操作;
当当前操作的页没有标记时,按顺序在页中写入数据。
8.如权利要求7所述的系统,其特征在于,所述系统还包括:
块信息表建立模块,用于根据页信息表和字节信息表,对闪存内包含标记页的块进行标记,建立块信息表,所述块信息表包含每个块是否标记的信息;
块标记判断模块,用于当对闪存内的块进行写入操作时,判断当前操作的块是否有标记;以及
第三写操作模块,用于当所述块标记判断模块判断当前操作的块有标记时,调用页信息表和字节信息表,根据所述页信息表和字节信息表中所包含的无效字节的信息,跳过所述无效字节,在所述无效字节的下一字节进行数据写操作;
当前操作的块没有标记时,按顺序在块中写入数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105552448A CN102004698B (zh) | 2010-11-23 | 2010-11-23 | 一种闪存管理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105552448A CN102004698B (zh) | 2010-11-23 | 2010-11-23 | 一种闪存管理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102004698A true CN102004698A (zh) | 2011-04-06 |
CN102004698B CN102004698B (zh) | 2012-07-04 |
Family
ID=43812074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105552448A Active CN102004698B (zh) | 2010-11-23 | 2010-11-23 | 一种闪存管理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102004698B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104252883A (zh) * | 2013-06-26 | 2014-12-31 | 深圳市江波龙电子有限公司 | 闪存管理方法和系统 |
CN105446655A (zh) * | 2015-04-23 | 2016-03-30 | 北京天诚盛业科技有限公司 | 对Nand Flash进行操作的方法和装置 |
CN106653090A (zh) * | 2016-12-30 | 2017-05-10 | 湖南国科微电子股份有限公司 | 大幅提升固态硬盘服务时间的闪存的错误管理方法 |
CN107430493A (zh) * | 2015-03-27 | 2017-12-01 | 英特尔公司 | 顺序写入流管理 |
CN109683803A (zh) * | 2017-10-19 | 2019-04-26 | 中兴通讯股份有限公司 | 一种数据处理方法及装置 |
CN110554842A (zh) * | 2019-09-06 | 2019-12-10 | 华大半导体有限公司 | 一种使用闪存模拟eeprom的方法 |
CN113495671A (zh) * | 2020-04-01 | 2021-10-12 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
US11869615B2 (en) | 2020-04-01 | 2024-01-09 | Changxin Memory Technologies, Inc. | Method for reading and writing and memory device |
US11894088B2 (en) | 2020-04-01 | 2024-02-06 | Changxin Memory Technologies, Inc. | Method for reading and writing and memory device |
US11899971B2 (en) | 2020-04-01 | 2024-02-13 | Changxin Memory Technologies, Inc. | Method for reading and writing and memory device |
US11914479B2 (en) | 2020-04-01 | 2024-02-27 | Changxin Memory Technologies, Inc. | Method for reading and writing and memory device |
US11922023B2 (en) | 2020-04-01 | 2024-03-05 | Changxin Memory Technologies, Inc. | Read/write method and memory device |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080098159A1 (en) * | 2006-10-23 | 2008-04-24 | Samsung Electronics Co., Ltd. | Memory system including flash memory and merge method thereof |
CN101320594A (zh) * | 2008-05-21 | 2008-12-10 | 深圳市硅格半导体有限公司 | 一种闪存芯片的物理操作方法 |
-
2010
- 2010-11-23 CN CN2010105552448A patent/CN102004698B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080098159A1 (en) * | 2006-10-23 | 2008-04-24 | Samsung Electronics Co., Ltd. | Memory system including flash memory and merge method thereof |
CN101320594A (zh) * | 2008-05-21 | 2008-12-10 | 深圳市硅格半导体有限公司 | 一种闪存芯片的物理操作方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104252883B (zh) * | 2013-06-26 | 2017-06-13 | 深圳市江波龙电子有限公司 | 闪存管理方法和系统 |
CN104252883A (zh) * | 2013-06-26 | 2014-12-31 | 深圳市江波龙电子有限公司 | 闪存管理方法和系统 |
CN107430493B (zh) * | 2015-03-27 | 2023-10-03 | 英特尔公司 | 顺序写入流管理 |
CN107430493A (zh) * | 2015-03-27 | 2017-12-01 | 英特尔公司 | 顺序写入流管理 |
CN105446655A (zh) * | 2015-04-23 | 2016-03-30 | 北京天诚盛业科技有限公司 | 对Nand Flash进行操作的方法和装置 |
CN106653090A (zh) * | 2016-12-30 | 2017-05-10 | 湖南国科微电子股份有限公司 | 大幅提升固态硬盘服务时间的闪存的错误管理方法 |
CN109683803A (zh) * | 2017-10-19 | 2019-04-26 | 中兴通讯股份有限公司 | 一种数据处理方法及装置 |
CN110554842A (zh) * | 2019-09-06 | 2019-12-10 | 华大半导体有限公司 | 一种使用闪存模拟eeprom的方法 |
CN113495671A (zh) * | 2020-04-01 | 2021-10-12 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
CN113495671B (zh) * | 2020-04-01 | 2023-10-17 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
US11869615B2 (en) | 2020-04-01 | 2024-01-09 | Changxin Memory Technologies, Inc. | Method for reading and writing and memory device |
US11894088B2 (en) | 2020-04-01 | 2024-02-06 | Changxin Memory Technologies, Inc. | Method for reading and writing and memory device |
US11899971B2 (en) | 2020-04-01 | 2024-02-13 | Changxin Memory Technologies, Inc. | Method for reading and writing and memory device |
US11914479B2 (en) | 2020-04-01 | 2024-02-27 | Changxin Memory Technologies, Inc. | Method for reading and writing and memory device |
US11922023B2 (en) | 2020-04-01 | 2024-03-05 | Changxin Memory Technologies, Inc. | Read/write method and memory device |
Also Published As
Publication number | Publication date |
---|---|
CN102004698B (zh) | 2012-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102004698B (zh) | 一种闪存管理方法及系统 | |
CN103955431B (zh) | 一种闪存存储设备中数据管理的方法及装置 | |
CN101859604B (zh) | 闪存坏块的利用方法 | |
US20100161885A1 (en) | Semiconductor storage device and storage controlling method | |
US9213629B2 (en) | Block management method, memory controller and memory stoarge apparatus | |
CN104091617A (zh) | 一种闪存存储设备检测的方法及装置 | |
CN104063186A (zh) | 一种电子设备的数据访问方法 | |
CN101567220B (zh) | 闪存的损坏区块辨识方法、储存系统及其控制器 | |
CN101627371A (zh) | 用于nand存储器的编程管理数据 | |
CN101901169B (zh) | 扫描装置及方法 | |
CN104008780A (zh) | 存储单元的修复方法和装置 | |
CN104220991A (zh) | 用于允许数据在nand闪存上的有效存储的架构 | |
CN102214143A (zh) | 一种多层单元闪存的管理方法、装置及存储设备 | |
CN105808371A (zh) | 数据备份与恢复方法、控制芯片及存储装置 | |
CN102033814A (zh) | 存取一闪存的方法以及相关的记忆装置 | |
CN102200937A (zh) | 一种与非闪存中数据读取的方法、装置及电视机系统 | |
US9754682B2 (en) | Implementing enhanced performance with read before write to phase change memory | |
US9009442B2 (en) | Data writing method, memory controller and memory storage apparatus | |
CN102890645B (zh) | 存储器储存装置、存储器控制器与数据写入方法 | |
CN103150273A (zh) | 位级内存控制器及控制方法 | |
CN102789813B (zh) | 一种控制存储设备内非最低有效位页使用的方法及装置 | |
US10176876B2 (en) | Memory control method and apparatus for programming and erasing areas | |
CN103593301B (zh) | 坏块管理方法及系统 | |
CN101308702B (zh) | 适用于闪存的数据结构及其数据写入方法和数据读取方法 | |
CN102789422B (zh) | 固态硬盘的数据写入方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 518057 A, B, C, D, E, F1, 8 Building, Financial Services Technology Innovation Base, No. 8 Kefa Road, Nanshan District, Shenzhen City, Guangdong Province Patentee after: Shenzhen jiangbolong electronic Limited by Share Ltd Address before: 518000 A, B, C, D, E, F1, 8 Building, Financial Services Technology Innovation Base, No. 8 Kefa Road, Nanshan District, Shenzhen City, Guangdong Province Patentee before: Shenzhen jiangbolong Electronic Co., Ltd. |
|
CP03 | Change of name, title or address |