CN117742582A - 一种高效率垃圾回收方法及存储装置 - Google Patents
一种高效率垃圾回收方法及存储装置 Download PDFInfo
- Publication number
- CN117742582A CN117742582A CN202311579572.5A CN202311579572A CN117742582A CN 117742582 A CN117742582 A CN 117742582A CN 202311579572 A CN202311579572 A CN 202311579572A CN 117742582 A CN117742582 A CN 117742582A
- Authority
- CN
- China
- Prior art keywords
- command
- buf
- data
- read
- write
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000010813 municipal solid waste Substances 0.000 title claims abstract description 58
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000004064 recycling Methods 0.000 title claims abstract description 14
- 238000013507 mapping Methods 0.000 claims description 11
- 230000001133 acceleration Effects 0.000 claims description 9
- 239000002699 waste material Substances 0.000 claims description 6
- 238000011084 recovery Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 abstract description 6
- 230000006870 function Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000015654 memory Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
Landscapes
- Memory System (AREA)
Abstract
一种高效率垃圾回收方法及存储装置,属于存储技术领域,确定垃圾回收过程的待回收资源块;确定垃圾回收过程的要写入的目的块;扫描一个或一组有效数据单元位置;针对所述有效数据单元准备一组读写命令;固件向资源块有效数据单元位置下发读命令到NFC命令队列中,向目的块下发写命令到NFC命令队列中;将写命令的数据就绪标志位置为true;NFC端检测到写命令数据就绪标志位为true,立刻执行写命令;等待写命令完成后,判断是否为有效数据。通过优化垃圾回收中读写命令下发机制,实现了读写过程中无需MCU介入,从流程上优化整个垃圾回收过程,减少对系统资源的消耗,降低过程中的处理时延,从而提升了垃圾回收效率,提高了存储设备性能。
Description
技术领域
本发明属于存储技术领域,尤其涉及一种高效率垃圾回收方法及存储装置。
背景技术
在存储领域不断发展的今天,采用固态存储设备来存储数据的场景越来越多,而其中绝大部分的固态存储设备是以兼顾低成本和大容量的NAND闪存作为存储介质。当前的NAND闪存介质通常具有以block为单位的擦除,以page为单位进行读写的特性。由于这种特性,主机下发的修改或删除操作会导致闪存中出现大量的离散的无效数据,所以需要垃圾回收这一功能,来对有效数据进行回收并释放可用空间。这种额外的开销会极大的降低整个存储设备的性能。
固态存储设备使用的NAND闪存介质通常具备copy back能力,但其局限于plane内部使用,无法很好满足固态存储设备级别的资源回收。因此,当前主流的垃圾回收方案的流程上基本一致,其方法为:先把有效数据从nand中读到缓存中,并进行必要的数据处理,然后下发写命令保存至nand中新的位置。这种方案能够有效解决GC的功能,但由于读写命令下发需要MCU控制,存在一定延时,影响垃圾回收效率。
发明内容
本发明旨在解决上述问题,通过优化写命令下发机制提供一种高效率垃圾回收方法及存储装置。
第一方面,本发明提供一种高效率垃圾回收方法,包括以下步骤:
S1. 确定垃圾回收过程的待回收资源块;
S2. 确定垃圾回收过程的要写入的目的块;
S3. 扫描一个或一组有效数据单元位置;
S4. 针对步骤S3所述有效数据单元准备一组读写命令,具体包含以下步骤:
a)申请一个data buf,读命令和写命令同时指向该data buf;
b)申请一个读命令的meta buf和一个写命令的meta buf;
c)固件将写命令的数据就绪标志位置为false;
d)固件将可预填的信息填充在写命令meta buf中对应的位置;
S5. 固件向资源块有效数据单元位置下发读命令到NFC命令队列中,向目的块下发写命令到NFC命令队列中;
S6. 等待读命令将有效数据读到data buf和meta buf后,将读命令meta buf中的不可预填信息复制到写命令的meta buf对应位置;
S7. 将写命令的数据就绪标志位置为true;
S8. NFC端检测到写命令数据就绪标志位为true,立刻执行写命令;
S9. 等待写命令完成后,判断是否为有效数据;
S10.判断是否为有效数据,若是则更新L2P映射关系,若不是则不更新L2P映射关系。
在本发明所述方法中,NFC是存储介质的管理驱动层。L2P是逻辑地址到物理地址的映射表,作用是通过逻辑地址找到对应的物理地址。Meta buf是用于存储非HOST数据的buf,用于存储对应HOST数据的系统摘要数据。所述系统摘要数据包括但不限于数据的LTA信息、数据的类型、数据的时间戳信息。其中LTA为HOST数据对应的主机LBA的转化信息。
在本发明所述方法中,Meta数据分为可预填数据和不可预填数据;所述可预填数据为垃圾回收时需要MCU修改的内容,如:时间戳信息。所述不可预填数据为垃圾回收时不需要MCU修改,并且与对应HOST数据相关的Meta部分数据,如:数据的LTA信息、数据的类型。
在进行垃圾回收操作时,不可预填数据需要伴随HOST数据一并读取获得;可预填数据,则在GC写入前由MCU自行填充。
进一步,本发明所述高效率垃圾回收方法,步骤S4所述准备一组读写命令时,读命令和写命令的data buf是同一个buf;读命令和写命令的meta buf是独立的两个buf。
进一步,本发明所述高效率垃圾回收方法,步骤S5所述下发读命令到NFC命令队列中,读命令的下一个命令是其同组的写命令。
第二方面,本发明提供一种高效率垃圾回收存储装置,包括一硬件加速管理模块;所述硬件加速管理模块包括命令队列管理模块和DMA mask模块;
所述命令队列管理模块用于命令队列中所有命令的有效性判断和管理;包括命令参数修改,修改写命令的命令就绪标志位或数据就绪标志位;命令有效判断,判断此条命令是否有效;命令剔除,根据命令置位情况和命令有效性,决定是否进行剔除命令操作;
所述DMA mask模块用于在meta数据从nand到读命令meta buf过程中,自动mask预填内容,使其不被覆写,仅使不可预填数据填充在读命令meta buf中;
所述硬件加速管理模块可执行以下步骤:
S1. 确定垃圾回收过程的待回收资源块;
S2. 确定垃圾回收过程的要写入的目的块;
S3. 扫描一个或一组有效数据单元位置;
S4. 针对步骤S3所述有效数据单元准备一组读写命令,具体包含以下步骤:
a)申请一个data buf,读命令和写命令同时指向该data buf;
b)申请一个读命令的meta buf和一个写命令的meta buf;
c)固件将写命令的数据就绪标志位置为false;
d)固件将可预填的信息填充在写命令meta buf中对应的位置;
S5. 固件向资源块有效数据单元位置下发读命令到NFC命令队列中,向目的块下发写命令到NFC命令队列中;
S6. 等待读命令将有效数据读到data buf和meta buf后,将读命令meta buf中的不可预填信息复制到写命令的meta buf对应位置;
S7. 将写命令的数据就绪标志位置为true;
S8. NFC端检测到写命令数据就绪标志位为true,立刻执行写命令;
S9. 等待写命令完成后,判断是否为有效数据;
S10.判断是否为有效数据,若是则更新L2P映射关系,若不是则不更新L2P映射关系。
进一步,本发明所述高效率垃圾回收存储装置,步骤S4所述准备一组读写命令时,读命令和写命令的data buf是同一个buf;读命令和写命令的meta buf是独立的两个buf。
进一步,本发明所述高效率垃圾回收存储装置,步骤S5所述下发读命令到NFC命令队列中,读命令的下一个命令是其同组的写命令。
进一步,本发明所述高效率垃圾回收存储装置,步骤S6采用硬件实现,当读命令完成数据读取后,硬件自动完成读命令meta buf中的不可预填信息复制到写命令的meta buf对应位置的操作。
进一步,本发明所述高效率垃圾回收存储装置,步骤S7采用硬件实现,当读命令完成数据读取后,硬件自动完成写命令的数据就绪标志位的置true操作。从而实现读写过程中无需MCU介入的高效性,提高了垃圾回收的效率。
本发明所述高效率垃圾回收方法及存储装置,通过优化垃圾回收中读写命令下发机制,实现了读写过程中无需MCU介入,从流程上优化整个垃圾回收过程,减少对系统资源的消耗,降低过程中的处理时延,从而提升了垃圾回收效率,提高了存储设备性能。
附图说明
图1为本发明实施例所述高效率垃圾回收方法流程示意图;
图2为本发明实施例所述高效率垃圾回收存储装置结构示意图;
图3为本发明实施例所述高效率垃圾回收存储装置回收流程示意图;
图4为本发明实施例所述写meta buf数据来源示意图;
图5为本发明实施例所述硬件模块参与的写meta buf数据来源示意图。
具体实施方式
下面通过附图及实施例对本发明所述高效率垃圾回收方法及存储装置进行详细说明。
实施例一
本实施例公开一种高效率垃圾回收方法,本实施例以SSD做垃圾回收作为实例,如图1所示,具体包括以下步骤:
步骤1. 确定垃圾回收过程的待回收资源块block A;
步骤2. 确定垃圾回收过程的要写入的目的块block B;
步骤3. 扫描block A一个或一组有效数据单元位置;
步骤4. 申请一个data buf,将读命令和写命令的data buf同时指向该data buf;申请一个读命令的meta buf和一个写命令的meta buf;
步骤5. 固件将写命令的数据就绪标志位置为false;
步骤6. 固件将可预填的信息填充在写命令meta buf中对应的位置;
步骤7. 固件向block A有效数据单元位置下发读命令到NFC命令队列中,向blockB下发写命令到NFC命令队列中;
步骤8. 等待读命令完成,有效数据从nand读到读命令的data buf和meta buf;
步骤9. 硬件将读命令的meta buf中的不可预填信息复制到写命令的meta buf对应位置,如图4所示,由箭头4可知,写meta buf数据中可预填内容是直接由固件填充,由箭头1,箭头2,箭头3可知,不可预填内容先从nand中对应位置读到读meta buf,然后再从读meta buf搬移到写meta buf;
步骤10.硬件将写命令的数据就绪标志位置为true;
步骤11.NFC端检测到写命令的数据就绪标志为true,立刻执行写命令;
步骤12.等待写命令完成后,判断是有效数据,则进行步骤12,判断不是有效数据,则结束;
步骤13.更新L2P映射关系,结束。
在本公开实施例中,Meta数据分为可预填数据和不可预填数据;所述可预填数据为垃圾回收时需要MCU修改的内容,如:时间戳信息。所述不可预填数据为垃圾回收时不需要MCU修改,并且与对应HOST数据相关的Meta部分数据,如:数据的LTA信息、数据的类型。
在进行垃圾回收操作时,不可预填数据需要伴随HOST数据一并读取获得;可预填数据,则在GC写入前由MCU自行填充。步骤S4所述准备一组读写命令时,读命令和写命令的data buf是同一个buf;读命令和写命令的meta buf是独立的两个buf。步骤S5所述下发读命令到NFC命令队列中,读命令的下一个命令是其同组的写命令。
实施例二
本实施例公开一种高效率垃圾回收存储装置,如图2所示,包括一硬件加速管理模块;所述硬件加速管理模块包括命令队列管理模块和DMA mask模块;
所述命令队列管理模块用于命令队列中所有命令的有效性判断和管理;包括命令参数修改,修改写命令的命令就绪标志位或数据就绪标志位;命令有效判断,判断此条命令是否有效;命令剔除,根据命令置位情况和命令有效性,决定是否进行剔除命令操作;所述DMA mask模块用于在meta数据从nand到读命令meta buf过程中,自动mask预填内容,使其不被覆写,仅使不可预填数据填充在读命令meta buf中。
如图3所示,以SSD做垃圾回收作为例,所述硬件加速管理模块可执行以下步骤:
步骤1. 确定垃圾回收过程的待回收资源块block A;
步骤2. 确定垃圾回收过程的要写入的目的块block B;
步骤3. 申请一个data buf,读命令和写命令的data buf同时指向该data buf,申请一个meta buf,读命令和写命令的meta buf同时指向该meta buf;
步骤4. 固件将写命令的数据就绪标志位和命令就绪标志位置为false;
步骤5. 固件将可预填的信息填在写命令的meta buf中对应的位置上;
步骤6. 固件向block A有效数据单元位置下发读命令到NFC命令队列中,向要写入block B下发写命令到NFC命令队列中;
步骤7. 等待读命令完成,有效数据从nand读到写命令的data buf,nand的meta数据由DMA mask模块过滤,使被固件预填位置内容不被nand的meta buf的数据覆盖,如图5所示。写meta buf数据中可预填内容是直接由固件填充,由箭头1,箭头2可知,nand内的meta数据会经过dma mask模块搬移,其中可预填内容会被过滤,不可预填内容会由dma mask模块搬移到写meta buf中对应位置;
步骤8. 等待DMA mask模块处理完成,命令队列管理模块功能一将写命令的数据就绪标志位置为true;
步骤9. 命令队列管理模块功能二判断此命令有效,则进行步骤10,若判断此命令无效,则进行步骤11;
步骤10.命令队列管理模块功能一将写命令的命令就绪标志位置为true,接着进行步骤12;
步骤11.命令队列管理模块功能三剔除此命令,结束;
步骤12.NFC检测到写命令的命令就绪标志位是true,立刻执行命令,接着进行步骤13;
步骤13.等待写命令完成,更新对应的L2P映射表,结束。
在本公开实施例中,步骤S4所述准备一组读写命令时,读命令和写命令的databuf是同一个buf;读命令和写命令的meta buf是独立的两个buf。步骤S5所述下发读命令到NFC命令队列中,读命令的下一个命令是其同组的写命令。
基于本公开实施例所述高效率垃圾回收存储装置,步骤S6可采用硬件实现,当读命令完成数据读取后,硬件自动完成读命令meta buf中的不可预填信息复制到写命令的meta buf对应位置的操作。步骤S7可采用硬件实现,当读命令完成数据读取后,硬件自动完成写命令的数据就绪标志位的置true操作。
本发明所述高效率垃圾回收方法及存储装置,通过优化写命令下发机制,从流程上优化整个垃圾回收的命令处理效率,读写过程中无需MCU介入,以减少控制器的消耗,降低了命令处理过程中的时延,从而提升了垃圾回收效率,提高了存储设备的整体性能。
显然,上述实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
Claims (8)
1.一种高效率垃圾回收方法,其特征在于包括以下步骤:
S1. 确定垃圾回收过程的待回收资源块;
S2. 确定垃圾回收过程的要写入的目的块;
S3. 扫描一个或一组有效数据单元位置;
S4. 针对步骤S3所述有效数据单元准备一组读写命令,具体包含以下步骤:
a)申请一个data buf,读命令和写命令同时指向该data buf;
b)申请一个读命令的meta buf和一个写命令的meta buf;
c)固件将写命令的数据就绪标志位置为false;
d)固件将可预填的信息填充在写命令meta buf中对应的位置;
S5. 固件向资源块有效数据单元位置下发读命令到NFC命令队列中,向目的块下发写命令到NFC命令队列中;
S6. 等待读命令将有效数据读到data buf和meta buf后,将读命令meta buf中的不可预填信息复制到写命令的meta buf对应位置;
S7. 将写命令的数据就绪标志位置为true;
S8. NFC端检测到写命令数据就绪标志位为true,立刻执行写命令;
S9. 等待写命令完成后,判断是否为有效数据;
S10.判断是否为有效数据,若是则更新L2P映射关系,若不是则不更新L2P映射关系。
2. 根据权利要求1所述高效率垃圾回收方法,其特征在于:步骤S4所述准备一组读写命令时,读命令和写命令的data buf是同一个buf;读命令和写命令的meta buf是独立的两个buf。
3.根据权利要求2所述高效率垃圾回收方法,其特征在于:步骤S5所述下发读命令到NFC命令队列中,读命令的下一个命令是其同组的写命令。
4. 一种高效率垃圾回收存储装置,其特征在于:包括一硬件加速管理模块;所述硬件加速管理模块包括命令队列管理模块和DMA mask模块;
所述命令队列管理模块用于命令队列中所有命令的有效性判断和管理;包括命令参数修改,修改写命令的命令就绪标志位或数据就绪标志位;命令有效判断,判断此条命令是否有效;命令剔除,根据命令置位情况和命令有效性,决定是否进行剔除命令操作;
所述DMA mask模块用于在meta数据从nand到读命令meta buf过程中,自动mask预填内容,使其不被覆写,仅使不可预填数据填充在读命令meta buf中;
所述硬件加速管理模块可执行以下步骤:
S1. 确定垃圾回收过程的待回收资源块;
S2. 确定垃圾回收过程的要写入的目的块;
S3. 扫描一个或一组有效数据单元位置;
S4. 针对步骤S3所述有效数据单元准备一组读写命令,具体包含以下步骤:
a)申请一个data buf,读命令和写命令同时指向该data buf;
b)申请一个读命令的meta buf和一个写命令的meta buf;
c)固件将写命令的数据就绪标志位置为false;
d)固件将可预填的信息填充在写命令meta buf中对应的位置;
S5. 固件向资源块有效数据单元位置下发读命令到NFC命令队列中,向目的块下发写命令到NFC命令队列中;
S6. 等待读命令将有效数据读到data buf和meta buf后,将读命令meta buf中的不可预填信息复制到写命令的meta buf对应位置;
S7. 将写命令的数据就绪标志位置为true;
S8. NFC端检测到写命令数据就绪标志位为true,立刻执行写命令;
S9. 等待写命令完成后,判断是否为有效数据;
S10.判断是否为有效数据,若是则更新L2P映射关系,若不是则不更新L2P映射关系。
5. 根据权利要求4所述高效率垃圾回收存储装置,其特征在于:步骤S4所述准备一组读写命令时,读命令和写命令的data buf是同一个buf;读命令和写命令的meta buf是独立的两个buf。
6.根据权利要求5所述高效率垃圾回收存储装置,其特征在于:步骤S5所述下发读命令到NFC命令队列中,读命令的下一个命令是其同组的写命令。
7. 根据权利要求6所述高效率垃圾回收存储装置,其特征在于:步骤S6采用硬件实现,当读命令完成数据读取后,硬件自动完成读命令meta buf中的不可预填信息复制到写命令的meta buf对应位置的操作。
8.根据权利要求7所述高效率垃圾回收存储装置,其特征在于:步骤S7采用硬件实现,当读命令完成数据读取后,硬件自动完成写命令的数据就绪标志位的置true操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311579572.5A CN117742582A (zh) | 2023-11-24 | 2023-11-24 | 一种高效率垃圾回收方法及存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311579572.5A CN117742582A (zh) | 2023-11-24 | 2023-11-24 | 一种高效率垃圾回收方法及存储装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117742582A true CN117742582A (zh) | 2024-03-22 |
Family
ID=90276558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311579572.5A Pending CN117742582A (zh) | 2023-11-24 | 2023-11-24 | 一种高效率垃圾回收方法及存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117742582A (zh) |
-
2023
- 2023-11-24 CN CN202311579572.5A patent/CN117742582A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7515500B2 (en) | Memory device performance enhancement through pre-erase mechanism | |
US10007468B2 (en) | Method and apparatus for erasing data in data section in flash memory | |
US8219776B2 (en) | Logical-to-physical address translation for solid state disks | |
CN106598878B (zh) | 一种固态硬盘冷热数据分离方法 | |
US9940040B2 (en) | Systems, solid-state mass storage devices, and methods for host-assisted garbage collection | |
CN108431783B (zh) | 访问请求处理方法、装置及计算机系统 | |
US20100241819A1 (en) | Controller and memory system | |
CN110309077B (zh) | 主机与设备协同工作的闪存转换层构建方法及装置 | |
WO2021082422A1 (zh) | 一种存储系统空间回收的兼容处理方法、系统及设备 | |
CN108874574B (zh) | 一种垃圾回收处理方法及相关装置 | |
CN106326132B (zh) | 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法 | |
KR101077901B1 (ko) | 로그 블록 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법 | |
CN113190180A (zh) | 一种基于混合介质的存储装置及分布式存储系统 | |
CN117742582A (zh) | 一种高效率垃圾回收方法及存储装置 | |
CN112214356B (zh) | 文件数据恢复方法、装置、计算机设备及存储介质 | |
CN110389706B (zh) | 一种指纹回收方法以及存储系统 | |
CN117539692B (zh) | 一种zns固态硬盘数据集管理命令实现方法 | |
CN109753240B (zh) | 一种采用垃圾回收机制的数据存储方法 | |
TWI805937B (zh) | 記憶體控制器與資料處理方法 | |
KR101791855B1 (ko) | 스토리지 장치 및 이의 공간 재수거 방법 | |
CN116301576A (zh) | 一种面向zns-ssd存储系统的垃圾回收方法 | |
CN115220664A (zh) | Ssd映射表与用户数据保存同步方法、装置、计算机设备及存储介质 | |
CN110618793A (zh) | 一种减少gc处理量的闪存数据写入方法、系统及闪存 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |