CN114201415A - 一种应用于固态硬盘的垃圾回收方法及装置 - Google Patents
一种应用于固态硬盘的垃圾回收方法及装置 Download PDFInfo
- Publication number
- CN114201415A CN114201415A CN202111403037.5A CN202111403037A CN114201415A CN 114201415 A CN114201415 A CN 114201415A CN 202111403037 A CN202111403037 A CN 202111403037A CN 114201415 A CN114201415 A CN 114201415A
- Authority
- CN
- China
- Prior art keywords
- flash memory
- solid state
- state disk
- memory blocks
- page
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
Abstract
本公开涉及计算机领域,公开了一种应用于固态硬盘的垃圾回收方法及装置,该方法应用于计算设备,计算设备内设置有固态硬盘,固态硬盘内设置有内存,包括:当查找到固态硬盘处于空闲状态时,将固态硬盘上的闪存块中每一个有效数据页进行标记,得到多个有效页标记,上述每一个有效数据页中至少包含有一条有效数据,以及将多个有效页标记保存在内存中,并在内存中查找包含有效页标记的目标闪存块,当监测到可用的闪存块的数量低于使用阈值时,将目标闪存块中的有效数据搬移到其他闪存块中,并对目标闪存块进行擦除操作,其中,其他闪存块的总存储空间大于搬移的有效数据的大小,从而可以提高有效数据搬移的速度。
Description
技术领域
本公开涉及计算机技术领域,提供了一种应用于固态硬盘的垃圾回收方法及装置。
背景技术
固态硬盘(Solid State Disk,SSD)是用固态电子存储芯片阵列制成的硬盘,一个固态硬盘的存储单元由闪存块构成,一个闪存块可划分成若干个数据页。
在系统运行过程中,会不断产生新的数据,在这种情况下需要将已存储的数据也相应的进行更新,这样,已存储的数据就自动成为垃圾数据,更新后的数据为有效数据,有效数据所在的页即为有效数据页。当固态硬盘的可用空间不足时,就需要回收旧的闪存块,即将旧的闪存块上的有效数据页中的有效数据搬移到新的闪存块上,有效数据搬移完毕后,将整个旧的闪存块进行擦除,从而释放旧的闪存块用于新数据的写入。
目前,对旧的闪存块进行垃圾回收的过程,先是遍历所有闪存块上的数据,以寻找出每一个闪存块上的有效数据页,并将其中的有效数据页上的有效数据搬移到其他的闪存块上,之后,擦除上述某一个闪存块。上述垃圾回收的过程占用了较多的资源,影响了系统的性能。
发明内容
本公开实施例提供一种应用于固态硬盘的垃圾回收方法及装置,用以提高有效数据搬移的速度。
本公开提供的具体技术方案如下:
第一方面,本公开实施例提供了一种应用于固态硬盘的垃圾回收方法,方法应用于计算设备,计算设备内设置有固态硬盘和内存,包括:
当查找到固态硬盘处于空闲状态时,将固态硬盘上的闪存块中每一个有效数据页进行标记,得到多个有效页标记,其中,每一个有效数据页中至少包含有一条有效数据;以及
将多个有效页标记保存在内存中,并在内存中查找包含有效页标记的目标闪存块;
当监测到可用的闪存块的数量低于使用阈值时,将目标闪存块中的有效数据搬移到其他闪存块中,并对目标闪存块进行擦除操作,其中,其他闪存块的总存储空间大于搬移的有效数据的大小。
可选地,当查找到固态硬盘处于空闲状态时,将固态硬盘上的闪存块中每一个有效数据页进行标记,得到多个有效页标记,包括:
当查找到固态硬盘处于空闲状态时,获取固态硬盘上可用的闪存块的数量;
若可用的闪存块的数量少于统计阈值,则获取固态硬盘上各闪存块中有效数据页的第一数量以及内存中已存储有效页标记的各闪存块中有效数据页的第二数量,其中,统计阈值大于使用阈值;
若第一数量少于第二数量,则将固态硬盘上各闪存块中每一个有效数据页进行标记,得到多个有效页标记。
可选地,将多个有效页标记保存在内存中,包括:
判断内存中已用的存储空间是否达到容量阈值;
若是,则将内存中存储的第二数量对应的闪存块的有效数据页的目标标记替换成第一数量对应的闪存块的有效页标记;
否则,则将多个有效页标记以闪存块为单位保存在内存中的存储空间中。
可选地,通过以下方式确定容量阈值:
计算内存的存储空间容量;
对固态硬盘上的任意一个闪存块中的各个数据页进行标记,并获取各个标记占用的容量之和;
基于存储空间容量和各个标记占用的容量之和,确定内存中能存储闪存块的容量阈值。
可选地,查找到固态硬盘处于空闲状态之前,还包括:
当监测到固态硬盘上电启动后,分别统计固态硬盘上的各个闪存块中包含的有效数据页的数目;
筛选出与容量阈值相一致的多个闪存块,其中,筛选出的闪存块中有效数据页的数目不大于未被筛选出的闪存块中有效数据页的数目;
将多个闪存块中的每一个有效数据页进行标记,得到多个目标标记,并将多个目标标记分别以闪存块为单位存储在内存中。
可选地,在内存中查找包含有效页标记的目标闪存块,包括:
获取内存中已存储的每一个闪存块中已标记的有效数据页的存储数目;
在已存储的闪存块中,并将查找出的多个闪存块作为目标闪存块,其中,目标闪存块中已标记的有效数据页的存储数目不大于未被查找到的多个闪存块。
可选地,将目标闪存块中的有效数据搬移到其他闪存块中,包括:
基于多个有效页标记,确定目标闪存块中包含的要搬移的有效数据,并确定要搬移的有效数据的大小;
在固态硬盘中查找总存储空间大于要搬移的有效数据的大小的多个闪存块,并将查找到的多个闪存块确定为其他闪存块;
将要搬移的有效数据存储到其他闪存块的总存储空间中。
第二方面,本公开实施例还提供了一种应用于固态硬盘的垃圾回收装置,包括:
标记单元,用于当查找到固态硬盘处于空闲状态时,将固态硬盘上的闪存块中每一个有效数据页进行标记,得到多个有效页标记,其中,每一个有效数据页中至少包含有一条有效数据;以及
查找单元,用于将多个有效页标记保存在内存中,并在内存中查找包含有效页标记的目标闪存块;
擦除单元,用于当监测到可用的闪存块的数量低于使用阈值时,将目标闪存块中的有效数据搬移到其他闪存块中,并对目标闪存块进行擦除操作,其中,其他闪存块的总存储空间大于搬移的有效数据的大小。
可选地,当查找到固态硬盘处于空闲状态时,将固态硬盘上的闪存块中每一个有效数据页进行标记,得到多个有效页标记,标记单元,用于:
当查找到固态硬盘处于空闲状态时,获取固态硬盘上可用的闪存块的数量;
若可用的闪存块的数量少于统计阈值,则获取固态硬盘上各闪存块中有效数据页的第一数量以及内存中已存储有效页标记的各闪存块中有效数据页的第二数量,其中,统计阈值大于使用阈值;
若第一数量少于第二数量,则将固态硬盘上各闪存块中每一个有效数据页进行标记,得到多个有效页标记。
可选地,将多个有效页标记保存在内存中,标记单元,用于:
判断内存中已用的存储空间是否达到容量阈值;
若是,则将内存中存储的第二数量对应的闪存块的有效数据页的目标标记替换成第一数量对应的闪存块的有效页标记;
否则,则将多个有效页标记以闪存块为单位保存在内存中的存储空间中。
可选地,通过以下方式确定容量阈值:
计算内存的存储空间容量;
对固态硬盘上的任意一个闪存块中的各个数据页进行标记,并获取各个标记占用的容量之和;
基于存储空间容量和各个标记占用的容量之和,确定内存中能存储闪存块的容量阈值。
可选地,查找到固态硬盘处于空闲状态之前,还包括:
当监测到固态硬盘上电启动后,分别统计固态硬盘上的各个闪存块中包含的有效数据页的数目;
筛选出与容量阈值相一致的多个闪存块,其中,筛选出的闪存块中有效数据页的数目不大于未被筛选出的闪存块中有效数据页的数目;
将多个闪存块中的每一个有效数据页进行标记,得到多个目标标记,并将多个目标标记分别以闪存块为单位存储在内存中。
可选地,在内存中查找包含有效页标记的目标闪存块,查找单元,用于:
获取内存中已存储的每一个闪存块中已标记的有效数据页的存储数目;
在已存储的闪存块中,并将查找出的多个闪存块作为目标闪存块,其中,目标闪存块中已标记的有效数据页的存储数目不大于未被查找到的多个闪存块。
可选地,将目标闪存块中的有效数据搬移到其他闪存块中,擦除单元,用于:
基于多个有效页标记,确定目标闪存块中包含的要搬移的有效数据,并确定要搬移的有效数据的大小;
在固态硬盘中查找总存储空间大于要搬移的有效数据的大小的多个闪存块,并将查找到的多个闪存块确定为其他闪存块;
将要搬移的有效数据存储到其他闪存块的总存储空间中。
第三方面,一种计算设备,包括:
存储器,用于存储可执行指令;
处理器,用于读取并执行存储器中存储的可执行指令,以实现如第一方面任一项的方法。
第四方面,一种计算机可读存储介质,当所述存储介质中的指令由处理器执行时,使得所述处理器能够执行上述第一方面任一项所述的方法。
本公开有益效果如下:
综上所述,本公开实施例中,提供的一种应用于固态硬盘的垃圾回收方法及装置,该方法应用于计算设备,计算设备内设置有固态硬盘和内存,包括:当查找到固态硬盘处于空闲状态时,将固态硬盘上的闪存块中每一个有效数据页进行标记,得到多个有效页标记,这样,可以在固态硬盘处于空闲状态时,对闪存块上的有效数据页进行标记,上述每一个有效数据页中至少包含有一条有效数据,以及,将多个有效页标记保存在内存中,并在内存中查找包含有效页标记的目标闪存块,上述即预先在内存中锁定目标闪存块,当监测到可用的闪存块的数量低于使用阈值时,将目标闪存块中的有效数据搬移到其他闪存块中,并对目标闪存块进行擦除操作,从而可以提高有效数据搬移的速度。
本公开的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本公开的进一步理解,构成本公开的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
图1为本公开实施例中的应用于固态硬盘的垃圾回收系统架构示意图;
图2为本公开实施例中应用于固态硬盘的垃圾回收流程示意图;
图3为本公开实施例中获取目标标记的流程示意图;
图4为本公开实施例中对有效数据页进行标记的流程示意图;
图5为本公开实施例中判断内存中已用的存储空间是否达到容量阈值的流程示意图;
图6为本公开实施例中获取目标闪存块的流程示意图;
图7为本公开实施例中对有效数据进行搬移的流程示意图;
图8为本公开实施例中应用于固态硬盘的垃圾回收装置的逻辑架构示意图;
图9为本公开实施例中计算设备的实体架构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开技术方案的一部分实施例,而不是全部的实施例。基于本公开文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开技术方案保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够使用除了在这里图示或描述的那些以外的顺序实施。
下面结合附图对本公开优选的实施方式进行详细说明。
参阅图1所示,本公开实施例中,计算设备中包含了至少一个固态硬盘,该固态硬盘内设置有内存,本申请中使用的内存是固态硬盘中的一段内存,在图1中,以闪存块1、闪存块2以及闪存块n来示例性表示装载有数据的闪存块,其中的数据有部分或者全部是有效数据。另外,需要进行说明的是,上述每一个闪存块中设置有多个数据页,若数据页上存在至少一个有效数据,则该数据页即为有效数据页。
本公开实施例中,应用于固态硬盘的垃圾回收方法的实现,主要在计算设备侧执行,下面进行具体介绍。
参阅图2所示,本公开实施例中,上述应用于固态硬盘的垃圾回收具体流程如下:
步骤201:当查找到固态硬盘处于空闲状态时,将固态硬盘上的闪存块中每一个有效数据页进行标记,得到多个有效页标记,其中,每一个有效数据页中至少包含有一条有效数据;以及
为了避免占用固态硬盘的进行存储的工作时间,在实施过程中,计算设备会在固态硬盘处于空闲状态时,查找固态硬盘上的闪存块中的有效数据页,从而能提高固态硬盘的使用性能。
需要补充说明的是,为了在固态硬盘上电启动后即获知其上的各个闪存块中有效数据页的情况,在查找到固态硬盘处于空闲状态之前,参阅图3所示,还包括:
步骤101:当监测到固态硬盘上电启动后,分别统计固态硬盘上的各个闪存块中包含的有效数据页的数目。
当监测到固态硬盘上电启动后,计算设备会以统计任意一个闪存块中包含的有效数据页的数目。这里的有效数据页即为至少包含有一条有效数据的数据页。
例如,当固态硬盘上有闪存块A、闪存块B和闪存块C这三个闪存块时,计算设备统计闪存块A中包含的有效数据页的数目为a,闪存块B中包含的有效数据页的数目为b,闪存块C中包含的有效数据页的数目为c。
步骤102:筛选出与容量阈值相一致的多个闪存块,其中,筛选出的闪存块中有效数据页的数目不大于未被筛选出的闪存块中有效数据页的数目。
这里的容量阈值用来表示内存中能够存储的闪存块的数目,由于内存中是以内存节点也就是与闪存块对应的单位来存储数据页的数目的,需要进行说明的是,闪存块中的数据页包括有效数据页和无效数据页,在标记过程中,对上述有效数据页和无效数据页进行标记时,标记每一个数据页的空间大小(例如,标记用的位图标记)是一样的。
具体的,通过以下方式确定容量阈值:
(1)计算内存的存储空间容量。
由于专门用来存储有效数据页对应的标记的内存为整个内存中的其中一段,这里计算的内存的存储空间容量即是专门用于存储标记的内存的大小,例如,字节数等。
(2)对固态硬盘上的任意一个闪存块中的各个数据页进行标记,并获取各个标记占用的容量之和。
考虑到一个闪存块中包括多个数据页,一个数据页中包括多条数据,在检测过程中,若一个数据页中的至少一条数据是有效数据,则判定该数据页是有效数据页。
由于,在标记过程中,对有效数据页和无效数据页进行标记时,每一个数据页的标记空间大小是一样的,在实施过程中,为了获取到存储一个数据页的标记所需要的容量,对闪存块中的每一个数据页分别进行标记,并获取闪存块中各个标记对应的容量之和。这里标记的形式可以为位图,这样能够在描述有效数据的同时,尽量缩小占用内存的大小。
(3)基于存储空间容量和各个标记占用的容量之和,确定内存中能存储闪存块的容量阈值。
在获取到内存对应的存储空间容量和每一个数据页对应的各个标记占用的容量之和后,用上述存储空间容量除以各个标记占用的容量之和,得到内存中能存储闪存块的容量阈值,即将内存的存储空间容量划分成了以闪存块(通常也称为内存节点)为单位的多个存储单位。
在确定了内存的容量阈值后,在固态硬盘上筛选出与容量阈值相一致的多个闪存块,筛选的原则是闪存块中包含的有效数据页的数目少,具体的,在固态硬盘上按照有效数据页的数目由少到多的顺序筛选出多个闪存块。
由于,在实际运行过程中,固态硬盘在上电启动后即从所有的闪存块中按照有效数据页由少到多的数目进行查找,并将有效数据页数目较少的闪存块筛选出来,这样,最终筛选出来的闪存块中的有效数据页的数目不大于未被筛选出的闪存块中有效数据页的数目。
步骤103:将多个闪存块中的每一个有效数据页进行标记,得到多个目标标记,并将多个目标标记分别以闪存块为单位存储在内存中。
在执行步骤102的过程中,待固态硬盘上电启动后,筛选出有效数据页数目较少的多个闪存块之后,将多个闪存块中的每一个有效数据页进行标记,例如,将闪存块中的每一个有效数据页中的有效数据用位图的形式进行标记,得到多个目标标记,为了节约内存的存储空间,并将上述多个目标标记分别以闪存块为单位存储在内存中。
这里需要补充说明的是,上述内存中以闪存块为单位进行存储的方式,可以是将内存划分成多个虚拟的闪存块,每个虚拟的闪存块中存储的多个目标标记与固态硬盘中的闪存块相对应;也可以是在上述多个目标标记中都携带上其对应的固态硬盘中的闪存块的标识。
在介绍完固态硬盘上电启动后的处理情况后,下面具体介绍当查找到固态硬盘处于空闲状态时,将固态硬盘上的闪存块中每一个有效数据页进行标记,得到多个有效页标记,参阅图4所示,包括:
步骤2011:当查找到固态硬盘处于空闲状态时,获取固态硬盘上可用的闪存块的数量。
为了减小对固态硬盘存储数据的影响,本申请实施例中,对闪存块中的有效数据页进行统计时,需要查找固态硬盘是否处于空闲状态,只有在固态硬盘处于空闲状态时,即固态硬盘处于空闲时才获取固态硬盘上可用的闪存块的数量。这里闪存块可用是指该闪存块中还可以继续存储工作,存储运行数据、业务数据等。
步骤2012:若可用的闪存块的数量少于统计阈值,则获取固态硬盘上各闪存块中有效数据页的第一数量以及内存中已存储有效页标记的各闪存块中有效数据页的第二数量,其中,统计阈值大于使用阈值。
由于,固态硬盘中的闪存块的数量是有限的,在处理过程中预先设定统计阈值,即通过该统计阈值表示固态硬盘中的可用的闪存块的数量不多了,另外,该统计阈值大于使用阈值,即可用的闪存块的数量多于使用阈值,即闪存块目前还能满足存储数据的需求,这里的使用阈值为固态硬盘中能够满足存储数据的需求的闪存块的最小数目值。
实施过程中,比较上述统计出来的可用的闪存块的数量少于上述统计阈值,并且考虑到固态硬盘在上电启动后其闪存块中的有效数据可能会被更新成无效数据的情况下,具体统计可用的闪存块的数量少于统计阈值的时刻,固态硬盘上各闪存块中有效数据页的第一数量,该第一数量可以明确的表示出固态硬盘上各闪存块的存储情况,以及,在上述情况下,具体统计出已存储有效页标记的各闪存块中有效数据页的第二数量。
步骤2013:若第一数量少于第二数量,则将固态硬盘上各闪存块中每一个有效数据页进行标记,得到多个有效页标记。
实施过程中,如果上述统计出来的第一数量少于第二数量,即表明固态硬盘中的闪存块中有效数据页的数量较少,而内存中存储的各闪存块中有效数据页的数量较多,在这种情况下,显然要将有效数据页的数量较少的闪存块删除,以存储新的运行数据等,为了确定该闪存块,将固态硬盘上各闪存块中每一个有效数据页进行标记,得到多个有效页标记,这样能够具体统计出固态硬盘上包含有效数据页较少的闪存块。
步骤202:将多个有效页标记保存在内存中,并在内存中查找包含有效页标记的目标闪存块。
在统计出固态硬盘处于空闲状态时的包含有效数据页较少的闪存块之后,将该闪存块对应的多个有效页标记及时保存到内存中。这样能够保证内存中存储的各个闪存块包含的有效数据页较少,即内存中对应的闪存块为要被清除用作存储其他运行数据的备选闪存块。
具体的,将多个有效页标记保存在内存中,参阅图5所示,具体包括:
步骤2021:判断内存中已用的存储空间是否达到容量阈值,若是,则执行步骤2022;否则,则执行步骤2023。
由于内存的存储空间是有限的,本申请实施例中,用容量阈值来表示内存中最多可用的存储空间大小。在将多个有效页标记保存在内存之前,先判断内存中已用的存储空间是否达到容量阈值,通过此判断能够确认统计出来的各闪存块的有效页标记的数目。
进一步的,若判断内存中已用的存储空间达到容量阈值,则执行步骤2022;若判断内存中已用的存储空间还没达到容量阈值,则执行步骤2023。
步骤2022:将内存中存储的第二数量对应的闪存块的有效数据页的目标标记替换成第一数量对应的闪存块的有效页标记。
在内存中已用的存储空间达到容量阈值时,说明内存中已无法再存储闪存块中的有效数据页的标记了,而此时检测出了固态硬盘上各闪存块中有效数据页的第一数量少于内存中已存储的有效页标记的各闪存块中有效数据页的第二数量。
为了保证内存中存储的有效页标记对应的各闪存块中有效数据页的数量较少,将内存中存储的第二数量对应的闪存块的有效数据页的目标标记替换成第一数量对应的闪存块的有效页标记。
步骤2023:将多个有效页标记以闪存块为单位保存在内存中的存储空间中。
实施过程中,为了方便统一调用,在内存中存储的多个有效页标记,通常也是以闪存块为单位保存在内存中的存储空间中。这里与固态硬盘上电启动后内存中以闪存块为单位进行存储的方式一致,故不再赘述。
在将多个有效页标记保存在内存中之后,在内存中查找包含有效页标记的目标闪存块,参阅图6所示,具体包括:
步骤2021’:获取内存中已存储的每一个闪存块中已标记的有效数据页的存储数目。
由于,内存中已存储的有效页标记的大小最多达到容量阈值,其对应的闪存块的数目也较多。为了准确获知内存对应存储的有效页标记的数目,实施过程中,获取内存中已存储的每一个闪存块中已标记的有效数据页的存储数目,相应的获取到内存对应存储的闪存块的数目。
步骤2022’:在已存储的闪存块中,并将查找出的多个闪存块作为目标闪存块,其中,目标闪存块中已标记的有效数据页的存储数目不大于未被查找到的多个闪存块。
为了满足固态硬盘的存储需求,这里说明下上述查找的依据是已标记的有效数据页的存储数目由少到多,即挑选出内存中有效数据页的有效页标记较少的对应闪存块。这样,查找到的多个闪存块即目标闪存块中已标记的有效数据页的存储数目会少于或者等于未被查找到的多个闪存块。
步骤203:当监测到可用的闪存块的数量低于使用阈值时,将目标闪存块中的有效数据搬移到其他闪存块中,并对目标闪存块进行擦除操作,其中,其他闪存块的总存储空间大于搬移的有效数据的大小。
在固态硬盘的存储过程中,如果监测到可用的闪存块的数量低于使用阈值时,即说明下一步需要清除已用的闪存块来存储新的运行数据了。在这种情况下,为了保证有效数据的完整性,要被清除的闪存块中的有效数据要被进一步处理。
具体的,将目标闪存块中的有效数据搬移到其他闪存块中,参阅图7所示,具体包括:
步骤2031:基于多个有效页标记,确定目标闪存块中包含的要搬移的有效数据,并确定要搬移的有效数据的大小。
由于,在实施过程中依据内存中的有效页标记确定出了要搬移的有效数据,但考虑到内存中仅存储有多个有效页标记,而有效页标记对应的有效数据实际存储在固态硬盘中。为此,实施过程中需要进一步根据多个有效页标记来确定目标闪存块中包含的要搬移的有效数据的大小。
步骤2032:在固态硬盘中查找总存储空间大于要搬移的有效数据的大小的多个闪存块,并将查找到的多个闪存块确定为其他闪存块。
为了确保搬移的有效数据的完整性,实施过程中,可在固态硬盘中查找到多个闪存块,上述多个闪存块的总存储空间大于要搬移的有效数据的大小的闪存块,即其他闪存块包括的多个闪存块为要搬移的有效数据留出来的存储空间是足够存储上述要搬移的有效数据的,这样,上述其他闪存块(包括一个或者多个闪存块)的总存储空间能用于存储要搬移的有效数据的大小。为了明确上述闪存块,实施过程中,将查找到的多个闪存块确定为其他闪存块。
步骤2033:将要搬移的有效数据存储到其他闪存块的总存储空间中。
在确定了要搬移的有效数据和对应存储的新的闪存块(即其他闪存块)之后,将要搬移的有效数据存储到其他闪存块的总存储空间中,需要说明的是,通常,上述存储空间可以为该其他闪存块的一部分存储空间,在其他闪存块中的一个闪存块的存储空间充足时,可用于多次存储搬移的有效数据,在其他闪存块中的一个闪存块的存储空间不充足时,可用于存储搬移的有效数据的一部分,剩余的其他有效数据,可由其他闪存块中的另一个闪存块继续存储。
实施过程中,在将有效数据搬移到其他闪存块中后,即可对该目标闪存块进行擦除操作,即清除该目标闪存块中的所有数据,待清除完毕后,目标闪存块即可执行存储功能了。
基于同一发明构思,参阅图8所示,本公开实施例中提供一种应用于固态硬盘的垃圾回收装置,包括:
标记单元801,用于当查找到固态硬盘处于空闲状态时,将固态硬盘上的闪存块中每一个有效数据页进行标记,得到多个有效页标记,其中,每一个有效数据页中至少包含有一条有效数据;以及
查找单元802,用于将多个有效页标记保存在内存中,并在内存中查找包含有效页标记的目标闪存块;
擦除单元803,用于当监测到可用的闪存块的数量低于使用阈值时,将目标闪存块中的有效数据搬移到其他闪存块中,并对目标闪存块进行擦除操作,其中,其他闪存块的总存储空间大于搬移的有效数据的大小。
可选地,当查找到固态硬盘处于空闲状态时,将固态硬盘上的闪存块中每一个有效数据页进行标记,得到多个有效页标记,标记单元801,用于:
当查找到固态硬盘处于空闲状态时,获取固态硬盘上可用的闪存块的数量;
若可用的闪存块的数量少于统计阈值,则获取固态硬盘上各闪存块中有效数据页的第一数量以及内存中已存储有效页标记的各闪存块中有效数据页的第二数量,其中,统计阈值大于使用阈值;
若第一数量少于第二数量,则将固态硬盘上各闪存块中每一个有效数据页进行标记,得到多个有效页标记。
可选地,将多个有效页标记保存在内存中,标记单元801,用于:
判断内存中已用的存储空间是否达到容量阈值;
若是,则将内存中存储的第二数量对应的闪存块的有效数据页的目标标记替换成第一数量对应的闪存块的有效页标记;
否则,则将多个有效页标记以闪存块为单位保存在内存中的存储空间中。
可选地,通过以下方式确定容量阈值:
计算内存的存储空间容量;
对固态硬盘上的任意一个闪存块中的各个数据页进行标记,并获取各个标记占用的容量之和;
基于存储空间容量和各个标记占用的容量之和,确定内存中能存储闪存块的容量阈值。
可选地,查找到固态硬盘处于空闲状态之前,还包括:
当监测到固态硬盘上电启动后,分别统计固态硬盘上的各个闪存块中包含的有效数据页的数目;
筛选出与容量阈值相一致的多个闪存块,其中,筛选出的闪存块中有效数据页的数目不大于未被筛选出的闪存块中有效数据页的数目;
将多个闪存块中的每一个有效数据页进行标记,得到多个目标标记,并将多个目标标记分别以闪存块为单位存储在内存中。
可选地,在内存中查找包含有效页标记的目标闪存块,查找单元802,用于:
获取内存中已存储的每一个闪存块中已标记的有效数据页的存储数目;
在已存储的闪存块中,并将查找出的多个闪存块作为目标闪存块,其中,目标闪存块中已标记的有效数据页的存储数目不大于未被查找到的多个闪存块。
可选地,将目标闪存块中的有效数据搬移到其他闪存块中,擦除单元803,用于:
基于多个有效页标记,确定目标闪存块中包含的要搬移的有效数据,并确定要搬移的有效数据的大小;
在固态硬盘中查找总存储空间大于要搬移的有效数据的大小的多个闪存块,并将查找到的多个闪存块确定为其他闪存块;
将要搬移的有效数据存储到其他闪存块的总存储空间中。
基于同一发明构思,参阅图9所示,本公开实施例提供一种计算设备,包括:存储器901,用于存储可执行指令;处理器902,用于读取并执行存储器中存储的可执行指令,并执行上述第一方面的任意一种方法。
基于同一发明构思,本公开实施例提供一种计算机可读存储介质,当所述存储介质中的指令由处理器执行时,使得所述处理器能够执行上述第一方面任一项所述的方法。
综上所述,本公开实施例中,提供的一种应用于固态硬盘的垃圾回收方法及装置,该方法应用于计算设备,计算设备内设置有固态硬盘,固态硬盘内设置有内存,包括:当查找到固态硬盘处于空闲状态时,将固态硬盘上的闪存块中每一个有效数据页进行标记,得到多个有效页标记,这样,可以在固态硬盘处于空闲状态时,对闪存块上的有效数据页进行标记,上述每一个有效数据页中至少包含有一条有效数据,以及,将多个有效页标记保存在内存中,并在内存中查找包含有效页标记的目标闪存块,即预先在内存中锁定目标闪存块,当监测到可用的闪存块的数量低于使用阈值时,将目标闪存块中的有效数据搬移到其他闪存块中,并对目标闪存块进行擦除操作,从而可以提高有效数据搬移的速度。
本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品系统。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品系统的形式。
本公开是参照根据本公开的方法、设备(系统)、和计算机程序产品系统的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
Claims (10)
1.一种应用于固态硬盘的垃圾回收方法,其特征在于,所述方法应用于计算设备,所述计算设备内设置有固态硬盘,固态硬盘内设置有内存,包括:
当查找到所述固态硬盘处于空闲状态时,将所述固态硬盘上的闪存块中每一个有效数据页进行标记,得到多个有效页标记,其中,所述每一个有效数据页中至少包含有一条有效数据;以及
将所述多个有效页标记保存在内存中,并在所述内存中查找包含所述有效页标记的目标闪存块;
当监测到可用的闪存块的数量低于所述使用阈值时,将所述目标闪存块中的有效数据搬移到其他闪存块中,并对所述目标闪存块进行擦除操作,其中,所述其他闪存块的总存储空间大于搬移的所述有效数据的大小。
2.如权利要求1所述的方法,其特征在于,所述当查找到所述固态硬盘处于空闲状态时,将所述固态硬盘上的闪存块中每一个有效数据页进行标记,得到多个有效页标记,包括:
当查找到所述固态硬盘处于空闲状态时,获取所述固态硬盘上可用的闪存块的数量;
若所述可用的闪存块的数量少于统计阈值,则获取所述固态硬盘上各闪存块中有效数据页的第一数量以及所述内存中已存储有效页标记的各闪存块中有效数据页的第二数量,其中,所述统计阈值大于所述使用阈值;
若所述第一数量少于所述第二数量,则将所述固态硬盘上各闪存块中每一个有效数据页进行标记,得到多个有效页标记。
3.如权利要求2所述的方法,其特征在于,所述将所述多个有效页标记保存在内存中,包括:
判断所述内存中已用的存储空间是否达到容量阈值;
若是,则将所述内存中存储的所述第二数量对应的闪存块的所述有效数据页的目标标记替换成所述第一数量对应的闪存块的所述有效页标记;
否则,则将所述多个有效页标记以闪存块为单位保存在内存中的存储空间中。
4.如权利要求1所述的方法,其特征在于,通过以下方式确定容量阈值:
计算所述内存的存储空间容量;
对所述固态硬盘上的任意一个闪存块中的各个数据页进行标记,并获取所述各个标记占用的容量之和;
基于所述存储空间容量和所述各个标记占用的容量之和,确定所述内存中能存储所述闪存块的容量阈值。
5.如权利要求1所述的方法,其特征在于,所述查找到所述固态硬盘处于空闲状态之前,还包括:
当监测到所述固态硬盘上电启动后,分别统计所述固态硬盘上的各个闪存块中包含的有效数据页的数目;
筛选出与所述容量阈值相一致的多个闪存块,其中,筛选出的所述闪存块中有效数据页的数目不大于未被筛选出的所述闪存块中有效数据页的数目;
将所述多个闪存块中的每一个有效数据页进行标记,得到多个目标标记,并将所述多个目标标记分别以闪存块为单位存储在所述内存中。
6.如权利要求1所述的方法,其特征在于,所述在所述内存中查找包含所述有效页标记的目标闪存块,包括:
获取所述内存中已存储的每一个闪存块中已标记的有效数据页的存储数目;
在所述已存储的闪存块中,将查找出的多个所述闪存块作为所述目标闪存块,其中,所述目标闪存块中已标记的有效数据页的存储数目不大于未被查找到的多个所述闪存块。
7.如权利要求1所述的方法,其特征在于,所述将所述目标闪存块中的有效数据搬移到其他闪存块中,包括:
基于所述多个有效页标记,确定所述目标闪存块中包含的要搬移的有效数据,并确定所述要搬移的有效数据的大小;
在所述固态硬盘中查找总存储空间大于所述要搬移的有效数据的大小的多个闪存块,并将查找到的所述多个闪存块确定为所述其他闪存块;
将所述要搬移的有效数据存储到所述其他闪存块的所述存储空间中。
8.一种应用于固态硬盘的垃圾回收装置,其特征在于,包括:
标记单元,用于当查找到所述固态硬盘处于空闲状态时,将所述固态硬盘上的闪存块中每一个有效数据页进行标记,得到多个有效页标记,其中,所述每一个有效数据页中至少包含有一条有效数据;以及
查找单元,用于将所述多个有效页标记保存在内存中,并在所述内存中查找包含所述有效页标记的目标闪存块;
擦除单元,用于当监测到可用的闪存块的数量低于所述使用阈值时,将所述目标闪存块中的有效数据搬移到其他闪存块中,并对所述目标闪存块进行擦除操作,其中,所述其他闪存块的总存储空间大于搬移的所述有效数据的大小。
9.一种计算设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于读取并执行所述存储器中存储的可执行指令,以实现如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,当所述存储介质中的指令由处理器执行时,使得所述处理器能够执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111403037.5A CN114201415A (zh) | 2021-11-24 | 2021-11-24 | 一种应用于固态硬盘的垃圾回收方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111403037.5A CN114201415A (zh) | 2021-11-24 | 2021-11-24 | 一种应用于固态硬盘的垃圾回收方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114201415A true CN114201415A (zh) | 2022-03-18 |
Family
ID=80648674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111403037.5A Pending CN114201415A (zh) | 2021-11-24 | 2021-11-24 | 一种应用于固态硬盘的垃圾回收方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114201415A (zh) |
-
2021
- 2021-11-24 CN CN202111403037.5A patent/CN114201415A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102016788B (zh) | 高效地标记带有大引用集的对象 | |
CN110399310B (zh) | 一种存储空间的回收方法及装置 | |
CN107818269B (zh) | 一种基于Flash的文件保存方法及系统 | |
CN105868122A (zh) | 快闪存储设备的数据处理方法及装置 | |
CN106469120A (zh) | 碎片整理方法、装置及设备 | |
CN106383666B (zh) | 一种数据存储方法及装置 | |
US6999979B2 (en) | Efficient encoding of references into a collection set | |
CN110134645B (zh) | 文件系统存储管理方法、读取方法、管理装置和读取装置 | |
CN114721972B (zh) | 垃圾回收方法、装置、可读存储介质及电子设备 | |
US20110238713A1 (en) | Per thread garbage collection | |
CN112631731A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
US20070067486A1 (en) | Memory management | |
GB2399897A (en) | Memory recycling in computer system where the processing is stopped to identify where the data items allocated in the memory | |
CN114201415A (zh) | 一种应用于固态硬盘的垃圾回收方法及装置 | |
CN107122124B (zh) | 数据处理方法及装置 | |
CN108804337A (zh) | 内存垃圾回收的方法、装置及计算机存储介质 | |
CN107122247B (zh) | 一种静态占用图片的检测方法和装置 | |
CN111221468A (zh) | 存储块数据删除方法、装置、电子设备及云存储系统 | |
CN110764711A (zh) | 一种io数据分类删除方法、装置和计算机可读存储介质 | |
CN102981964B (zh) | 数据存储空间的管理方法及系统 | |
CN109325005A (zh) | 一种数据处理方法和电子设备 | |
CN110765081A (zh) | 一种数据删除方法和装置 | |
CN111143343B (zh) | 一种基于源端重删的数据高效删除方法及系统 | |
CN106201903A (zh) | 一种三维闪存擦除控制方法及其系统 | |
CN111949558B (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: Room 1202, Floor 12, Building 3, No. 126, Yueda Lane, Changhe Street, Binjiang District, Hangzhou City, Zhejiang Province, 310053 Applicant after: Zhejiang Huayi Core Technology Co.,Ltd. Address before: 310053 4th floor, building 1, No. 2952, South Ring Road, Puyan street, Binjiang District, Hangzhou City, Zhejiang Province Applicant before: Zhejiang Dahua Technology Co.,Ltd. |