基于随机游走的固态硬盘磨损均衡方法转让专利

申请号 : CN201010584084.X

文献号 : CN102169727B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 胡事民赵鹏

申请人 : 清华大学

摘要 :

本发明公开了一种基于随机游走的固态硬盘磨损均衡方法,包括:S1:根据固态硬盘的物理块中记录的擦写次数为每一物理块组计算其擦写次数的数学期望E和方差Var,并将数学期望E和方差Var存储在固态硬盘的控制器内存中的元数据表中,元数据表中还存储每一物理块组的块内指针;S2:按照数学期望E对物理块组进行排序,并依赖方差Var来挑选目标物理块组;S3:利用随机游走机制在目标物理块组中挑选目标物理块;S4:将待写数据写入目标物理块,并更新目标物理块的擦写次数,同时更新该目标物理块所在物理块组的数学期望E和方差Var,跳转到S2继续执行。本发明将写操作均匀分布到各个存储单元,同时节约了固态硬盘的内存资源消耗,且提高了性能。

权利要求 :

1.一种基于随机游走的固态硬盘磨损均衡方法,其特征在于,包括以下步骤:S1:根据固态硬盘的物理块中记录的擦写次数为每一物理块组计算其擦写次数的数学期望E和方差Var,并将所述数学期望E和方差Var存储在固态硬盘的控制器内存中的元数据表中,所述元数据表中还存储每一物理块组的块内指针;

S2:按照所述数学期望E对物理块组进行排序,并依赖所述方差Var来挑选目标物理块组,具体根据所述数学期望E对物理块组按从大到小或从小到大进行排序;利用所述方差Var在数学期望E最小的M个物理块组中选择方差最大的物理块组为目标物理块组;

S3:利用随机游走机制在所述目标物理块组中挑选目标物理块;

S4:将待写数据写入目标物理块,并更新所述目标物理块的擦写次数,同时更新该目标物理块所在物理块组的数学期望E和方差Var,跳转到S2继续执行。

2.如权利要求1所述的基于随机游走的固态硬盘磨损均衡方法,其特征在于,若固态硬盘未分组,所述步骤S1之前还包括:按照逻辑分组或固态硬盘的物理结构对固态硬盘的物理块进行分组。

3.如权利要求2所述的基于随机游走的固态硬盘磨损均衡方法,其特征在于,所述按固态硬盘的物理结构对物理块进行分组是按照一个闪存平面进行分组,一个闪存平面包括

2048个物理块。

4.如权利要求1所述的基于随机游走的固态硬盘磨损均衡方法,其特征在于,所述步骤S1具体包括:若固态硬盘中不存在元数据表,分组后在所述固态硬盘的控制器的内存中创建元数据表,读取每个物理块组内的所有物理块的元数据中的擦写次数,计算每个物理块组的数学期望E和方差Var,块内指针初始化为0。

5.如权利要求1所述的基于随机游走的固态硬盘磨损均衡方法,其特征在于,所述M取值为1-5。

6.如权利要求1所述的基于随机游走的固态硬盘磨损均衡方法,其特征在于,所述步骤S3具体包括:从所述目标物理块组中的块内指针所指的位置作为起始位置,根据预定的步长向左或向右移动所述块内指针,利用当前位置相邻的物理块的擦写次数来影响左右移动的概率,计算向左移动的概率公式如公式(1)所示:P(L)为向左移动的概率,ecL为左相邻物理块的擦写次数,ecR为右相邻物理块的擦写次数;

每步的随机游走均通过伪随机函数生成一个0到1区间的小数,若该小数在0到P(L)之间,则向左移动,否则向右移动;

通过随机游走,块内指针最后移动到的物理块作为目标物理块。

7.如权利要求6所述的基于随机游走的固态硬盘磨损均衡方法,其特征在于,所述预定步长为1-10个物理块。

8.如权利要求1所述的基于随机游走的固态硬盘磨损均衡方法,其特征在于,所述步骤S4具体包括:若挑选的目标物理块中存在数据,则将其移动到已擦除并准备存放数据的物理块上;

擦除目标物理块,并更新所述目标物理块中的擦写次数,同时更新该目标物理块所在物理块组的数学期望E和方差Var,读取目标物理块的元数据中保存该物理块的擦写次数,按照下述公式(2)直接计算并更新物理块组的数学期望E,按公式(3)计算物理块组的方差Var,不需要读取所有物理块中的擦写次数;

E=E′+(ec-ec′)/N (2)其中,E′为原来的数学期望,Var′为原来的方差,ec为更新后的擦写次数,ec′为原来的擦写次数,N为块组中的块的个数;

跳转到S2继续执行。

说明书 :

基于随机游走的固态硬盘磨损均衡方法

技术领域

[0001] 本发明涉及计算机存储技术领域,特别涉及一种基于随机游走的固态硬盘磨损均衡方法。

背景技术

[0002] 由于磁盘的速度和内存、CPU速度之间存在较大差异,磁盘的性能问题逐步成为阻碍计算机系统发展的主要瓶颈之一。闪存,又称flash存储器(flash memory),具有能耗低、非易失、抗震等物理稳定性强和方便插拔移动等优点。近年来,以闪存为介质的固态硬盘容量逐步增大,价格逐步下降,已有取代磁盘,成为新的主流外存介质的趋势,并可能引起存储系统的一次变革。由于闪存的存储单元有写限制,一般的优质闪存的最大擦写次数为100000次,当对存储单元的擦写次数超过最大擦写次数后,存储单元将会不稳定或失效,造成物理上的数据丢失。磨损均衡技术(wear leveling)应运而生,通过磨损均衡技术可以使对存储单元的写操作均匀分布,对存储单元进行全局管理,从而使各个存储单元的写操作次数均匀增长。
[0003] 目前对于闪存的磨损均衡方法主要通过在固态硬盘的控制器中的建立表结构来记录各个存储单元的擦写次数,通过擦写次数的比较来定位写操作的位置。当固态硬盘的容量不断增加时,维持擦除/写次数的表结构所需要的内存容量也随之增加,这会给固态硬盘带来额外的消耗,同时也会延长控制器的查表时间,带来性能损失。 发明内容
[0004] (一)要解决的技术问题
[0005] 本发明要解决的技术问题是:如何将大容量固态硬盘中的写操作均匀分布到各个存储单元,同时节约固态硬盘的内存资源消耗,并提 高性能。
[0006] (二)技术方案
[0007] 为解决上述技术问题,本发明提出了一种基于随机游走的固态硬盘磨损均衡方法,包括以下步骤:
[0008] S1:根据固态硬盘的物理块中记录的擦写次数为每一物理块组计算其擦写次数的数学期望E和方差Var,并将所述数学期望E和方差Var存储在固态硬盘的控制器内存中的元数据表中,所述元数据表中还存储每一物理块组的块内指针;
[0009] S2:按照所述数学期望E对物理块组进行排序,并依赖所述方差Var来挑选目标物理块组;
[0010] S3:利用随机游走机制在所述目标物理块组中挑选目标物理块; [0011] S4:将待写数据写入目标物理块,并更新所述目标物理块的擦写次数,同时更新该目标物理块所在物理块组的数学期望E和方差Var,跳转到S2继续执行。 [0012] 其中,若固态硬盘未分组,所述步骤S1之前还包括:
[0013] 按照逻辑分组或固态硬盘的物理结构对固态硬盘的物理块进行分组。 [0014] 其中,所述按固态硬盘的物理结构对物理块进行分组是按照一个闪存平面进行分组,一个闪存平面包括2048个物理块。
[0015] 其中,所述步骤S1具体包括:
[0016] 若固态硬盘中不存在元数据表,分组后在所述固态硬盘的控制器的内存中创建元数据表,读取每个物理块组内的所有物理块的元数据中的擦写次数,计算每个物理块组的数学期望E和方差Var,块内指针初始化为0。
[0017] 其中,所述步骤S2具体包括:
[0018] 根据所述数学期望E对物理块组按从大到小或从小到大进行排序; [0019] 利用所述方差Var在数学期望E最小的M个物理块组中选择方差最大的物理块组为目标物理块组。
[0020] 其中,所述M取值为1-5。
[0021] 其中,所述步骤S3具体包括:
[0022] 从所述目标物理块组中的块内指针所指的位置作为起始位置,根据预定的步长向左或向右移动所述块内指针,利用当前位置相邻的物理块的擦写次数来影响左右移动的概率,计算向左移动的概率公式如公式(1)所示:
[0023]
[0024] P(L)为向左移动的概率,ecL为左相邻物理块的擦写次数,ecR为右相邻物理块的擦写次数;
[0025] 每步的随机游走均通过伪随机函数生成一个0到1区间的小数,若该小数在0到P(L)之间,则向左移动,否则向右移动;
[0026] 通过随机游走,块内指针最后移动到的物理块作为目标物理块。 [0027] 其中,所述预定步长为1-10个物理块。
[0028] 其中,所述步骤S4具体包括:
[0029] 若挑选的目标物理块中存在数据,则将其移动到已擦除并准备存放数据的物理块上;
[0030] 擦除目标物理块,并更新所述目标物理块中的擦写次数,同时更新该目标物理块所在物理块组的数学期望E和方差Var,读取目标物理块的元数据中保存该物理块的擦写次数,按照下述公式(2)直接计算并更新物理块组的数学期望E,按公式(3)计算物理块组的方差Var,不需要读取所有物理块中的擦写次数;
[0031] [0031] E=E′+(ec-ec′)/N (2)
[0032] [0032]
[0033] 其中,E′为原来的数学期望,Var′为原来的方差,ec为更新后的擦写次数,ec′为原来的擦写次数,N为块组中的块的个数;
[0034] 跳转到S2继续执行。
[0035] (三)有益效果
[0036] 本发明通过将固态硬盘分组,建立元数据表,并通过随机游走的机制来确定最终的擦写物理块,从而将写操作均匀分布到各个存储单元,同时节约了固态硬盘的内存资源消耗,且提高了性能。

附图说明

[0037] 图1是本发明实施例的一种基于随机游走的固态硬盘磨损均衡方法流程图。 具体实施方式
[0038] 下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
[0039] 为了达到以上发明目的,本发明提供了一种利用随机游走机制及数据分组的思想来进行磨损均衡设计,流程图如图1所示,包括:
[0040] 步骤S101,根据固态硬盘的物理块中记录的擦写次数为每一物理块组计算其擦写次数的数学期望E和方差Var,并将每个物理块的数学期望E和方差Var存储在固态硬盘的控制器内存中的元数据表中,元数据表中还存储每一物理块组的块内指针,其中,物理块组的数学期望E、方差Var和块内指针分别占用4字节,4字节和2字节。
[0041] 若在擦写数据前,若固态硬盘未分组,则按照逻辑分组或固态硬盘的物理结构对固态硬盘的物理块进行分组。若按固态硬盘的物理结构对物理块进行分组,则按照一个闪存平面进行分组,一个闪存平面包括2048个物理块。
[0042] 在计算每个物理块组擦写次数的数学期望E和方差Var时,具体步骤如下: [0043] 若固态硬盘中不存在元数据表(还未建立),分组后在固态硬盘的控制器的内存中创建元数据表,读取每个物理块组内的所有物理块 的元数据中的擦写次数,计算每个物理块组的数学期望E和方差Var,块内指针初始化为0。
[0044] 若物理块组的元数据表已建立,则执行步骤S102。
[0045] 步骤S102,按照所述数学期望E对物理块组进行排序,并依赖所述方差Var来挑选目标物理块组。排序时按数学期望E从大到小或从小到大对物理块组进行排序,利用方差Var在数学期望E最小的M个物理块组中,优选为1-5个(如3个)物理块组,选择方差最大的物理块组为目标物理块组。
[0046] 步骤S103,利用随机游走机制在步骤S102中选出的目标物理块组中挑选目标物理块。具体步骤如下:
[0047] 根据预定的步长,优选为1-10个物理块(如5个),向左或向右移动所述块内指针利用当前位置相邻的物理块的擦写次数来影响左右移动的概率,计算移动的概率公式如公式(1)所示:
[0048]
[0049] P(L)分别为向左移动的概率,ecL为左相邻物理块的擦写次数,ecR为右相邻物理块的擦写次数。
[0050] 每步的随机游走均通过伪随机函数生成一个0到1区间的小数,若该小数若在0到P(L)之间,则向左移动,否则向右移动。
[0051] 通过随机游走,块内指针最后移动到的物理块作为目标物理块。 [0052] 步骤S104,将待写数据写入目标物理块,并更新目标物理块的擦写次数,同时更新该目标物理块所在物理块组的数学期望E和方差Var。按照下述公式(2)直接计算物理块组的数学期望E,按公式(3)计算物理块组的方差Var,不需要读取所有物理块的元数据中的擦写次数;
[0053] E=E′+(ec-ec′)/N (2)
[0054]
[0055] 其中,E′为原来的数学期望,Var′为原来的方差,ec为更新后的擦写次数,ec′为原来的擦写次数,N为块组中的块的个数。计算后将元数据表中的数学期望和方差更新为E和Var。更新完成后继续执行步骤S102,继续读写其它数据,直到读写命令停止。 [0056] 以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。