控制缓存映射的方法及缓存系统的制作方法

文档序号:6359101阅读:175来源:国知局
专利名称:控制缓存映射的方法及缓存系统的制作方法
技术领域
本发明涉及缓存系统的缓存映射技术,特别涉及一种闪存介质作为缓存时控制缓存映射的方法及一种缓存系统。
背景技术
闪存(Flash Memory)介质是一种长寿命的非易失性存储器,其在断电情况下仍能保持所存储的数据信息。现有技术中常利用闪存介质作为底层存储介质如硬盘、硬盘阵列等传统磁盘存储系统的缓存,以缓解受底层存储介质输入输出性能不佳所带来的性能约
束ο通常,利用闪存介质作为缓存时,在缓存和底层存储介质之间采用的映射策略是组相联映射。在组相联映射中,按照作为映射目标的缓存的大小,将作为映射源的底层存储介质划分成多个组,其中每个组的容量大小等于缓存的大小。根据缓存所包含的目标数据块的数目及大小,将底层存储介质的每个组划分成相同数目的区域(即数据块),每个区域的大小与缓存中的一个目标数据块的大小一致。在底层存储介质的一个组中,不同的数据块与缓存中的不同的目标数据块相对应。在底层存储介质的不同组中,对应位置的数据块映射到缓存中相同的目标数据块。图1示出了组相联映射的一个示例。该例中,作为缓存的闪存介质划分成从目标数据块O到目标数据块3的4个目标数据块,作为映射源的硬盘包括两个组,每个组划分成与缓存的4个目标数据块相对应的数据块,并且硬盘中的每一个数据块的大小与闪存介质中的每一个目标数据块的大小一致。该例中,硬盘与缓存的组相联映射关系为硬盘的第一组(包括数据块0-数据块幻中的数据块0与第二组(包括数据块4-数据块7)中的数据块4映射到闪存介质中的目标数据块0,硬盘的第一组中的数据块1与第二组中的数据块5 映射到闪存介质中的目标数据块1,硬盘的第一组中的数据块2与第二组中的数据块6映射到闪存介质中的目标数据块2,硬盘的第一组中的数据块3与第二组中的数据块7映射到闪存介质中的目标数据块3。按照该映射关系,数据块0和数据块4中的数据缓存到目标数据块0中,数据块1和数据块5中的数据缓存到目标数据块1中,数据块2与数据块6中的数据缓存到目标数据块2中,数据块3与数据块7中的数据缓存到目标数据块3中。但是,在现有技术中,缓存与底层存储介质之间的映射关系通常是静态的。在系统工作的整个过程中,底层存储介质中的数据块所映射到的缓存中的目标数据块通常是不变的。这样,当闪存介质作为缓存时,对于系统中局部区域数据访问异常频繁的应用场景,系统中频繁访问的数据所映射到的闪存介质的介质区域的擦写次数将过于频繁。由于闪存介质的擦写次数是有限的,这样将导致频繁访问的数据所映射到的闪存介质的介质区域将比其它的区域更快地达到擦写次数的极限,进而导致整个闪存介质不可用。

发明内容
考虑到现有技术的上述缺陷,本发明的实施例提出一种控制缓存映射的方法及一种缓存系统,在缓存与底层存储介质之间采取动态映射策略以使得系统中频繁访问的数据并不是静态地映射到缓存上的某一目标数据块,从而可以优化作为缓存的闪存介质的寿命。本发明实施例提供一种控制缓存映射的方法,其中,以预定的时间周期更换底层存储介质中至少一个数据块所映射到所述底层存储介质的缓存中的目标数据块,其中,所述底层存储介质中一个或多个数据块只映射到所述缓存中的一个目标数据块,所述底层存储介质的缓存包括闪存介质,所更换的所述缓存中的目标数据块包括当前所述缓存中具有最大擦写次数的目标数据块本发明实施例提供一种控制缓存映射的方法,其中,所述方法包括监控底层存储介质的缓存中各目标数据块的擦写次数,其中,所述底层存储介质中一个或多个数据块只映射到所述缓存中的一个目标数据块,所述底层存储介质的缓存包括闪存介质;当所述缓存中具有最大擦写次数的目标数据块与具有最小擦写次数的目标数据块之间的擦写次数之差达到预先设定的擦写阈值时,更换所述底层存储介质中的至少一个数据块所映射到的所述缓存中的目标数据块,所更换的所述缓存中的目标数据块包括当前所述缓存中具有最大擦写次数的目标数据块;以及继续监控所述缓存中的各目标数据块在进行所述更换后所产生的擦写次数。本发明实施例提供一种缓存系统,包括底层存储介质;闪存介质,耦合至所述底层存储介质,用于作为所述底层存储介质的缓存,其中所述底层存储介质中的一个或多个数据块只映射到所述缓存中的一个目标数据块;处理器,被配置成以预定的时间周期更换底层存储介质中至少一个数据块所映射到所述底层存储介质的缓存中的目标数据块,所更换的所述缓存中的目标数据块包括当前所述缓存中具有最大擦写次数的目标数据块。本发明实施例提供一种缓存系统,包括底层存储介质;闪存介质,耦合至所述底层存储介质,用于作为所述底层存储介质的缓存,其中所述底层存储介质中的一个或多个数据块只映射到所述缓存中的一个目标数据块;处理器,被配置成监控所述缓存中各目标数据块的擦写次数;当所述缓存中具有最大擦写次数的目标数据块与具有最小擦写次数的目标数据块之间的擦写次数之差达到预先设定的擦写阈值时,更换所述底层存储介质中的至少一个数据块所映射到的所述缓存中的目标数据块,所更换的所述缓存中的目标数据块包括当前所述缓存中具有最大擦写次数的目标数据块;以及继续监控所述缓存中的各目标数据块在进行所述更换后所产生的擦写次数。本发明实施例的方法和装置,通过更换底层存储介质中包括与当前具有最大擦写次数的目标数据块所对应的数据块在内的至少一个数据块所映射到的缓存中的目标数据块,实现了对充当缓存的闪存介质的使用寿命的优化。


本发明的目的、特点、特征和优点通过以下结合附图的详细描述将变得显而易见。 其中图1示出了组相联映射的一个示例;图2示出了根据本发明实施例一的控制缓存映射的方法的流程示意图3-图5示出了在利用本发明实施例一的方法控制缓存映射的一个实例中,不同切换周期中的映射关系示意图;图6-图11示出了在利用本发明实施例一的方法控制缓存映射的另一个实例中, 不同切换周期中的映射关系示意图;图12示出了根据本发明实施例二的控制缓存映射的方法的流程示意图;以及图13-图14示出了在利用本发明实施例二的方法控制缓存映射的一个实例中的映射关系示意图;图15示出了按照本发明实施例的缓存系统。
具体实施例方式本发明的实施例提供一种控制缓存映射的方法及一种缓存系统,其中,所述方法包括以预定的时间周期更换底层存储介质中至少一个数据块所映射到所述底层存储介质的缓存中的目标数据块,其中,所述底层存储介质中一个或多个数据块只映射到所述缓存中的一个目标数据块,所述底层存储介质的缓存包括闪存介质,所更换的所述缓存中的目标数据块包括当前所述缓存中具有最大擦写次数的目标数据块。下面将结合附图详细描述本发明的各个实施例。图2示出了根据本发明实施例一的控制缓存映射的方法的流程示意图。本实施例中,闪存介质作为缓存,底层存储介质示例性地为硬盘,底层存储介质中的一个或多个数据块只映射到所述缓存中的一个目标数据块。其中,闪存介质包括固态磁盘即SSD(solid state disk)磁盘。如图2所示出的,该实施例一的控制缓存映射的方法包括如下步骤在步骤S201,根据预先设置的切换周期T,触发计时器开始计时。在步骤S202,在一个切换循环的每一个切换周期内,更换硬盘中的至少一个数据块所映射到的缓存中的目标数据块,以使得在一个切换循环后,缓存中的各目标数据块的擦写次数相接近,其中,一个切换循环所包括的切换周期的数目不小于缓存所包含的目标数据块的数目N。图1、图3-图5示出了利用本发明实施例一的方法控制缓存映射的一个具体实例。 该实例中在一个切换循环的每一个切换周期内,更换硬盘中的每一个数据块所映射到的缓存中的目标数据块,使得硬盘中的每一个数据块在一个切换循环的不同切换周期内映射到缓存中的不同目标数据块,其中,一个切换循环包括的切换周期的数目等于缓存所包含的目标数据块的数目N。在该实例中,示例性但不作为限制地,缓存具有4个目标数据块,硬盘包括两个组,每个组划分成与缓存的4个目标数据块相对应的4个数据块,并且硬盘中的每一个数据块的大小与闪存介质中的每一个目标数据块的大小一致。如图1、图3-图5所示出的,本实例采用周期性轮转动态切换策略,一个切换循环中包含的切换周期的数目等于缓存中所包含的目标数据块的数目N,N为大于0的整数。该例中N = 4。在本实例中,每经过一个切换周期,切换硬盘中的每一个数据块所对应的映射目标。硬盘中的各数据块在不同的切换周期内所映射到的目标数据块不同。具体地,该实例在初始时采用图1所示出的映射关系。如图1所示出的,在该例中, 在初始时,硬盘与缓存之间的映射关系为硬盘的数据块0和数据块4映射到缓存的目标数据块0,硬盘的数据块1和数据块5映射到缓存的目标数据块1,硬盘的数据块2和数据块 6映射到缓存的目标数据块2,硬盘的数据块3和数据块7映射到缓存的目标数据块3。上述数字为对数据块或目标数据块的编号。在第一切换周期(简称第一周期)到达时,分别将闪存介质中各目标数据块中所缓存的数据迁移至其它的目标数据块中。该例中,示例性地,将闪存介质中目标数据块0中当前缓存的有效数据迁移至目标数据块1,将目标数据块1中当前缓存的有效数据迁移至目标数据块2,将目标数据块2中当前缓存的有效数据迁移至目标数据块3,将目标数据块 3中当前缓存的有效数据迁移至目标数据块0。在缓存中的数据迁移后,根据目标数据块中数据的迁移,相应地更换硬盘中每一个数据块所映射到的目标数据块。经过该次迁移后,修改得到的映射关系如图3所示出的。在第二周期到达时,同样将闪存介质中目标数据块0中当前缓存的有效数据迁移至目标数据块ι,将目标数据块ι中当前缓存的有效数据迁移至目标数据块2,将目标数据块2中当前缓存的有效数据迁移至目标数据块3,将目标数据块3中当前缓存的有效数据迁移至目标数据块0。经过该次迁移后,根据该次迁移修改缓存与硬盘的映射关系,修改后的映射关系如图4所示出的。在第三周期到达时,同样将闪存介质中目标数据块0中当前缓存的有效数据迁移至目标数据块1,将目标数据块1中当前缓存的有效数据迁移至目标数据块2,将目标数据块2中当前缓存的有效数据迁移至目标数据块3,将目标数据块3中当前缓存的有效数据迁移至目标数据块0。经过该次迁移后,根据该次迁移修改缓存与硬盘的映射关系,修改后的映射关系,修改得到的映射关系如图5所示出的。在第四周期到达时,同样进行上述的迁移后,相应地修改映射关系,修改得到的映射关系如图1所示出的,即回到了在第一周期期间的映射关系。这样一个切换循环结束。然后,可以继续下一个切换循环的切换过程。在本实施例中,在进行目标数据块中缓存数据的迁移后,可以通过更新存储在闪存介质和/或内存中的缓存元数据来进行所映射的目标数据块的更换。在硬盘中局部区域如某一数据块访问频繁的场景下,在一个切换循环的各切换周期中,硬盘中访问频繁的数据块分别映射到闪存介质中不同的目标数据块,从而使得硬盘中访问频繁的局域不会静态地一直只映射到某一固定的目标数据块,从而可以延长及优化闪存介质的寿命。并且,在经过一个如上文所述的轮转切换循环后,闪存介质中的各目标数据块的擦除次数接近,并且接近于平均值,各目标数据块的擦除次数分布比较均勻,从而可以使得闪存介质的寿命最优化。本实施例中,在进行映射关系的动态切换时,按照缓存中目标数据块的编号顺序, 以轮转的方式将所述缓存中每一目标数据块的数据分别迁移至编号与其相邻的目标数据块中。上述例子只是示例性地,其它的轮转方式也适用。举例说明,在到达切换周期时,可以按照目标数据块0中当前缓存的数据迁移至目标数据块3,目标数据块3中当前缓存的数据迁移至目标数据块2,目标数据块2中当前缓存的数据迁移至目标数据块1,目标数据块1中当前缓存的数据迁移至目标数据块0的顺序来实现在切换周期到达时,对缓存中各目标数据块中缓存的数据的迁移,然后相应地更换底层存储介质如硬盘中的每一个数据块所映射到的目标数据块,硬盘和缓存之间的映射关系相应更换。当然,除了上文所述的轮转方式外,其它的更换所述底层存储介质中的至少一个数据块所映射到的所述缓存中的目标数据块的方式也适用,只要能使得在一个切换循环后,所述缓存中的各目标数据块的擦写次数相接近就可以了。所述的接近可以是各目标数据块的擦写次数均接近平均值,具体地,可以是各目标数据块的擦写次数的差异小于预定的擦写次数差异阈值。该差异阈值可以根据需要或具体的应用场景来设置。采用周期性轮转动态切换策略时,用户可根据应用场景灵活设置切换周期,其切换循环较短,但是,每次切换映射目标时,缓存中的所有有效数据都会迁移,因而周期性轮转动态切换策略更适用于小容量的缓存。图6-图11示出了利用根据本发明实施例一的方法控制缓存映射的另一实例。在该例中,采样周期性排列动态切换映射的策略来更换硬盘中的每一个数据块所映射到的缓存中的目标数据块,以使得在一个切换循环后,缓存中的各目标数据块的擦写次数相接近。 在该例中,一个切换循环中包含的切换周期的数目等于N乘以(N-I),其中N为缓存中所包含的目标数据块的数目,N为大于0的整数。示例性地,该例中N = 3,所以该例中一个切换循环包括6个切换周期。该例中,闪存介质作为缓存,底层存储介质示例性地为硬盘,示例性但不作为限制地,缓存具有3个目标数据块,硬盘包括两个组,每个组划分成与缓存的3个目标数据块相对应的3个数据块,并且硬盘中的每一个数据块的大小与闪存介质中的每一个目标数据块的大小一致。在该例中,在一个切换循环的每一个切换周期内,将缓存中当前具有最大擦写次数的目标数据块中缓存的数据与所述缓存中除该具有最大擦写次数之外的其它目标数据块中、在当前的切换循环中其内数据进行过最少次数的交换、并且与在当前的切换循环中上一个切换周期中与该当前具有最大擦写次数的目标数据块进行交换的目标数据块不同的任一个目标数据块中缓存的数据相交换,即数据相互迁移,并且根据目标数据块中缓存数据的迁移,相应地更换所对应的硬盘中的数据块所映射到的目标数据块。其中,缓存中各目标数据块都有N-I次机会成为具有最大擦写次数的目标数据块,也就是说在一个切换循环中各目标数据块在不同的N-I个周期内为最大擦写次数的目标数据块即与访问最频繁的数据块相对应。示例性地,假定在该切换循环开始时,闪存介质中的目标数据块0具有最大的擦写次数,这表明硬盘中当前映射到目标数据块0的数据块0和数据块3的访问最频繁。除了目标数据块0的目标数据块是目标数据块1和目标数据块2。如图6所示出的,该例中, 在第一周期到达之前硬盘与缓存之间的映射关系为硬盘的数据块0和数据块3映射到缓存的目标数据块0,硬盘的数据块1和数据块4映射到缓存的目标数据块1,硬盘的数据块 2和数据块5映射到缓存的目标数据块2。该例中,示例性地,在第一周期到达时,将闪存介质中目标数据块0中缓存的有效数据迁移至目标数据块1,将目标数据块1中当前缓存的有效数据迁移至目标数据块0。在缓存中的数据迁移后,根据目标数据块中数据的迁移,相应地更换硬盘中数据块0和数据块3所映射到的缓存中的目标数据块以及数据块1和数据块4所映射到的缓存中的目标数据块。经过该次迁移后,修改得到的映射关系如图7所示出的,此时访问最频繁的数据块0 和数据块3映射到目标数据块1。在第二周期到达时,将闪存介质中当前具有最大擦写次数的目标数据块1中缓存的有效数据迁移至目标数据块2,将目标数据块2中当前缓存的有效数据迁移至目标数据块1,在缓存中的数据迁移后,根据目标数据块中数据的迁移,相应地更换硬盘中数据块0 和数据块3以及数据块2和数据块5所映射到的缓存中的目标数据块。经过该次迁移后, 修改得到的映射关系如图8所示出的。此时,硬盘中访问最频繁的数据块0和数据块3映射到了目标数据块2。在第三周期到达时,将闪存介质中当前具有最大擦写次数的目标数据块2中缓存的有效数据迁移至目标数据块0,将目标数据块0中当前缓存的有效数据迁移至目标数据块2,在缓存中的数据迁移后,根据目标数据块中数据的迁移。经过该次迁移后,修改得到的映射关系如图9所示出的。此时,硬盘中访问最频繁的数据块0和数据块3映射到了目标数据块0。在第四周期到达时,将闪存介质中当前具有最大擦写次数的目标数据块0中缓存的有效数据迁移至目标数据块1,将目标数据块1中当前缓存的有效数据迁移至目标数据块0,在缓存中的数据迁移后,根据目标数据块中数据的迁移。经过该次迁移后,修改得到的映射关系如图10所示出的。此时,硬盘中访问最频繁的数据块0和数据块3映射到了目标数据块1。在第五周期到达时,将闪存介质中当前具有最大擦写次数的目标数据块1中缓存的有效数据迁移至目标数据块2,将目标数据块2中当前缓存的有效数据迁移至目标数据块1,在缓存中的数据迁移后,根据目标数据块中数据的迁移。经过该次迁移后,修改得到的映射关系如图11所示出的。此时,硬盘中访问最频繁的数据块0和数据块3映射到了目标数据块2。在第六周期到达时,将闪存介质中当前具有最大擦写次数的目标数据块2中缓存的有效数据迁移至目标数据块0,将目标数据块0中当前缓存的有效数据迁移至目标数据块2,在缓存中的数据迁移后,根据目标数据块中数据的迁移。经过该次迁移后,修改得到的映射关系回到如图6所示出的。此时,一次切换循环结束,从图6开始,按照图6-图11的切换顺序继续进行下一个切换循环。该例中,在到达每一个周期时,当前具有最大擦写次数的目标数据块即当前访问最频繁的数据块所映射到的目标数据块是按照目标数据块的编号的顺序来选择切换目标的。在其它实施例中,当目标数据块的数目超过3个时可以按照也可以不按照目标数据块的编号的顺序来选择切换目标,只需该切换目标是在当前的切换循环中其内数据与其它目标数据块进行过最少次数的交换、并且与在当前切换循环的上一次切换周期中当前具有最大擦写次数的目标数据块刚进行切换的目标数据块不同的任一个目标数据块。在本实施例中,在进行目标数据块中缓存数据的迁移后,可以通过更新存储在闪存介质和/或内存中的缓存元数据来进行所映射的目标数据块的更换。在硬盘中局部区域如某一数据块访问频繁的场景下,在一个切换循环的各切换周期中,硬盘中访问频繁的数据块分别映射到闪存介质中不同的目标数据块,从而使得硬盘中访问频繁的局域不会一直只映射到某一固定的目标数据块,从而可以延长及优化闪存介质的寿命。并且,在经过一个如上文所述的周期性排列切换循环后,闪存介质中的各目标数据块的擦除次数接近,并且接近于平均值,各目标数据块的擦除次数分布比较均勻,从而可以使得闪存介质的寿命最优化。并且,采用本实施例的周期性排列动态切换映射策略,每次切换映射目标时,仅仅迁移缓存中的两个目标数据块中的有效数据,不会对性能产生严重的影响,可以适用于各种尺寸的缓存。上文所示出的底层存储介质与缓存之间的各周期性动态映射切换方法,适用于业务呈现周期性规律的应用场景,尤其适用于业务呈现周期性规律且系统访问最为频繁的数据在硬盘上存储位置固定的场景。本发明的实施例还提供一种控制缓存映射的方案,该方案包括监控底层存储介质的缓存中各目标数据块的擦写次数,其中,所述底层存储介质中一个或多个数据块只映射到所述缓存中的一个目标数据块,所述底层存储介质的缓存包括闪存介质;当所述缓存中具有最大擦写次数的目标数据块与具有最小擦写次数的目标数据块之间的擦写次数之差达到预先设定的擦写阈值时,更换所述底层存储介质中的至少一个数据块所映射到的所述缓存中的目标数据块,所更换的所述缓存中的目标数据块包括当前所述缓存中具有最大擦写次数的目标数据块;以及继续监控所述缓存中的各目标数据块在进行所述更换后所产生的擦写次数。图12示出了根据本发明实施例二的控制缓存映射的方法的流程示意图。本实施例中,闪存介质作为缓存,底层存储介质示例性地为硬盘,示例性但不作为限制地,缓存具有4个目标数据块,硬盘包括两个组,每个组划分成与缓存的4个目标数据块相对应的4 个数据块,并且硬盘中的每一个数据块的大小与闪存介质中的每一个目标数据块的大小一致。如图12所示出的,本实施例的控制缓存映射的方法包括在步骤S1201中,监控缓存中各目标数据块的擦写次数,并记录。在步骤S1202中,当缓存中具有最大擦写次数的目标数据块与具有最小擦写次数的目标数据块之间的擦写次数之差达到预先设定的擦写阈值时,将具有最大擦写次数的目标数据块与具有最小擦写次数的目标数据块之间缓存的数据进行交换。在步骤S1203中,根据对目标数据块所做的交换,相应地更换底层存储介质中当前映射至具有最大擦写次数的目标数据块的所有数据块和当前映射至具有最小擦写次数的目标数据块的所有数据块所映射到的缓存中的目标数据块。具体地,即将底层存储介质中当前映射至具有最大擦写次数的目标数据块的所有数据块更换为映射至当前具有最小擦写次数的目标数据块,而将底层存储介质中当前映射至具有最小擦写次数的目标数据块的所有数据块更换为映射至当前具有最大擦写次数的目标数据块。具体地,可以通过更改缓存元数据来改变硬盘中的数据块和缓存中的目标数据块的映射关系。在步骤S1204中,在对硬盘与缓存之间的映射进行上述改变后,将所记录的所述缓存的各目标数据块的擦写次数清零。然后回到步骤S1201,继续监控并记录在经过上述映射改变之后所产生的各目标数据块的擦写次数,并在满足条件时执行步骤S1203-S1204。 示例性地,可以利用计数器来记录各目标数据块的擦写次数。在每次映射改变后,将计数器清零,然后重写计数,记录映射改变后的产生的擦写次数。图1、图13-图14示出了利用本发明实施例二的方法来控制缓存映射的一个具体实例。在该例中,假定在初始时硬盘与缓存之间采用图1所示的映射关系。如图1所示出的,在初始时,硬盘与缓存的映射关系为硬盘的数据块0和数据块4映射到缓存的目标数据块0,硬盘的数据块1和数据块5映射到缓存的目标数据块1,硬盘的数据块2和数据块6映射到缓存的目标数据块2,硬盘的数据块3和数据块7映射到缓存的目标数据块3。监控缓存中各目标数据块的擦写次数。假定当前目标数据块0具有最大的擦写次数,目标数据块1具有最小的擦写次数。 随着数据缓存的进行,监控并记录各目标数据块的擦写次数。当确定出目标数据块0与目标数据块1的擦写次数之差达到擦写阈值S时,将具有最大擦写次数的目标数据块0与具有最小擦写次数的目标数据块1之间缓存的数据进行交换,并相应地将硬盘中当前映射至目标数据块ο的所有数据块(该例中为数据块0和数据块4)更换为映射至目标数据块1, 而将当前映射至目标数据块1的所有数据块(该例中为数据块1和数据块幻更换为映射至目标数据块0。改变后的映射关系如图13中所示出的。然后将缓存中的各目标数据块的擦写次数清零,并继续监控缓存中的各目标数据块在进行映射改变后所产生的擦写次数。在该例中在进行上次交换后,随着数据缓存的进行,假定目标数据块3的擦写次数变成最小,目标数据块2的擦写次数变成最大,当目标数据块2的擦写次数与目标数据块 3的擦写次数之差达到擦写阈值S时,将具有最大擦写次数的目标数据块2与具有最小擦写次数的目标数据块3之间缓存的数据进行交换,并相应地将硬盘中当前映射至目标数据块 2的所有数据块(该例中为数据块2和数据块6)更换为映射至目标数据块3,而将当前映射至目标数据块3的所有数据块(该例中为数据块3和数据块7)更换为映射至目标数据块 2。改变后的映射关系如图14所示。然后,将缓存中的各目标数据块的擦写次数清零,并继续监控缓存中各目标数据块在映射改变后产生的擦写次数,并在具有最大擦写次数的目标数据块与具有最小擦写次数的目标数据块之间的擦写次数之差达到预先设定的擦写阈值S 时,对硬盘与缓存之间的映射作出上文所示出的类似的更换。利用本实施例可以保证闪存介质中的目标数据块及擦除块的最大擦写次数和最小擦写次数的差距可控,使得各个目标数据块的擦写次数接近平均值。并且通过设置擦写阈值S可以控制闪存介质中目标数据块擦写次数的方差。本实施例尤其适用于业务不呈现周期性现象或周期性现象不明显的应用场景。在本发明实施例的实现中,可以利用替换次数来代替擦写次数,通过监控并记录目标数据块的替换次数来进行动态映射切换。如本领域技术人员所理解的,在缓存中,把数据换出并重新写入其它数据的操作叫做缓存的替换。在具体应用中,用户可以根据实际的应用场景,选择启用上文所示出的各动态映射策略,并在不需要的时候关闭动态映射策略。进而,在选择动态映射策略后,用户还可根据实际的需要通过相应的接口模块设置相应的参数,如切换周期、切换循环和/或擦写阈值等。在未选择动态切换策略时,用户可以使用默认的映射策略,如可以是直接映射、全相联映射、组相联映射等。本领域技术人员应当理解,除了上文所示出的切换方法外,还可以有利用其它的切换顺序的映射切换方法,只要该切换方法能使得底层存储介质中访问频繁的数据块中的数据不是一直只对应某一个固定的缓存目标数据块,就可以使得作为缓存的闪存介质的某一目标数据块不是很快地达到使用极限,从而可以延长闪存介质的寿命。本领域技术人员应当理解,当切换方法使得缓存中的各目标数据块的擦写次数相接近如趋于平均时,可以最大化闪存介质的寿命。现在参考图15,其示出了按照本发明实施例的缓存系统。
如图15所示,本发明实施例的缓存系统1500包括底层存储介质1510 ;闪存介质1520,耦合至所述底层存储介质,用于作为所述底层存储介质的缓存,其中所述底层存储介质中的一个或多个数据块只映射到所述缓存中的一个目标数据块;处理器1530,被配置成以预定的时间周期更换所述底层存储介质中的至少一个数据块所映射到的所述缓存中的目标数据块,所更换的所述缓存中的目标数据块包括当前所述缓存中具有最大擦写次数的目标数据块。其中,缓存系统中所述处理器还可以进一步被配置成在一个切换循环的每一个切换周期内,更换所述底层存储介质中的至少一个数据块所映射到的所述缓存中的目标数据块,以使得在一个切换循环后,所述缓存中的各目标数据块的擦写次数相接近,其中,一个切换循环所包括的切换周期的数目不小于所述缓存所包含的目标数据块的数目N。其中,缓存系统中所述处理器还可以进一步被配置成在一个切换循环的每一个切换周期内,更换所述底层存储介质中的每一个数据块所映射到的所述缓存中的目标数据块,使得所述底层存储介质中的每一个数据块在一个切换循环的不同切换周期内映射到所述缓存中的不同目标数据块;其中,一个切换循环包括的切换周期的数目等于所述缓存所包含的目标数据块的数目。其中,缓存系统中所述处理器还可以进一步被配置成在一个切换循环的每一个切换周期内,按照所述缓存中目标数据块的编号顺序,以轮转的方式将所述缓存中每一目标数据块的数据分别迁移至编号与其相邻的目标数据块中,并根据目标数据块中数据的迁移,相应地更换所述底层存储介质中每一个数据块所映射到的目标数据块。其中,缓存系统中所述处理器还可以进一步被配置成在一个切换循环的每一个切换周期内,将所述缓存中当前具有最大擦写次数的目标数据块中缓存的数据与所述缓存中除该具有最大擦写次数之外的其它目标数据块中、在当前的切换循环中其内数据进行过最少次数的交换、并且与在当前的切换循环的上一个切换周期中与该当前具有最大擦写次数的目标数据块进行交换的目标数据块不同的任一个目标数据块中缓存的数据相交换,并且相应地更换所对应的所述底层存储介质中的数据块所映射到的目标数据块;其中,所述一个切换循环包含N乘以(N-I)个切换周期,在所述一个切换循环中,所述缓存的各目标数据块在不同的N-I个切换周期内为所述缓存中具有最大擦写次数的目标数据块。本发明实施例还提供了一种缓存系统,该存储系统包括底层存储介质;闪存介质,耦合至所述底层存储介质,用于作为所述底层存储介质的缓存,其中所述底层存储介质中的一个或多个数据块只映射到所述缓存中的一个目标数据块;处理器,被配置成监控所述缓存中各目标数据块的擦写次数;当所述缓存中具有最大擦写次数的目标数据块与具有最小擦写次数的目标数据块之间的擦写次数之差达到预先设定的擦写阈值时,更换所述底层存储介质中的至少一个数据块所映射到的所述缓存中的目标数据块,所更换的所述缓存中的目标数据块包括当前所述缓存中具有最大擦写次数的目标数据块;以及继续监控所述缓存中的各目标数据块在进行所述更换后所产生的擦写次数。其中,缓存系统中所述处理器还可以进一步被配置成将所述具有最大擦写次数的目标数据块与具有最小擦写次数的目标数据块之间缓存的数据进行交换,并相应地将所述底层存储介质中当前映射至所述具有最大擦写次数的目标数据块的所有数据块更换为映射至所述具有最小擦写次数的目标数据块,而将所述底层存储介质中当前映射至所述具有最小擦写次数的目标数据块的所有数据块更换为映射至所述具有最大擦写次数的目标数据块。本领域技术人员应当理解,可以利用软件、硬件或者软硬件结合的方式来实现装置1500中处理器的功能。本发明实施例还提供机器可读存储介质,其存储有机器可执行指令,当该机器可执行指令被执行时使得机器实施以预定的时间周期更换底层存储介质中至少一个数据块所映射到所述底层存储介质的缓存中的目标数据块,其中,所述底层存储介质中一个或多个数据块只映射到所述缓存中的一个目标数据块,所述底层存储介质的缓存包括闪存介质,所更换的所述缓存中的目标数据块包括当前所述缓存中具有最大擦写次数的目标数据块。其中,该方法还可以包括以下步骤在一个切换循环的每一个切换周期内,更换所述底层存储介质中的至少一个数据块所映射到的所述缓存中的目标数据块,以使得在一个切换循环后,所述缓存中的各目标数据块的擦写次数相接近,其中,一个切换循环所包括的切换周期的数目不小于所述缓存所包含的目标数据块的数目N。其中,该方法还可以包括以下步骤在一个切换循环的每一个切换周期内,更换所述底层存储介质中的每一个数据块所映射到的所述缓存中的目标数据块,使得所述底层存储介质中的每一个数据块在一个切换循环的不同切换周期内映射到所述缓存中的不同目标数据块;其中,一个切换循环包括的切换周期的数目等于所述缓存所包含的目标数据块的数目N。其中,上面所描述的发送步骤还可以进一步包括以下步骤在一个切换循环的每一个切换周期内,按照所述缓存中目标数据块的编号顺序,以轮转的方式将所述缓存中每一目标数据块的数据分别迁移至编号与其相邻的目标数据块中,并根据目标数据块中数据的迁移,相应地更换所述底层存储介质中每一个数据块所映射到的目标数据块。其中,上面所描述的检测步骤还可以进一步包括以下步骤在一个切换循环的每一个切换周期内,将所述缓存中当前具有最大擦写次数的目标数据块中缓存的数据与所述缓存中除该具有最大擦写次数之外的其它目标数据块中、在当前的切换循环中其内数据进行过最少次数的交换、并且与在当前的切换循环的上一个切换周期中与该当前具有最大擦写次数的目标数据块进行交换的目标数据块不同的任一个目标数据块中缓存的数据相交换,并且相应地更换所对应的所述底层存储介质中的数据块所映射到的目标数据块;其中, 所述一个切换循环包含N乘以(N-I)个切换周期,在一个切换循环中所述缓存中的各目标数据块在不同的N-I个切换周期内为所述缓存中具有最大擦写次数的目标数据块。本发明实施例还提供机器可读存储介质,其存储有机器可执行指令,其中,当该机器可执行指令被执行时使得机器实施监控底层存储介质的缓存中各目标数据块的擦写次数,其中,所述底层存储介质中一个或多个数据块只映射到所述缓存中的一个目标数据块, 所述底层存储介质的缓存包括闪存介质;当所述缓存中具有最大擦写次数的目标数据块与具有最小擦写次数的目标数据块之间的擦写次数之差达到预先设定的擦写阈值时,更换所述底层存储介质中的至少一个数据块所映射到的所述缓存中的目标数据块,所更换的所述缓存中的目标数据块包括当前所述缓存中具有最大擦写次数的目标数据块;以及继续监控所述缓存中的各目标数据块在进行所述更换后所产生的擦写次数。
其中,该方法还可以包括以下步骤将所述具有最大擦写次数的目标数据块与具有最小擦写次数的目标数据块之间缓存的数据进行交换,并相应地将所述底层存储介质中当前映射至所述具有最大擦写次数的目标数据块的所有数据块更换为映射至所述具有最小擦写次数的目标数据块,而将所述底层存储介质中当前映射至所述具有最小擦写次数的目标数据块的所有数据块更换为映射至所述具有最大擦写次数的目标数据块。本领域技术人员应当理解,本发明的各个实施例所公开的方法和装置,可以在不偏离发明实质的情况下做出各种变形和改变,这些变形和改变都应当落入在本发明的保护范围之内。因此,本发明的保护范围由所附的权利要求书来定义。
权利要求
1.一种控制缓存映射的方法,其特征在于,所述方法包括以预定的时间周期更换底层存储介质中至少一个数据块所映射到所述底层存储介质的缓存中的目标数据块,其中,所述底层存储介质中一个或多个数据块只映射到所述缓存中的一个目标数据块,所述底层存储介质的缓存包括闪存介质,所更换的所述缓存中的目标数据块包括当前所述缓存中具有最大擦写次数的目标数据块。
2.根据权利要求1所述的方法,其特征在于,所述以预定的时间周期更换所述底层存储介质中的至少一个数据块所映射到的所述缓存中的目标数据块的步骤包括在一个切换循环的每一个切换周期内,更换所述底层存储介质中至少一个数据块所映射到的所述缓存中的目标数据块,以使得在一个切换循环后,所述缓存中的各目标数据块的擦写次数相接近,其中,一个切换循环所包括的切换周期的数目不小于所述缓存所包含的目标数据块的数目N。
3.根据权利要求1所述的方法,其特征在于,所述以预定的时间周期更换所述底层存储介质中的至少一个数据块所映射到的所述缓存中的目标数据块的步骤包括在一个切换循环的每一个切换周期内,更换所述底层存储介质中的每一个数据块所映射到的所述缓存中的目标数据块,使得所述底层存储介质中的每一个数据块在一个切换循环的不同切换周期内映射到所述缓存中的不同目标数据块;其中,一个切换循环包括的切换周期的数目等于所述缓存所包含的目标数据块的数目N。
4.根据权利要求3所述的方法,其特征在于,所述在一个切换循环的每一个切换周期内,更换所述底层存储介质中的每一个数据块所映射到的所述缓存中的目标数据块的步骤包括在一个切换循环的每一个切换周期内,按照所述缓存中目标数据块的编号顺序,以轮转的方式将所述缓存中每一目标数据块的数据分别迁移至编号与其相邻的目标数据块中, 并根据目标数据块中数据的迁移,相应地更换所述底层存储介质中每一个数据块所映射到的目标数据块。
5.根据权利要求1所述的方法,其特征在于,所述以预定的时间周期更换所述底层存储介质中的至少一个数据块所映射到的所述缓存中的目标数据块的步骤包括在一个切换循环的每一个切换周期内,将所述缓存中当前具有最大擦写次数的目标数据块中缓存的数据与所述缓存中除该具有最大擦写次数之外的其它目标数据块中、在当前的切换循环中其内数据进行过最少次数的交换、并且与在当前的切换循环的上一个切换周期中与该当前具有最大擦写次数的目标数据块进行交换的目标数据块不同的任一个目标数据块中缓存的数据相交换,并且相应地更换所对应的所述底层存储介质中的数据块所映射到的目标数据块;其中,所述一个切换循环包含N乘以(N-I)个切换周期,在所述一个切换循环中,所述缓存的各目标数据块在不同的N-I个切换周期内为所述缓存中具有最大擦写次数的目标数据块。
6.一种控制缓存映射的方法,其特征在于,所述方法包括监控底层存储介质的缓存中各目标数据块的擦写次数,其中,所述底层存储介质中一个或多个数据块只映射到所述缓存中的一个目标数据块,所述底层存储介质的缓存包括闪存介质;当所述缓存中具有最大擦写次数的目标数据块与具有最小擦写次数的目标数据块之间的擦写次数之差达到预先设定的擦写阈值时,更换所述底层存储介质中的至少一个数据块所映射到的所述缓存中的目标数据块,所更换的所述缓存中的目标数据块包括当前所述缓存中具有最大擦写次数的目标数据块;以及继续监控所述缓存中的各目标数据块在进行所述更换后所产生的擦写次数。
7.根据权利要求6所述的方法,其特征在于,所述更换所述底层存储介质中的至少一个数据块所映射到的所述缓存中的目标数据块的步骤包括将所述具有最大擦写次数的目标数据块与具有最小擦写次数的目标数据块之间缓存的数据进行交换,并相应地将所述底层存储介质中当前映射至所述具有最大擦写次数的目标数据块的所有数据块更换为映射至所述具有最小擦写次数的目标数据块,而将所述底层存储介质中当前映射至所述具有最小擦写次数的目标数据块的所有数据块更换为映射至所述具有最大擦写次数的目标数据块。
8.一种缓存系统,其特征在于,包括底层存储介质;闪存介质,耦合至所述底层存储介质,用于作为所述底层存储介质的缓存,其中所述底层存储介质中一个或多个数据块只映射到所述缓存中的一个目标数据块;处理器,被配置成以预定的时间周期更换底层存储介质中至少一个数据块所映射到所述底层存储介质的缓存中的目标数据块,所更换的所述缓存中的目标数据块包括当前所述缓存中具有最大擦写次数的目标数据块。
9.根据权利要求8所述的缓存系统,其特征在于,所述处理器进一步被配置成在一个切换循环的每一个切换周期内,更换所述底层存储介质中至少一个数据块所映射到的所述缓存中的目标数据块,以使得在一个切换循环后,所述缓存中的各目标数据块的擦写次数相接近,其中,一个切换循环所包括的切换周期的数目不小于所述缓存所包含的目标数据块的数目N。
10.根据权利要求8所述的缓存系统,其特征在于,所述处理器进一步被配置成在一个切换循环的每一个切换周期内,更换所述底层存储介质中的每一个数据块所映射到的所述缓存中的目标数据块,使得所述底层存储介质中的每一个数据块在一个切换循环的不同切换周期内映射到所述缓存中的不同目标数据块;其中,一个切换循环包括的切换周期的数目等于所述缓存所包含的目标数据块的数目N。
11.根据权利要求10所述的缓存系统,其特征在于,所述处理器进一步被配置成在一个切换循环的每一个切换周期内,按照所述缓存中目标数据块的编号顺序,以轮转的方式将所述缓存中每一目标数据块的数据分别迁移至编号与其相邻的目标数据块中, 并根据目标数据块中数据的迁移,相应地更换所述底层存储介质中每一个数据块所映射到的目标数据块。
12.根据权利要求8所述的缓存系统,其特征在于,所述处理器进一步配置成在一个切换循环的每一个切换周期内,将所述缓存中当前具有最大擦写次数的目标数据块中缓存的数据与所述缓存中除该具有最大擦写次数之外的其它目标数据块中、在当前的切换循环中其内数据进行过最少次数的交换、并且与在当前的切换循环的上一个切换周期中与该当前具有最大擦写次数的目标数据块进行交换的目标数据块不同的任一个目标数据块中缓存的数据相交换,并且相应地更换所对应的所述底层存储介质中的数据块所映射到的目标数据块;其中,所述一个切换循环包含N乘以(N-I)个切换周期,在所述一个切换循环中,所述缓存中的各目标数据块中各自在N-I个切换周期内为所述缓存中具有最大擦写次数的目标数据块。
13.一种缓存系统,其特征在于,包括底层存储介质;闪存介质,耦合至所述底层存储介质,用于作为所述底层存储介质的缓存,其中所述底层存储介质中的一个或多个数据块只映射到所述缓存中的一个目标数据块;处理器,被配置成监控所述缓存中各目标数据块的擦写次数;当所述缓存中具有最大擦写次数的目标数据块与具有最小擦写次数的目标数据块之间的擦写次数之差达到预先设定的擦写阈值时,更换所述底层存储介质中的至少一个数据块所映射到的所述缓存中的目标数据块,所更换的所述缓存中的目标数据块包括当前所述缓存中具有最大擦写次数的目标数据块;以及继续监控所述缓存中的各目标数据块在进行所述更换后所产生的擦写次数。
14.根据权利要求13所述的缓存系统,其特征在于,所述处理器进一步被配置成将所述具有最大擦写次数的目标数据块与具有最小擦写次数的目标数据块之间缓存的数据进行交换,并相应地将所述底层存储介质中当前映射至所述具有最大擦写次数的目标数据块的所有数据块更换为映射至所述具有最小擦写次数的目标数据块,而将所述底层存储介质中当前映射至所述具有最小擦写次数的目标数据块的所有数据块更换为映射至所述具有最大擦写次数的目标数据块。
15.—种机器可读存储介质,其存储机器可执行指令,当所述机器可执行指令被执行时使得机器执行权利要求1-7的任何一个权利要求中的步骤。
全文摘要
本发明涉及控制缓存映射的方法及缓存系统,其中,该方法包括以预定的时间周期更换底层存储介质中至少一个数据块所映射到底层存储介质的缓存中的目标数据块,其中,底层存储介质中一个或多个数据块只映射到缓存中的一个目标数据块,底层存储介质的缓存包括闪存介质,所更换的缓存中的目标数据块包括当前缓存中具有最大擦写次数的目标数据块。利用该技术方案可以优化闪存介质的使用寿命。
文档编号G06F12/08GK102439572SQ201180002426
公开日2012年5月2日 申请日期2011年10月27日 优先权日2011年10月27日
发明者王子毅, 王朱珍 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1