System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及固态硬盘,具体而言,涉及一种垃圾回收方法、装置、固态硬盘、主机及可读存储介质。
技术介绍
1、随着ssd(solid state drive,固态硬盘)的普及,对其性能和稳定写入的要求也越来越高。由于固态硬盘中数据存储的特点和策略,即写入最小单位为页(page),擦除最小单位为块(block),因此,在删除数据时候,实际在固态硬盘中不是将需要删除的数据在物理上删除而是会将其在逻辑上标记为无效,随着使用时间的增加,固态硬盘中的无效数据也越来越多。
2、当固态硬盘中无效数据太多而可使用空间不足时,就需要将块中的有效数据搬移到别的位置并擦除当前块,从而清除当前块的无效数据,释放当前块的存储空间,以存储后续写入的数据。这就是gc(garbage collection,垃圾回收)过程。
3、启用垃圾回收时,为了保证数据的有效性,垃圾回收流程和用户数据的写入流程采用的写入资源通常是互斥的,两个流程通常无法同步进行,因而垃圾回收会影响用户数据的写入性能。
技术实现思路
1、本专利技术目的在于提供一种垃圾回收方法、装置、固态硬盘、主机及可读存储介质,其减小了垃圾回收的粒度、提高了主机写和垃圾回收流程的同步性,能够减少垃圾回收对用户数据写入性能的影响。
2、本专利技术的实施例可以这样实现:
3、第一方面,本专利技术提供一种垃圾回收方法,应用于固态硬盘,所述方法包括:
4、获取待搬移表,所述待搬移表存储有待回收块中多个待搬移数据
5、若所述多个待搬移数据的总长度大于或者等于预设长度,则从所述多个待搬移数据中确定总长度等于所述预设长度的多个目标待搬移数据;
6、将每一所述目标待搬移数据的faa对应的逻辑地址laa存储至预先建立的合并表,所述待搬移表和所述合并表用于确定所述目标待搬移数据在搬移前是否因并行写入业务数据而变为无效;
7、在所述合并表中的所有目标待搬移数据的laa均有效时,对所述目标待搬移数据进行搬移并在所述待回收块中不存在待搬移数据时将所述待回收块进行回收。
8、在可选的实施方式中,所述获取待搬移表的步骤之前还包括:
9、获取所述固态硬盘中空闲超级块的个数;
10、若所述空闲超级块的个数小于预设个数,则将所述固态硬盘中包含无效数据量最多的已使用超级块确定为所述待回收块;
11、确定所述待回收块中的有效数据;
12、将所述有效数据作为所述待搬移数据并将所述待搬移数据的faa存储至所述待搬移表。
13、在可选的实施方式中,所述待回收块包括多个单元数据,所述确定所述待回收块中的有效数据的步骤包括:
14、对于所述多个单元数据中任一目标单元数据,获取所述目标单元数据的faa;
15、从预设p2l表中确定与所述目标单元数据的faa对应的参考laa,所述预设p2l表以faa为索引、表征faa和laa之间的映射关系;
16、从预设l2p表中确定与所述参考laa对应的参考faa,所述l2p表以laa为索引、表征laa和faa之间的映射关系;
17、若所述目标单元数据的faa和所述参考faa相等,则判定所述目标单元数据为有效数据,最终确定出所述待回收块中的每一有效数据。
18、在可选的实施方式中,所有所述目标待搬移数据预先读入缓存中,所述在所述合并表中的所有目标待搬移数据的laa均有效时,对所述目标待搬移数据进行搬移的步骤包括:
19、获取写入资源,所述写入资源用于实现搬移每一所述目标待搬移数据和写业务数据之间的互斥;
20、若所述合并表中所有所述目标待搬移数据的laa均有效,则将所述缓存中的目标待搬移数据存储至所述固态硬盘中与所述待回收块不同的目标块,以实现所述目标待搬移数据的搬移。
21、在可选的实施方式中,所述固态硬盘和主机通信,所述方法还包括:
22、接收所述主机下发的业务数据的待写laa;
23、从预设l2p表中确定与所述待写laa对应的待写faa,所述l2p表以laa为索引、表征laa和faa之间的映射关系;
24、若所述待写faa在所述待搬移表中,则将所述待写faa从所述待搬移表中删除;
25、若所述待写laa在所述合并表中,则将所述合并表中的所述待写laa置为无效;
26、获取写入资源,并写入所述业务数据,所述写入资源用于实现搬移每一所述目标待搬移数据和写所述业务数据之间的互斥。
27、在可选的实施方式中,所述预设长度为所述固态硬盘的任一超级块中位于同一个die、且位于同一个条带的多个page的总长度、同一个条带的多个page所属block的序号相同、且page序号也相同。
28、第二方面,本专利技术提供一种垃圾回收装置,应用于固态硬盘,所述装置包括:
29、获取模块,用于获取待搬移表,所述待搬移表存储有待回收块中多个待搬移数据中每一所述待搬移数据的物理地址faa;
30、确定模块,用于若所述多个待搬移数据的总长度大于或者等于预设长度,则从所述多个待搬移数据中确定总长度等于所述预设长度的多个目标待搬移数据;
31、合并模块,用于将每一所述目标待搬移数据的faa对应的逻辑地址laa存储至预先建立的合并表,所述待搬移表和所述合并表用于确定所述目标待搬移数据在搬移前是否因并行写入业务数据而变为无效;
32、搬移模块,用于在所述合并表中的所有目标待搬移数据的laa均有效时,对所述目标待搬移数据进行搬移并在所述待回收块中不存在待搬移数据时将所述待回收块进行回收。
33、第三方面,本专利技术提供一种固态硬盘,包括控制器和存储器,所述存储器用于存储程序,所述控制器用于在执行所述程序时,实现如前述实施方式中任一项所述的垃圾回收方法。
34、第四方面,本专利技术提供一种主机,包括如前述实施方式所述的固态硬盘。
35、第五方面,本专利技术提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被控制器执行时实现如前述实施方式中任一项所述的垃圾回收方法。
36、相对于现有技术而言,本专利技术具有以下有益效果:本专利技术获取存储有待回收块中多个待搬移数据中每一待搬移数据的物理地址faa的待搬移表,在待搬移表中多个待搬移数据的总长度大于或者等于预设长度时,从中确定总长度等于预设长度的目标待搬移数据,再将目标待搬移数据的faa对应的逻辑地址laa存储至合并表,在合并表中的所有目标待搬移数据的laa均有效时,对目标待搬移数据进行搬移以及在待回收块中不存在待搬移数据时将待回收块进行回收,通过待搬移表和合并表确定目标待搬移数据在搬移前是否因并行写入业务数据而变为无效,因而在回收流程中,在搬移数据处理前允许主机同步写数据、且能够保证主机写数据和搬移数据时读数据的数据一致性,并且减小了垃圾回收的粒度,提高本文档来自技高网...
【技术保护点】
1.一种垃圾回收方法,其特征在于,应用于固态硬盘,所述方法包括:
2.如权利要求1所述的垃圾回收方法,其特征在于,所述获取待搬移表的步骤之前还包括:
3.如权利要求2所述的垃圾回收方法,其特征在于,所述待回收块包括多个单元数据,所述确定所述待回收块中的有效数据的步骤包括:
4.如权利要求1所述的垃圾回收方法,其特征在于,所有所述目标待搬移数据预先读入缓存中,所述在所述合并表中的所有目标待搬移数据的LAA均有效时,对所述目标待搬移数据进行搬移的步骤包括:
5.如权利要求1所述的垃圾回收方法,其特征在于,所述固态硬盘和主机通信,所述方法还包括:
6.如权利要求1所述的垃圾回收方法,其特征在于,所述预设长度为所述固态硬盘的任一超级块中位于同一个die、且位于同一个条带的多个page的总长度、同一个条带的多个page所属block的序号相同、且page序号也相同。
7.一种垃圾回收装置,其特征在于,应用于固态硬盘,所述装置包括:
8.一种固态硬盘,其特征在于,包括控制器和存储器,所述存储器用于存储程序,所
9.一种主机,其特征在于,包括如权利要求8所述的固态硬盘。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,该计算机程序被控制器执行时实现如权利要求1-6中任一项所述的垃圾回收方法。
...【技术特征摘要】
1.一种垃圾回收方法,其特征在于,应用于固态硬盘,所述方法包括:
2.如权利要求1所述的垃圾回收方法,其特征在于,所述获取待搬移表的步骤之前还包括:
3.如权利要求2所述的垃圾回收方法,其特征在于,所述待回收块包括多个单元数据,所述确定所述待回收块中的有效数据的步骤包括:
4.如权利要求1所述的垃圾回收方法,其特征在于,所有所述目标待搬移数据预先读入缓存中,所述在所述合并表中的所有目标待搬移数据的laa均有效时,对所述目标待搬移数据进行搬移的步骤包括:
5.如权利要求1所述的垃圾回收方法,其特征在于,所述固态硬盘和主机通信,所述方法还包括:
6.如权利要求1所述的垃圾回收方法,其特...
【专利技术属性】
技术研发人员:孙成思,何瀚,王灿,张向杰,
申请(专利权)人:成都佰维存储科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。