System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于存储,尤其涉及一种高效率垃圾回收方法及存储装置。
技术介绍
1、在存储领域不断发展的今天,采用固态存储设备来存储数据的场景越来越多,而其中绝大部分的固态存储设备是以兼顾低成本和大容量的nand闪存作为存储介质。当前的nand闪存介质通常具有以block为单位的擦除,以page为单位进行读写的特性。由于这种特性,主机下发的修改或删除操作会导致闪存中出现大量的离散的无效数据,所以需要垃圾回收这一功能,来对有效数据进行回收并释放可用空间。这种额外的开销会极大的降低整个存储设备的性能。
2、固态存储设备使用的nand闪存介质通常具备copy back能力,但其局限于plane内部使用,无法很好满足固态存储设备级别的资源回收。因此,当前主流的垃圾回收方案的流程上基本一致,其方法为:先把有效数据从nand中读到缓存中,并进行必要的数据处理,然后下发写命令保存至nand中新的位置。这种方案能够有效解决gc的功能,但由于读写命令下发需要mcu控制,存在一定延时,影响垃圾回收效率。
技术实现思路
1、本专利技术旨在解决上述问题,通过优化写命令下发机制提供一种高效率垃圾回收方法及存储装置。
2、第一方面,本专利技术提供一种高效率垃圾回收方法,包括以下步骤:
3、s1. 确定垃圾回收过程的待回收资源块;
4、s2. 确定垃圾回收过程的要写入的目的块;
5、s3. 扫描一个或一组有效数据单元位置;
6、s4. 针对步骤s
7、a)申请一个data buf,读命令和写命令同时指向该data buf;
8、b)申请一个读命令的meta buf和一个写命令的meta buf;
9、c)固件将写命令的数据就绪标志位置为false;
10、d)固件将可预填的信息填充在写命令meta buf中对应的位置;
11、s5. 固件向资源块有效数据单元位置下发读命令到nfc命令队列中,向目的块下发写命令到nfc命令队列中;
12、s6. 等待读命令将有效数据读到data buf和meta buf后,将读命令meta buf中的不可预填信息复制到写命令的meta buf对应位置;
13、s7. 将写命令的数据就绪标志位置为true;
14、s8. nfc端检测到写命令数据就绪标志位为true,立刻执行写命令;
15、s9. 等待写命令完成后,判断是否为有效数据;
16、s10.判断是否为有效数据,若是则更新l2p映射关系,若不是则不更新l2p映射关系。
17、在本专利技术所述方法中,nfc是存储介质的管理驱动层。l2p是逻辑地址到物理地址的映射表,作用是通过逻辑地址找到对应的物理地址。meta buf是用于存储非host数据的buf,用于存储对应host数据的系统摘要数据。所述系统摘要数据包括但不限于数据的lta信息、数据的类型、数据的时间戳信息。其中lta为host数据对应的主机lba的转化信息。
18、在本专利技术所述方法中,meta数据分为可预填数据和不可预填数据;所述可预填数据为垃圾回收时需要mcu修改的内容,如:时间戳信息。所述不可预填数据为垃圾回收时不需要mcu修改,并且与对应host数据相关的meta部分数据,如:数据的lta信息、数据的类型。
19、在进行垃圾回收操作时,不可预填数据需要伴随host数据一并读取获得;可预填数据,则在gc写入前由mcu自行填充。
20、进一步,本专利技术所述高效率垃圾回收方法,步骤s4所述准备一组读写命令时,读命令和写命令的data buf是同一个buf;读命令和写命令的meta buf是独立的两个buf。
21、进一步,本专利技术所述高效率垃圾回收方法,步骤s5所述下发读命令到nfc命令队列中,读命令的下一个命令是其同组的写命令。
22、第二方面,本专利技术提供一种高效率垃圾回收存储装置,包括一硬件加速管理模块;所述硬件加速管理模块包括命令队列管理模块和dma mask模块;
23、所述命令队列管理模块用于命令队列中所有命令的有效性判断和管理;包括命令参数修改,修改写命令的命令就绪标志位或数据就绪标志位;命令有效判断,判断此条命令是否有效;命令剔除,根据命令置位情况和命令有效性,决定是否进行剔除命令操作;
24、所述dma mask模块用于在meta数据从nand到读命令meta buf过程中,自动mask预填内容,使其不被覆写,仅使不可预填数据填充在读命令meta buf中;
25、所述硬件加速管理模块可执行以下步骤:
26、s1. 确定垃圾回收过程的待回收资源块;
27、s2. 确定垃圾回收过程的要写入的目的块;
28、s3. 扫描一个或一组有效数据单元位置;
29、s4. 针对步骤s3所述有效数据单元准备一组读写命令,具体包含以下步骤:
30、a)申请一个data buf,读命令和写命令同时指向该data buf;
31、b)申请一个读命令的meta buf和一个写命令的meta buf;
32、c)固件将写命令的数据就绪标志位置为false;
33、d)固件将可预填的信息填充在写命令meta buf中对应的位置;
34、s5. 固件向资源块有效数据单元位置下发读命令到nfc命令队列中,向目的块下发写命令到nfc命令队列中;
35、s6. 等待读命令将有效数据读到data buf和meta buf后,将读命令meta buf中的不可预填信息复制到写命令的meta buf对应位置;
36、s7. 将写命令的数据就绪标志位置为true;
37、s8. nfc端检测到写命令数据就绪标志位为true,立刻执行写命令;
38、s9. 等待写命令完成后,判断是否为有效数据;
39、s10.判断是否为有效数据,若是则更新l2p映射关系,若不是则不更新l2p映射关系。
40、进一步,本专利技术所述高效率垃圾回收存储装置,步骤s4所述准备一组读写命令时,读命令和写命令的data buf是同一个buf;读命令和写命令的meta buf是独立的两个buf。
41、进一步,本专利技术所述高效率垃圾回收存储装置,步骤s5所述下发读命令到nfc命令队列中,读命令的下一个命令是其同组的写命令。
42、进一步,本专利技术所述高效率垃圾回收存储装置,步骤s6采用硬件实现,当读命令完成数据读取后,硬件自动完成读命令meta buf中的不可预填信息复制到写命令的meta buf对应位置的操作。
43、进一步,本专利技术所述高效率垃圾回收存储装置,步骤s7采用硬件实现,当读命令完成数据读取后,硬件自动完成写命令的本文档来自技高网...
【技术保护点】
1.一种高效率垃圾回收方法,其特征在于包括以下步骤:
2. 根据权利要求1所述高效率垃圾回收方法,其特征在于:步骤S4所述准备一组读写命令时,读命令和写命令的data buf是同一个buf;读命令和写命令的meta buf是独立的两个buf。
3.根据权利要求2所述高效率垃圾回收方法,其特征在于:步骤S5所述下发读命令到NFC命令队列中,读命令的下一个命令是其同组的写命令。
4. 一种高效率垃圾回收存储装置,其特征在于:包括一硬件加速管理模块;所述硬件加速管理模块包括命令队列管理模块和DMA mask模块;
5. 根据权利要求4所述高效率垃圾回收存储装置,其特征在于:步骤S4所述准备一组读写命令时,读命令和写命令的data buf是同一个buf;读命令和写命令的meta buf是独立的两个buf。
6.根据权利要求5所述高效率垃圾回收存储装置,其特征在于:步骤S5所述下发读命令到NFC命令队列中,读命令的下一个命令是其同组的写命令。
7. 根据权利要求6所述高效率垃圾回收存储装置,其特征在于:步骤S6采用硬件
8.根据权利要求7所述高效率垃圾回收存储装置,其特征在于:步骤S7采用硬件实现,当读命令完成数据读取后,硬件自动完成写命令的数据就绪标志位的置true操作。
...【技术特征摘要】
1.一种高效率垃圾回收方法,其特征在于包括以下步骤:
2. 根据权利要求1所述高效率垃圾回收方法,其特征在于:步骤s4所述准备一组读写命令时,读命令和写命令的data buf是同一个buf;读命令和写命令的meta buf是独立的两个buf。
3.根据权利要求2所述高效率垃圾回收方法,其特征在于:步骤s5所述下发读命令到nfc命令队列中,读命令的下一个命令是其同组的写命令。
4. 一种高效率垃圾回收存储装置,其特征在于:包括一硬件加速管理模块;所述硬件加速管理模块包括命令队列管理模块和dma mask模块;
5. 根据权利要求4所述高效率垃圾回收存储装置,其特征在于:步骤s4所述准备一组读写...
【专利技术属性】
技术研发人员:唐伟,韩延良,李帅,王腾腾,董璊,吉镇东,孙元春,马冲,
申请(专利权)人:尧云科技西安有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。