一种ssd盘片垃圾回收方法

文档序号:6634735阅读:442来源:国知局
一种ssd盘片垃圾回收方法
【专利摘要】本发明公开了一种SSD盘片垃圾回收方法,把重复数据采样统计放在主机侧,改进盘片内部的巡检模块,利用主机的数据重复率统计及盘片内部定时巡检机制来对比得到盘片的重复数据,从而达到删除重复数据的目的,提供更多冗余空间,提高了磨损均衡及垃圾回收的效率。
【专利说明】—种SSD盘片垃圾回收方法

【技术领域】
[0001]本发明涉及一种SSD盘片垃圾回收方法。

【背景技术】
[0002]现有技术中,SSD盘片内部定时触发巡检模块,在巡检已有数据区域过程中,根据数据块的擦写次数及有效数据的多少,来决定对相应的数据块进行搬移,从而达到静态磨损均衡。现有的动态磨损均衡方法也只会在接收1过程中,根据数据块的擦写次数等参数处理正在变化的和未使用的数据区域,而不会去处理已有数据的区域。由于SSD硬盘空间固定,随着盘片空间消耗,空白块越来越少,可用于磨损均衡及垃圾回收的空间越来越少,因此磨损均衡及垃圾回收的效率会越来越低,最终影响SSD盘片的使用寿命。


【发明内容】

[0003]本发明所要解决的技术问题是,针对现有技术不足,提供一种SSD盘片垃圾回收方法,提高SSD盘片的磨损均衡效率及垃圾回收效率,从而提高SSD盘片的空间利用率,延长SSD盘片的使用寿命。
[0004]为解决上述技术问题,本发明所采用的技术方案是:一种SSD盘片垃圾回收方法,包括以下步骤:
I)随机从主机内存获取一段数据,计算所获取的数据的签名,遍历所有签名,依次计算两个签名的海明距离,将海明距离在3以内的签名作为高相似度数据(该海明距离误判率比较低,海明距离越小,数据相似度越高),并统计每个高相似度数据的相似度计数,将相似度计数最高的前N个签名对应的数据保存到初始样本数据库中,考虑数据库容量及数据对比效率,其中100〈N〈5000,N随盘片容量递增而递增;
2 )再一次从主机内存获取一段数据,按照上述方法抽取该段数据中前N个签名对应的数据,即待入库数据,将待入库数据与上述初始样本数据库中的数据进行对比,删除待入库数据中与所述初始样本数据库中数据相同的数据,比较余下的待入库数据的相似度计数与所述初始样本数据库中数据的相似度计数,删除相似度计数与初始样本数据库中相似度计数相等的余下的待入库数据中的数据,得到准入库数据,按照相似度计数从大到小的顺序将准入库数据保存到所述初始样本数据库中;
3)重复上述步骤2),直到所述初始样本数据库大小为:样本数据个数*(128ΙΓ1Μ),其中,样本数据个数=盘片容量/ (512M^1M),即得到样本数据库;
4)当SSD盘片温度高于T时,遍历SSD盘片的数据块,将SSD盘片的数据块与上述样本数据库中的样本数据进行对比,若SSD盘片的数据块与所述样本数据库中的样本数据有重复,则标记主机逻辑地址映射到SSD盘片的物理地址的地址映射表,修改所述地址映射表地址为第一个重复数据块的地址;
5)遍历地址映射表,擦除没有映射的数据块,并将地址映射表回收到SSD盘片的空白块链表内。
[0005]与现有技术相比,本发明所具有的有益效果为:本发明把重复数据采样统计放在主机侧,利用主机的数据重复率统计及盘片内部定时巡检机制来对比得到盘片的重复数据,从而达到删除重复数据的目的,提供更多冗余空间,提高了 SSD盘片磨损均衡及垃圾回收的效率,能有效提高SSD盘片的空间利用率和延长SSD盘片的使用寿命。

【专利附图】

【附图说明】
[0006]图1为现有的SSD盘片垃圾回收系统结构框图;
图2为本发明一实施例SSD盘片垃圾回收系统结构框图。

【具体实施方式】
[0007]如图2所示,本发明主机下发数据经过数据缓存区时,根据固定大小的数据块对缓存数据进行抽样统计,并按重复率进行排序,把重复率较高的数据块保存到文件或数据库中。通过下发命令查询盘片巡检时间点,在盘片巡检时间点下发样本数据给盘片,启动巡检,具体实现机制如下:
主机数据采样统计实现:利用SimHash算法计算数据样本特征值并入库保存,数据样本特征值计算方法具体实现如下:
数据样本特征值计算方法:通过随机从内存获取一段数据,然后利用SimHash算法对缓存中所有数据计算签名,遍历所有签名,依次计算两个签名的海明距离(即两个签名二进制异或后I的个数),对于海明距离在3以内的签名,将其作为高相似度数据并统计每个签名的相似度计数,将相似度计数最高的前N个签名对应的数据保存到初始样本数据库中,考虑数据库容量及数据对比效率,其中100〈N〈5000,N随盘片容量递增而递增;从而建立初始样本数据库。
[0008]SimHash算法描述如下:
参考文献:
Moses S.Charikar 《Similarity estimat1n techniques from roundingalgorithms)).arist g1nis, p1ter indyk, rajeev motwani 《Similarity Search in HighDimens1ns via Hashing》
输入为一个N维向量V,比如文本的特征向量,每个特征具有一定权重。输出是一个C位的二进制签名S。
[0009]I)初始化一个C维向量Q为0,C位的二进制签名S为O。
[0010]2)对向量V中的每一个特征,使用传统的Hash算法计算出一个C位的散列值H。对 l〈=i〈=C,
如果H的第i位为I,则Q的第i个元素加上该特征的权重;
否则,Q的第i个元素减去该特征的权重。
[0011]3)如果Q的第i个元素大于0,则S的第i位为I ;否则为O ;
4)返回签名S。
[0012]盘片内部实现巡检机制:依据盘片温度高低触发定时器定期遍历盘片的数据块,把所有数据块搬移到新的地址,在搬移之前先与下发的样本数据进行对比,如果有重复,则标记地址映射表,修改映射表项地址为第一重复数据块的地址。在下次垃圾回收启动后,就可直接回收重复的数据块。有效防止数据翻转等异常。由于flash颗粒本身可靠性在超过正常工作范围后随温度升高而下降,因此温度升高后巡检频率也随之增加,该机制中触发巡检的温度参考范围(依据颗粒特性会略有调整)在:3(Γ70摄氏度,此温度值会影响本方法的启动频率。
[0013]垃圾回收实现:通过遍历地址映射模块中的映射表,对于没有映射的数据块进行擦除并回收到空白块链表。该链表是提供给数据写操作分配空间使用的。
[0014]地址映射表是主机逻辑地址映射到盘片的物理地址的表项。
[0015]本发明由于把数据采样统计放在了主机侧,进抽样保存少量数据,充分利用了主机资源,同时又不影响主机业务正常执行。而SSD盘片侧的充分利用现有巡检机制处理数据重删,也不影响SSD盘片的业务处理。由于提供了更多冗余空间,保障了磨损均衡及垃圾回收的效率。而传统在主机侧或SSD盘片侧做数据重删,均存在影响正常业务执行或者新增专用处理器处理重删等成本的弊端。因此对比而言本方法均没有这些弊端,优势明显。
【权利要求】
1.一种SSD盘片垃圾回收方法,其特征在于,包括以下步骤: I)随机从主机内存获取一段数据,计算所获取的数据的签名,遍历所有签名,依次计算两个签名的海明距离,将海明距离在3以内的签名作为高相似度数据,并统计每个高相似度数据的相似度计数,将相似度计数最高的前N个签名对应的数据保存到初始样本数据库中,其中 100〈N〈5000 ; . 2 )再一次从主机内存获取一段数据,按照步骤I)方法抽取该段数据中前N个签名对应的数据,即待入库数据,将待入库数据与上述初始样本数据库中的数据进行对比,删除待入库数据中与所述初始样本数据库中数据相同的数据,比较余下的待入库数据的相似度计数与所述初始样本数据库中数据的相似度计数,删除相似度计数与初始样本数据库中相似度计数相等的余下的待入库数据中的数据,得到准入库数据,按照相似度计数从大到小的顺序将准入库数据保存到所述初始样本数据库中; . 3)重复上述步骤2),直到所述初始样本数据库大小为:样本数据个数*(128ΙΓ1Μ),其中,样本数据个数=盘片容量/ (512M^1M),即得到样本数据库;. 4)当SSD盘片温度高于T时,遍历SSD盘片的数据,将SSD盘片的数据与上述样本数据库中的样本数据进行对比,若SSD盘片的数据块与所述样本数据库中的样本数据有重复,则标记主机逻辑地址映射到SSD盘片的物理地址的地址映射表,修改所述地址映射表地址为第一个重复数据块的地址; . 5)遍历地址映射表,擦除没有映射的数据块,并将地址映射表回收到SSD盘片的空白块.链表内。
【文档编号】G06F3/06GK104407982SQ201410660188
【公开日】2015年3月11日 申请日期:2014年11月19日 优先权日:2014年11月19日
【发明者】吕辉, 姜黎, 马翼 申请人:湖南国科微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1