CN102841851B - 闪存管理方法和闪存设备 - Google Patents
闪存管理方法和闪存设备 Download PDFInfo
- Publication number
- CN102841851B CN102841851B CN201210251200.5A CN201210251200A CN102841851B CN 102841851 B CN102841851 B CN 102841851B CN 201210251200 A CN201210251200 A CN 201210251200A CN 102841851 B CN102841851 B CN 102841851B
- Authority
- CN
- China
- Prior art keywords
- page
- region
- flash memory
- dirty data
- logical
- 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.)
- Active
Links
Abstract
本发明涉及一种闪存管理方法和闪存设备。所述闪存管理方法包括以下步骤:将闪存的所有有效块划分为数据区和交换区;按区域对数据区的逻辑页进行划分,每个区域包含多个逻辑页;建立每个区域的页映射表,所述页映射表中记录逻辑页地址和物理页地址之间的对应关系。上述闪存管理方法和闪存设备,通过将闪存的数据区按区域划分,并建立每个区域的页映射表,在页映射表中记录逻辑页地址与物理页地址之间的对应关系,以页为单元进行闪存管理,在写入数据时,可按页顺序进行写入,将一个块的多个页写满后,再写下一个空块,提高了块的利用率,减少了数据的拷贝搬移操作和擦除操作,提高了闪存的写入速度,且以区域建立页映射表,减少了内存占用。
Description
技术领域
本发明涉及存储设备,特别是涉及一种闪存管理方法和闪存设备。
背景技术
闪存是一种基于半导体的存储器,具有功耗低、容量大、访问速度高、无机械故障,以及数据非易失性的优点。随着闪存存储容量的飞速增长,人们对数据操作的灵活性提出了越来越高的要求,对闪存中的数据存储管理已成为一个不容回避的问题。
闪存,尤其是NAND Flash已经广泛应用于移动存储设备中,如U盘,SD(Secure Digital Memory Card)卡,SSD(Solid State Disk)固态硬盘等。由于闪存的特性决定,不能对同一页进行重复编程,必须整块先擦除后再编程(编程即数据写入),但是在擦除一个Block时,必须先把Block上的有效数据保存到空的Block。
现有的闪存管理方法都是以块为单位进行管理的,将闪存以块为单位划分成数据区和交换区,交换区中的块用于临时存储写入闪存的数据。以块为单位的闪存管理方法的缺点是在闪存进行频繁的随机写操作时,速率将变得非常的慢。如图1(a)所示,为现有以块为单位的闪存管理方法随机写入数据的示意图,由于可能存在坏块,闪存读写的逻辑地址还需要转换为物理介质上的物理地址进行操作,当写命令中的逻辑地址映射到不同的物理块时,需要在不同的临时块中存储待写入的数据,如第一次写命令中的逻辑地址映射到PBA1(物理块1),则闪存设备需要分配一空的或者已擦除成空的物理块PBA2用于临时存储第一次写命令写入的数据;第二次写命令中的逻辑地址映射到PBA4,则闪存设备需要再分配一空的或者已擦除成空的物理块PBA100用于临时存储数据,即使每次写命令中写入的数据很小,只占几个页的大小,只要是映射到不同的物理块,则需分配一空的或者已擦除成空的物理块用于临时存储数据,当随机写次数接近临时块的临界值时,则需要回收含有脏数据页的数据块,以使数据不丢失,如图1(a)中,临时块的个数为6,当随机写次数达到5时,则需要进行数据拷贝搬移,即将有效数据保存到临时块中,将含有脏数据的块擦除成为新的临时块,并更新块的逻辑地址和物理地址的映射表。更新后的块的逻辑地址和物理地址的映射以及临时块如图1(b)所示。由于闪存中预留的临时块都是有限的,因此,在随机写频繁的系统中,需不断的进行数据拷贝搬移和块擦除的操作,极大的影响写入数据的效率。
综上,现有的以块为单位的闪存管理方法,在随机写频繁且随机写的地址不连续的系统中,由于要不断的进行数据的拷贝搬移以及块擦除的操作,这将造成数据写入速度慢的问题,且由于每个闪存块的擦除次数是有限的,当闪存块的擦除次数达到其使用寿命时,将极大的降低闪存设备的性能,从而影响闪存设备的使用寿命。
发明内容
基于此,有必要提供一种能提高写入数据的效率的闪存管理方法。
一种闪存管理方法,包括以下步骤:
将闪存的所有有效块划分为数据区和交换区;
按区域对数据区的逻辑页进行划分,每个区域包含多个逻辑页;
建立每个区域的页映射表,所述页映射表中记录逻辑页地址和物理页地址之间的对应关系。
在其中一个实施例中,每个物理页设有存储逻辑页地址的冗余区;
在所述建立每个区域的页映射表,所述页映射表中记录逻辑页地址和物理页地址之间的对应关系的步骤之前,还包括步骤:
根据物理页中冗余区的逻辑页地址动态生成逻辑页地址和物理页地址之间的对应关系。
在其中一个实施例中,在建立所述每个区域的页映射表的步骤之后,还包括步骤:
获取写命令;
根据所述写命令中的起始逻辑地址获取所述写命令中的逻辑页所在的区域和所述区域内的偏移值,以及根据所述区域的页映射表及偏移值获取所述逻辑页对应的原始物理页;
在所述交换区获取一空的有效块,按页顺序写入数据,并将所述逻辑页地址记录到新物理页的冗余区;
将所述新物理页记录在所述区域的页映射表中,更新所述区域的页映射表。
在其中一个实施例中,在所述将所述新物理页记录在所述区域的页映射表中,更新所述区域的页映射表的步骤之后,还包括步骤:
将所述写命令中的逻辑页对应的原始物理页标记为脏数据页;
建立脏数据页表,所述脏数据页表中记录所有有效块的脏数据页;
当所述交换区的空的有效块小于预设的第一阈值时,对所有页都为脏数据页的有效块进行擦除。
在其中一个实施例中,在所述将所述新物理页记录在所述区域的页映射表中,更新所述区域的页映射表的步骤之后,还包括步骤:
将所述写命令中的逻辑页对应的原始物理页标记为脏数据页;
建立脏数据页表,所述脏数据页表中记录所有有效块的脏数据页;
当所述交换区的空的有效块小于预设的第一阈值时,将脏数据页达到预设的第二阈值的有效块上的有效数据页上的数据拷贝搬移到新的空块,再擦除所述脏数据页达到预设的第二阈值的有效块。
此外,还有必要提供一种能提高写入数据的效率的闪存设备。
一种闪存设备,包括闪存控制器,所述闪存控制器包括:
区块划分模块,用于将闪存的所有有效块划分为数据区和交换区;
区域划分模块,用于按区域对数据区的逻辑页进行划分,每个区域包含多个逻辑页;
页映射表建立模块,用于建立每个区域的页映射表,所述页映射表中记录逻辑页地址和物理页地址之间的对应关系。
在其中一个实施例中,每个物理页设有存储逻辑页地址的冗余区;
所述闪存控制器还包括:
关系生成模块,用于根据物理页中冗余区的逻辑页地址动态生成逻辑页地址和物理页地址之间的对应关系。
在其中一个实施例中,所述闪存控制器还包括:
获取模块,用于获取写命令;
计算模块,用于根据所述写命令中的起始逻辑地址获取所述写命令中的逻辑页所在的区域和所述区域内的偏移值,以及根据所述区域的页映射表及偏移值获取所述逻辑页对应的原始物理页;
写模块,用于在所述交换区获取一空的有效块,按页顺序写入数据,并将所述逻辑页地址记录到新物理页的冗余区;
更新模块,用于将所述新物理页记录在所述区域的页映射表中,更新所述区域的页映射表。
在其中一个实施例中,所述闪存控制器还包括:
标记模块,用于将所述写命令中的逻辑页对应的原始物理页标记为脏数据页;
脏数据页表建立模块,用于建立脏数据页表,所述脏数据页表中记录所有有效块的脏数据页;
擦除模块,用于当所述交换区的空的有效块小于预设的第一阈值时,对所有页都为脏数据页的有效块进行擦除。
在其中一个实施例中,所述闪存控制器还包括:
标记模块,用于将所述写命令中的逻辑页对应的原始物理页标记为脏数据页;
脏数据页表建立模块,用于建立脏数据页表,所述脏数据页表中记录所有有效块的脏数据页;
搬移模块,用于当所述交换区的空的有效块小于预设的第一阈值时,将脏数据页达到预设的第二阈值的有效块上的有效数据页上的数据拷贝搬移到新的空块;
擦除模块,用于擦除所述脏数据页达到预设的第二阈值的有效块。
上述闪存管理方法和闪存设备,通过将闪存的数据区按区域划分,并建立每个区域的页映射表,在页映射表中记录逻辑页地址与物理页地址之间的对应关系,以页为单元进行闪存管理,在写入数据时,可按页顺序进行写入,将一个块的多个页写满后,再写下一个空块,提高了块的利用率,减少了数据的拷贝搬移操作和擦除操作,提高了闪存的写入速度,且以区域建立页映射表,减少了内存占用。
附图说明
图1(a)为传统的闪存管理方法随机写入数据的示意图;
图1(b)为传统的闪存管理方法中更新后的块的逻辑地址和物理地址的映射以及临时块的示意图;
图2为本发明的一个实施例中闪存管理方法的流程示意图;
图3为按区域划分逻辑页的示意图;
图4为写入数据的具体步骤示意图;
图5为写入数据的过程示意图;
图6为一个实施例中包含脏数据页的块回收示意图;
图7为另一个实施例中包含脏数据页的块回收示意图;
图8为图7中包含脏数据页的块回收的模型示意图;
图9为一个实施例中闪存设备的闪存控制器的内部结构示意图;
图10为另一个实施例中闪存设备的闪存控制器的内部结构示意图;
图11为另一个实施例中闪存设备的闪存控制器的内部结构示意图。
具体实施方式
下面结合具体的实施例及附图对闪存管理方法和闪存设备的技术方案进行详细的描述,以使其更加清楚。
如图2所示,在一个实施例中,一种闪存管理方法,包括以下步骤:
步骤S110,将闪存的所有有效块划分为数据区和交换区。
具体的,交换区中设置至少两个有效Block(块),交换区设置的有效Block越多,越有利于闪存的全局平衡磨损,但数据区的存储空间会相对变小。
步骤S120,按区域对数据区的逻辑页进行划分,每个区域包含多个逻辑页。
具体的,每个有效块包括多个逻辑页。将数据区的逻辑页按区域划分,如图3所示,将每1024个逻辑页划分为一个区域,若闪存芯片包含4096个Block,每个Block包含10个页,将逻辑页划分为40个区域,LPA(Logical Page Address)0至LPA1023为区域1,LPA1024至LPA2047为区域2。此外,每个区域包含的逻辑页的个数由闪存设备中闪存控制器的内存空间确定,优选的为2的整数次方。
步骤S130,建立每个区域的页映射表,页映射表中记录逻辑页地址和物理页地址之间的对应关系。
具体的,将建立每个区域的页映射表可通过以下方式建立:每建立一个区域的页映射表,将该页映射表存储在闪存的私有数据区,然后释放内存,建下一个区域的页映射表。通过对每个区域建立页映射表,可节省内存空间。如若闪存芯片包含4096个Block,每个Block包含10个页,每个逻辑页和物理页的映射表需要占用4byte,则建立所有页的映射表至少需要4096*10*4byte=160Kbyte的内存容量才能满足需求,通过将每1024个逻辑页划分为一个区域后,只需40K byte的内存容量就可以满足需求,这样可以在有限的内存空间内建立页映射表。另外,建立一个区域的页映射表之后就释放内存,调用的时候,需要哪个区域的页映射表,则调用哪个区域,用完释放内存。
进一步地,每个物理页设有存储逻辑页地址的冗余区。闪存的每一个物理页会预留一些多余的空间保存除逻辑数据以外的一些特殊数据,本实施例中,冗余区用4个字节记录物理页的逻辑页地址。
在一个实施例中,上述闪存管理方法,在步骤S130之前,还包括步骤:根据物理页中冗余区的逻辑页地址动态生成逻辑页地址和物理页地址之间的对应关系。
具体的,动态统计每个物理页的冗余区内的逻辑页地址,生成逻辑页地址与物理页地址之间的对应关系。
此外,逻辑页地址和物理页地址之间的对应关系可预先建立并保存在闪存设备中。
进一步地,在一个实施例中,如图4所示,上述闪存管理方法,在建立所述每个区域的页映射表的步骤之后,还包括步骤:
步骤S210,获取写命令。
步骤S220,根据写命令中的起始逻辑地址获取写命令中的逻辑页所在的区域和该区域内的偏移值,以及根据该区域的页映射表及偏移值获取逻辑页对应的原始物理页。
具体的,获取到写命令中的起始逻辑地址,计算得到写命令中的逻辑页所在的区域和在该区域内的偏移值。例如,以每1024个逻辑页为一个区域,写命令中的起始逻辑地址经计算后对应逻辑页地址1025,则得到逻辑页地址1025在区域2内,偏移值为1。
步骤S230,在交换区获取一空的有效块,按页顺序写入数据,并将该逻辑页地址记录到新物理页的冗余区。
步骤S240,将新物理页记录在该区域的页映射表中,更新该区域的页映射表。
下面结合图5对步骤S210至步骤S240进行详细的描述。如图5所示,第一次随机写的逻辑页地址为LPA0,其对应的物理页地址为PPA(Physical PageAddress)0,则在交换区申请一个空的有效块Block4025,将第一次写命令中的待写入的数据写入Block4025中的page0,并在page0的冗余区记录对应的逻辑页地址,即LPA0;第二次写的逻辑页地址为LPA2,其对应的物理页地址为PPA4,将第二次写命令中待写入的数据写入Block4025中的page1,并在page1的冗余区记录LPA2;第三次写的逻辑页地址为LPA5,其对应的物理页地址为PPA9,将第三次写命令中待写入的数据写入Block4025中的page2,并在page2的冗余区记录LPA5,如此,当所有写命令执行完成后,更新页映射表。
上述闪存管理方法,以页为单元进行管理,可有效减少闪存在存储数据过程中的数据拷贝搬移操作和块擦除操作,以交换区有6个空块,每个块包含10个页为例,现有的以块为单元的闪存管理,在进行5次地址不连续的随机写,且每次只写一个页的数据之后,则需要进行一次数据的拷贝搬移和块擦除的操作,而采用页为单元进行的闪存管理,则可进行50次的随机写操作之后再进行数据的拷贝搬移操作和块的擦除操作,如此可有效提高闪存的数据写入速度。
在一个实施例中,如图6所示,上述闪存管理方法,在步骤S240之后,还包括步骤:
步骤S310,将写命令中的逻辑页对应的原始物理页标记为脏数据页。
具体的,更新完页映射表后,将PPA0、PPA4、PPA9等标记为脏数据页。标记脏数据页可采用如0标记有效数据页,1标记脏数据页。脏数据页是指该物理页内的数据无效。
步骤S320,建立脏数据页表,该脏数据页表中记录所有有效块的脏数据页。
具体的,建立脏数据页表,以统计所有有效块的脏数据页。
步骤S330,当交换区的空的有效块小于预设的第一阈值时,对所有页都为脏数据页的有效块进行擦除。
具体的,预设的第一阈值可根据交换区的有效块总数进行设定。例如,交换区的有效块为2个时,当交换区的空的有效块为1个时,则需要对所有页都为脏数据页的有效块进行擦除操作。若交换区的有效块为6个,当交换区的空的有效块为1个或2个时,对所有页都为脏数据页的有效块进行擦除操作。
在一个实施例中,如图7所示,上述闪存管理方法,在步骤S240之后,还包括步骤:
步骤S410,将写命令中的逻辑页对应的原始物理页标记为脏数据页。
步骤S420,建立脏数据页表,该脏数据页表中记录所有有效块的脏数据页。
步骤S430,当所述交换区的空的有效块小于预设的第一阈值时,将脏数据页数达到预设的第二阈值的有效块上的有效数据页上的数据拷贝搬移到新的空块,再擦除所述脏数据页达到预设的第二阈值的有效块。
具体的,设定一个有效块内的脏数据页的数量达到第二阈值,到需要进行擦除操作时,则将脏数据页数达到第二阈值的有效块进行擦除操作,不只对全部为脏数据页的有效块进行擦除。如图8所示,若将脏数据页数大于等于6的有效块进行回收,则Block0、Block1、Block2、Block4、Block5、Blockr-1、Blockn-2需要进行脏数据页回收。采用上述方法,能有效提高闪存中脏数据页回收的效率,如图8所示,只需2个空块,就可以将Block0、Block1、Block2、Block4、Block5进行回收。
如图9所示,在一个实施例中,一种闪存设备,包括闪存控制器,闪存控制器包括区块划分模块110、区域划分模块120和创建模块130。其中:
区块划分模块110用于将闪存的所有有效块划分为数据区和交换区。具体的,交换区中设置至少两个有效Block(块),交换区设置的有效Block越多,越有利于闪存的全局平衡磨损,但数据区的存储空间会相对变小。
区域划分模块120用于按区域对数据区的逻辑页进行划分,每个区域包含多个逻辑页。具体的,每个有效块包括多个逻辑页。将数据区的逻辑页按区域划分,如图2所示,将每1024个逻辑页划分为一个区域,若闪存芯片包含4096个Block,每个Block包含10个页,将逻辑页划分为40个区域,LPA(Logical PageAddress)0至LPA1023为区域1,LPA1024至LPA2047为区域2。此外,每个区域包含的逻辑页的个数由闪存设备中闪存控制器的内存空间确定,优选的为2个整数次方。
创建模块130用于建立每个区域的页映射表,该页映射表中记录逻辑页地址和物理页地址之间的对应关系。
具体的,创建模块130将建立每个区域的页映射表可通过以下方式建立:每建立一个区域的页映射表,将该页映射表存储在闪存的私有数据区,然后释放内存,建下一个区域的页映射表。通过对每个区域建立页映射表,可节省内存空间。如若闪存芯片包含4096个Block,每个Block包含10个页,每个逻辑页和物理页的映射表需要占用4byte,则建立所有页的映射表至少需要4096*10*4byte=160K byte的内存容量才能满足需求,通过将每1024个逻辑页划分为一个区域后,只需40K byte的内存容量就可以满足需求,这样可以在有限的内存空间内建立页映射表。另外,建立一个区域的页映射表之后就释放内存,调用的时候,需要哪个区域的页映射表,则调用哪个区域,用完释放内存。
进一步地,每个物理页设有存储逻辑页地址的冗余区。闪存的每一个物理页会预留一些多余的空间保存除逻辑数据以外的一些特殊数据,本实施例中,冗余区用4个字节记录物理页的逻辑页地址。
上述闪存控制器还包括:关系生成模块,用于根据物理页中冗余区的逻辑页地址动态生成逻辑页地址和物理页地址之间的对应关系。具体的,动态统计每个物理页的冗余区内的逻辑页地址,生成逻辑页地址与物理页地址之间的对应关系。
在一个实施例中,如图10所示,上述闪存控制器,除了包括区块划分模块110、区域划分模块120和创建模块130,还包括获取模块140、计算模块150、写模块160和更新模块170。其中:
获取模块140用于获取写命令。
计算模块150用于根据所述写命令中的起始逻辑地址获取所述写命令中的逻辑页所在的区域和所述区域内的偏移值,以及根据所述区域的页映射表及偏移值获取所述逻辑页对应的原始物理页。具体的,获取到写命令中的起始逻辑地址,计算得到写命令中的逻辑页所在的区域和在该区域内的偏移值。例如,以每1024个逻辑页为一个区域,写命令中的起始逻辑地址对应逻辑页地址1025,则得到逻辑页地址1025在区域2内,偏移值为1。
写模块160用于在交换区获取一空的有效块,按页顺序写入数据,并将所述逻辑页地址记录到新物理页的冗余区。
更新模块170用于将新物理页记录在该区域的页映射表中,更新该区域的页映射表。具体过程如图5所示,在此不再赘述。
如图11所示,在一个实施例中,上述闪存控制器,除了包括区块划分模块110、区域划分模块120、创建模块130、获取模块140、计算模块150、写模块160和更新模块170,还包括标记模块180、脏数据页表建立模块190和擦除模块200。
标记模块180用于将所述写命令中的逻辑页对应的原始物理页标记为脏数据页。具体的,更新完页映射表后,将PPA0、PPA4、PPA9等标记为脏数据页。标记脏数据页可采用如0标记有效数据页,1标记脏数据页。脏数据页是指该物理页内的数据无效。
脏数据页表建立模块190用于建立脏数据页表,该脏数据页表中记录所有有效块的脏数据页。
擦除模块200用于当所述交换区的空的有效块小于预设的第一阈值时,对所有页都为脏数据页的有效块进行擦除。具体的,预设的第一阈值可根据交换区的有效块总数进行设定。例如,交换区的有效块为2个时,当交换区的空的有效块为1个时,则需要对所有页都为脏数据页的有效块进行擦除操作。若交换区的有效块为6个,当交换区的空的有效块为1个或2个时,对所有页都为脏数据页的有效块进行擦除操作。
进一步的,上述闪存控制器还包括搬移模块,用于当所述交换区的空的有效块小于预设的第一阈值时,将脏数据页达到预设的第二阈值的有效块上的有效数据页上的数据拷贝搬移到新的空块。擦除模块200用于擦除所述脏数据页达到预设的第二阈值的有效块。具体的,设定一个有效块内的脏数据页的数量达到第二阈值,到需要进行擦除操作时,则将脏数据页数达到第二阈值的有效块进行擦除操作,不只对全部为脏数据页的有效块进行擦除。
上述闪存管理方法和闪存设备,通过将闪存的数据区按区域划分,并建立每个区域的页映射表,在页映射表中记录逻辑页地址与物理页地址之间的对应关系,以页为单元进行闪存管理,在写入数据时,可按页顺序进行写入,将一个块的多个页写满后,再写下一个空块,提高了块的利用率,减少了数据的拷贝搬移操作和擦除操作,提高了闪存的写入速度,且以区域建立页映射表,减少了内存占用。
另外,因闪存块的擦除次数有限,通过减少数据拷贝搬移操作和擦除操作,延长了闪存设备的寿命;根据物理页的冗余区存储的逻辑页建立逻辑页地址与物理页地址之间的对应关系,较为准确;写命令后,更新页映射表,保证对应关系的准确性;标记脏数据页,方便对脏数据页的有效块进行回收。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (6)
1.一种闪存管理方法,包括以下步骤:
将闪存的所有有效块划分为数据区和交换区;
按区域对数据区的逻辑页进行划分,每个区域包含多个逻辑页;
建立每个区域的页映射表,所述页映射表中记录逻辑页地址和物理页地址之间的对应关系;
获取写命令;
根据所述写命令中的起始逻辑地址获取所述写命令中的逻辑页所在的区域和所述区域内的偏移值,以及根据所述区域的页映射表及偏移值获取所述逻辑页对应的原始物理页;
在所述交换区获取一空的有效块,按页顺序写入数据,并将所述逻辑页地址记录到新物理页的冗余区;
将所述新物理页记录在所述区域的页映射表中,更新所述区域的页映射表;
将所述写命令中的逻辑页对应的原始物理页标记为脏数据页;
建立脏数据页表,所述脏数据页表中记录所有有效块的脏数据页;
当所述交换区的空的有效块小于预设的第一阈值时,将脏数据页达到预设的第二阈值的有效块上的有效数据页上的数据拷贝搬移到新的空块,再擦除所述脏数据页达到预设的第二阈值的有效块。
2.根据权利要求1所述的闪存管理方法,其特征在于,每个物理页设有存储逻辑页地址的冗余区;
在所述建立每个区域的页映射表,所述页映射表中记录逻辑页地址和物理页地址之间的对应关系的步骤之前,还包括步骤:
根据物理页中冗余区的逻辑页地址动态生成逻辑页地址和物理页地址之间的对应关系。
3.根据权利要求1所述的闪存管理方法,其特征在于,在所述将所述新物理页记录在所述区域的页映射表中,更新所述区域的页映射表的步骤之后,还包括步骤:
将所述写命令中的逻辑页对应的原始物理页标记为脏数据页;
建立脏数据页表,所述脏数据页表中记录所有有效块的脏数据页;
当所述交换区的空的有效块小于预设的第一阈值时,对所有页都为脏数据页的有效块进行擦除。
4.一种闪存设备,其特征在于,包括闪存控制器,所述闪存控制器包括:
区块划分模块,用于将闪存的所有有效块划分为数据区和交换区;
区域划分模块,用于按区域对数据区的逻辑页进行划分,每个区域包含多个逻辑页;
页映射表建立模块,用于建立每个区域的页映射表,所述页映射表中记录逻辑页地址和物理页地址之间的对应关系;
获取模块,用于获取写命令;
计算模块,用于根据所述写命令中的起始逻辑地址获取所述写命令中的逻辑页所在的区域和所述区域内的偏移值,以及根据所述区域的页映射表及偏移值获取所述逻辑页对应的原始物理页;
写模块,用于在所述交换区获取一空的有效块,按页顺序写入数据,并将所述逻辑页地址记录到新物理页的冗余区;
更新模块,用于将所述新物理页记录在所述区域的页映射表中,更新所述区域的页映射表;
标记模块,用于将所述写命令中的逻辑页对应的原始物理页标记为脏数据页;
脏数据页表建立模块,用于建立脏数据页表,所述脏数据页表中记录所有有效块的脏数据页;
搬移模块,用于当所述交换区的空的有效块小于预设的第一阈值时,将脏数据页达到预设的第二阈值的有效块上的有效数据页上的数据拷贝搬移到新的空块;
擦除模块,用于擦除所述脏数据页达到预设的第二阈值的有效块。
5.根据权利要求4所述的闪存设备,其特征在于,每个物理页设有存储逻辑页地址的冗余区;
所述闪存控制器还包括:
关系生成模块,用于根据物理页中冗余区的逻辑页地址动态生成逻辑页地址和物理页地址之间的对应关系。
6.根据权利要求4所述的闪存设备,其特征在于,所述闪存控制器还包括:
标记模块,用于将所述写命令中的逻辑页对应的原始物理页标记为脏数据页;
脏数据页表建立模块,用于建立脏数据页表,所述脏数据页表中记录所有有效块的脏数据页;
擦除模块,用于当所述交换区的空的有效块小于预设的第一阈值时,对所有页都为脏数据页的有效块进行擦除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210251200.5A CN102841851B (zh) | 2012-07-19 | 2012-07-19 | 闪存管理方法和闪存设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210251200.5A CN102841851B (zh) | 2012-07-19 | 2012-07-19 | 闪存管理方法和闪存设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102841851A CN102841851A (zh) | 2012-12-26 |
CN102841851B true CN102841851B (zh) | 2015-09-09 |
Family
ID=47369239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210251200.5A Active CN102841851B (zh) | 2012-07-19 | 2012-07-19 | 闪存管理方法和闪存设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102841851B (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103412779B (zh) * | 2013-08-14 | 2016-12-28 | 浙江大学 | 一种嵌入式实时操作系统的补丁文件系统实现方法 |
US20150052319A1 (en) * | 2013-08-15 | 2015-02-19 | Htc Corporation | Memory management methods and systems for page-out mechanism |
CN104679440B (zh) * | 2013-11-29 | 2017-11-10 | 深圳市国微电子有限公司 | 一种闪存阵列管理方法及装置 |
CN104166627B (zh) * | 2014-09-02 | 2017-12-08 | 科大智能电气技术有限公司 | 一种基于单片机的nand‑flash写操作方法 |
CN106469122B (zh) * | 2015-08-14 | 2019-11-19 | 群联电子股份有限公司 | 有效数据合并方法、存储器控制器与存储器储存装置 |
CN108399047B (zh) * | 2017-02-06 | 2022-11-29 | 中兴通讯股份有限公司 | 一种闪存文件系统及其数据管理方法 |
CN107273309A (zh) * | 2017-05-19 | 2017-10-20 | 瑞斯康微电子(深圳)有限公司 | 一种串行闪存数据保护方法和装置 |
CN109144885B (zh) * | 2017-06-27 | 2022-04-29 | 北京忆恒创源科技股份有限公司 | 固态存储设备的垃圾回收方法与固态存储设备 |
CN107632941A (zh) * | 2017-08-16 | 2018-01-26 | 南京扬贺扬微电子科技有限公司 | 一种提高闪存写入性能的方法 |
CN108062203B (zh) * | 2017-12-15 | 2021-02-26 | 北京兆易创新科技股份有限公司 | 一种闪存数据管理方法、装置及存储器 |
CN107967125A (zh) * | 2017-12-20 | 2018-04-27 | 北京京存技术有限公司 | 闪存转换层的管理方法、装置及计算机可读存储介质 |
CN109032519A (zh) * | 2018-07-24 | 2018-12-18 | 浪潮电子信息产业股份有限公司 | 一种数据存储方法及存储设备 |
CN110895445B (zh) * | 2018-09-12 | 2021-09-14 | 华为技术有限公司 | 数据处理方法和系统 |
CN111324289B (zh) * | 2018-12-14 | 2024-02-20 | 兆易创新科技集团股份有限公司 | 一种存储器 |
CN110931072B (zh) * | 2019-11-28 | 2022-03-22 | 深信服科技股份有限公司 | 一种坏道扫描方法、装置、设备及存储介质 |
CN113050877B (zh) * | 2019-12-27 | 2024-03-01 | 兆易创新科技集团股份有限公司 | 一种映射表存储的方法、装置、电子设备及存储介质 |
CN114115700A (zh) * | 2020-08-31 | 2022-03-01 | 施耐德电气(中国)有限公司 | 闪存数据读写方法和闪存数据读写装置 |
CN112506438B (zh) * | 2020-12-14 | 2024-03-26 | 深圳大普微电子科技有限公司 | 一种映射表管理方法及固态硬盘 |
CN112486854B (zh) * | 2020-12-28 | 2022-08-23 | 潍柴动力股份有限公司 | 与非型闪存Nand Flash存储管理方法及装置 |
CN113568579B (zh) * | 2021-07-28 | 2022-05-03 | 深圳市高川自动化技术有限公司 | 一种存储器、数据存储方法以及数据读取方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1241786A (zh) * | 1998-06-30 | 2000-01-19 | 索尼株式会社 | 数据存储器、数据处理系统和方法 |
CN101493794A (zh) * | 2009-01-19 | 2009-07-29 | 成都市华为赛门铁克科技有限公司 | 一种闪存数据处理方法及装置 |
CN101727402A (zh) * | 2009-10-23 | 2010-06-09 | 深圳市江波龙电子有限公司 | 一种非易失性存储器数据的读写控制方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200828014A (en) * | 2006-12-28 | 2008-07-01 | Genesys Logic Inc | Flash memory management method with low RAM utilization |
CN101436159B (zh) * | 2007-11-14 | 2012-11-28 | 深圳市朗科科技股份有限公司 | 存储介质管理方法 |
TWI385667B (zh) * | 2008-06-26 | 2013-02-11 | Phison Electronics Corp | 用於快閃記憶體的資料管理方法、儲存系統與控制器 |
CN102446137B (zh) * | 2010-10-08 | 2015-12-09 | 群联电子股份有限公司 | 数据写入方法、存储器控制器与存储器储存装置 |
-
2012
- 2012-07-19 CN CN201210251200.5A patent/CN102841851B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1241786A (zh) * | 1998-06-30 | 2000-01-19 | 索尼株式会社 | 数据存储器、数据处理系统和方法 |
CN101493794A (zh) * | 2009-01-19 | 2009-07-29 | 成都市华为赛门铁克科技有限公司 | 一种闪存数据处理方法及装置 |
CN101727402A (zh) * | 2009-10-23 | 2010-06-09 | 深圳市江波龙电子有限公司 | 一种非易失性存储器数据的读写控制方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102841851A (zh) | 2012-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102841851B (zh) | 闪存管理方法和闪存设备 | |
CN103092766B (zh) | 一种用于nand flash的均衡损耗实现方法 | |
CN102707899B (zh) | 虚拟存储器系统、虚拟存储器控制方法和程序 | |
TWI221553B (en) | Semiconductor memory device with block alignment function | |
CN104572478B (zh) | 数据存取方法和数据存取装置 | |
US8386698B2 (en) | Data accessing method for flash memory and storage system and controller using the same | |
CN101354681B (zh) | 存储器系统、非易失性存储器的磨损均衡方法及装置 | |
CN102981963B (zh) | 一种固态盘的闪存转换层的实现方法 | |
CN102779096B (zh) | 一种基于页块面三维的闪存地址映射方法 | |
CN101923448B (zh) | 一种nand闪存的转换层读写方法 | |
CN101727295B (zh) | 一种基于虚拟块闪存地址映射的数据写入及读出方法 | |
CN104699413B (zh) | 数据管理方法、存储器存储装置及存储器控制电路单元 | |
US20140129758A1 (en) | Wear leveling in flash memory devices with trim commands | |
CN102043721B (zh) | 闪存存储管理方法 | |
CN105589811A (zh) | 数据储存装置与操作方法 | |
CN101556555B (zh) | 用于闪存的区块管理方法、其控制器与储存系统 | |
US8656090B2 (en) | Method for performing block management, and associated memory device and controller thereof | |
CN101625897B (zh) | 用于快闪存储器的数据写入方法、储存系统与控制器 | |
CN106354658B (zh) | 一种降低混合映射算法中映射表内存资源占用的方法 | |
CN106557432B (zh) | 缓冲存储器管理方法、存储器控制电路单元及存储装置 | |
TW201712549A (zh) | 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN103996412A (zh) | 一种用于智能卡非易失性存储器的掉电保护方法 | |
CN102214143A (zh) | 一种多层单元闪存的管理方法、装置及存储设备 | |
CN105607862A (zh) | 一种dram与mram结合具有备份电源的固态硬盘 | |
CN103970669A (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 | ||
CP01 | Change in the name or title of a patent holder |
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: 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 before: Shenzhen jiangbolong Electronic Co., Ltd. |
|
CP01 | Change in the name or title of a patent holder |