CN108776614A - 存储块的回收方法和装置 - Google Patents

存储块的回收方法和装置 Download PDF

Info

Publication number
CN108776614A
CN108776614A CN201810416532.1A CN201810416532A CN108776614A CN 108776614 A CN108776614 A CN 108776614A CN 201810416532 A CN201810416532 A CN 201810416532A CN 108776614 A CN108776614 A CN 108776614A
Authority
CN
China
Prior art keywords
memory block
storage
domain
target
threshold value
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.)
Granted
Application number
CN201810416532.1A
Other languages
English (en)
Other versions
CN108776614B (zh
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201810416532.1A priority Critical patent/CN108776614B/zh
Publication of CN108776614A publication Critical patent/CN108776614A/zh
Application granted granted Critical
Publication of CN108776614B publication Critical patent/CN108776614B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Abstract

本申请提供了一种存储块的回收方法和装置,该方法包括:获取存储设备中待回收的目标存储区域的状态信息,所述状态信息用于确定所述目标存储区域中的存储块处于可回收状态或不可回收状态;根据所述状态信息,确定所述目标存储区域中处于所述可回收状态的存储块;将所述处于所述可回收状态的存储块标记为能够用于数据存储的空闲块。本申请实施例中,以存储设备中的存储块为粒度进行存储资源的回收,并直接将处于可回收状态的存储块标记为空闲块。从而无需像传统的存储块回收那样,先将待回收的存储资源中的有效数据存储至其他存储空间之后,才能对该存储资源进行回收,有利于提高回收存储块的效率。

Description

存储块的回收方法和装置
技术领域
本申请涉及存储领域,并且更具体地,涉及存储块的回收方法和装置。
背景技术
通常存储设备的缓存和/或内存的存储空间非常有限,在有限的存储空间中还会存储有访问频度非常低,甚至不会被访问的数据,例如,无效数据和/或冷数据。为了提高存储设备中缓存和内存的存储资源的利用率,可以通过垃圾回收(Garbage Collection,GC)机制,将存储设备中用于存储上述数据的存储块(Block)进行回收,以释放这些存储块的存储资源,用于继续存储其他的数据。
由于使用固态硬盘(Solid State Drives,SSD)作为提供存储空间是比较主流的方式,而SSD是以闪存(Flash Memory)芯片为存储介质的存储器,因此,现有的GC机制都是基于闪存的存储特性制定的。
然而,随着存储技术的发展,新型存储设备相对于闪存而言,具有不同的存储特性,例如,相变存储器(Phase Change Memory,PCM)。如果继续沿用传统的GC机制,会大大限制GC的效率。
发明内容
本申请提供一种存储块的回收方法和装置,有利于提高回收存储块的效率。
第一方面,提供了一种存储块的回收方法,包括:获取存储设备中待回收的目标存储区域的状态信息,所述状态信息用于确定所述目标存储区域中的存储块处于可回收状态或不可回收状态;根据所述状态信息,确定所述目标存储区域中处于所述可回收状态的存储块;将所述处于所述可回收状态的存储块标记为能够用于数据存储的空闲块。
本申请实施例中,以存储设备中的存储块为粒度进行存储资源的回收,并直接将处于可回收状态的存储块标记为空闲块。从而无需像传统的存储块回收那样,先将待回收的存储资源中的有效数据存储至其他存储空间之后,才能对该存储资源进行回收,有利于提高回收存储块的效率。
在一种可能的实现方式中,目标存储区域可以为存储设备中的部分存储区域。
在本申请实施例中,通过对存储设备中的部分存储区域中的存储块进行回收,有利于减少回收存储块所需的时间。
在一种可能的实现方式中,所述目标存储区域与所述存储设备中的第一存储区域不重叠,所述第一存储区域为在对所述目标存储区域进行回收之前执行的回收过程中使用的待回收的存储区域。
本申请实施例中,通过将第一存储区域与目标存储区域配置为不重叠的存储区域,有利于均衡存储设备中存储块的试用寿命。
可选地,第一存储区域与目标存储区域相邻。
在一种可能的实现方式中,所述方法还包括:按照第一顺序,选择位于所述第一存储区域之后的存储区域作为所述目标存储区域,所述第一顺序为向所述存储设备中写数据的过程中,由先到后占用存储块的顺序。
本申请实施例中,按照向所述存储设备中写数据的过程中,由先到后占用存储块的顺序,选择目标存储区域,以便存储至存储设备中的数据能够有时间积累访问频度,有利于提高确定热块和冷块的准确性。
在一种可能的实现方式中,所述方法还包括:根据在对所述目标存储区域进行回收之前,执行的至少一次回收过程中使用的访问频度阈值,确定所述目标存储区域的大小。
本申请实施例中,基于上述至少一次的回收过程中使用的访问频度阈值,确定目标存储区域的大小,有利于提高确定目标存储区域的大小的合理性。
在一种可能的实现方式中,第一访问频度阈值为在对所述第一存储区域进行回收的过程中使用的访问频度阈值,目标访问频度为在对目标存储区域进行回收的过程中使用的访问频度阈值,所述根据在对所述目标存储区域进行回收之前,执行的至少一次回收过程中使用的访问频度阈值,确定所述目标存储区域的大小,包括:确定所述第一访问频度阈值与基准访问频度阈值之间的变化量;根据所述变化量,调整所述第一存储区域的大小;根据所述调整后的第一存储区域的大小,确定所述目标存储区域的大小,以降低所述目标访问频度阈值与所述基准访问频度阈值之间的变化量。
上述变化量为基准访问频度阈值与第一访问频度阈值之间的差,或基准访问频度阈值与第一访问频度阈值之间的商时,所述变化量与所述调整后的第一存储区域的大小正相关。所述变化量为所述第一访问频度阈值与基准访问频度阈值之间的差,或第一访问频度阈值与基准访问频度阈值之间的商,所述变化量与所述调整后的第一存储区域的大小反相关。
本申请实施例中,基于第一访问频度阈值与基准访问频度阈值之间的变化量,确定目标存储区域的大小,降低所述目标访问频度阈值与所述基准访问频度阈值之间的变化量,使得存储设备中的热块的访问频度比较均衡。
在一种可能的实现方式中,在所述变化量为所述第一访问频度阈值与基准访问频度阈值之间的差,或第一访问频度阈值与基准访问频度阈值之间的商的前提下,所述变化量阈值区间的边界值为第一变化量阈值和第二变化量阈值,所述第一变化量阈值小于所述第二变化量阈值,所述根据所述第一访问频度阈值与基准访问频度阈值之间的变化量,调整所述第一存储区域的大小,以确定所述目标存储区域的大小,包括:所述变化量小于第一变化量阈值时,缩小所述第一存储区域以得到初始存储区域的大小,所述初始存储区域的大小用于确定所述目标存储区域的大小;所述变化量大于第二变化量阈值时,扩大所述第一存储区域以得到所述初始存储区域的大小;所述变化量大于所述第一变化量阈值,且所述变化量小于所述第二预设变化量阈值时,确定所述第一存储区域的大小为所述初始存储区域的大小。
在一种可能的实现方式中,所述方法还包括:根据需要从所述存储设备中回收的存储块的数量,确定所述目标存储区域的大小。
本申请实施例中,基于需要从所述存储设备中回收的存储块的数量,确定所述目标存储区域的大小,有利于提高确定目标存储区域的大小的合理性。
在一种可能的实现方式中,所述方法还包括:获取所述目标存储区域中不同访问频度的存储块的数量;基于所述不同访问频度的存储块的数量,按照所述目标存储区域中存储块的访问频度从低到高的顺序,确定出需要从所述存储设备中回收的存储块。
本申请实施例中,根据不同访问频度对应的的存储块的数量,以及需要回收的存储块的数量,确定需要从所述存储设备中回收的存储块,有利于提高确定访问频度阈值的准确性。
在一种可能的实现方式中,所述基于所述不同访问频度的存储块的数量,按照所述目标存储区域中存储块的访问频度从低到高的顺序确定出需要回收的存储块,包括:按照所述访问频度从低到高的顺序,统计所述不同访问频度中每个访问频度的存储块的数量,直到所述统计的存储块的数量大于或等于需要从所述存储设备中回收的存储块的数量;确定所述统计的存储块中最高的访问频度为对所述目标存储区域中的存储块回收过程中使用的目标访问频度阈值。
本申请实施例中,根据不同访问频度包括的存储块的数量,以及需要回收的存储块的数量,确定目标访问频度阈值,有利于提高确定访问频度阈值的准确性。
在一种可能的实现方式中,在所述将所述处于所述可回收状态的存储块标记为能够用于数据存储的空闲块之后,所述方法还包括:基于衰减倍数,对所述目标存储区域中存储块的访问频度进行衰减。
本申请实施例中,通过对目标存储区域中存储块的访问频度进行衰减,避免一类随着时间流逝,访问频度降低的存储块长时间不被回收的情况,有利于提高存储块的回收过程的合理性。
在一种可能的实现方式中,所述方法还包括:根据公式确定所述衰减倍数f,其中,α表示预配置的衰减倍数因子,N表示所述目标存储区域的大小,n表示从所述目标存储区域中回收的存储块的数量。
本申请实施例中,基于目标存储区域的大小以及在目标存储区域中回收的存储块的数量,确定衰减倍数,有利于提高确定衰减倍数合理性。
在一种可能的实现方式中,所述存储设备中的存储空间被划分为多个存储区域,在所述获取存储设备中待回收的目标存储区域的状态信息之前,所述方法还包括:获取所述多个存储区域中每个存储区域包含的无效块的数量;将所述多个存储区域中,无效块的数量高于预设阈值的存储区域的指针存储至快速回收队列;将所述快速回收队列中记录的存储区域中的存储块标记为空闲块。
本申请实施例中,将无效块数量较多的存储区域先进行回收,有利于提高后期以存储块为单位回收存储空间的效率。
第二方面,提供了一种存储块的回收装置,所述装置包括用于上述方法中的各个单元。
第三方面,提供了一种存储块的回收装置,所述装置具有实现上述方法设计中的各个功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元。
第四方面,提供了一种垃圾回收器,包括输入输出接口、处理器和存储器。该处理器用于控制输入输出接口收发信息和数据,该存储器用于存储计算机程序,该处理器用于从存储器中调用并运行该计算机程序,使得该装置执行上述方法。
第五方面,提供一种垃圾回收器。该垃圾回收器可以为独立的计算设备,或者为设置在计算设备中的芯片。该垃圾回收器包括:处理器和存储器,处理器与存储器耦合,其中处理器用于存储计算机可执行程序代码;处理器,用于执行所述计算机可执行程序代码中的指令。其中当处理器执行所述指令时,使垃圾回收器执行上述方法。
第六方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述各方面中的方法。
需要说明的是,上述计算机程序代码可以全部或者部分存储在第一存储介质上,其中第一存储介质可以与处理器封装在一起的,也可以与处理器单独封装,本申请实施例对此不作具体限定。
第七方面,提供了一种计算机可读介质,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述方法。
第八方面,提供了一种芯片系统,该芯片系统包括处理器,用于实现上述方法中所涉及的功能,例如,生成,接收,发送,或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存终端设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
附图说明
图1是本申请实施例应用的存储系统的示意性框图。
图2是本申请实施例的存储块的回收方法的示意性流程图。
图3是本申请实施例的存储设备中存储空间的功能示意性框图。
图4是本申请实施例的一种存储块的回收装置的示意性框图。
图5是本申请实施例的垃圾回收器的示意性框图。
具体实施方式
为了便于理解本申请,先简单介绍下本申请涉及的名词。
一、PCM
相变存储器是利用硫族化合物在晶态和非晶态巨大的导电性差异来存储数据的一种存储设备。通常相变存储器具有非易失性、存储密度高、使用寿命长、读写速度快、功耗低、抗震动、抗辐射干扰等优点。
二、访问频度及访问频度阈值
在一段时间内,对存储块进行访问的次数。
访问频度阈值用于指示存储设备中的存储块为冷块还是热块。在本申请实施例中,存储设备中不同的待回收的存储区域可以使用不同的访问频度阈值区分该存储区域中的存储块为冷块还是热块。
三、冷数据及冷块
冷数据可以理解为存储设备中存储的访问频度低于访问频度阈值的数据。
冷块可以理解为存储设备中用于存储冷数据的存储块。
四、热数据及热块
热数据可以理解为存储设备中存储的访问频度高于访问频度阈值的数据。
热块可以理解为存储设备中用于存储热数据的存储块。
五、无效数据及无效块
无效数据的产生可以理解为在使用追加写的方式向存储设备中写数据的过程中,若对存储设备中原来存储的数据进行修改时,会直接将修改后的数据存储在一个新的存储块中,而原本修改前的数据则被标记为无效数据。
无效块可以理解为存储设备中用于存储上述无效数据的存储块。其中,无效块的访问频度可以被配置为0,可以理解为是冷块中的特例。
六、处于可回收状态的存储块
处于可回收状态的存储块可以理解为存储有上述无效数据或冷数据的存储块,即处于可回收状态的存储块可以包括无效块和冷块中的至少一种。
七、处于不可回收状态的存储块
处于不可回收状态的存储的块可以理解为包括热块或存储有新数据的存储块。其中,上述新数据可以理解为存储至存储设备中的时间未超过预设时间段的数据。
八、空闲块和非空闲块
空闲块可以理解为空闲的存储块,即,能够直接写数据的存储块。通常,当处于可回收状态的存储块被回收后即为空闲块,当存储块为空闲块时,可以继续向该存储块中写新的数据。
相应地,非空闲块又可以称为忙块,可以理解为不能够继续存储新的数据的存储块,通常,处于不可回收状态的存储块为非空闲块。
九、存储块(block)
存储块可以理解为一种存储单位。
下面将结合附图,对本申请中的技术方案进行描述。
图1是本申请实施例应用的存储系统的示意性框图。图1所示的存储系统100包括垃圾回收器110和存储设备120。
存储设备120,用于以块为单位为数据提供存储空间。具体地,存储设备可以由一个或多个PCM组成。
垃圾回收器110,用于对存储设备中的存储空间进行回收。
上述存储设备120和垃圾回收器110可以位于相同的物理设备,例如,移动台(Mobile Station,MS)、移动终端(Mobile Terminal)、移动电话(Mobile Telephone)、用户设备(User Equipment,UE)、手机(handset)及便携设备(portable equipment)等终端设备;还可以是服务器等计算设备,本申请实施例对此的不做具体限定。
上述存储设备120和垃圾回收器110还可以位于不同的物理设备中。
传统的垃圾回收机制中,需要根据存储设备的分段(segment)中每个存储页(page)的页温度计算该分段的分段温度,再将存储设备中含有无效页和/或存储冷数据的存储页的所有分段,按照每个分段的分段温度进行排序,得到一个排序表(rank list),从这个排序表中选取分段的分段温度值最低的一个或多个分段作为待回收的分段进行回收,其中,一个分段包括一个或多个存储页。
具体在回收待回收的分段时,需要先从待回收的分段中将存储的有效数据(例如,热数据)写回至另一个新创建的分段中,再对待回收的分段进行回收。
从上述垃圾回收的过程中可以看出,由于回收存储空间时只能以分段为单位进行回收,导致在回收之前需要将热数据迁移至新创建的分段中。这种传统的垃圾回收机制并没有充分利用新型存储设备的存储特性,即支持以存储块为单位进行数据覆盖写的优点,因此,本申请实施例提供一种存储块的回收方法及装置,充分利用新型存储设备的存储特性,提高回收存储块的效率。
下文基于图1所示的存储系统以及上述名词的含义,结合图2详细介绍本申请实施例的存储块的回收方法。
为了便于区分,下文中提到的“目标存储区域”和“目标访问频度阈值”都是可以作为当前回收存储块的过程中使用的参数,而“第一存储区域”和“第一访问频度阈值”为在对目标存储区域中的存储块进行回收之前进行的存储块的回收过程中使用的参数。
图2是本申请实施例的存储块的回收方法的示意性流程图。应理解,图2所示的方法可以由图1所示的垃圾回收器执行。图2所示的方法包括步骤210至步骤260。
210,获取存储设备中待回收的目标存储区域的状态信息,所述状态信息用于确定所述目标存储区域中的存储块处于可回收状态或不可回收状态。
目标存储区域可以为存储设备中的全部存储区域或者部分存储区域。
作为状态信息的一种可能的实现方式,状态信息可以记录有存储设备中每个存储块的访问频度,基于存储块的访问频度可以判断存储块为冷块、无效块还是热块。作为状态信息的另一种可能的实现方式,状态信息还可直接指示存储设备中的存储块处于可回收状态还是处于不可回收状态。
通常,上述状态信息可以存储至每个存储块的索引中。图3是本申请实施例的存储设备中存储空间的功能示意性框图。图3以状态信息用于指示存储块的访问频度为例进行说明。例如,在存储设备中的每个块对应的索引中可以添加7比特(bit)用于记录存储块访问频度(cnt)。通过7bit即可以表示存储块0-127的访问频度范围,其中,无效块的访问频度为0,有效块(即非无效块)的访问频度的初始值为1。另外,为了减小存储状态信息时占用的比特位,对于访问频度高于127的存储块而言,可以用访问频度为127来表示。当然,本申请实施例还可以用6比特或8bit记录存储块的状态信息,或者该状态信息还可以以位图(bitmap)的方式单独存储至存储设备。
对于新数据而言,由于存储进存储设备的时间限制,导致存储该数据的存储块的访问频度不会很高,因此,为了避免在回收存储块的过程中,将存储新数据的存储块一起作为处于可回收状态的存储块进行回收,可以在状态信息中添加指示新近性的标志位(act_flag),通过指示新近性的标志位确定存储块中存储的数据是否为新数据。例如,当act_flag被置位后,则对应的存储块中存储的数据是新数据,当act_flag未被置位,则对应的存储块中存储的数据不是新数据。
通常,可以基于数据保护期确定数据是否为新数据,通常数据保护期可以是以数据存储至存储设备为起点的一段预设的时间段。例如,在数据保护期内,上述act_flag被置位,指示对应的存储块中存储的数据为新数据,即该存储块处于不可回收状态;当数据保护期结束,上述act_flag被清零,指示对应的存储块中存储的数据不为新数据,即可以进一步地根据该存储块的状态信息确定该存储块是否可以被回收。
作为一个具体的实现方式,上述数据保护期可以被配置为对存储设备中所有存储区域扫描完成的时间,即在回收完成一轮存储设备中全部处于可回收状态的存储块之后,将act_flag清零。当然,上述保护期还可以是任意的固定时间长度,本申请实施例对此不做具体限定。
上述表示新近性的状态信息也可以存储至每个存储块的索引中,例如,在存储设备中的每个块对应的索引中可以添加1bit用于记录新近性的标志位(act_flag),参见图3。
220,根据所述状态信息,确定所述目标存储区域中处于所述可回收状态的存储块。
作为一种具体的实现方式,根据状态信息可以确定目标存储区域中每个存储块的访问频度,确定目标存储区域中访问频度低于目标访问频度阈值的存储块为上述处于可回收状态的存储块,其中,由于无效块的访问频度为0,因此处于可回收状态的存储块中包括无效块。
在可以通过表示新进性的标志位,判断存储块中存储的数据为新数据的情况下,上述处于可回收状态的存储块可以不包括表示新进性的标志位被置位的存储块。若存储设备中没有记录表示新进性的标志位,则在执行上述步骤220的过程中,也可以不判断存储块中存储的数据是否为新数据。
230,将所述处于所述可回收状态的存储块标记为能够用于数据存储的空闲块。
也就是说,在回收存储设备中的存储块时,无需将处于可回收状态的存储块中的数据进行擦除,可以直接将处于可回收状态的存储块标记为空闲块。
相应地,上述步骤230,还可以包括将处于所述不可回收状态的存储块标记为不能够用于继续存储数据的非空闲块。
作为一个具体的实现方式,可以使用位图(bitmap)记录存储设备中的空闲块,进一步地,还可以通过该位图记录存储设备中的非空闲块。具体地,通过bitmap中的比特位与存储设备中的存储块一一对应,例如,bitmap中取值为1的比特位,用于指示该比特为对应的存储块为空闲块;bitmap中取值为0的比特位,用于指示该比特为对应的存储块为非空闲块。或者bitmap中取值为1的比特位,用于指示该比特为对应的存储块为非空闲块;bitmap中取值为0的比特位,用于指示该比特为对应的存储块为空闲块。
在向存储设备中写数据的过程中,可以通过查询存储块是否为空闲块,确定是否可以将数据存储至该存储块中。例如,可以通过上述bitmap确定存储设备中的空闲块,以便直接向存储设备中的空闲块写数据。
传统的垃圾回收机制中,在对存储设备中的存储块进行回收之前,需要对存储设备中的全部存储区域进行扫描,以确定上述待回收的分段。通常情况下,对存储设备中的全部存储区域进行扫描需要的时间较长,为了缩短对存储设备中的全部存储区域进行扫描的时间,提高回收存储块的效率,本申请实施例的存储块的回收方法中,可以针对存储设备中的一部分存储区域进行回收,即上述目标存储区域为存储设备中的一部分存储区域。
也就是说,在步骤210之前所述方法还包括:240,确定待回收的目标存储区域。具体地,确定目标存储区域可以细化为两步:确定目标存储区域的大小,以及确定目标存储区域在存储设备中的位置。
作为确定目标存储区域的大小的一种具体的实现方式,可以根据需要从存储设备中回收的存储块的数量确定目标存储区域的大小。通常,需要从存储设备中回收的存储块的数量越多,目标存储区域越大;需要从存储设备中回收的存储块的数量越少,目标存储区域越小。
例如,可以通过公式N=n×R,确定目标存储区域的大小N,其中,R表示预设的系数,n表示需要从存储设备中回收的存储块的数量。
又例如,还可以根据需要从存储设备中回收的存储块的数量以及初始存储区域大小,确定目标存储区域的大小,其中,初始存储区域的大小可以是预设的;初始存储区域还可以是基于之前对存储区域中的存储块进行回收时被回收的存储区域的大小确定的,例如,基于第一存储区域的大小确定初始存储区域的大小。假设第一存储区域的大小为N’,且在对第一存储区域中的存储块进行回收后,回收到的存储块的数量为n’,根据公式确定目标存储区域的大小N,其中,n表示对目标存储区域中的存储块进行回收时,需要回收的存储块的数量;初始存储区域的大小还可以是基于在对所述目标存储区域进行回收之前,执行的至少一次回收过程中使用的访问频度阈值确定的,具体的确定过程与下文中介绍的基于在对所述目标存储区域进行回收之前,执行的至少一次回收过程中使用的访问频度阈值,确定目标存储区域的大小相同,为了简洁,在此不再赘述。
需要说明的是,上述目标存储区域的大小还可以是预设的,本申请实施例对于目标存储区域的大小的确定方式不做具体限定。
上述新型存储设备相对于SSD而言,虽然新型存储设备的写寿命被大大提高,但是使用寿命仍然受到写寿命的局限,如果每轮的存储块回收过程大概率的针对存储设备中相同的存储区域进行,则会导致该存储区域中的存储块的写寿命被迅速消耗。因此,为了均衡存储设备中存储块的写寿命,每轮回收存储块的过程,可以针对存储设备中不同的存储区域进行。作为确定目标存储区域位置的一种具体的实现方式,第一存储区域和目标存储区域不重叠。当然,如果不考虑存储块的写寿命,第一存储区域和目标存储区域也可以部分重叠,或者全部重叠。
进一步地,作为确定目标存储区域位置的另一种具体的实现方式,随着时间的流逝,存储设备中最先写入的数据的访问频度可能降低,也就是说,存储设备中的数据的访问频度可能随时间的流逝而降低。基于上述规律,可以按照向所述存储设备中写数据的过程中,由先到后占用存储块的顺序,选择位于所述第一存储区域之后的存储区域作为所述目标存储区域。其中,第一存储区域和目标存储区域可以相邻,也可以不相邻。当然,本申请实施例中不同轮次回收存储块的待回收的存储区域的位置也可以随机确定,本申请实施例对此不做限定。
例如,在图3所示的存储设备的存储区域中,向存储设备写数据时占用的存储块的顺序为从左往右的顺序,因此,也可以是按照从左往右的顺序,依次选择每轮回收存储块的过程中使用的目标存储区域,即第一存储区域310与目标存储区域320在存储设备的存储区域中的分布方式。
传统的垃圾回收机制中,用于区分冷块和热块的访问频度阈值是统一配置的,不够灵活。例如,当需要回收的存储块的数量较大,而待回收的目标存储区域的大小较小时,如果采用固定的访问频度阈值区分冷块和热块,有可能导致在该目标存储区域中不能回收到需要回收的存储块数据,需要进行下一轮的存储块回收过程,耗时较大。因此,本申请实施例提供的存储块的回收方法中,上述访问频度阈值可以基于不同的待回收存储区域灵活配置,有利于提高回收存储块的效率。
可选地,在步骤240之后,上述方法还包括:250,根据目标存储区域中不同存储块的访问频度确定出需要从存储设备中回收的存储块。
作为一种具体的实现方式,可以先获取目标存储区域中不同访问频度的存储块的数量;再基于不同访问频度的存储块的数量,按照目标存储区域中存储块的访问频度从低到高的顺序,确定出需要从所述存储设备中回收的存储块的数量。其中,按照目标存储区域中存储块的访问频度从低到高的顺序,确定出需要从所述存储设备中回收的存储块的数量,可以理解为,按照访问频度从低到高的顺序,统计每个访问频度的存储块的数量,直到统计的存储块的数量大于或等于需要从所述存储设备中回收的存储块的数量。
作为另一种具体的实现方式,可以先确定目标访问频度阈值,再根据目标访问频度阈值确定需要从存储设备中回收的存储块的数量。也就是说,按照所述访问频度从低到高的顺序,统计所述不同访问频度中每个访问频度的存储块的数量,直到所述统计的存储块的数量大于或等于需要从所述存储设备中回收的存储块的数量;确定所述统计的存储块中最高的访问频度为目标访问频度阈值。
上述不同访问频度对应的存储块的数量,可以通过访问频度分布表的方式体现。表1示出了本申请实施例中存储块数量的访问频度分布情况。从表1所示的访问频度分布表中可以看出,访问频度0对应的存储块的数量为2,访问频度1对应的存储块的数量为1,访问频度2对应的存储块的数量为3,需要回收的存储块的总量为10,因此,将访问频度3作为目标存储区域对应的访问频度阈值。
表1
访问频度 0 1 2 3 127
存储块的数量 2 1 3 7 10
由于上述处于可回收状态的存储块包括无效块和冷块两类存储块,当通过目标存储区域的状态信息,确定目标存储区域中包含的无效块的数量大于或等于需要回收的存储块的数量时,可以不用执行上述确定访问频度阈值的步骤,即不用判断目标存储区域中的存储块为冷块或热块,优先回收目标存储区域中的无效块。
在本申请实施例提供的存储块的回收方法中,不同的待回收存储区域可以使用不同的访问频度阈值,可能会导致不同的待回收存储区域中处于不可回收状态的存储块的访问频度差异较大,即不同的待回收存储区域中热块的访问频度差异较大。这是我们希望避免的,特别是对于缓存而言,缓存中存储的数据命中率高,有利于提高读取数据的效率,或者减少写盘操作。当不同的待回收的存储区域中热块的访问频度差异较大时,说明在其中一个待回收的存储区域中,回收了一类访问频度较高的存储块,降低了缓存的命中率。
因此,为了使存储设备中不同存储区域中的存储块的访问频度比较均匀,本申请实施例中,还可以基于在对所述目标存储区域进行回收之前,执行的至少一次回收过程中使用的访问频度阈值,确定所述目标存储区域的大小。
在一种可能的实现方式中,可以根据上述至少一次回收过程中使用的访问频度阈值,确定对目标存储区域中存储块进行回收时使用的目标访问频度阈值,并结合目标访问频度阈值确定目标存储区域的大小,其中,目标访问频度阈值的取值与目标存储区域的大小反相关。例如,可以取至少一次回收过程中使用的访问频度阈值的均值,作为目标访问频度阈值。又例如,可以基于上述均值,结合预设的访问频度阈值变化范围,确定目标访问频度阈值,其中,访问频度阈值变化范围用于指示可以接受的访问频度的浮动情况。
由于访问数据的局部性,存储区域越近的数据的访问频度也可能越相近,例如,第一存储区域和目标存储区域的位置相邻时,第一存储区域和目标存储区域中数据的访问频度可能相近。
考虑到上述访问数据的局部性,可以直接基于第一访问频度阈值确定目标存储区域的大小。例如,可以根据第一访问频度阈值,以及第一存储区域的大小确定目标存储区域的大小,即直接将第一存储区域的大小作为目标存储区域的大小。又例如,可以将第一访问频度阈值与基准访问频度阈值进行比较,确定所述第一访问频度阈值与基准访问频度阈值之间的变化量;根据所述变化量,调整所述第一存储区域的大小;根据所述调整后的第一存储区域的大小,确定所述目标存储区域的大小,以降低所述目标访问频度与所述基准访问频度之间的变化量。
作为一种具体的实现方式,如果二者的变化量属于变化量阈值区间时,则不对第一访问频度阈值进行调整;如果二者的变化量不属于变化量阈值区间时,则可以通过调整第一存储区域的大小,以达到降低二者的差异的目的,并基于调整后的第一存储区域的大小作为目标存储区域的大小。
需要说明的是,上述调整后的第一存储区域的大小还可作为上文中的初始存储区间的大小,再结合需要从存储设备中回收的存储块的数量,调整初始区域的大小,最终确定目标存储区域的大小。
作为一种具体的实现方式,所述变化量为所述第一访问频度阈值与基准访问频度阈值之间的差,或第一访问频度阈值与基准访问频度阈值之间的商,且所述变化量阈值区间的边界值为第一变化量阈值和第二变化量阈值,所述第一变化量阈值小于所述第二变化量阈值,所述变化量小于第一变化量阈值时,缩小所述第一存储区域以得到目标存储区域的大小,所述初始存储区域的大小用于确定所述目标存储区域的大小;所述变化量大于第二变化量阈值时,扩大所述第一存储区域以得到所述初始存储区域的大小;所述变化量大于所述第一变化量阈值,且所述变化量小于所述第二变化量阈值时,确定所述第一存储区域的大小为所述初始存储区域的大小。
需要说明的是,上述变化量为基准访问频度阈值与第一访问频度阈值之间的差,或基准访问频度阈值与第一访问频度阈值之间的商时,所述变化量与所述调整后的第一存储区域的大小正相关。所述变化量为所述第一访问频度阈值与基准访问频度阈值之间的差,或第一访问频度阈值与基准访问频度阈值之间的商,所述变化量与所述调整后的第一存储区域的大小反相关。
上述基准访问频度阈值可以是预设的,还可以是第二访问频率阈值,其中第二访问频率阈值可以理解为在对第一存储区域中的存储块进行回收之前进行的存储块的回收过程中使用的参数。本申请对此不做限定。另外,上述变化量区间可以是预设的。
作为一种具体的实现方式,上述增大或减小初始存储区域的大小,可以通过以固定步长实现增大或减小初始存储区域的大小,其中预设步长可以以存储块为粒度进行设置。上述增大或减小初始存储区域的大小,还可以通过以预设的存储区域的调整策略实现增大或减小初始存储区域的大小,本申请实施例对此不做具体限定。
存储设备中还可能有一类存储块,该类存储块中的数据在刚存储至存储设备时经常被访问,使得该类存储块的访问频度较高,然而随着时间的增加,这类存储块中的数据不再被访问,或被访问的频率降低,但是由于存储块的访问频度是累加的,这类存储块前期较高的访问频度可能会使得这类存储块一直被判断为热块。为了避免这种情况,及时回收这种访问频度随时间降低的存储块,提高回收存储块的效率,可以在回收目标存储区域中的存储块的过程结束后,对目标存储区域中存储块的访问频度进行衰减。
可选地,在步骤230之后,上述方法还包括:260,对目标存储区域中的热块的访问频度进行衰减。具体而言,基于衰减倍数,对所述目标存储区域中存储块的访问频度进行衰减。该衰减倍数可以是预设的,或者是通过计算得到的。
作为一个具体的实现方式,根据公式确定所述衰减倍数f,其中,α表示预配置的衰减倍数因子,N表示所述目标存储区域的大小,n表示从所述目标存储区域中回收的存储块的数量。
为了进一步提高回收存储块的效率,在记录存储设备中的存储块的访问频度时,还可以以固定的存储区域(例如,分条)大小为单位,记录每个存储区域中包含的无效块的数量,当存储设备中包含无效块的数量超过预设阈值时,可以直接以存储区域为单位回收存储块。
需要说明的是,上述以存储区域为单位回收存储块的过程,可以与向存储区域中写数据的过程中进行。也可以在以存储块为粒度对存储设备的存储块进行回收之前进行,本申请实施例对此不做限定。
作为一个具体的实现方式,所述存储设备中的存储空间被划分为多个分段,所述方法还包括:若所述存储区中的第一分段包含的无效块的数量高于预设阈值,将所述第一分段的指针存储至快速回收队列,所述快速回收队列中记录的分段中的存储块优先被回收。
可选地,上述需要回收的存储块的数量可以基于当前存储设备中存储空间的占用率确定,当存储设备中存储空间的占用率越高说明需要回收的存储块的数量越多。
也就是说,当紧急等级越高,说明存储设备中存储空间的占用率越高,需要回收的存储空间就越大,即需要回收的存储块的数量越大。例如,当紧急等级为100%,需要回收的存储块的数量为10;当紧急等级为80%,需要回收的存储块的数量为8。
上文结合图1至图3详细说明了本申请实施例的存储块的回收方法,下文结合图4和图5详细介绍本申请实施例的存储块的回收装置。应理解,图4至图5所示的装置可以实现上述方法中各个步骤,为了简洁,在此不再赘述。
图4是本申请实施例的一种存储块的回收装置的示意性框图。图4所示的装置400包括获取单元410、确定单元420和处理单元430。
获取单元410,用于获取存储设备中待回收的目标存储区域的状态信息,所述状态信息用于确定所述目标存储区域中的存储块处于可回收状态或不可回收状态;
确定单元420,用于根据所述获取单元获取的所述状态信息,确定所述目标存储区域中处于所述可回收状态的存储块;
处理单元430,用于将所述确定单元确定的所述处于所述可回收状态的存储块标记为能够用于数据存储的空闲块。
可选地,作为一个实施例,所述目标存储区域与所述存储设备中的第一存储区域不重叠,所述第一存储区域为在对所述目标存储区域进行回收之前执行的回收过程中使用的待回收的存储区域。
可选地,作为一个实施例,所述处理单元还用于:按照第一顺序,选择位于所述第一存储区域之后的存储区域作为所述目标存储区域,所述第一顺序为向所述存储设备中写数据的过程中,由先到后占用存储块的顺序。
可选地,作为一个实施例,所述处理单元还用于:根据在对所述目标存储区域进行回收之前,执行的至少一次回收过程中使用的访问频度阈值,确定所述目标存储区域的大小。
可选地,作为一个实施例,第一访问频度阈值为在对所述第一存储区域进行回收的过程中使用的访问频度阈值,目标访问频度为在对目标存储区域进行回收的过程中使用的访问频度阈值,所述处理单元还用于:确定所述第一访问频度阈值与基准访问频度阈值之间的变化量;根据所述变化量,调整所述第一存储区域的大小;根据所述调整后的第一存储区域的大小,确定所述目标存储区域的大小,以降低所述目标访问频度阈值与所述基准访问频度阈值之间的变化量。
可选地,作为一个实施例,在所述变化量为所述第一访问频度阈值与基准访问频度阈值之间的差,或第一访问频度阈值与基准访问频度阈值之间的商的前提下,所述变化量阈值区间的边界值为第一变化量阈值和第二变化量阈值,所述第一变化量阈值小于所述第二变化量阈值,所述处理单元还用于:所述变化量小于第一变化量阈值时,缩小所述第一存储区域以得到初始存储区域的大小,所述初始存储区域的大小用于确定所述目标存储区域的大小;所述变化量大于第二变化量阈值时,扩大所述第一存储区域以得到所述初始存储区域的大小;所述变化量大于所述第一变化量阈值,且所述变化量小于所述第二预设变化量阈值时,确定所述第一存储区域的大小为所述初始存储区域的大小。
可选地,作为一个实施例,所述确定单元还用于:根据需要从所述存储设备中回收的存储块的数量,确定所述目标存储区域的大小。
可选地,作为一个实施例,所述获取单元,还用于获取所述目标存储区域中不同访问频度的存储块的数量;所述处理单元,还用于基于所述不同访问频度的存储块的数量,按照所述目标存储区域中存储块的访问频度从低到高的顺序,确定出需要从所述存储设备中回收的存储块。
可选地,作为一个实施例,所述处理单元还用于:基于衰减倍数,对所述目标存储区域中存储块的访问频度进行衰减。
可选地,作为一个实施例,所述处理单元还用于:根据公式确定所述衰减倍数f,其中,α表示预配置的衰减倍数因子,N表示所述目标存储区域的大小,n表示从所述目标存储区域中回收的存储块的数量。
可选地,作为一个实施例,所述存储设备中的存储空间被划分为多个存储区域,所述处理单元,还用于获取所述多个存储区域中每个存储区域包含的无效块的数量;所述处理单元,还用于将所述多个存储区域中,无效块的数量高于预设阈值的存储区域的指针存储至快速回收队列;所述处理单元,还用于将所述快速回收队列中记录的存储区域中的存储块标记为空闲块。
在可选的实施例中,上述装置400还可以是垃圾回收器500,具体地,所述获取单元410可以为输入输出接口530,所述确定单元420和处理单元430可以为处理器520,所述装置还可以包括存储器510,具体如图5所示。
图5是本申请实施例的垃圾回收器的示意性框图。图5所示的装置500可以包括:存储器510、处理器520和输入/输出接口530。其中,存储器510、处理器520和输入/输出接口530通过内部连接通路相连,该存储器510用于存储程序指令,该处理器520用于执行该存储器520存储的程序指令,以控制输入/输出接口530接收输入的数据和信息,输出操作结果等数据。
应理解,在本申请实施例中,该处理器520可以采用通用的中央处理器(CentralProcessing Unit,CPU),微处理器,应用专用集成电路(Application SpecificIntegrated Circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
该存储器510可以包括只读存储器和随机存取存储器,并向处理器520提供指令和数据。处理器520的一部分还可以包括非易失性随机存取存储器。例如,处理器520还可以存储设备类型的信息。
在实现过程中,上述方法的各步骤可以通过处理器520中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器510,处理器520读取存储器510中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
应理解,本申请实施例中,该处理器可以为中央处理单元(central processingunit,CPU),该处理器还可以是其它通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
应理解,在本申请实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够读取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(Digital Video Disc,DVD))或者半导体介质(例如,固态硬盘(Solid State Disk,SSD))等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (21)

1.一种存储块的回收方法,其特征在于,包括:
获取存储设备中待回收的目标存储区域的状态信息,所述状态信息用于确定所述目标存储区域中的存储块处于可回收状态或不可回收状态;
根据所述状态信息,确定所述目标存储区域中处于所述可回收状态的存储块;
将所述处于所述可回收状态的存储块标记为能够用于数据存储的空闲块。
2.如权利要求1所述的方法,其特征在于,所述目标存储区域与所述存储设备中的第一存储区域不重叠,所述第一存储区域为在对所述目标存储区域进行回收之前执行的回收过程中使用的待回收的存储区域。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
按照第一顺序,选择位于所述第一存储区域之后的存储区域作为所述目标存储区域,所述第一顺序为向所述存储设备中写数据的过程中,由先到后占用存储块的顺序。
4.如权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:
根据在对所述目标存储区域进行回收之前,执行的至少一次回收过程中使用的访问频度阈值,确定所述目标存储区域的大小。
5.如权利要求4所述的方法,其特征在于,第一访问频度阈值为在对所述第一存储区域进行回收的过程中使用的访问频度阈值,目标访问频度为在对目标存储区域进行回收的过程中使用的访问频度阈值,
所述根据在对所述目标存储区域进行回收之前,执行的至少一次回收过程中使用的访问频度阈值,确定所述目标存储区域的大小,包括:
确定所述第一访问频度阈值与基准访问频度阈值之间的变化量;
根据所述变化量,调整所述第一存储区域的大小;
根据所述调整后的第一存储区域的大小,确定所述目标存储区域的大小,以降低所述目标访问频度阈值与所述基准访问频度阈值之间的变化量。
6.如权利要求1-5中任一项所述的方法,其特征在于,所述方法还包括:
根据需要所述存储设备中回收的存储块的数量,确定所述目标存储区域的大小。
7.如权利要求1-6中任一项所述的方法,其特征在于,所述方法还包括:
获取所述目标存储区域中不同访问频度的存储块的数量;
基于所述不同访问频度的存储块的数量,按照所述目标存储区域中存储块的访问频度从低到高的顺序,确定出需要从所述存储设备中回收的存储块。
8.如权利要求1-7中任一项所述的方法,其特征在于,在所述将所述处于所述可回收状态的存储块标记为能够用于数据存储的空闲块之后,所述方法还包括:
基于衰减倍数,对所述目标存储区域中存储块的访问频度进行衰减。
9.如权利要求8所述的方法,其特征在于,所述方法还包括:
根据公式确定所述衰减倍数f,其中,α表示预配置的衰减倍数因子,N表示所述目标存储区域的大小,n表示从所述目标存储区域中回收的存储块的数量。
10.如权利要求1-9中任一项所述的方法,其特征在于,所述存储设备中的存储空间被划分为多个存储区域,
在所述获取存储设备中待回收的目标存储区域的状态信息之前,所述方法还包括:
获取所述多个存储区域中每个存储区域包含的无效块的数量;
将所述多个存储区域中,无效块的数量高于预设阈值的存储区域的指针存储至快速回收队列;
将所述快速回收队列中记录的存储区域中的存储块标记为空闲块。
11.一种存储块的回收装置,其特征在于,包括:
获取单元,用于获取存储设备中待回收的目标存储区域的状态信息,所述状态信息用于确定所述目标存储区域中的存储块处于可回收状态或不可回收状态;
确定单元,用于根据所述获取单元获取的所述状态信息,确定所述目标存储区域中处于所述可回收状态的存储块;
处理单元,用于将所述确定单元确定的所述处于所述可回收状态的存储块标记为能够用于数据存储的空闲块。
12.如权利要求11所述的装置,其特征在于,所述目标存储区域与所述存储设备中的第一存储区域不重叠,所述第一存储区域为在对所述目标存储区域进行回收之前执行的回收过程中使用的待回收的存储区域。
13.如权利要求12所述的装置,其特征在于,所述处理单元还用于:
按照第一顺序,选择位于所述第一存储区域之后的存储区域作为所述目标存储区域,所述第一顺序为向所述存储设备中写数据的过程中,由先到后占用存储块的顺序。
14.如权利要求11-13中任一项所述的装置,其特征在于,所述处理单元还用于:
根据在对所述目标存储区域进行回收之前,执行的至少一次回收过程中使用的访问频度阈值,确定所述目标存储区域的大小。
15.如权利要求14所述的装置,其特征在于,第一访问频度阈值为在对所述第一存储区域进行回收的过程中使用的访问频度阈值,目标访问频度为在对目标存储区域进行回收的过程中使用的访问频度阈值,
所述处理单元还用于:
确定所述第一访问频度阈值与基准访问频度阈值之间的变化量;
根据所述变化量,调整所述第一存储区域的大小;
根据所述调整后的第一存储区域的大小,确定所述目标存储区域的大小,以降低所述目标访问频度阈值与所述基准访问频度阈值之间的变化量。
16.如权利要求11-15中任一项所述的装置,其特征在于,所述确定单元还用于:
根据需要从所述存储设备中回收的存储块的数量,确定所述目标存储区域的大小。
17.如权利要求11-16中任一项所述的装置,其特征在于,
所述获取单元,还用于获取所述目标存储区域中不同访问频度的存储块的数量;
所述处理单元,还用于基于所述不同访问频度的存储块的数量,按照所述目标存储区域中存储块的访问频度从低到高的顺序,确定出需要从所述存储设备中回收的存储块。
18.如权利要求11-17中任一项所述的装置,其特征在于,所述处理单元还用于:
基于衰减倍数,对所述目标存储区域中存储块的访问频度进行衰减。
19.如权利要求18所述的装置,其特征在于,所述处理单元还用于:
根据公式确定所述衰减倍数f,其中,α表示预配置的衰减倍数因子,N表示所述目标存储区域的大小,n表示从所述目标存储区域中回收的存储块的数量。
20.如权利要求11-19中任一项所述的装置,其特征在于,所述存储设备中的存储空间被划分为多个存储区域,
所述处理单元,还用于获取所述多个存储区域中每个存储区域包含的无效块的数量;
所述处理单元,还用于将所述多个存储区域中,无效块的数量高于预设阈值的存储区域的指针存储至快速回收队列;
所述处理单元,还用于将所述快速回收队列中记录的存储区域中的存储块标记为空闲块。
21.一种计算机可读介质,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得所述计算机执行如权利要求1-10中任一项所述的方法。
CN201810416532.1A 2018-05-03 2018-05-03 存储块的回收方法和装置 Active CN108776614B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810416532.1A CN108776614B (zh) 2018-05-03 2018-05-03 存储块的回收方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810416532.1A CN108776614B (zh) 2018-05-03 2018-05-03 存储块的回收方法和装置

Publications (2)

Publication Number Publication Date
CN108776614A true CN108776614A (zh) 2018-11-09
CN108776614B CN108776614B (zh) 2021-08-13

Family

ID=64026966

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810416532.1A Active CN108776614B (zh) 2018-05-03 2018-05-03 存储块的回收方法和装置

Country Status (1)

Country Link
CN (1) CN108776614B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110502451A (zh) * 2019-07-10 2019-11-26 深圳市金泰克半导体有限公司 固态硬盘垃圾回收方法、装置、固态硬盘和存储介质
CN112306408A (zh) * 2020-10-27 2021-02-02 苏州浪潮智能科技有限公司 一种存储块处理方法、装置、设备及存储介质
CN113672166A (zh) * 2021-07-08 2021-11-19 锐捷网络股份有限公司 数据处理方法、装置、电子设备及存储介质
WO2023019691A1 (zh) * 2021-08-20 2023-02-23 深圳市江波龙电子股份有限公司 存储设备及其数据回收方法、控制设备及可读存储介质
WO2023029624A1 (zh) * 2021-09-03 2023-03-09 华为技术有限公司 一种存储块的回收方法以及相关装置
CN116089320A (zh) * 2022-08-31 2023-05-09 荣耀终端有限公司 垃圾回收方法和相关装置
CN116860179A (zh) * 2023-08-31 2023-10-10 合肥康芯威存储技术有限公司 存储装置、存储装置的数据处理方法、计算机设备及介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101266573A (zh) * 2008-04-29 2008-09-17 中国船舶重工集团公司第七〇九研究所 允许覆盖的闪存均匀磨损循环队列技术
CN101833512A (zh) * 2010-04-22 2010-09-15 中兴通讯股份有限公司 一种内存回收方法及其装置
CN102063462A (zh) * 2010-10-29 2011-05-18 蓝汛网络科技(北京)有限公司 一种回收缓存服务器中存储资源的方法及装置
CN102508788A (zh) * 2011-09-28 2012-06-20 成都市华为赛门铁克科技有限公司 Ssd及ssd垃圾回收方法和装置
CN103077118A (zh) * 2012-12-28 2013-05-01 深圳市硅格半导体有限公司 一种无效数据回收方法及系统
CN103136121A (zh) * 2013-03-25 2013-06-05 中国人民解放军国防科学技术大学 一种固态盘的缓存管理方法
CN103440207A (zh) * 2013-07-31 2013-12-11 北京智谷睿拓技术服务有限公司 缓存方法及装置
CN106201906A (zh) * 2016-07-11 2016-12-07 浪潮(北京)电子信息产业有限公司 一种用于闪存的冷热数据分离方法及系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101266573A (zh) * 2008-04-29 2008-09-17 中国船舶重工集团公司第七〇九研究所 允许覆盖的闪存均匀磨损循环队列技术
CN101833512A (zh) * 2010-04-22 2010-09-15 中兴通讯股份有限公司 一种内存回收方法及其装置
CN102063462A (zh) * 2010-10-29 2011-05-18 蓝汛网络科技(北京)有限公司 一种回收缓存服务器中存储资源的方法及装置
CN102508788A (zh) * 2011-09-28 2012-06-20 成都市华为赛门铁克科技有限公司 Ssd及ssd垃圾回收方法和装置
CN103077118A (zh) * 2012-12-28 2013-05-01 深圳市硅格半导体有限公司 一种无效数据回收方法及系统
CN103136121A (zh) * 2013-03-25 2013-06-05 中国人民解放军国防科学技术大学 一种固态盘的缓存管理方法
CN103440207A (zh) * 2013-07-31 2013-12-11 北京智谷睿拓技术服务有限公司 缓存方法及装置
CN106201906A (zh) * 2016-07-11 2016-12-07 浪潮(北京)电子信息产业有限公司 一种用于闪存的冷热数据分离方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
操顺德等: "面向海量高清视频数据的高性能分布式存储系统", 《软件学报》 *
王询: "基于闪存的缓存系统设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110502451A (zh) * 2019-07-10 2019-11-26 深圳市金泰克半导体有限公司 固态硬盘垃圾回收方法、装置、固态硬盘和存储介质
CN112306408A (zh) * 2020-10-27 2021-02-02 苏州浪潮智能科技有限公司 一种存储块处理方法、装置、设备及存储介质
CN113672166A (zh) * 2021-07-08 2021-11-19 锐捷网络股份有限公司 数据处理方法、装置、电子设备及存储介质
WO2023019691A1 (zh) * 2021-08-20 2023-02-23 深圳市江波龙电子股份有限公司 存储设备及其数据回收方法、控制设备及可读存储介质
WO2023029624A1 (zh) * 2021-09-03 2023-03-09 华为技术有限公司 一种存储块的回收方法以及相关装置
CN116089320A (zh) * 2022-08-31 2023-05-09 荣耀终端有限公司 垃圾回收方法和相关装置
CN116089320B (zh) * 2022-08-31 2023-10-20 荣耀终端有限公司 垃圾回收方法和相关装置
CN116860179A (zh) * 2023-08-31 2023-10-10 合肥康芯威存储技术有限公司 存储装置、存储装置的数据处理方法、计算机设备及介质

Also Published As

Publication number Publication date
CN108776614B (zh) 2021-08-13

Similar Documents

Publication Publication Date Title
CN108776614A (zh) 存储块的回收方法和装置
EP3992801A1 (en) Data storage method for flash memory device and flash memory device
US11573701B2 (en) Memory device and host device
RU2348992C2 (ru) Запоминающее устройство и ведущее устройство
US8099545B2 (en) Wear leveling in storage devices based on flash memories and related circuit, system, and method
US9852061B2 (en) Memory device and operating method of memory device
JP5066241B2 (ja) メモリシステム
US11263149B2 (en) Cache management of logical-physical translation metadata
TWI585770B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
CN110989918B (zh) 写入控制方法以及数据存储装置及其控制器
CN113093993B (zh) 一种闪存空间动态分配方法及固态硬盘
CN104699424A (zh) 一种基于页面热度的异构内存管理方法
CN111538680A (zh) 基于逻辑饱和度选择用于垃圾收集的大容量存储装置流
CN109144885A (zh) 固态存储设备的垃圾回收方法与固态存储设备
CN107908358A (zh) 一种降低NVMe固态硬盘写放大的方法
EP3584720A1 (en) Method and device for indexing dirty data in storage system page
CN102779017B (zh) 一种固态盘中数据缓存区的控制方法
CN112181274A (zh) 提升存储设备性能稳定性的大块的组织方法及其存储设备
KR20110070656A (ko) 플래시 메모리의 데이터 처리 방법 및 장치
CN115827511A (zh) 设置缓存的方法以及装置
CN108572924B (zh) 一种3d mlc闪存设备的请求处理方法
CN115048320A (zh) Vtc加速器及其计算vtc的方法
CN112181276A (zh) 提升存储设备服务质量的大块构造、分配方法及其存储设备
CN111338975A (zh) 面向多流的垃圾回收方法及其存储设备
CN113867642B (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
GR01 Patent grant
GR01 Patent grant