基于动态窗口管理的磨损均衡方法及装置的制作方法

文档序号:6444567阅读:197来源:国知局
专利名称:基于动态窗口管理的磨损均衡方法及装置的制作方法
技术领域
本发明涉及固态硬盘存储技术领域,尤其涉及固态硬盘存储技术领域中的一种基于动态窗口管理的磨损均衡方法及装置。
背景技术
在固态硬盘领域,闪存被广泛地使用。闪存物理块的擦除次数是有限的,最新工艺的MLC典型擦写次数只有3,000-5,000次。在固态存储设备使用期间,由于写入数据序列的差异,存在冷热数据,其被更新的频繁差别很大。冷数据被更新的频率很低,因此所占用的物理块被擦的次数很低;而热数据所占用的物理数据块则相反,如果不做特殊的磨损均衡处理,热数据频繁使用将提前到达擦写寿命而出现坏块,此时,系统会因为坏块的增加而导致写放大的增加,进一步加剧固态硬盘寿命的缩短。因此,如何设计有效的磨损均衡机制来平衡冷热数据的存储,是影响固态硬盘寿命的关键因素。关于磨损均衡算法主要有两种一种是动态磨损均衡;另一种是静态磨损均衡。基于相对/绝对的物理块擦除次数,动态磨损均衡在分配空闲物理块时总是使用擦除次数最小的物理块写入新数据,在此情形下,存在一个局限情形,例如当某部分数据写入后,由于从来没有因为被复写而成为垃圾数据,则该类块一直被占用,没有机会增加擦除次数;而静态磨损均衡在出现前述情形时,定义该类写入后一直没有变动的数据为冷数据,根据不同的触发条件,动态进行冷数据的处理,将冷数据交换到擦除次数较大的物理块上。现有技术的磨损均衡技术对擦除次数的存储空间以及冷数据的处理策略做出了一些改进,但对于物理块的擦写次数偏离约束以及冷数据动态处理的触发时机没有做出有效的改进。常规方法一般是周期性地检查各物理块的擦除次数,在检测到最大与最小的物理块擦除次数偏离某预定的阈值时,进行冷数据的处理操作。但是对于磨损均衡算法来说, 片面地追求各物理块的擦除次数均衡,必然带来很多因冷数据处理而引发的无效写操作, 对于固态硬盘来说,表现为系统的写放大增加,从而降低了硬盘的写寿命。此外,常规的冷热数据处理方式对于各物理块擦除次数偏离的约束很大程度上取决于周期性检查的频率,过高的频率对于固态硬盘的整体性能影响较大,过低的频率则会使得物理块的擦除次数偏离度远远超出预期,因此不能对物理块的擦除次数偏离作出合理、有效的控制。因此需要一种能有效的解决现有磨损均衡方法中存在的问题的改进的磨损均衡方法及装置。

发明内容
基于上述问题,本发明引入了一种基于动态窗口管理的磨损均衡方法,能够对物理块的擦除次数偏离作出合理、有效的控制;提供自我感知型的冷数据处理触发时机,在将磨损均分到全盘的同时,降低整体的写放大,能有效提高固态硬盘的寿命。本发明一方面提供了一种基于动态窗口管理的磨损均衡方法,包括
5
步骤1,根据管理对象中BU的最大擦除次数maX_Wear和可擦除次数EC_MAX计算窗口最大允许偏离数 Τ, T = f (life_remain),并且 life_remain = EC_MAX-max_wear ;步骤2,依据各BU相对最小擦除次数的偏离值进行分组,将管理对象中的BU分为 0到T-I共T簇,具有相同擦除偏离值的BU位于同一簇内,以M值表示冷热数据的分界值, 并且M初始值位于窗口中间;步骤3,M值随着写入的数据的属性而发生变化,当窗口的移动受限制于最低端时,M值将加1,以便有更多的空间来承载热数据,当窗口的移动受制于最高端时,M值将减 1,以提供更多的空间来承载冷数据。在一个实施方式中,步骤3包括当簇0上的BU内的热数据沉淀成冷数据,并且 Hot区的可用空白块低于第一阈值TL时,将簇0上沉淀的冷数据写入到Cold区的空白块中,同时对Hot区执行垃圾回收,并将M的值加1。所述将簇0上沉淀的冷数据写入到Cold区的空白块中,同时对Hot区执行垃圾回收的步骤包括步骤61,将簇0上沉淀下来的冷数据写入到Cold区内按序从簇M到簇T-I中第一个可用的空白块上;步骤62,将簇0上处理完之后的BU擦除,其擦除次数加1,对应的BU进入到簇1, 如果簇0上仍有待处理的BU,重复步骤61,如果簇0上已无待处理的BU,则进入到步骤63 ;步骤63,更新各簇号,簇N更新为簇N-l,N为从1到T-I的整数。所述磨损均衡方法进一步包括检查Hot区的可用空白块是否回到第一阈值TL之上,如果没有则再次从步骤61开始执行,循环直到Hot区的可用空白块回到TL上。在另一实施方式中,步骤3包括当簇T-I上的BU内的冷数据转变为垃圾数据,并且Cold区的可用空白块低于第二阈值TH时,将簇0上的数据写入到Hot区的空白块中,同时对Hot/Cold区执行垃圾回收,并将M的值减1。所述将簇0上的数据写入到Hot区的空白块中,同时对Hot/Cold区执行垃圾回收的步骤包括步骤81,将簇0上沉淀下来的冷数据写入到Hot区内按序从簇1到簇M-I中第一个可用的空白块上;步骤82,将簇0上处理完之后的BU擦除,其擦除次数加1,对应的BU进入到簇1, 如果簇0上仍有待处理的BU,重复步骤81,如果簇0上已无待处理的BU,则进入到步骤83 ;步骤83,更新各簇号,簇N更新为簇N-l,N为从1到T-I的整数;步骤84,将簇T-2上的垃圾块擦除变成空白块,相关的BU进入到新的簇T_l。所述的磨损均衡方法进一步包括步骤91,更新系统最大擦除次数max_wear为max_wear+l ;步骤92,重新计算窗口大小T ;步骤93,代入新的窗口大小值T,检查Cold区的空白块是否回到第二阈值TH之上,如果没有则再次从步骤81开始执行,循环直到Cold区的空白块回到TH上。本发明另一方面提供了一种基于动态窗口管理的磨损均衡装置,包括计算模块,用于根据管理对象中BU的最大擦除次数maxjear和可擦除次数EC_ MAX 计算窗口最大允许偏离数 Τ, T = f (life_remain),并且 life_remain = EC_MAX-max_wear ;分组模块,用于依据各BU相对最小擦除次数的偏离值将管理对象中的BU分为0 到T-I共T簇,具有相同擦除偏离值的BU位于同一簇内,以M值表示冷热数据的分界值,并且M初始值位于窗口中间;均衡模块,用于根据写入数据的属性控制窗口的移动,当窗口的移动受限制于最低端时,M值将加1,以便有更多的空间来承载热数据,当窗口的移动受制于最高端时,M值将减1,以提供更多的空间来承载冷数据。其中所述均衡模块包括检测模块,用于检测各个簇上BU内的数据的属性;比较模块,用于比较Hot区/Cold区的可用空白块与其各自的阈值;与所述检测模块和比较模块连接的写入模块,用于在检测到簇0上的BU内的热数据沉淀成冷数据,并且Hot区的可用空白块低于第一阈值TL时将簇0上沉淀的冷数据写入到Cold区内按序从簇M到簇T-I中第一个可用的空白块上,以及在检测到簇T-I上的BU 内的冷数据转变为垃圾数据,并且Cold区的可用空白块低于第二阈值TH时将簇0上的数据写入到Hot区从簇1到簇M-I中第一个可用的空白块中;以及垃圾回收模块,用于对Hot区/Cold区执行垃圾回收。在一个实施方式中,所述垃圾回收模块包括冷数据处理模块,用于将簇0上沉淀下来的冷数据写入到Cold区内按序从簇M到簇T-I中第一个可用的空白块上;第一擦除模块,用于将簇0上处理完之后的BU擦除,对应的BU的擦除次数加1,并且所述对应的BU进入到簇1 ;簇号更新模块,用于更新各簇号,簇N更新为簇N-l,N为从1到T-I的整数。在另一实施方式中,所述垃圾回收模块包括数据处理模块,用于将簇0上的数据写入到Hot区内按序从簇1到簇M-I中第一个可用的空白块上;第一擦除模块,用于将簇0上处理完之后的BU擦除,对应的BU的擦除次数加1,并且所述对应的BU进入到簇1 ;簇号更新模块,用于更新各簇号,簇N更新为簇N-l,N为从1到T_1的整数;第二擦除模块,用于将簇T-2上的垃圾块擦除变成空白块,相关的BU进入到新的簇 T-1。应理解对本发明的前面的概括性描述和下面的详细描述都是示例性和说明性的, 意在提供对要求保护的本发明的进一步说明。


图1是根据本发明实施方式的擦除次数最大允许偏离数T的线性关系示意图;图2是根据本发明实施方式的擦除次数最大允许偏离数T的非线性关系示意图;图3是根据本发明的实施方式对管理对象中各BU相对最小擦除次数的偏离值进行分组的示意图;图4是根据本发明实施方式的主机端写操作示意图5是根据本发明实施方式的Hot区剩余空白块低于阈值TL,且簇0上有BU由热数据变成冷数据的静态磨损均衡方法示意图;图6是根据本发明实施方式的Hot区静态磨损均衡方法流程图;图7是根据本发明实施方式的Cold区剩余空白块低于阈值TH,且簇T-I上垃圾块需要擦除时的静态磨损均衡方法示意图;图8是根据本发明实施方式的Cold区静态磨损均衡方法流程图;图9是根据本发明实施方式的磨损均衡装置结构图。
具体实施例方式为便于说明和理解,本发明中以目前常见的闪存单个逻辑单元(LUN)为管理对象,其内包含有4096个擦除单元-物理块(BU),每个BU可以被擦除5000次(EC_MAX),每个BU内包含256个编程单元-物理页(PU),每个PU可以被独立读写,但是在其所在的BU 擦除后只能写1次。物理块的状态可分为如下四种坏块,出厂标识或者使用过程中产生的坏块,不能继续用于数据存储;空白块,擦除后没有被写入数据的物理块;数据块,包含有至少一个有效页数据的物理块;垃圾块,所有页都是无效数据的物理块。在这四种状态的物理块中,除了坏块外其他三种物理块均是磨损均衡所要操作的对象。在内存单元中维护管理对象中物理块的最大擦除次数maxjear,并将该擦除次数记录在掉电非易失性存储设备中,以便掉电后恢复。有物理块被擦除则检查是否是簇T-I 上的BU被擦除,如果是,则更新此maX_wear,其他簇上的BU被擦除不影响最大擦除次数。在任意时间点,定义管理对象内物理块擦除次数最大允许偏离数T满足如下关系life_remain = EC_MAX-max_wear [1]T = f (life_remain)[2]其中函数f(life_remain)可以是根据需要的任一符合要求的表达式。优选地可以采用但不局限于如下的实现形式1、线性关系,T = life_remain*r%[3]其中,r为可调系数,取值为1-99,优选地可为10,如图1中所示。2、非线性关系,T = EC_MAX*r% *cos ( Π *max_wear/ (2*EC_MAX)) [4]其中,r为可调系数,取值为1-99,优选地可为10,随着最大擦除次数的增长,窗口 T的大小的下降趋势变快,从而对擦写次数的约束逐步加强,如图2所示。如图3所示,依据各BU相对最小擦除次数的偏离值进行分组,则可分为0到T-I 共T组,具有相同擦除偏离值的位于同一组内,这里定义为簇,对应地存在以下情形所有管理对象内的BU均位于其内的任意一个簇内;某些偏离值上可能没有对应的BU ;在任意一个簇上都可能存在所管理的任意类型的BU(数据块、垃圾块、空白块、坏块)。在图3中,擦除次数偏低的BU用来存放经常被更新的热数据;擦除次数偏高的BU 用来存放很少被更新的冷数据。冷热数据的判断有很多方式,优选地,最近被复写次数较多
8的LBA(主机端SSD的最小可访问单元)内所携带的数据为热数据,其余的数据为冷数据。冷热数据的分界值以M表示,初始时刻M位于窗口中间(M= (T+l)/2, T为奇数; M = T/2,T为偶数),随着写入的数据序列的属性M遵循如下的规则向左或向右偏移当窗口的移动受限制于最低端时,M值将加1,这样将有更多的空间来承载热数据;当窗口的移动受制于最高端时,M值将减1,以提供更多的空间承载冷数据。当主机端发起新的数据写操作时,如图4中所示,主机写入的数据经过冷热数据仲裁器后,分别写入到对应区域的空白物理块中。假设一个SSD盘总共有X个LBA,在固态硬盘内存中维护Y个(Y远小于X,具体可根据内存大小选择,例如可选择Y = x*2% ) LBA链,链上每个元素记录对应的LBA以及被复写的次数,其在链中的位置代表其被复写的时间先后顺序,链首的LBA写入时间最早、链尾的LBA写入时间最新。当主机端新写入一个LBA时,如果该LBA已经在LBA链中,则将该 LBA写入次数加1,同时将该LBA移动到链尾,如果该LBA不在LBA链中,并且链中元素已满, 则将链首元素更新成新写入的该LBA并移动到链尾,同时设置该LBA写入次数为1,如果该 LBA不在LBA链中,并且链中元素不满,则设置该LBA写入次数为1,同时将该LBA添加到链尾。完成LBA插入链表后,冷热数据仲裁器根据每个LBA的写入计数是否高于预定阈值来判定写入到该LBA的数据,计数高于预定阈值则该LBA内写入的数据为热数据、计数低于预定阈值则该LBA内写入的数据为冷数据。冷热数据仲裁器对于冷热数据的分离仅仅作用于主机端写入数据时。随着时间的推移,冷热数据仲裁器判定的热数据因为很久没有再被复写,将转化为冷数据,需要使用静态磨损均衡来将其上的有效数据搬迁到Cold Area上的空白物理块中。冷热数据的转化是由其被复写更新的时机所推动的,而冷热数据处理的触发时机由窗口的移动来推动,在上述实施例中,位于低端簇O上的个别BU随着时间的积累,由于一直保存有有效数据无法被擦除,代表此BU内的数据在变冷;位于高端簇T-I上的部分BU因为数据被复写,变成无效数据,代表相关数据变成了垃圾数据。在写入新数据时,需要将新数据写入到空白物理页中。随着写入的数据量越来越多,某些BU内部分PU中先前写入的数据因为被复写变成无效,对于此类BU,因为剩余有效数据的存在,不能对其直接擦除。当系统中Hot Area或Cold Area中的空白块低于各自的预定阈值后,将引发一次垃圾回收操作,即搜索有效PU数据最少的BU,将搜索到的多个BU内的有效数据合并,然后擦除所述多个BU以释放出可用空白块,垃圾回收操作将增加所述多个BU的擦除次数。如图5所示,对于HotArea的BU,预期是其能够很快被主机端再次复写,从而使得其内的大部分PU变成无效数据,并通过上述的垃圾回收,来保证Hot Area有足够可用的空白块来承接新写入的数据。但在某些情形下,经冷热数据仲裁器识别的热数据写入到Hot 区后再没有被更新过,则其内所有PU均有效,不会被垃圾回收操作选择和合并,所以此类 BU 一直维持不被擦除,如图5中实施例所示,簇O上的BU,此时由热数据变成了冷数据,当 Hot区的可用空白物理块低于第一阈值TL时(受限于簇O上的冷数据的沉淀,也就是窗口低端没有做移动所引起),需要将簇O上的数据处理到Cold区域的空白物理块中,同时对 Hot区域执行如上所述的垃圾回收,最后将M的值加1,以提供更多的空白块给Hot区使用。此时,如图5中实施例所示,当Hot区域的剩余空白块低于阈值TL,且簇O上有BU 由热数据变成冷数据时,需要依次执行如图6中所示的静态磨损均衡方法
步骤1,将簇0上沉淀下来的冷数据写入到Cold Area内某个簇上的空白块(按序从簇M到T-1,选择第一个可用的空白物理块)上;步骤2,将簇0上处理完之后的BU擦除,其擦除次数加1,对应的BU进入到簇1,如果簇0上仍有待处理的BU,重复步骤1),如果簇0上已无待处理的BU,则进入到步骤3 ;步骤3,更新各簇号,簇1更新为簇0,簇2更新为簇1,......,簇T-I更新为簇
T-2 ;步骤4,检查Hot区的空白块是否回到第一阈值TL之上,如果没有则再次从步骤1 开始执行,循环直到Hot区的空白块回到TL上结束本次静态磨损均衡的处理。当Cold区的可用空白块低于第二阈值TH时,如果垃圾块处于簇M到T-2上,则将垃圾块直接擦除并移动到高一级簇,直到可用空白块回到第二阈值TH之上。当Cold区的可用空白块低于第二阈值TH时,如果是受限于簇T-I上BU内数据转变为垃圾数据,也就是窗口高端无法移动所引起,则需要将簇0上的数据处理到Hot区的空白物理块中,同时对Hot/Cold区域分别执行如上所述的垃圾回收,最后将M的值减1,以提供更多的空白块给Cold区使用。对于Cold区,例如图7中实施例所示的簇T-I上的BU,其内的PU的数据最近刚刚被主机复写过,经过垃圾回收后这些BU成为垃圾块,如果直接对其进行擦除的话,对应BU的擦除次数加1,将导致与簇0上的擦除次数偏离大于此时的窗口大小T。此时,如图7所示,当Cold区的剩余空白块低于第二阈值TH,且簇T-I上因为主机端复写或者垃圾回收存在垃圾块时,在对这些垃圾块进行擦除前,需要依次执行如图8中所示的静态磨损均衡方法步骤1,将簇0上的数据写入到Hot Area中簇1到簇M_1上的第一个可用空白块上;步骤2,将簇0上处理完之后的BU擦除,其擦除次数加1,对应的BU进入到簇1,如果簇0上仍有待处理的BU,重复步骤1,如果簇0上已无待处理的BU,则进入到步骤3 ;步骤3,更新各簇号,簇1更新为簇0,簇2更新为簇1,......,簇T-I更新为簇
T-2 ;步骤4,将簇T-2上的垃圾块擦除变成空白块,相关的BU进入到新的簇T_1 ;步骤5,更新系统最大擦除次数max_wear为max_wear+l ;步骤6,根据公式3或4重新计算窗口大小T ; 步骤7,代入新的窗口大小值T,检查Co 1 d区的空白块是否回到第二阈值TH之上, 如果没有则再次从步骤1开始执行,循环直到Cold区的空白块回到TH上结束本次静态磨损均衡处理。基于动态窗口管理的磨损均衡装置包括计算模块700,用于根据管理对象中BU的最大擦除次数maxjear和可擦除次数 EC_MAX计算窗口最大允许偏离数T ;分组模块710,用于依据各BU相对最小擦除次数的偏离值将管理对象中的BU分为 0到T-I共T簇,具有相同擦除偏离值的BU位于同一簇内,以M值表示冷热数据的分界值, 并且M初始值位于窗口中间;均衡模块720,用于根据写入数据的属性控制窗口的移动,当窗口的移动受限制于最低端时,M值将加1,以便有更多的空间来承载热数据,当窗口的移动受制于最高端时,M 值将减1,以提供更多的空间来承载冷数据。参考图9,均衡模块包括检测模块,用于检测各个簇上BU内的数据的属性;比较模块,用于比较Hot区/Cold区的可用空白块与其各自的阈值;与所述检测模块和比较模块连接的写入模块;以及垃圾回收模块,用于对Hot/Cold区执行垃圾回收。其中,在检测到簇0上的BU内的热数据沉淀成冷数据,并且Hot区的可用空白块低于第一阈值TL时,写入模块将簇0上沉淀的冷数据写入到Cold区内按序从簇M到簇T-I 中第一个可用的空白块上。在检测到簇T-I上的BU内的冷数据转变为垃圾数据,并且Cold 区的可用空白块低于第二阈值TH时,写入模块将簇0上的数据写入到Hot区的空白块中。在本发明的一个实施方式中,垃圾回收模块可包括冷数据处理模块,用于将簇0 上沉淀下来的冷数据写入到Cold区内按序从簇M到簇T-I中第一个可用的空白块上;第一擦除模块,用于将簇O上处理完之后的BU擦除,对应的BU的擦除次数加1,并且所述对应的BU进入到簇1 ;簇号更新模块,用于更新各簇号,簇N更新为簇N-1,N为从1到T-I的整数。在本发明的另一个实施方式中,垃圾回收模块可包括数据处理模块,用于将簇O 上的数据写入到Hot区内按序从簇1到簇M-I中第一个可用的空白块上;第一擦除模块,用于将簇O上处理完之后的BU擦除,对应的BU的擦除次数加1,并且所述对应的BU进入到簇 1 ;簇号更新模块,用于更新各簇号,簇N更新为簇N-1,N为从1到T-I的整数;以及第二擦除模块,用于将簇T-2上的垃圾块擦除变成空白块,相关的BU进入到新的簇T-1。本方案通过引入动态窗口管理的磨损均衡方法,能够对于物理块的擦除次数偏离作出合理,有效的控制;提供自我感知型的冷热数据处理触发时机,在固态硬盘的不同生命周期中采用不同的擦除次数偏离控制窗口,在固态硬盘的生命周期早期提供一种宽松的控制窗口,对外提供极好的写入速度,而在固态硬盘的生命周期末期提供严格的控制窗口,延长固态硬盘的使用寿命,在将磨损均分到全盘的同时,降低整体的写放大,有效提高了固态硬盘的寿命。
权利要求
1.一种基于动态窗口管理的磨损均衡方法,包括步骤1,根据管理对象中BU的最大擦除次数maX_wear和可擦除次数EC_MAX计算窗口最大允许偏离数 Τ, T = f (life_remain),并且 life_remain = EC_MAX-max_wear ;步骤2,依据各BU相对最小擦除次数的偏离值进行分组,将管理对象中的BU分为0到T-I共T簇,具有相同擦除偏离值的BU位于同一簇内,以M值表示冷热数据的分界值,并且M初始值位于窗口中间;步骤3,M值随着写入的数据的属性而发生变化,当窗口的移动受限制于最低端时,M值将加1,以便有更多的空间来承载热数据,当窗口的移动受制于最高端时,M值将减1,以提供更多的空间来承载冷数据。
2.根据权利要求1所述的磨损均衡方法,其特征在于,T = life_remain*r%,r 取值范围为 1-99。
3.根据权利要求1所述的磨损均衡方法,其特征在于,T = EC_MAX*r% *cos( Π *max_wear/(2*EC_MAX)),r 取值范围为 1-99。
4.根据权利要求1-3中任一所述的磨损均衡方法,其特征在于,步骤3包括当簇0上的BU内的热数据沉淀成冷数据,并且Hot区的可用空白块低于第一阈值TL时,将簇0上沉淀的冷数据写入到Cold区的空白块中,同时对Hot区执行垃圾回收,并将M的值加1。
5.根据权利要求4所述的磨损均衡方法,其特征在于,所述将簇0上沉淀的冷数据写入到Cold区的空白块中,同时对Hot区执行垃圾回收的步骤包括步骤61,将簇0上沉淀下来的冷数据写入到Cold区内按序从簇M到簇T-I中第一个可用的空白块上;步骤62,将簇0上处理完之后的BU擦除,其擦除次数加1,对应的BU进入到簇1,如果簇0上仍有待处理的BU,重复步骤61,如果簇0上已无待处理的BU,则进入到步骤63 ;步骤63,更新各簇号,簇N更新为簇N-l,N为从1到T-I的整数。
6.根据权利要求5所述的磨损均衡方法,其特征在于,进一步包括检查Hot区的可用空白块是否回到第一阈值TL之上,如果没有则再次从步骤61开始执行,循环直到Hot区的可用空白块回到TL上。
7.根据权利要求1-3中任一所述的磨损均衡方法,其特征在于,步骤3包括当簇T-I上的BU内的冷数据转变为垃圾数据,并且Cold区的可用空白块低于第二阈值TH时,将簇0上的数据写入到Hot区的空白块中,同时对Hot/Cold区执行垃圾回收,并将M的值减1。
8.根据权利要求7所述的磨损均衡方法,其特征在于,所述将簇0上的数据写入到Hot区的空白块中,同时对Hot/Cold区执行垃圾回收的步骤包括步骤81,将簇0上沉淀下来的冷数据写入到Hot区内按序从簇1到簇M-I中第一个可用的空白块上;步骤82,将簇0上处理完之后的BU擦除,其擦除次数加1,对应的BU进入到簇1,如果簇0上仍有待处理的BU,重复步骤81,如果簇0上已无待处理的BU,则进入到步骤83 ;步骤83,更新各簇号,簇N更新为簇N-I,N为从1到T-I的整数;步骤84,将簇T-2上的垃圾块擦除变成空白块,相关的BU进入到新的簇T-I。
9.根据权利要求8所述的磨损均衡方法,其特征在于,进一步包括步骤91,更新系统最大擦除次数maxjear为maxjear+l ;步骤92,重新计算窗口大小T ;步骤93,代入新的窗口大小值T,检查Cold区的空白块是否回到第二阈值TH之上,如果没有则再次从步骤81开始执行,循环直到Cold区的空白块回到TH上。
10.根据权利要求2或3所述的磨损均衡方法,其特征在于,r为10。
11.一种基于动态窗口管理的磨损均衡装置,包括计算模块,用于根据管理对象中BU的最大擦除次数maX_wear和可擦除次数EC_MAX计算窗口最大允许偏离数 Τ, T = f (life_remain),并且 life_remain = EC_MAX-max_wear ;分组模块,用于依据各BU相对最小擦除次数的偏离值将管理对象中的BU分为0到T-I共T簇,具有相同擦除偏离值的BU位于同一簇内,以M值表示冷热数据的分界值,并且M初始值位于窗口中间;均衡模块,用于根据写入数据的属性控制窗口的移动,当窗口的移动受限制于最低端时,M值将加1,以便有更多的空间来承载热数据,当窗口的移动受制于最高端时,M值将减1,以提供更多的空间来承载冷数据。
12.根据权利要求11所述的磨损均衡装置,其特征在于,T = life_remain*r%,r 取值范围为 1-99。
13.根据权利要求11所述的磨损均衡装置,其特征在于,T = EC_MAX*r% *cos( Π *max_wear/(2*EC_MAX)),r 取值范围为 1-99。
14.根据权利要求12或13所述的磨损均衡装置,其特征在于,r为10。
15.根据权利要求11所述的磨损均衡装置,其特征在于,所述均衡模块包括检测模块,用于检测各个簇上BU内的数据的属性;比较模块,用于比较Hot区/Cold区的可用空白块与其各自的阈值;与所述检测模块和比较模块连接的写入模块,用于在检测到簇0上的BU内的热数据沉淀成冷数据,并且Hot区的可用空白块低于第一阈值TL时将簇0上沉淀的冷数据写入到Cold区内按序从簇M到簇T-I中第一个可用的空白块上,以及在检测到簇T-I上的BU内的冷数据转变为垃圾数据,并且Cold区的可用空白块低于第二阈值TH时将簇O上的数据写入到Hot区从簇1到簇M-I中第一个可用的空白块中;以及垃圾回收模块,用于对Hot区/Co 1 d区执行垃圾回收。
16.根据权利要求15所述的磨损均衡装置,其特征在于,所述垃圾回收模块包括冷数据处理模块,用于将簇O上沉淀下来的冷数据写入到Cold区内按序从簇M到簇T-I中第一个可用的空白块上;第一擦除模块,用于将簇O上处理完之后的BU擦除,对应的BU的擦除次数加1,并且所述对应的BU进入到簇1;簇号更新模块,用于更新各簇号,簇N更新为簇N-l,N为从1到T-I的整数。
17.根据权利要求15所述的磨损均衡装置,其特征在于,所述垃圾回收模块包括数据处理模块,用于将簇O上的数据写入到Hot区内按序从簇1到簇M-I中第一个可用的空白块上;第一擦除模块,用于将簇O上处理完之后的BU擦除,对应的BU的擦除次数加1,并且所述对应的BU进入到簇1 ;簇号更新模块,用于更新各簇号,簇N更新为簇N-I,N为从1到T-I的整数;第二擦除模块,用于将簇T-2上的垃圾块擦除变成空白块,相关的BU进入到新的簇T-I。
全文摘要
本发明公开了一种基于动态窗口管理的磨损均衡方法及装置,该方法包括步骤1,根据管理对象中BU的最大擦除次数max_wear和可擦除次数EC_MAX计算窗口最大允许偏离数T,T=f(life_remain),并且life_remain=EC_MAX-max_wear;步骤2,依据各BU相对最小擦除次数的偏离值进行分组,将管理对象中的BU分为0到T-1共T簇,具有相同擦除偏离值的BU位于同一簇内,以M值表示冷热数据的分界值,并且M初始值位于窗口中间;步骤3,M值随着写入的数据的属性而发生变化,当窗口的移动受限制于最低端时,M值将加1,以便有更多的空间来承载热数据,当窗口的移动受制于最高端时,M值将减1,以提供更多的空间来承载冷数据。
文档编号G06F12/02GK102592678SQ201110456088
公开日2012年7月18日 申请日期2011年12月30日 优先权日2011年12月30日
发明者王猛 申请人:记忆科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1