CN111930301A - 垃圾回收优化方法、装置、存储介质及电子设备 - Google Patents

垃圾回收优化方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN111930301A
CN111930301A CN202010605703.2A CN202010605703A CN111930301A CN 111930301 A CN111930301 A CN 111930301A CN 202010605703 A CN202010605703 A CN 202010605703A CN 111930301 A CN111930301 A CN 111930301A
Authority
CN
China
Prior art keywords
data
effective
moved
mark
marks
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
Application number
CN202010605703.2A
Other languages
English (en)
Inventor
何振川
叶欣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Biwin Storage Technology Co Ltd
Original Assignee
Biwin Storage Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Biwin Storage Technology Co Ltd filed Critical Biwin Storage Technology Co Ltd
Priority to CN202010605703.2A priority Critical patent/CN111930301A/zh
Publication of CN111930301A publication Critical patent/CN111930301A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms

Abstract

本发明公开了一种垃圾回收优化方法、装置、存储介质及电子设备,该垃圾回收优化方法包括:记录每一个待搬移数据的逻辑地址和对应的物理地址至有效数据表,待搬移数据为待搬移数据块里的有效数据,每一个地址对的初始标记均为第一标记;在每一次GC过程中,将标记为第一标记的待搬移数据依次搬移至新数据块里,直至新数据块里的有效数据的数量达到预设有效值,则完成此次GC;若在此次GC中上层接收到写入命令,则判断写入命令中的写入数据的逻辑地址是否在有效数据表上,若在,则将有效数据表上与写入数据的逻辑地址一致的待搬移数据的标记修改为第二标记。本发明能减少无效数据的写入,减少了对block的无效消耗,增高了产品的使用寿命和使用性能。

Description

垃圾回收优化方法、装置、存储介质及电子设备
技术领域
本发明涉及存储芯片数据存储技术领域,特别涉及一种垃圾回收优化方法、装置、存储介质及电子设备。
背景技术
当前的闪存数据存储于nand flash(NAND闪存)的存储单元的block(数据块)中,当写入的数据越来越多,block消耗所剩无几,触及阈值,由于nand flash特性,block必须擦除后才能重新使用。所以,此时启动GC(Garbage Collection,垃圾回收),将originblock(使用过的数据块)中的有效数据进行搬移到dest block(新的数据块),然后擦除掉此次搬移过程中的origin block,变成dest block以继续使用。
但是因为在GC操作的过程中,由于耗时过长,必须采用分步处理的机制,如果此时有wirte(写操作)命令的到来,恰好写入数据是origin block中的有效数据,则originblock中的有效数据本质上是要减少的,但是GC操作却会把已经失效的数据(和写入数据内容相同的有效数据)当作有效数据写入dest block,导致无效写入操作增多,耗时增加,emmc(Embedded Multi Media Card,内嵌式存储器)性能下降。
发明内容
本发明所要解决的技术问题是:提供一种垃圾回收优化方法、装置、存储介质及电子设备,减少无效写入操作,避免emmc性能下降。
为了解决上述技术问题,本发明采用的技术方案为:
一种垃圾回收优化方法,其特征在于,包括步骤:
记录每一个待搬移数据的地址对至有效数据表,所述待搬移数据为待搬移数据块里的有效数据,每一个所述地址对的初始标记均为第一标记,所述地址对包括逻辑地址和对应的物理地址;
在每一次GC过程中,将标记为所述第一标记的所述待搬移数据依次搬移至新数据块里,直至所述新数据块里的有效数据的数量达到预设有效值,则完成此次GC;
若在此次GC中上层接收到写入命令,则判断所述写入命令中的写入数据的逻辑地址是否在所述有效数据表上,若在,则将所述有效数据表上与所述写入数据的逻辑地址一致的待搬移数据的标记修改为第二标记。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种垃圾回收优化装置,其特征在于,包括:
记录模块,用于记录每一个待搬移数据的地址对至有效数据表,所述待搬移数据为待搬移数据块里的有效数据,每一个所述地址对的初始标记均为第一标记,所述地址对包括逻辑地址和对应的物理地址;
搬移模块,用于在每一次GC过程中,将标记为所述第一标记的所述待搬移数据依次搬移至新数据块里,直至所述新数据块里的有效数据的数量达到预设有效值,则完成此次GC;
写入处理模块,用于在此次GC中上层接收到写入命令,则判断所述写入命令中的写入数据的逻辑地址是否在所述有效数据表上,若在,则将所述有效数据表上与所述写入数据的逻辑地址一致的待搬移数据的标记修改为第二标记。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序存储有上述所示的垃圾回收优化方法。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述所示的垃圾回收优化方法。
本发明的有益效果在于:一种垃圾回收优化方法、装置、存储介质及电子设备,在GC之前,先记录每一个待搬移数据的地址对至有效数据表,并对每一个待搬移数据赋予第一标记,在每一次GC过程中,将标记为第一标记的待搬移数据依次搬移至新数据块里;若在此次GC中上层接收到写入命令,则判断写入命令中的写入数据的逻辑地址是否在所述有效数据表上,若在,则说明有重复写入的有效数据,因此,将有效数据表上与写入数据的逻辑地址一致的待搬移数据的标记修改为第二标记,这样,就不会对第二标记的待搬移数据进行重复写入,以尽可能保证每一次完整的GC操作的写入数据都是有效数据,不会额外写入无效数据,减少了对block的无效消耗,增高了产品的使用寿命和使用性能。
附图说明
图1为本发明实施例的垃圾回收优化方法的流程示意图;
图2为本发明实施例涉及的新数据块的选取流程示意图;
图3为本发明实施例的垃圾回收优化方法的数据流转示意图;
图4为本发明实施例的垃圾回收优化装置的模块连接示意图;
图5为本发明实施例的电子设备的结构示意图。
标号说明:
1、垃圾回收优化装置;2、电子设备;11、记录模块;12、搬移模块;13、写入处理模块;21、处理器;22、存储器。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图1至图3,本发明实施例提供了一种垃圾回收优化方法,包括步骤:
记录每一个待搬移数据的地址对至有效数据表,所述待搬移数据为待搬移数据块里的有效数据,每一个所述地址对的初始标记均为第一标记,所述地址对包括逻辑地址和对应的物理地址;
在每一次GC过程中,将标记为所述第一标记的所述待搬移数据依次搬移至新数据块里,直至所述新数据块里的有效数据的数量达到预设有效值,则完成此次GC;
若在此次GC中上层接收到写入命令,则判断所述写入命令中的写入数据的逻辑地址是否在所述有效数据表上,若在,则将所述有效数据表上与所述写入数据的逻辑地址一致的待搬移数据的标记修改为第二标记。
其中,预设有效值是指一个新数据块所需要存储的有效数据的数量,比如图3中,预设有效值为30。
从上述描述可知,本发明的有益效果在于:在GC之前,先记录每一个待搬移数据的地址对至有效数据表,并对每一个待搬移数据赋予第一标记,在每一次GC过程中,将标记为第一标记的待搬移数据依次搬移至新数据块里;若在此次GC中上层接收到写入命令,则判断写入命令中的写入数据的逻辑地址是否在所述有效数据表上,若在,则说明有重复写入的有效数据,因此,将有效数据表上与写入数据的逻辑地址一致的待搬移数据的标记修改为第二标记,这样,就不会对第二标记的待搬移数据进行重复写入,以尽可能保证每一次完整的GC操作的写入数据都是有效数据,不会额外写入无效数据,减少了对block的无效消耗,增高了产品的使用寿命和使用性能。
进一步地,所述记录每一个待搬移数据的地址对至有效数据表具体包括以下步骤:
获取每一个已使用数据块的已使用有效值,所述已使用有效值为所述已使用数据块中有效数据的统计值;
判断所述已使用有效值中的最小值是否大于所述预设有效值,若是,则将所述已使用有效值中的最小值所对应的已使用数据块作为待搬移数据块,否则根据所述已使用有效值的递增顺序逐一累加,直到所述已使用有效值的累加值大于所述预设有效值,将参与累加的所述已使用有效值所对应的已使用数据块作为待搬移数据块;
按照所述已使用有效值的递增顺序,从所述待搬移数据块中依次获取有效数据并记录每一个所获取的有效数据的地址对至有效数据表,直至所获取的有效数据等于所述预设有效值,则完成所述有效数据表的记录。
从上述描述可知,已使用数据块随着写入数据的变多,越来越多的数据变成了无效数据,导致一个已使用数据块的已使用有效值往往要小于新数据块的预设有效值,需要多个已使用数据块里的有效数据才能填满一个新数据块。由此,通过将已使用数据块按照已使用有效值的大小进行累加,以保证新数据块能填满所需要的预设有效值,使得一次GC之后,释放出更多的数据块,以保证GC效果。
进一步地,选取所述新数据块包括以下步骤:
从数据块队列中获取每一个已擦除数据块的擦除次数,将所述擦除次数最小的一个所述已擦除数据块作为新数据块。
从上述描述可知,通过数据块的擦除次数来选取新数据块,以保证每一个数据块的擦除次数都比较接近,避免部分数据块因为擦除次数过多而提取报废,以延长产品的使用寿命。
进一步地,所述每一个所述地址对的初始标记均为第一标记之后还包括以下步骤:
初始化第一标记总数和第二标记总数,得到实时第一标记总数和实时第二标记总数;
在所述将标记为所述第一标记的所述待搬移数据依次搬移至新数据块里中还包括对所述第一标记总数按照搬移的数量依次递减,根据递减情况更新所述实时第一标记总数;
在所述将所述有效数据表上与所述写入数据的逻辑地址一致的待搬移数据的标记修改为第二标记中还包括对所述第一标记总数按照标记修改的数量依次递减以及对所述第二标记总数按照标记修改的数量依次递增,根据递增情况更新所述实时第一标记总数和所述实时第二标记总数,根据所述实时第一标记总数和所述实时第二标记总数确定所述新数据块里的有效数据的数量是否达到预设有效值。
从上述描述可知,对于有效数据表中的地址对进行标记初始化为第一标记之后,在进行有效数据搬移的过程中,对于整个有效数据表的有效数据进行递减操作,同时在写入操作进行标记修改时,对于有效数据表的有效数据和无效数据进行分别的递减和递增操作,从而在GC过程中,对于有效数据表的有效数据和无效数据进行实时的统计,以确定新数据块里的有效数据的数量是否达到预设有效值。
进一步地,根据所述实时第一标记总数和所述实时第二标记总数确定所述新数据块里的有效数据的数量是否达到预设有效值具体包括以下步骤:
当所述实时第一标记总数为0时,判断所述实时第二标记总数是否为0,若是,则确定所述新数据块里的有效数据的数量达到预设有效值,否则从未搬移数据中获取与所述实时第二标记总数的数量一致的二次搬移数据,将所述二次搬移数据搬移至新数据块里,并实时更新所述实时第二标记总数,直至所述实时第二标记总数为0,则确定所述新数据块里的有效数据的数量达到预设有效值。
其中,未搬移数据是指已使用数据块中未写入到有效数据表中的有效数据。
从上述描述可知,对于实时统计的实时第一标记总数和实时第二标记总数来说,在无写入操作时,当实时第一标记总数为0时,实时第二标记总数也为0,此时,新数据块里面存储的有效数据达到了预设有效值,则完成此次GC操作;而在有写入操作且有逻辑地址一致的有效数据已经被写入时,实时第二标记总数不为0,此时,实时第一标记总数为0,新数据块里面存储的有效数据依然没有达到预设有效值,还缺少和实时第二标记总数数量相等的有效数据,因此,需要将之前待搬移数据块中未参与搬移的有效数据搬移到新数据块,以保证新数据块中存储的有效数据达到预设有效值,实现存储空间最大利用化。
进一步地,若所述写入命令中的写入数据的逻辑地址不在所述有效数据表上,则所述GC忽略所述写入命令。
从上述描述可知,如果写入命令中的写入数据的逻辑地址不在有效数据表上,则表明有效数据表中的待搬移数据不存在重复写入的数据,因此,无需对此次的写入命令进行任何反应处理。
进一步地,所述完成此次GC之后还包括以下步骤:
将所述有效数据表中的数据全部清零处理,以进行下一次GC。
从上述描述可知,将有效数据表中的数据全部清零处理,以便在下一次GC时记录下一批待搬移数据的地址对,从而循环使用有效数据表所占用的存储空间。
请参照图4,本发明另一实施例提供了一种垃圾回收优化装置1,包括:
记录模块11,用于记录每一个待搬移数据的地址对至有效数据表,所述待搬移数据为待搬移数据块里的有效数据,每一个所述地址对的初始标记均为第一标记,所述地址对包括逻辑地址和对应的物理地址;
搬移模块12,用于在每一次GC过程中,将标记为所述第一标记的所述待搬移数据依次搬移至新数据块里,直至所述新数据块里的有效数据的数量达到预设有效值,则完成此次GC;
写入处理模块13,用于在此次GC中上层接收到写入命令,则判断所述写入命令中的写入数据的逻辑地址是否在所述有效数据表上,若在,则将所述有效数据表上与所述写入数据的逻辑地址一致的待搬移数据的标记修改为第二标记。
其中,关于记录模块11、搬移模块12和写入处理模块13所实现的具体过程和对应的效果,可以参照上述实施例的垃圾回收优化方法中的相关描述。
本发明另一实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序存储有上述实施例的垃圾回收优化方法。
其中,关于本实施例中的计算机程序中包含的垃圾回收优化方法的具体实现过程和对应效果,可以参照上述实施例的垃圾回收优化方法中的相关描述。
请参照图5,本发明另一实施例提供了一种电子设备2,包括存储器22、处理器21及存储在存储器22上并可在处理器21上运行的计算机程序,所述处理器21执行所述计算机程序时实现上述实施例的垃圾回收优化方法。
其中,关于本实施例中处理器21所实现的垃圾回收优化方法的具体实现过程和对应效果,可以参照上述的实施例的垃圾回收优化方法中的相关描述。
本申请的垃圾回收优化方法和对应的装置、存储介质及电子设备2主要应用于对任何存储芯片需要垃圾回收的应用场景,以下结合具体的应用场景进行说明:
根据以上所述,并结合图1至图3,本发明的实施例一为:
一种垃圾回收优化方法,包括步骤:
S1、记录每一个待搬移数据的地址对至有效数据表,待搬移数据为待搬移数据块里的有效数据,每一个地址对的初始标记均为第一标记,地址对包括逻辑地址和对应的物理地址;
在本实施例中,在block消耗至触及阈值而开始启动GC时,已使用数据块中每一个数据块都有可能被选为待搬移数据块,将待搬移数据块里的有效数据的地址对进行记录,如图3中的已使用数据块,其中block0的0表示数据块的编号,对应的valid(18)中的valid为有效的意思,18表示已使用有效值,即表示编号为0的数据块里共有18个有效数据,其余类推。而记录在有效数据表中LBA0中的LBA为逻辑地址,0表示逻辑地址的编号,用来区分不同的逻辑地址,valid0的0则表示有效数据在有效数据表中的编号。
同时,如图3所示,第一标记可以为有效,第二标记则对应为无效。在其他等同实施例中,任何能区分不同意思且和有效数据表中其他符号不起冲突的标记均可。
S2、在每一次GC过程中,将标记为第一标记的待搬移数据依次搬移至新数据块里,直至新数据块里的有效数据的数量达到预设有效值,则完成此次GC;
即在正常GC过程中,只有将标记为有效的待搬移数据进行搬移到新数据块,以保证新数据块中的数据都是没有重复写入的有效数据。
在本实施例中,如图3所示,数据块的预设有效值为30,在其他等同实施例,预设有效值可以根据数据块的实际容量进行设计。
但在实际的GC过程中,上层接收到写入命令,则步骤S2中还需要实时对写入命令中的写入数据进行判断处理,具体包括以下步骤:
若在此次GC中上层接收到写入命令,则判断写入命令中的写入数据的逻辑地址是否在有效数据表上,若在,则将有效数据表上与写入数据的逻辑地址一致的待搬移数据的标记修改为第二标记;
即在上层接收到写入命令时,由于上层会对写入命令中的写入数据进行写入,若写入数据的逻辑地址在有效数据表上,则说明有效数据表上的待搬移数据中存在着与写入数据重复的有效数据,该有效数据实际上已经是无效数据,因此,将其标记修改为第二标记,使得该第二标记的待搬移数据不会搬移到新数据块中。
值得说明的是,图3是在还未对有效数据表进行任何数据搬移时遇到了写入命令且逻辑地址一致的情况。而在GC的实际过程中,假设前面五个有效数据已经搬移到新数据块,比如图3中的vaild0-valid4。此时,这五个有效数据就不属于待搬移数据,其标记在搬移过程中会修改为第三标记,比如为已搬移。若在此时写入数据的逻辑地址一致的有vaild1、valid3和valid5,则因为vaild1、valid3已经不属于待搬移数据,则将有效数据表上与写入数据的逻辑地址一致的待搬移数据的标记修改为第二标记是将valid5的标记由有效修改为第二标记即可,不包括已经搬移不属于待搬移数据的vaild1、valid3的标记修改。
根据以上所述,并结合图1至图3,本发明的实施例二为:
一种垃圾回收优化方法,在本实施例中,对于步骤S1至步骤S2的内容作进一步的限定,具体如下:
所述步骤S1具体为:
S11、获取每一个已使用数据块的已使用有效值,已使用有效值为已使用数据块中有效数据的统计值;
如图3所示,比如编号为0的数据块里共有18个有效数据,即编号为0的已使用有效值为18,其他同理。
S12、判断已使用有效值中的最小值是否大于预设有效值,若是,则将已使用有效值中的最小值所对应的已使用数据块作为待搬移数据块,否则根据已使用有效值的递增顺序逐一累加,直到已使用有效值的累加值大于预设有效值,将参与累加的已使用有效值所对应的已使用数据块作为待搬移数据块;
在本实施例中,以图3列举的9个数据块进行说明如下,9个数据块中已使用有效值中的最小值为5,小于预设有效值30,则加上已使用有效值中的第二小的10,得到已使用有效值的累加值为15依然小于预设有效值30,直到加上已使用有效值中的第二小的18,得到已使用有效值的累加值为33时大于预设有效值30,则将已使用有效值为5、10、18所分别对应的block1、block4、block0作为待搬移数据块。
S13、按照已使用有效值的递增顺序,从待搬移数据块中依次获取有效数据并记录每一个所获取的有效数据的地址对至有效数据表,直至所获取的有效数据等于预设有效值,则完成有效数据表的记录,每一个地址对的初始标记均为第一标记,初始化第一标记总数和第二标记总数,得到实时第一标记总数和实时第二标记总数,地址对包括逻辑地址和对应的物理地址。
在本实施例中,按照顺序,先将block1中的5个有效数据的地址对填写在有效数据表,再依次将block4、block0中的10个有效数据、15个有效数据的地址对填写在有效数据表,直到有效数据表中的有效数据等于30个,则完成有效数据表的记录,30个地址对的初始标记均为有效,则实时第一标记总数为30,实时第二标记总数为0。此时,block0中还剩余3个有效数据。
在步骤S2之前,还需要选取出新数据块,至于选取新数据块的步骤在步骤S1之前还是在步骤S1之后,则并不影响,本实施例以在步骤S1之前进行说明,则选取新数据块包括以下步骤:
S0、从数据块队列中获取每一个已擦除数据块的擦除次数,将擦除次数最小的一个已擦除数据块作为新数据块。
如图2所示,对于每一个数据块来说,其初始擦除次数均为0,在每一次擦除之后则递增一次擦除次数作为更新后的擦除次数,当需要选取新数据块中,从已擦除数据块组成的数据块队列中获取每一个已擦除数据块的擦除次数,将擦除次数最小的一个已擦除数据块作为新数据块,使得每一个数据块的被擦除次数都比较接近,其中,当所有已擦除数据块的擦除次数均达到数据块寿命规定值,表示没有任何可以使用的数据块来作为新数据块,则停止寻找。
所述步骤S2具体为:
S21、在每一次GC过程中,将标记为第一标记的待搬移数据依次搬移至新数据块里,然后对第一标记总数按照搬移的数量依次递减,根据递减情况更新实时第一标记总数;
其中,比如待搬移数据valid0被搬移至新数据块里,则实时第一标记总数按照搬移的数量减1,得到更新后的实时第一标记总数为29,以此类推。
S22、若在此次GC中上层接收到写入命令,则判断写入命令中的写入数据的逻辑地址是否在有效数据表上,若在,则将有效数据表上与写入数据的逻辑地址一致的待搬移数据的标记修改为第二标记,对第一标记总数按照标记修改的数量依次递减以及对第二标记总数按照标记修改的数量依次递增,根据递增情况更新所述实时第一标记总数和所述实时第二标记总数,根据实时第一标记总数和实时第二标记总数确定新数据块里的有效数据的数量是否达到预设有效值,若写入命令中的写入数据的逻辑地址不在有效数据表上,则GC忽略写入命令;
如上实施例一所述,在还未对有效数据表进行任何数据搬移时遇到了写入命令且逻辑地址一致的情况下,其中待搬移数据vaild1、valid3和valid5均与写入数据的逻辑地址一致,则将待搬移数据vaild1、valid3和valid5的标记修改为无效,对实时第一标记总数按照标记修改的数量依次递减为27,对实时第二标记总数按照标记修改的数量依次递增为3。
其中,根据实时第一标记总数和实时第二标记总数确定新数据块里的有效数据的数量是否达到预设有效值具体包括以下步骤:
当实时第一标记总数为0时,判断实时第二标记总数是否为0,若是,则确定新数据块里的有效数据的数量达到预设有效值,否则从未搬移数据中获取与实时第二标记总数的数量一致的二次搬移数据,将二次搬移数据搬移至新数据块里,并实时更新实时第二标记总数,直至实时第二标记总数为0,则确定新数据块里的有效数据的数量达到预设有效值。
此时,当GC完成除待搬移数据vaild1、valid3和valid5之外27个待搬移数据的搬移后,实时第一标记总数为0,此时,实时第二标记总数为3,即不为0,则从之前未搬移数据中获取3个有效数据作为二次搬移数据,在本实施例中,由于此前block0还剩余3个有效数据未被写入有效数据表,也为未搬移数据,所以,就block0的剩余3个有效数据作为二次搬移数据搬移到新数据块里。
应当说明的是,假如block0中的有效数据只有16个的话,则block0只剩余1个有效数据为未搬移数据,此时,从已使用数据块中已使用有效值最低的一个数据块作为待搬移数据块,并取其中排在前两个的有效数据,合计共3个有效数据作为二次搬移数据,比如,图3中的block2共有20个有效数据,取block2为待搬移数据块,取block2中排在前两个的有效数据和block0剩余的1个有效数据作为二次搬移数据,以保证新数据块block50里填充有30个有效数据。
S23、当步骤S22中的新数据块里的有效数据的数量达到预设有效值,则完成此次GC,之后将有效数据表中的数据全部清零处理,以进行下一次GC。
即一次GC完成一个新数据块的写入,而在整个GC过程中,需要完成对多个新数据块的写入存储,由于被搬移的已使用数据块里包含的无效数据大于新数据块(新数据块基本没有无效数据),所以,多次GC过后,会空出多个已擦除数据块供存储使用,如上述实施例,释放了三个数据块block1、block4、block0,占用一个新数据块block50,则相当于释放了两个数据块。而就算对于有20个有效数据的已使用数据块来说,每GC二次,也能释放一个数据块。
请参照图4,本发明的实施例三为与上述实施例一或二中的垃圾回收优化方法相对应的一种垃圾回收优化装置1,包括:
记录模块11,用于记录每一个待搬移数据的地址对至有效数据表,待搬移数据为待搬移数据块里的有效数据,每一个地址对的初始标记均为第一标记,地址对包括逻辑地址和对应的物理地址;
搬移模块12,用于在每一次GC过程中,将标记为第一标记的待搬移数据依次搬移至新数据块里,直至新数据块里的有效数据的数量达到预设有效值,则完成此次GC;
写入处理模块13,用于在此次GC中上层接收到写入命令,则判断写入命令中的写入数据的逻辑地址是否在有效数据表上,若在,则将有效数据表上与写入数据的逻辑地址一致的待搬移数据的标记修改为第二标记。
本发明的实施例四为与上述实施例一或二中的垃圾回收优化方法对应的一种计算机可读存储介质,其上存储有计算机程序,计算机程序存储有如上实施例一或二中的垃圾回收优化方法。
请参照图5,本发明的实施例五为与上述实施例一或二中的垃圾回收优化方法相对应的一种电子设备2,包括存储器22、处理器21及存储在存储器22上并可在处理器21上运行的计算机程序,其中,处理器21执行计算机程序时实现上述实施例一或二中的垃圾回收优化方法。
在本申请所提供的五个实施例中,应该理解到,所揭露的方法、装置、存储介质以及电子设备2,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
综上所述,本发明提供的一种垃圾回收优化方法、装置、存储介质及电子设备,在GC之前,通过将已使用数据块按照已使用有效值的大小进行累加选取待搬移数据块,以释放出更多的数据块;之后通过数据块的擦除次数来选取新数据块,以延长产品的使用寿命;然后在GC开始之前先记录每一个待搬移数据的地址对至有效数据表,并对每一个待搬移数据赋予第一标记,在每一次GC过程中,将标记为第一标记的待搬移数据依次搬移至新数据块里,并实时统计第一标记总数;若在此次GC中上层接收到写入命令,则判断写入命令中的写入数据的逻辑地址是否在所述有效数据表上,若在,则说明有重复写入的有效数据,因此,将有效数据表上与写入数据的逻辑地址一致的待搬移数据的标记修改为第二标记,并实时统计的实时第一标记总数和实时第二标记总数,这样,就不会对第二标记的待搬移数据进行重复写入,以尽可能保证每一次完整的GC操作的写入数据都是有效数据,不会额外写入无效数据,减少了对block的无效消耗,增高了产品的使用寿命和使用性能;最后,将实时第一标记总数和实时第二标记总数是否为0作为此次GC完成的判断标准,以保证新数据块中存储的有效数据达到预设有效值,实现存储空间最大利用化,即本发明提供的一种垃圾回收优化方法、装置、存储介质及电子设备,能释放出更多的数据块供后续的数据写入,且能增加存储芯片和对应产品的使用寿命以及使用性能。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种垃圾回收优化方法,其特征在于,包括步骤:
记录每一个待搬移数据的地址对至有效数据表,所述待搬移数据为待搬移数据块里的有效数据,每一个所述地址对的初始标记均为第一标记,所述地址对包括逻辑地址和对应的物理地址;
在每一次GC过程中,将标记为所述第一标记的所述待搬移数据依次搬移至新数据块里,直至所述新数据块里的有效数据的数量达到预设有效值,则完成此次GC;
若在此次GC中上层接收到写入命令,则判断所述写入命令中的写入数据的逻辑地址是否在所述有效数据表上,若在,则将所述有效数据表上与所述写入数据的逻辑地址一致的待搬移数据的标记修改为第二标记。
2.根据权利要求1所述的垃圾回收优化方法,其特征在于,所述记录每一个待搬移数据的地址对至有效数据表具体包括以下步骤:
获取每一个已使用数据块的已使用有效值,所述已使用有效值为所述已使用数据块中有效数据的统计值;
判断所述已使用有效值中的最小值是否大于所述预设有效值,若是,则将所述已使用有效值中的最小值所对应的已使用数据块作为待搬移数据块,否则根据所述已使用有效值的递增顺序逐一累加,直到所述已使用有效值的累加值大于所述预设有效值,将参与累加的所述已使用有效值所对应的已使用数据块作为待搬移数据块;
按照所述已使用有效值的递增顺序,从所述待搬移数据块中依次获取有效数据并记录每一个所获取的有效数据的地址对至有效数据表,直至所获取的有效数据等于所述预设有效值,则完成所述有效数据表的记录。
3.根据权利要求1所述的垃圾回收优化方法,其特征在于,选取所述新数据块包括以下步骤:
从数据块队列中获取每一个已擦除数据块的擦除次数,将所述擦除次数最小的一个所述已擦除数据块作为新数据块。
4.根据权利要求1所述的垃圾回收优化方法,其特征在于,所述每一个所述地址对的初始标记均为第一标记之后还包括以下步骤:
初始化第一标记总数和第二标记总数,得到实时第一标记总数和实时第二标记总数;
在所述将标记为所述第一标记的所述待搬移数据依次搬移至新数据块里中还包括对所述第一标记总数按照搬移的数量依次递减,根据递减情况更新所述实时第一标记总数;
在所述将所述有效数据表上与所述写入数据的逻辑地址一致的待搬移数据的标记修改为第二标记中还包括对所述第一标记总数按照标记修改的数量依次递减以及对所述第二标记总数按照标记修改的数量依次递增,根据递增情况更新所述实时第一标记总数和所述实时第二标记总数,根据所述实时第一标记总数和所述实时第二标记总数确定所述新数据块里的有效数据的数量是否达到预设有效值。
5.根据权利要求4所述的垃圾回收优化方法,其特征在于,根据所述实时第一标记总数和所述实时第二标记总数确定所述新数据块里的有效数据的数量是否达到预设有效值具体包括以下步骤:
当所述实时第一标记总数为0时,判断所述实时第二标记总数是否为0,若是,则确定所述新数据块里的有效数据的数量达到预设有效值,否则从未搬移数据中获取与所述实时第二标记总数的数量一致的二次搬移数据,将所述二次搬移数据搬移至新数据块里,并实时更新所述实时第二标记总数,直至所述实时第二标记总数为0,则确定所述新数据块里的有效数据的数量达到预设有效值。
6.根据权利要求1至5任一所述的垃圾回收优化方法,其特征在于,若所述写入命令中的写入数据的逻辑地址不在所述有效数据表上,则所述GC忽略所述写入命令。
7.根据权利要求1至5任一所述的垃圾回收优化方法,其特征在于,所述完成此次GC之后还包括以下步骤:
将所述有效数据表中的数据全部清零处理,以进行下一次GC。
8.一种垃圾回收优化装置,其特征在于,包括:
记录模块,用于记录每一个待搬移数据的地址对至有效数据表,所述待搬移数据为待搬移数据块里的有效数据,每一个所述地址对的初始标记均为第一标记,所述地址对包括逻辑地址和对应的物理地址;
搬移模块,用于在每一次GC过程中,将标记为所述第一标记的所述待搬移数据依次搬移至新数据块里,直至所述新数据块里的有效数据的数量达到预设有效值,则完成此次GC;
写入处理模块,用于在此次GC中上层接收到写入命令,则判断所述写入命令中的写入数据的逻辑地址是否在所述有效数据表上,若在,则将所述有效数据表上与所述写入数据的逻辑地址一致的待搬移数据的标记修改为第二标记。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序存储有如权利要求1-7任意一项所述的垃圾回收优化方法。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7任意一项所述的垃圾回收优化方法。
CN202010605703.2A 2020-06-29 2020-06-29 垃圾回收优化方法、装置、存储介质及电子设备 Pending CN111930301A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010605703.2A CN111930301A (zh) 2020-06-29 2020-06-29 垃圾回收优化方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010605703.2A CN111930301A (zh) 2020-06-29 2020-06-29 垃圾回收优化方法、装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN111930301A true CN111930301A (zh) 2020-11-13

Family

ID=73317700

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010605703.2A Pending CN111930301A (zh) 2020-06-29 2020-06-29 垃圾回收优化方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN111930301A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113094295A (zh) * 2021-04-15 2021-07-09 深圳芯邦科技股份有限公司 数据存储管理方法、NAND Flash控制器及计算机存储介质
CN114721972A (zh) * 2022-06-09 2022-07-08 深圳佰维存储科技股份有限公司 垃圾回收方法、装置、可读存储介质及电子设备
TWI782654B (zh) * 2021-02-18 2022-11-01 慧榮科技股份有限公司 垃圾回收操作的管理機制
CN115826886A (zh) * 2023-02-24 2023-03-21 浪潮电子信息产业股份有限公司 追加写模式的数据垃圾回收方法、装置、系统及存储介质
CN116578246A (zh) * 2023-07-05 2023-08-11 合肥康芯威存储技术有限公司 一种存储设备及其控制方法

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102841850A (zh) * 2012-06-19 2012-12-26 记忆科技(深圳)有限公司 减小固态硬盘写放大的方法及系统
US20160179386A1 (en) * 2014-12-17 2016-06-23 Violin Memory, Inc. Adaptive garbage collection
CN105868122A (zh) * 2016-03-28 2016-08-17 深圳市硅格半导体股份有限公司 快闪存储设备的数据处理方法及装置
CN106990926A (zh) * 2017-06-14 2017-07-28 郑州云海信息技术有限公司 一种固态硬盘磨损均衡的处理方法
CN107092563A (zh) * 2017-04-20 2017-08-25 紫光华山信息技术有限公司 一种垃圾回收方法及装置
CN107391038A (zh) * 2017-07-26 2017-11-24 深圳市硅格半导体股份有限公司 资料存储型闪存的数据写入方法、闪存及存储介质
CN108415853A (zh) * 2018-03-15 2018-08-17 深圳市江波龙电子有限公司 一种垃圾回收的方法、装置及存储设备
CN110058796A (zh) * 2018-01-18 2019-07-26 慧荣科技股份有限公司 数据储存装置
CN110515552A (zh) * 2019-08-22 2019-11-29 深圳市得一微电子有限责任公司 一种存储设备数据快速写入的方法及系统
CN110543284A (zh) * 2019-09-05 2019-12-06 北京兆易创新科技股份有限公司 存储块的垃圾回收方法及装置、电子设备和存储介质
CN110659217A (zh) * 2019-08-30 2020-01-07 苏州浪潮智能科技有限公司 一种固态硬盘的垃圾回收方法、装置、设备及存储介质
CN110674056A (zh) * 2019-09-02 2020-01-10 新华三大数据技术有限公司 一种垃圾回收方法及装置
CN110688323A (zh) * 2018-07-06 2020-01-14 华为技术有限公司 一种系统控制器和系统垃圾回收方法
CN111045956A (zh) * 2019-12-22 2020-04-21 北京浪潮数据技术有限公司 一种基于多核cpu的固态硬盘垃圾回收方法以及装置
CN111324303A (zh) * 2020-01-21 2020-06-23 深圳忆联信息系统有限公司 Ssd垃圾回收方法、装置、计算机设备及存储介质

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102841850A (zh) * 2012-06-19 2012-12-26 记忆科技(深圳)有限公司 减小固态硬盘写放大的方法及系统
US20160179386A1 (en) * 2014-12-17 2016-06-23 Violin Memory, Inc. Adaptive garbage collection
CN105868122A (zh) * 2016-03-28 2016-08-17 深圳市硅格半导体股份有限公司 快闪存储设备的数据处理方法及装置
CN107092563A (zh) * 2017-04-20 2017-08-25 紫光华山信息技术有限公司 一种垃圾回收方法及装置
CN106990926A (zh) * 2017-06-14 2017-07-28 郑州云海信息技术有限公司 一种固态硬盘磨损均衡的处理方法
CN107391038A (zh) * 2017-07-26 2017-11-24 深圳市硅格半导体股份有限公司 资料存储型闪存的数据写入方法、闪存及存储介质
CN110058796A (zh) * 2018-01-18 2019-07-26 慧荣科技股份有限公司 数据储存装置
CN108415853A (zh) * 2018-03-15 2018-08-17 深圳市江波龙电子有限公司 一种垃圾回收的方法、装置及存储设备
CN110688323A (zh) * 2018-07-06 2020-01-14 华为技术有限公司 一种系统控制器和系统垃圾回收方法
CN110515552A (zh) * 2019-08-22 2019-11-29 深圳市得一微电子有限责任公司 一种存储设备数据快速写入的方法及系统
CN110659217A (zh) * 2019-08-30 2020-01-07 苏州浪潮智能科技有限公司 一种固态硬盘的垃圾回收方法、装置、设备及存储介质
CN110674056A (zh) * 2019-09-02 2020-01-10 新华三大数据技术有限公司 一种垃圾回收方法及装置
CN110543284A (zh) * 2019-09-05 2019-12-06 北京兆易创新科技股份有限公司 存储块的垃圾回收方法及装置、电子设备和存储介质
CN111045956A (zh) * 2019-12-22 2020-04-21 北京浪潮数据技术有限公司 一种基于多核cpu的固态硬盘垃圾回收方法以及装置
CN111324303A (zh) * 2020-01-21 2020-06-23 深圳忆联信息系统有限公司 Ssd垃圾回收方法、装置、计算机设备及存储介质

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI782654B (zh) * 2021-02-18 2022-11-01 慧榮科技股份有限公司 垃圾回收操作的管理機制
US11494299B2 (en) 2021-02-18 2022-11-08 Silicon Motion, Inc. Garbage collection operation management with early garbage collection starting point
US11681615B2 (en) 2021-02-18 2023-06-20 Silicon Motion, Inc. Garbage collection operation management based on overall valid page percentage of source block and candidate source block
US11704241B2 (en) 2021-02-18 2023-07-18 Silicon Motion, Inc. Garbage collection operation management with early garbage collection starting point
US11809312B2 (en) 2021-02-18 2023-11-07 Silicon Motion, Inc. Garbage collection operation management based on overall spare area
CN113094295A (zh) * 2021-04-15 2021-07-09 深圳芯邦科技股份有限公司 数据存储管理方法、NAND Flash控制器及计算机存储介质
CN114721972A (zh) * 2022-06-09 2022-07-08 深圳佰维存储科技股份有限公司 垃圾回收方法、装置、可读存储介质及电子设备
CN114721972B (zh) * 2022-06-09 2022-11-11 深圳佰维存储科技股份有限公司 垃圾回收方法、装置、可读存储介质及电子设备
CN115826886A (zh) * 2023-02-24 2023-03-21 浪潮电子信息产业股份有限公司 追加写模式的数据垃圾回收方法、装置、系统及存储介质
CN116578246A (zh) * 2023-07-05 2023-08-11 合肥康芯威存储技术有限公司 一种存储设备及其控制方法
CN116578246B (zh) * 2023-07-05 2023-09-29 合肥康芯威存储技术有限公司 一种存储设备及其控制方法

Similar Documents

Publication Publication Date Title
CN111930301A (zh) 垃圾回收优化方法、装置、存储介质及电子设备
US10649661B2 (en) Dynamically resizing logical storage blocks
EP2115595B1 (en) Memory device performance enhancement through pre-erase mechanism
CN109783017B (zh) 一种存储设备坏块的处理方法、装置及存储设备
US8949507B2 (en) Method for performing block management, and associated memory device and controller thereof
CN101582052B (zh) 存储器模组及于存储器模组中实现平均磨损的方法
CN102498522B (zh) 用于减小固态器件中的写入放大的容器标记方案
CN102508788B (zh) Ssd及ssd垃圾回收方法和装置
US9092323B2 (en) Systems and methods for recovering addressing data
CN109656486B (zh) 固态硬盘的配置方法、数据存储方法、固态硬盘和存储控制器
CN106775496B (zh) 一种存储数据处理方法及装置
US9213634B2 (en) Efficient reuse of segments in nonoverwrite storage systems
CN110673789B (zh) 固态硬盘的元数据存储管理方法、装置、设备及存储介质
CN110674056B (zh) 一种垃圾回收方法及装置
CN110389712B (zh) 数据写入方法及其装置、固态硬盘和计算机可读存储介质
CN104503703A (zh) 缓存的处理方法和装置
CN104424110A (zh) 固态驱动器的主动回收
CN111880723A (zh) 数据储存装置与数据处理方法
CN112445429A (zh) 固态硬盘物理块的管理方法及系统
CN107229580B (zh) 顺序流检测方法与装置
CN112256198B (zh) Ssd数据读取方法、装置、可读存储介质及电子设备
US9304906B2 (en) Memory system, controller and control method of memory
CN108153481B (zh) 一种nand的存储块回收方法和装置
CN110286848B (zh) 数据处理方法及装置
CN110780814B (zh) 一种存储数据整理方法与装置

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 518000 floors 1-3 and 4 of buildings 4 and 8, zone 2, Zhongguan honghualing Industrial South Zone, No. 1213 Liuxian Avenue, Pingshan community, Taoyuan Street, Nanshan District, Shenzhen, Guangdong

Applicant after: BIWIN STORAGE TECHNOLOGY Co.,Ltd.

Address before: 518000 1st, 2nd, 4th and 6th floors of No.4 factory building of tongfuyu industrial city, Taoyuan Street, Nanshan District, Shenzhen City, Guangdong Province

Applicant before: BIWIN STORAGE TECHNOLOGY Co.,Ltd.