[发明专利]一种固态硬盘的垃圾回收方法及装置有效
申请号: | 201810550307.7 | 申请日: | 2018-05-31 |
公开(公告)号: | CN108763102B | 公开(公告)日: | 2021-10-29 |
发明(设计)人: | 刘哲 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王宝筠 |
地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 固态 硬盘 垃圾 回收 方法 装置 | ||
本申请公开了一种固态硬盘的垃圾回收方法及装置,首先确定源block和目的block,然后将源block中的有效数据复制到目的block,待源block中的有效数据复制完毕后,擦除源block,成为空闲block,重新确定源block并继续进行垃圾回收,期间每一次目的block存满数据后,判断总存储空间是否达到预设阈值,若是,停止执行垃圾回收流程,若否,继续执行垃圾回收流程。该方法及装置在垃圾回收过程中,每一次目的block存满后才判断空闲block是否满足要求,即将停止垃圾回收的时机放在填满目的block后,因此能够避免open block的产生,提高了目的block的稳定性和固态硬盘的可靠性。
技术领域
本发明涉及存储技术领域,更具体的说,是涉及一种固态硬盘的垃圾回收方法及装置。
背景技术
固态硬盘中包括固态存储单元,固态存储单元中包括多个block,也即数据块。由于固态硬盘没有重写机制,因此在一个block写满数据后,需要擦出block中的数据,才可以写入新数据。
而擦出操作非常耗时。出于效率的考虑,用户写同一逻辑地址时,固态硬盘实际将其写入不同的物理地址,这就造成了原物理地址上会存在由有效变为无效的无效数据,如原物理地址写入1、2、3、4、5,而后修改这个数据,修改后变为1、2、3、6、7,则原物理地址中存储的、45变为无效数据。这种情况下,需要进行垃圾回收以提高空间利用率。
垃圾回收是将无效数据和有效数据混杂的block中的有效数据搬移到新的block中,将剩下的无效数据擦除,从而将无线数据所占空间腾出使用的数据搬移技术。现有技术中,回收垃圾的方法以固态硬盘的可用空闲block的个数判断是否停止垃圾回收,假如需要100M空闲空间,一个block为10M空间,则保证垃圾回收到具有10个空闲block即可。但是这个过程可能出现有效数据搬移到的目的block只填充了一半,垃圾回收时正在被填充的目的block没有被填满的情况,形成open block。而open block是不稳定的,长期存在容易出现读失败的情况,影响固态硬盘的可靠性。
发明内容
有鉴于此,本发明提供了一种固态硬盘的垃圾回收方法及装置,以克服现有技术中垃圾回收过程中出现open block的问题。
为实现上述目的,本发明提供如下技术方案:
一种固态硬盘的垃圾回收方法,包括:
确定源block和目的block;
执行垃圾回收流程,所述垃圾回收流程包括:将所述源block中的有效数据复制到所述目的block,待所述源block中的有效数据复制完毕后,擦除所述源block,成为空闲block,重新确定源block并继续执行所述垃圾回收流程;
在所述执行垃圾回收流程期间,每一次目的block存满数据后,判断所有空闲block的总存储空间是否达到预设阈值;
若达到预设阈值,停止执行垃圾回收流程;
若没有达到预设阈值,重新选取一个目的block,继续执行垃圾回收流程。
可选的,所述确定源block和目的block,包括:
从存满数据的block中确定源block,并从空闲block中确定目的block。
可选的,所述判断所有空闲block的总存储空间是否达到预设阈值,包括:
确定空闲block的数量;
根据所述空闲block的数量以及所述空闲block的存储空间判断总存储空间是否达到预设阈值。
可选的,每一个空闲block的存储空间相同,则所述判断所有空闲block的总存储空间是否达到预设阈值,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810550307.7/2.html,转载请声明来源钻瓜专利网。