闪存转换层的管理方法、装置及计算机可读存储介质
技术领域
本发明实施例涉及存储器技术领域,尤其涉及一种闪存转换层的管理方法、装置及计算机可读存储介质。
背景技术
闪存颗粒Nand flash主要有许多的块单元组成,每个块包括若干个页。块是擦除最小单位,页是读写最小单位。一般地,Nand flash在写操作之前必须先执行擦除操作,而且Nand flash总的擦除次数有限。例如,MLC(Triple Level Cell,2阶单元)颗粒的擦除次数大概为3000次,TLC(Triple Level Cell,3阶单元)的擦除次数大概为500次。为了最大化闪存使用寿命,必须均衡擦除每个块。而且,块单元在多次进行读操作以后,也会导致错误比特位增多,如果不进行处理,最终导致ECC纠不回来。
针对Nand flash的上述特性,EMMC(Embedded Multi Media Card,嵌入式多媒体存储器)需要通过FTL进行相应的改善,使得闪存存储器更加接近于虚拟的磁盘。闪存转换层(Flash translation layer,FTL)的基本功能包括地址映射、垃圾回收、损耗均衡以及读取回收等。通常FTL在实现这些功能时,每个操作都是相互独立。这样无疑使得FTL变得臃肿而复杂。并且有可能几个操作同时执行会互相干扰。
发明内容
本发明提供一种闪存转换层的管理方法、装置及计算机可读存储介质,以解决闪存转换层在执行大容量擦除操作时需要多次保存映射表的问题,实现高效率的数据擦除。
第一方面,本发明实施例提供了一种用于闪存转换层的擦除方法,该方法包括:根据各操作预设的优先级确定当前要执行的目标操作,并确定出与所述目标操作对应的源块和目的块;
将与所述目标操作对应的数据从所述源块搬移到所述目的块;
其中,所述目标操作包括垃圾回收操作、损耗均衡操作和/或读取回收操作。
进一步的,所述目标操作为垃圾回收操作;
相应地,所述确定出与所述目标操作对应的源块和目的块,包括:
获取写有数据且有效数据最少的块作为源块,将当前被擦除还未写入数据的块作为目的块。
进一步的,所述目标操作为所述损耗均衡操作;所述损耗均衡操作包括动态损耗均衡或静态损耗均衡;
相应地,所述确定出与所述目标操作对应的源块和目的块,包括:
获取写有数据且擦除次数较大的块作为与所述动态损耗均衡对应的源块,将当前被擦除还未写入数据且擦除次数较小的块作为所述动态损耗均衡对应的目的块;或者,
获取写有数据且擦除次数较小的块作为与所述静态损耗均衡对应的源块,将当前被擦除还未写入数据且擦除次数较大的块作为所述静态损耗均衡对应的目的块。
进一步的,所述目标操作为读取回收操作;
相应地,所述确定出与所述目标操作对应的源块和目的块,包括:
获取写有数据且错误比特位较多的块作为源块,将错误比特位较少的块作为目的块。
进一步的,在所述将与所述目标操作对应的数据从所述源块搬移到所述目的块之后,还包括:
根据所述源块和目的块之间的对应关系以及所述源块与各逻辑地址之间的对应关系,更新各逻辑地址与物理地址之间的映射关系。
第二方面,本发明实施例还提供了一种用于闪存转换层的擦除装置,该装置包括:
操作确定模块,用于根据各操作预设的优先级确定当前要执行的目标操作,并确定出与所述目标操作对应的源块和目的块;
数据搬移模块,用于将与所述目标操作对应的数据从所述源块搬移到所述目的块;
其中,所述目标操作包括垃圾回收操作、损耗均衡操作和/或读取回收操作。
进一步的,所述目标操作为垃圾回收操作;
相应地,所述操作确定模块用于:
获取写有数据且有效数据最少的块作为源块,将当前被擦除还未写入数据的块作为目的块。
进一步的,所述目标操作为所述损耗均衡操作;所述损耗均衡操作包括动态损耗均衡或静态损耗均衡;
相应地,所述操作确定模块用于:
获取写有数据且擦除次数较大的块作为与所述动态损耗均衡对应的源块,将当前被擦除还未写入数据且擦除次数较小的块作为所述动态损耗均衡对应的目的块;或者,
获取写有数据且擦除次数较小的块作为与所述静态损耗均衡对应的源块,将当前被擦除还未写入数据且擦除次数较大的块作为所述静态损耗均衡对应的目的块。
进一步的,所述目标操作为读取回收操作;
相应地,所述操作确定模块用于::
获取写有数据且错误比特位较多的块作为源块,将错误比特位较少的块作为目的块。
进一步的,该装置还包括:更新模块,用于根据所述源块和目的块之间的对应关系以及所述源块与各逻辑地址之间的对应关系,更新各逻辑地址与物理地址之间的映射关系。
第三方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述实施例所述的闪存转换层的管理方法。
本发明实施例的技术方案,通过根据各操作预设的优先级确定当前要执行的目标操作,并确定出与所述目标操作对应的源块和目的块;将与所述目标操作对应的数据从所述源块搬移到所述目的块;其中,所述目标操作包括垃圾回收操作、损耗均衡操作和/或读取回收操作,通过对闪存转换层的擦除方法中垃圾回收操作、损耗均衡操作和/或读取回收操作的统一管理和操作,提供统一接口,简化流程,同时根据预设的优先级进行所述操作,将数据从源块搬移到目的块,使得内存转换层操作模块化;数据搬移后,可以更新映射表,提高内存转换层的读写性能和效率。
附图说明
为了更加清楚地说明本发明示例性实施例的技术方案,下面对描述实施例中所需要用到的附图做一简单介绍。显然,所介绍的附图只是本发明所要描述的一部分实施例的附图,而不是全部的附图,对于本领域普通技术人员,在不付出创造性劳动的前提下,还可以根据这些附图得到其他的附图。
图1是本发明实施例一中的一种闪存转换层的管理方法的流程图。
图2是本发明实施例二中的一种闪存转换层的管理方法的流程框架图。
图3是本发明实施例三中的一种闪存转换层的管理装置的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一中的一种闪存转换层的管理方法的流程图,本实施例可适用于闪存转换层的管理情况,该方法可以由闪存转换层的管理装置来执行,具体包括如下步骤:
S110、根据各操作预设的优先级确定当前要执行的目标操作,并确定出与所述目标操作对应的源块和目的块。
其中,所述目标操作包括垃圾回收操作、损耗均衡操作和/或读取回收操作等。源块是数据搬移前存放的块,目的块是数据搬移后要存放的块。也就是源块可以是从当前已经写了数据的块中选取,目的块是从当前已经被擦除而且还没有写入数据的那些块中选取。
优先级是指在处理多个目标操作时,决定各个操作的优先等级的参数。也就是可以根据具体的业务需要为不同的目标操作预先配置不同的优先级。示例性的,如果预设的垃圾回收操作比损耗均衡操作和读取回收操作优先级高,则系统优先执行垃圾回收操作。通过设置优先级,能够优化闪存转换层的操作顺序,更加贴合用户的实际需求。
NAND flash以页为单位读写数据,而以块为单位擦除数据。闪存的写入操作必须在空白区域进行,如果目标区域已经有数据,必须先擦除后写入,因此擦除操作是闪存的基本操作。
对于垃圾回收操作,闪存更新数据时,会将新数据存在空闲页,存放原数据的页作无效记号进行标记,空闲页少于一定数量时就会进行垃圾回收操作,将无效的页回收并以块为单位进行擦除。
对于损耗均衡操作,由于经常调用存储块和不经常调用的块会出现磨损程度不均匀,缩短设备的寿命,因此,损耗均衡操作用于将块与块之间的擦除次数之差控制在合理范围内,就是不同块之间的擦除次数要均衡,尽可能延长闪存寿命,提高性能。
对于读取回收操作,由于随着时间的推移或者擦除次数较多,闪存中块中比特位可能会出现错误,错误比特位增多,如果不进行处理,最终可能导致ECC纠不回来,影响数据读取的准确性和速度。因此需要将进行读取回收操作进行修改错误的比特位,保证一个块中不出现较多的错误比特位,以保证数据的准确存储和读取。
可选的,在确定出与所述目标操作对应的源块和目的块之前,可以先扫描整个闪存芯片上的坏块,并且作标记,避免数据搬移到坏块中。
S120、将与所述目标操作对应的数据从所述源块搬移到所述目的块。
在根据预设的优先级选定对应的目标操作、相应的源块以及目的块之后,将源块中对应的数据搬移到目的块,以提高内存转换层的读写性能和效率。
本实施例的技术方案,通过根据各操作预设的优先级确定当前要执行的目标操作,并确定出与所述目标操作对应的源块和目的块;将与所述目标操作对应的数据从所述源块搬移到所述目的块;通过对闪存转换层的擦除方法中垃圾回收操作、损耗均衡操作和/或读取回收操作的统一管理和操作,提供统一接口,简化流程,同时根据预设的优先级进行所述操作,将数据从源块搬移到目的块,使得闪存转换层操作模块化,数据搬移后,可以更新映射表,提高闪存转换层读写性能和效率。
实施例二
本实施例是基于闪存转换层的管理的优选实施例,在上述实施例的基础上,目标操作为垃圾回收操作时,相应地,所述确定出与所述目标操作对应的源块和目的块,包括:获取写有数据且有效数据最少的块作为源块,将当前被擦除还未写入数据的块作为目的块。
其中,对于垃圾回收操作,源块可选为写有数据的,且有效数据最少的块。有效数据最少的块一定程度上代表这个块的使用率低,无效数据的空间造成了闪存空间的浪费。垃圾回收操作可以将无效数据的空间加以重新利用,将数据进行迁移整合后,可以将这部分有效数据集中搬移到一个当前被擦除还未写入数据的目的块,数据搬移之后,这个目的块内存储较多的有效数据,保证了此目的块的有效利用,同时此操作的源块的数据都被清除,可以进行下一次的重复有效利用。
在上述实施例的基础上,当目标操作为损耗均衡操作时,相应地,所述确定出与所述目标操作对应的源块和目的块,包括:获取写有数据且擦除次数较大的块作为与所述动态损耗均衡对应的源块,将当前被擦除还未写入数据且擦除次数较小的块作为所述动态损耗均衡对应的目的块;或者,获取写有数据且擦除次数较小的块作为与所述静态损耗均衡对应的源块,将当前被擦除还未写入数据且擦除次数较大的块作为所述静态损耗均衡对应的目的块。
其中,闪存存储空间是由块构成,每个块具有的擦除次数是有上限的,过多的擦除操作会降低系统性能,为延长闪存设备的寿命,需要进行不同块擦除次数的均衡,即尽量将擦除操作分不到整个存储空间中,保证损耗均衡。也就是损耗均衡用于在闪存中每个块的擦除次数趋向近似平均的前提下,尽量减少总的擦除次数。
示例性地,损耗均衡操作包括动态损耗均衡操作和静态损耗均衡操作。
对于动态损耗均衡操作,源块可选为写有数据且擦除次数较大的块,对应的,目的块可选为还未写入数据且擦除次数较小的块。将擦除次数较大的块中的数据搬移到擦除次数较小的块中,此数据可能是需要经常更新的数据,示例性的日志文件等,需要持续更新,因此造成块的擦除次数相对很大,损耗可能也很大。因此为了块之间的均衡损耗,可以将这部分数据搬移到空闲的擦除次数较小的块中。此处可以优先将擦除次数最大的块作为源块,是因为擦除次数最大的块的损耗可能是最大的,需要马上进行均衡其被擦除的次数。
需要说明的是,实际执行的过程中,不一定只有最大擦除次数的块作为源块,也可以是擦除次数较大的块。也就是说不限定是同时执行擦除次数较多的块的数据进行搬移,还是每次只搬移擦除次数最大的块中的数据。示例性的,可以设定第一阈值A和第二阈值B,擦除次数超过第一阈值A的块,便将其存的数据搬移到擦除次数低于第二阈值B的块中,其中B<A。
类似地,对于静态损耗平衡操作,源块可选为写有数据且擦除次数较小的块,目的块可选为当前被擦除还未写入数据且擦除次数较大的块。其中,这部分数据可能是由于不需要经常改写或更新,因此擦除次数小,此时可以把这部分数据搬移到当前被擦除还未写入数据且擦除次数较大的块,保证这个擦除次数较大的块以后的擦除次数相对较少,均衡各块的损耗。此处可以优先将擦除次数最小的块作为源块,是因为擦除次数最小的块的损耗可能是最小的,因此需要马上进行均衡与其他块被擦除的次数。
需要说明的是,实际执行的过程中,不一定只有最小擦除次数的块作为源块,也可以是擦除次数较小的块。也就是说可以是每次只搬移擦除次数最少的一个块中的数据,也可以是将擦除次数较少的块存的数据进行搬移到擦除次数较大的块中。示例性的,可以设定第三阈值C和第四阈值D,若擦除次数低于第三阈值C的块,便将其存的数据搬移到擦除次数大于第四阈值D的块中,其中D>C。
可选的,在上述实施例的基础上,当目标操作为读取回收操作时,相应地,所述确定出与所述目标操作对应的源块和目的块,包括:获取写有数据且错误比特位较多的块作为源块,将错误比特位较少的块作为目的块。
其中,对于读取回收操作,源块可选为写有数据且错误比特位较多的块,目的块可选为错误比特位较少的块。比特位即Bit,是计算机最小的存储单位。以0或1来表示比特位的值。愈多的比特位数可以表现愈复杂的图像信息。随着时间的推移或者擦除次数较多,闪存中块中比特位可能会出现错误,误比特位增多,如果不进行处理,最终可能导致ECC纠不回来,影响数据读取的准确性和速度。因此将错误比特位较多的块中的数据搬移到错误比特位较少的块,以保证数据的准确存储和读取。
可选的,在上述实施例的基础上,在所述将与所述目标操作对应的数据从所述源块搬移到所述目的块之后,还包括:根据所述源块和目的块之间的对应关系以及所述源块与各逻辑地址之间的对应关系,更新各逻辑地址与物理地址之间的映射关系。
其中,NAND闪存中使用闪存转换层(FTL)管理闪存,闪存转换层位于文件系统和闪存驱动层之间,为上层文件系统提供块设备的操作接口。地址映射作为闪存转换层的重要组件,负责将来自文件系统的逻辑地址转换为闪存中的物理地址。因此,在进行目标操作对应的数据搬移后,需要根据源块和目的块之间的对应关系以及所述源块与各逻辑地址之间的关系,更新逻辑地址和物理地址之间的映射关系,以保证存储的数据能被用户准确找到并读取。
示例性的,图2是本发明实施例二中的一种闪存转换层的管理方法的流程框架图,如图2所示,本发明实施例中通过操作确定和数据搬移两个步骤达到闪存转换层的管理。
首先,是进行操作确定,包括三个方面:
操作判定,是对于目标操作的确定,比如是执行何种操作,包括垃圾回收操作、损耗均衡操作和/或读取回收操作等。可以根据实际业务的需要以及预设的优先级来选定执行的目标操作。
源块选取,根据执行的目标操作确定源块。比如,若目标操作是垃圾回收操作时,相应地,获取写有数据且有效数据最少的块作为源块。
目的块选取,根据执行的目标操作确定目的块。比如,若目标操作是垃圾回收操作时,相应地,获取写有数据且有效数据最多的块作为目的块。
其次,进行数据搬移。
在操作判定、源块和目的块选取完成后,将数据从源块搬移到目的块中。源块中可以包括有效数据Valid和无效数据Invalid,可选是将源块中的有效数据valid搬移到可用的空Blank的目的块中,以提高内存转换层的读写性能和效率。
本实施例的技术方案,通过对垃圾回收操作、损耗均衡操作和/或读取回收操作的统一管理和操作,提供统一接口,简化流程,同时根据预设的优先级进行所述操作,将数据从源块搬移到目的块,使得闪存转换层操作模块化,避免几个操作同时执行时产生干扰。数据搬移后,可以更新映射表,提高闪存转换层读写性能和效率,保证均衡的损耗延长以闪存设备的寿命。
实施例三
图3是本发明实施例中三提供的一种闪存转换层的管理装置的结构示意图,如图3所示,该装置包括:操作确定模块310和数据搬移模块320。
其中,操作确定模块310,用于根据各操作预设的优先级确定当前要执行的目标操作,并确定出与所述目标操作对应的源块和目的块;
数据搬移模块320,用于将与所述目标操作对应的数据从所述源块搬移到所述目的块;
其中,所述目标操作包括垃圾回收操作、损耗均衡操作和/或读取回收操作。
本实施例的技术方案提供一种闪存转换层的管理装置,包括:操作确定模块,用于根据各操作预设的优先级确定当前要执行的目标操作,并确定出与所述目标操作对应的源块和目的块;数据搬移模块,用于将与所述目标操作对应的数据从所述源块搬移到所述目的块;其中,所述目标操作包括垃圾回收操作、损耗均衡操作和/或读取回收操作,通过对垃圾回收操作、损耗均衡操作和/或读取回收操作的统一管理和操作,提供统一接口,简化流程,同时根据预设的优先级进行所述操作,将数据从源块搬移到目的块,使得闪存转换层操作模块化,避免几个操作同时执行时产生干扰;数据搬移后,更新映射表,解决闪存转换层在执行大容量擦除操作时需要多次保存映射表的问题,实现高效率的数据擦除,提高闪存转换层读写性能和效率,保证均衡的损耗,延长以闪存设备的寿命。
可选的,所述目标操作为垃圾回收操作;
相应地,所述确定出与所述目标操作对应的源块和目的块,包括:
获取写有数据且有效数据最少的块作为源块,将当前被擦除还未写入数据的块作为目的块。
可选的,所述目标操作为所述损耗均衡操作;所述损耗均衡操作包括动态损耗均衡或静态损耗均衡;
相应地,所述确定出与所述目标操作对应的源块和目的块,包括:
获取写有数据且擦除次数较大的块作为与所述动态损耗均衡对应的源块,将当前被擦除还未写入数据且擦除次数较小的块作为所述动态损耗均衡对应的目的块;或者,
获取写有数据且擦除次数较小的块作为与所述静态损耗均衡对应的源块,将当前被擦除还未写入数据且擦除次数较大的块作为所述静态损耗均衡对应的目的块。
可选的,所述目标操作为读取回收操作;
相应地,所述确定出与所述目标操作对应的源块和目的块,包括:
获取写有数据且错误比特位较多的块作为源块,将错误比特位较少的块作为目的块。
可选的,该装置还包括:更新模块,用于根据所述源块和目的块之间的对应关系以及所述源块与各逻辑地址之间的对应关系,更新各逻辑地址与物理地址之间的映射关系。
上述装置可执行本发明实施例一和实施例二所提供的方法,具备执行上述方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例一和实施例二所提供的方法。
值得注意的是,上述装置的实施例中,所包括的各个模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
实施例四
本发明实施例四提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任意实施例所述的闪存转换层的管理方法。
本实施例提供的计算机可读存储介质存储的计算机程序,除了被处理器执行时实现本发明任意实施例中所述的闪存转换层的管理方法,还可以包括其他程序,以实现具体的业务需求。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的闪存转换层的管理方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。