一种NAND Flash闪存垃圾回收方法
【技术领域】
[0001 ] 本发明设及NAND Flash闪存存储管理系统,特别设及一种NAND Flash闪存垃圾回 收方法。
【背景技术】
[0002] NAND Flash闪存存储管理系统中要求无效数据页(即数据垃圾)可W被定期回收, 将回收目标块中的有效数据页复制到空闲块中,然后擦除回收目标块,获得被无效数据页 占据的闪存空间。
[0003] 主要有两种方式:第一种是使用贪屯、策略选择无效数据页最多的闪存块作为目标 回收块进行回收;第二种对读写效率进行约束建立数学模型,通过智能算法求解模型选择 回收目标块。前者的主要缺点是:当应用具有较高的访问局部性时,忽略了对闪存磨损均衡 度的控制,导致闪存使用寿命缩短;后者的主要缺陷是:使用智能算法求解模型时,速度慢, 系统计算资源开销大,影响存储管理系统的I/O性能。
【发明内容】
[0004] 为了解决上述现有技术中存在的技术不足,本发明旨在提供一种NAND Flash闪存 垃圾回收方法,该方法不仅能够提高回收效率,而且可W减小存储管理系统写操作开销,提 高系统I/O性能。
[0005] 本发明的技术方案:
[0006] -种NAND Flash闪存垃圾回收方法,含有下列步骤:
[0007] 步骤1:若写入数据为此次写请求的第一页数据,则获取当前写请求的待写入数据 量大小Pwr ;否则,转步骤4执行;
[000引步骤2:对闪存进行预捜索,确定此次写数据的最少平均回收次数y = Bgc/Pwr,其 中,Bg。为预捜索共确定的回收目标块数,最少平均回收次数y作为对垃圾回收开销大小的衡 量标准;
[0009]步骤3: W预捜索确定的垃圾回收开销为依据选择回收策略;考察最少平均回收次 数y = BgcyPwr,设定阔值8,若^<5,则使用式(1)计算捜索区段内每个闪存块的回收优先级 化(j),选择化(j)值最小的闪存块作为回收目标块则选择区段内含有效数 据页最少的闪存块作为回收目标块Bvictim;其中S为可配置参数,用于控制垃圾回收操作的 开销;
(1)
[0011]其中,乂曰11(1〇)、6阿311'63〇)分别表示当前捜索范围内第片央的有效页数和擦除 次数,Thvaiid为确定回收目标块的有效页阔值,maxi{erasures(i)}、mini{erasures(i)}分 别表示当前捜索范围内所有闪存块中最大、最小擦除次数,Ae[0,l]为可配置参数,用于控 制磨损因素在回收块选择策略中的比重;
[0012] 步骤4:设空闲空间大小为Perased,除去有效数据占据的闪存空间余下的空间大小 为Pf ree,若Perased/Pfree > 1 /4,结束回收;否则,根据步骤3中选定的回收策略确定回收目标块 Bvictim,将Bvictim中的有效页数据迁移至其它干净页中,擦除Bvictim完成本次回收。
[0013] 步骤2中的预捜索使用重叠式的区段捜索方式查找回收目标块,具体过程为:将闪 存存储空间划分为大小相等的若干区段,每个区段包含等量的闪存块;每次垃圾回收捜索 一个区段,本次垃圾回收开始位置为前一次垃圾回收确定的目标回收块之后的第一个闪存 块;若捜索至最后一个闪存块,则重新回到第一个闪存块继续捜索。
[0014] 步骤2中最少平均回收次数y的计算过程为:设当前写请求数据量为Pwr,在向闪存 写入数据前,若闪存需要进行垃圾回收,则对闪存进行一次预捜索,每次捜索长度为闪存的 一个确定区段,若存在一个闪存块,闪存块中有效页数Pvalid在其所处区段中最小,且小于预 设阔值化valid,则该闪存块被确定为本次写请求的一个回收目标块,并判定是否继续捜索; 设预捜索共确定回收目标块数Bgc,则Wy = Bgc/Pwr表示本次写请求的最少平均回收次数。 [001引预设阔值Thvalid的计算过程为:首先设定一个基本阔值化日和阔值上限化max,设连 续k次未能找到有效页数小于化0的闪存块,则按式(2)更新有效页阔值,其中有效页阔值 Thvalid Thmax ; '了\,k<2
[0016] 化…= ;r/ . 尚 Th、、+ 2k, k>2
[0017] 步骤2中的预捜索的具体实施步骤为:
[0018] 步骤2.1:初始化写请求将回收的闪存块数BgC = O,获取当前写请求数据量Ptmp = Pwr ;
[0019] 步骤2.2:设空闲空间大小为Perased,除去有效数据占据的闪存空间余下的空间大 小为Pfree,若Perased/Pfree〉1/4,则不需要进行垃圾回收,固龄至步骤2.5执行;
[0020] 步骤2.3:按照式(2)计算有效页阔值化valid;
[0021] 步骤2.4:对一个区段进行预捜索;若第j块的有效页数Pvalld(j)<化valld,且是区 段内所有块中有效页数最少的,检查此块是否已经被标记为回收目标块,若是,则继续检查 下一块;否则,将该块t不记为预捜索回收目t不块,更新相关数据:Bgc = Bgc+1 ,Perased = Perased+ PvalicK j )-1,P打ee = P打ee-1,跳转至步骤2.6执行;
[0022] 步骤2.5:未找到可回收目标块,Pf ree - Pfree-1 ? Perased - Perased-1 ;
[0023] 步骤2.6 : Ptmp = Ptmp-I。若Ptmp = 0,清除所有预捜索确定的回收目标块标记,计算 最少平均回收次数y=Bgc/Pwr,返回y值,结束;否则,固龄至步骤2.2执行。
[0024] 本发明的有益效果:
[0025] 1.本发明采用重叠式的区段捜索方式查找回收目标块和动态的有效页阔值加强 了对较脏块集中区域的回收,提高了查找回收目标块的效率。
[0026] 2.针对在回收过程中兼顾磨损均衡将导致写性能下降的问题,设定两种回收目标 块选择策略,根据预捜索确定的最少平均回收次数自适应地选择不同的策略查找合适的脏 块进行回收。
[0027] 3.本发明的实施可有效减少写操作过程中的垃圾回收开销,提高闪存存储管理系 统的吞吐量,同时对磨损均衡度进行了一定控制,延长NAND Flash闪存的使用寿命。
【附图说明】
[0028] 图1为本发明重叠式的区段捜索方式的原理示意图。
【具体实施方式】
[0029] 参见图1所示,一种NAND Flash闪存垃圾回收方法,含有下列步骤:
[0030] 步骤1:若写入数据为此次写请求的第一页数据,则获取当前写请求的待写入数据 量大小Pwr ;否则,转步骤4执行;
[0031] 步骤2:对闪存进行预捜索,确定此次写数据的最少平均回收次数ii = BgcyPwr,其 中,Bg。为预捜索共确定的回收目标块数,最少平均回收次数y作为对垃圾回收开销大小的衡 量标准;
[0032] 步骤3: W预捜索确定的垃圾回收开销为依据选择回收策略;考察最少平均回收次 数y = BgE/Pwr,设定阔值8,若^<5,则使用式(1)计算捜索区段内每个闪存块的回收优先级 化(j),磨损程度越轻、含有效数据页越少的闪存块,其回收优先级越高,选择化(j)值最小 (即优先级最高)的闪存块作为回收目标块Bvictim;若y>S,则选择区段内含有效数据页最少 的闪存块作为回收目标块Bvictim;其中S为可配置参数,用于控制垃圾回收操作的开销;
阳
[0034] 其中,乂曰11(1〇)、6阿311'63〇)分别表示当前捜索范围内第片央的有效页数和擦除 次数,Thvaiid为确定回收目标块的有效页阔值,maxi{erasures(i)}、mim{erasures(i)}分 别表示当前捜索范围内所有闪存块中最大、最小擦除次数,Ae[0,l]为可配置参数,用于控 制磨损因素在回收块选择策略中的比重;
[0035] 步骤4:设空闲空间大小为Perased,除去有效数据占据的闪存空间余下的空间大小 为Pf ree,若Perased/Pfree > 1 /4,结束回收;否则,根据步骤3中选定的回收策略确定回收目标块 Bvictim,将Bvictim中的有效页数据迁移至其它干净页中,擦除Bvictim完成本次回收。
[0036] 步骤2中的预捜索使用重叠式的区段捜索方式查找回收目标块,具体过程为:将闪 存存储空间划分为大小相等的若干区段,每个区段包含等量的闪存块;每次垃圾回收捜索 一个区段,本次垃圾回收开