CN108763102B - 一种固态硬盘的垃圾回收方法及装置 - Google Patents
一种固态硬盘的垃圾回收方法及装置 Download PDFInfo
- Publication number
- CN108763102B CN108763102B CN201810550307.7A CN201810550307A CN108763102B CN 108763102 B CN108763102 B CN 108763102B CN 201810550307 A CN201810550307 A CN 201810550307A CN 108763102 B CN108763102 B CN 108763102B
- Authority
- CN
- China
- Prior art keywords
- block
- blocks
- idle
- garbage
- source block
- 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.)
- Active
Links
- 239000010813 municipal solid waste Substances 0.000 title claims abstract description 133
- 238000000034 method Methods 0.000 title claims abstract description 95
- 238000004064 recycling Methods 0.000 title claims abstract description 51
- 239000007787 solid Substances 0.000 title claims abstract description 45
- 238000011084 recovery Methods 0.000 claims description 32
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Abstract
本申请公开了一种固态硬盘的垃圾回收方法及装置,首先确定源block和目的block,然后将源block中的有效数据复制到目的block,待源block中的有效数据复制完毕后,擦除源block,成为空闲block,重新确定源block并继续进行垃圾回收,期间每一次目的block存满数据后,判断总存储空间是否达到预设阈值,若是,停止执行垃圾回收流程,若否,继续执行垃圾回收流程。该方法及装置在垃圾回收过程中,每一次目的block存满后才判断空闲block是否满足要求,即将停止垃圾回收的时机放在填满目的block后,因此能够避免open block的产生,提高了目的block的稳定性和固态硬盘的可靠性。
Description
技术领域
本发明涉及存储技术领域,更具体的说,是涉及一种固态硬盘的垃圾回收方法及装置。
背景技术
固态硬盘中包括固态存储单元,固态存储单元中包括多个block,也即数据块。由于固态硬盘没有重写机制,因此在一个block写满数据后,需要擦出block中的数据,才可以写入新数据。
而擦出操作非常耗时。出于效率的考虑,用户写同一逻辑地址时,固态硬盘实际将其写入不同的物理地址,这就造成了原物理地址上会存在由有效变为无效的无效数据,如原物理地址写入1、2、3、4、5,而后修改这个数据,修改后变为1、2、3、6、7,则原物理地址中存储的、45变为无效数据。这种情况下,需要进行垃圾回收以提高空间利用率。
垃圾回收是将无效数据和有效数据混杂的block中的有效数据搬移到新的block中,将剩下的无效数据擦除,从而将无线数据所占空间腾出使用的数据搬移技术。现有技术中,回收垃圾的方法以固态硬盘的可用空闲block的个数判断是否停止垃圾回收,假如需要100M空闲空间,一个block为10M空间,则保证垃圾回收到具有10个空闲block即可。但是这个过程可能出现有效数据搬移到的目的block只填充了一半,垃圾回收时正在被填充的目的block没有被填满的情况,形成open block。而open block是不稳定的,长期存在容易出现读失败的情况,影响固态硬盘的可靠性。
发明内容
有鉴于此,本发明提供了一种固态硬盘的垃圾回收方法及装置,以克服现有技术中垃圾回收过程中出现open block的问题。
为实现上述目的,本发明提供如下技术方案:
一种固态硬盘的垃圾回收方法,包括:
确定源block和目的block;
执行垃圾回收流程,所述垃圾回收流程包括:将所述源block中的有效数据复制到所述目的block,待所述源block中的有效数据复制完毕后,擦除所述源block,成为空闲block,重新确定源block并继续执行所述垃圾回收流程;
在所述执行垃圾回收流程期间,每一次目的block存满数据后,判断所有空闲block的总存储空间是否达到预设阈值;
若达到预设阈值,停止执行垃圾回收流程;
若没有达到预设阈值,重新选取一个目的block,继续执行垃圾回收流程。
可选的,所述确定源block和目的block,包括:
从存满数据的block中确定源block,并从空闲block中确定目的block。
可选的,所述判断所有空闲block的总存储空间是否达到预设阈值,包括:
确定空闲block的数量;
根据所述空闲block的数量以及所述空闲block的存储空间判断总存储空间是否达到预设阈值。
可选的,每一个空闲block的存储空间相同,则所述判断所有空闲block的总存储空间是否达到预设阈值,包括:
判断所有空闲block的数量是否达到预设数量。
可选的,还包括:
在所述擦除所述源block,成为空闲block后,以及重新选取一个目的block后,更新空闲block的数量。
一种固态硬盘的垃圾回收装置,包括:
block确定模块,用于确定源block和目的block;
垃圾回收模块,用于执行垃圾回收流程,所述垃圾回收流程包括:将所述源block中的有效数据复制到所述目的block,待所述源block中的有效数据复制完毕后,擦除所述源block,成为空闲block;
空间判断模块,用于在所述执行垃圾回收流程期间,每一次目的block存满数据后,判断所有空闲block的总存储空间是否达到预设阈值;
回收终止模块,用于在所述空间判断模块的判断结果为是时,停止执行垃圾回收流程;
所述block确定模块还用于在所述垃圾回收模块擦除所述源block,成为空闲block后,重新确定源block,并在所述空间判断模块的判断结果为否时,重新选取一个目的block。
可选的,所述block确定模块具体用于:
从存满数据的block中确定源block,并从空闲block中确定目的block。
可选的,所述空间判断模块具体用于:
用于在所述执行垃圾回收流程期间,每一次目的block存满数据后,确定空闲block的数量,并根据所述空闲block的数量以及所述空闲block的存储空间判断总存储空间是否达到预设阈值。
可选的,每一个空闲block的存储空间相同,则所述空间判断模块具体用于:
用于在所述执行垃圾回收流程期间,每一次目的block存满数据后,判断所有空闲block的数量是否达到预设数量。
可选的,还包括:
数量更新模块,用于在所述垃圾回收模块在擦除所述源block,成为空闲block后,以及所述block确定模块重新选取一个目的block后,更新空闲block的数量。
经由上述的技术方案可知,与现有技术相比,本发明实施例公开了一种固态硬盘的垃圾回收方法及装置,首先确定源block和目的block,然后执行垃圾回收流程,所述垃圾回收流程包括:将所述源block中的有效数据复制到所述目的block,待所述源block中的有效数据复制完毕后,擦除所述源block,成为空闲block,重新确定源block并继续执行所述垃圾回收流程,在所述执行垃圾回收流程期间,每一次目的block存满数据后,判断所有空闲block的总存储空间是否达到预设阈值,若是,停止执行垃圾回收流程,若否,继续执行垃圾回收流程。该方法及装置在垃圾回收过程中,每一次目的block存满后才判断空闲block是否满足要求,即将停止垃圾回收的时机放在填满目的block之后,因此能够避免openblock的产生,提高了目的block的稳定性和固态硬盘的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种固态硬盘的垃圾回收方法的流程图;
图2为本发明实施例公开的判断空闲空间是否达到预设阈值的流程图;
图3为本发明实施例公开的另一种固态硬盘的垃圾回收方法流程图;
图4为本发明实施例公开的一种固态硬盘的垃圾回收装置的结构示意图;
图5为本发明实施例公开的另一种固态硬盘的垃圾回收装置的结构示意图。
具体实施方式
为了引用和清楚起见,下文中使用的技术名词的说明、简写或缩写总结如下:
Open block:有page被写但是不是所有page被全部写的block。
垃圾回收:为了回收可用空间,将无效数据和有效数据混杂的block中的有效数据搬移到新的block中,从而将无效数据所占空间腾出使用的数据搬移技术。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例公开的一种固态硬盘的垃圾回收方法的流程图,参见图1所示,固态硬盘的垃圾回收方法可以包括:
步骤101:确定源block和目的block。
具体的,所述确定源block和目的block,可以包括:从存满数据的block中确定源block,并从空闲block中确定目的block。其中,所述源block中包括有效数据和无效数据,所述目的block为空闲block,其中没有存储数据。
步骤102:执行垃圾回收流程,所述垃圾回收流程包括:将所述源block中的有效数据复制到所述目的block,待所述源block中的有效数据复制完毕后,擦除所述源block,成为空闲block,重新确定源block并继续执行所述垃圾回收流程。
确定所述源block和目的block后,后续可以执行垃圾回收流程,将所述源block中的有效数据复制到目的block。待所述源block中的有效数据复制完毕后,可以将所述源block整体擦除,这样,源block中的所有空间就被释放,擦除源block后,固态硬盘的整体空闲空间多出的部分等于所述源block擦除前,其中无效数据占用的空间。
一般来说,固态硬盘中各个block的存储空间是相等固定的,因为源block中通常包括有效数据和无效数据,因此,在源block中的有效数据复制完毕后,目的block通常不会被写满数据,这时需要确定下一个源block,继续进行源block中有效数据复制到目的block的过程。
步骤103:在所述执行垃圾回收流程期间,每一次目的block存满数据后,判断所有空闲block的总存储空间是否达到预设阈值,若是,进入步骤104,若否,进入步骤105。
为了避免垃圾回收完毕时出现open block的情况,本申请中,只有在每次目的block存满数据时,才会判断当前所有空闲block的总存储空间是否达到预设阈值,若达到,则可以停止垃圾回收,此时,固态硬盘中不存在open block。若当前所有空闲block的找那个存储空间没有达到预设阈值,即不满足要求,需要继续进行垃圾回收,以获得足够的存储空间。而此时目的block已经被存满数据了,若继续进行垃圾回收,则需要重新选取一个目的block作为有效数据的复制目的块。
步骤104:停止执行垃圾回收流程。
步骤105:重新选取一个目的block,进入步骤102。
本实施例中,所述固态硬盘的垃圾回收方法在垃圾回收过程中,每一次目的block存满后才判断空闲block是否满足要求,即将停止垃圾回收的时机放在填满目的block之后,因此能够避免open block的产生,提高了目的block的稳定性和固态硬盘的可靠性。
上述实施例中,所述在所述执行垃圾回收流程期间,每一次目的block存满数据后,判断所有空闲block的总存储空间是否达到预设阈值,具体有不同的实现方式。图2为本发明实施例公开的判断空闲空间是否达到预设阈值的流程图,如图2所示,可以包括:
步骤201:在所述执行垃圾回收流程期间,每一次目的block存满数据后,确定空闲block的数量。
步骤202:根据所述空闲block的数量以及所述空闲block的存储空间判断总存储空间是否达到预设阈值。
所有空闲block的总存储空间可以根据空闲block的数量以及空闲block的存储空间计算获得,如1个空闲block的存储空间是100kb,那么5个空间block的总存储空间就是5*100=500kb。
在其他的实施例中,在每一个空闲block的存储空间相同的情况下,所述判断所有空闲block的总存储空间是否达到预设阈值还可以包括:判断所有空闲block的数量是否达到预设数量。因为每个空闲block的存储空间都相同,且为已知的,空闲block的数量满足了数量要求,总存储空间也就达到了预设阈值。
图3为本发明实施例公开的另一种固态硬盘的垃圾回收方法流程图,参见图3所示,固态硬盘的垃圾回收方法可以包括:
步骤301:确定源block和目的block。
步骤302:执行垃圾回收流程,所述垃圾回收流程包括:将所述源block中的有效数据复制到所述目的block,待所述源block中的有效数据复制完毕后,擦除所述源block,成为空闲block,更新空闲block的数量,重新确定源block并继续执行所述垃圾回收流程。
本步骤中的更新空闲block的数量,是在原来的数量上加1,因为源block在其有效数据全部复制到目的block后,就被擦除,此时源block由写满数据的block变为没有存储任何数据的空闲block,因此空闲block的数量需要加1。
步骤303:在所述执行垃圾回收流程期间,每一次目的block存满数据后,判断所有空闲block的数量是否达到预设数量,若是,进入步骤304,若否,进入步骤305。
步骤304:停止执行垃圾回收流程。
步骤305:重新选取一个目的block,更新空闲block的数量,继续执行垃圾回收流程。
本步骤中更新空闲block的数量,是在原来的数量上减1。因为原来的目的block已经被存满数据,此时需要继续进行垃圾回收流程的话,需要重新从空闲block中确定一个目的block,方便后续有效数据的复制存储。
本实施例中,在整个垃圾回收过程中实时更新空闲block的数量,便于后续在判断所有空闲block的数量是否达到预设数量时直接判断。所述固态硬盘的垃圾回收方法在垃圾回收过程中,每一次目的block存满后才判断空闲block是否满足要求,即将停止垃圾回收的时机放在填满目的block之后,因此能够避免open block的产生,提高了目的block的稳定性和固态硬盘的可靠性。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
上述本发明公开的实施例中详细描述了方法,对于本发明的方法可采用多种形式的装置实现,因此本发明还公开了一种装置,下面给出具体的实施例进行详细说明。
图4为本发明实施例公开的一种固态硬盘的垃圾回收装置的结构示意图,参见图4所示,固态硬盘的垃圾回收装置40可以包括:
block确定模块401,用于确定源block和目的block。
具体的,所述block确定模块401具体可以用于:从存满数据的block中确定源block,并从空闲block中确定目的block。其中,所述源block中包括有效数据和无效数据,所述目的block为空闲block,其中没有存储数据。
垃圾回收模块402,用于执行垃圾回收流程,所述垃圾回收流程包括:将所述源block中的有效数据复制到所述目的block,待所述源block中的有效数据复制完毕后,擦除所述源block,成为空闲block。
确定所述源block和目的block后,后续可以执行垃圾回收流程,将所述源block中的有效数据复制到目的block。待所述源block中的有效数据复制完毕后,可以将所述源block整体擦除,这样,源block中的所有空间就被释放,擦除源block后,固态硬盘的整体空闲空间多出的部分等于所述源block擦除前,其中无效数据占用的空间。
一般来说,固态硬盘中各个block的存储空间是相等固定的,因为源block中通常包括有效数据和无效数据,因此,在源block中的有效数据复制完毕后,目的block通常不会被写满数据,这时需要确定下一个源block,继续进行源block中有效数据复制到目的block的过程。
空间判断模块403,用于在所述执行垃圾回收流程期间,每一次目的block存满数据后,判断所有空闲block的总存储空间是否达到预设阈值。
为了避免垃圾回收完毕时出现open block的情况,本申请中,只有在每次目的block存满数据时,才会判断当前所有空闲block的总存储空间是否达到预设阈值,若达到,则可以停止垃圾回收,此时,固态硬盘中不存在open block。若当前所有空闲block的找那个存储空间没有达到预设阈值,即不满足要求,需要继续进行垃圾回收,以获得足够的存储空间。而此时目的block已经被存满数据了,若继续进行垃圾回收,则需要重新选取一个目的block作为有效数据的复制目的块。
回收终止模块404,用于在所述空间判断模块的判断结果为是时,停止执行垃圾回收流程。
所述block确定模块401还用于在所述垃圾回收模块402擦除所述源block,成为空闲block后,重新确定源block,并在所述空间判断模块403的判断结果为否时,重新选取一个目的block。
本实施例中,所述固态硬盘的垃圾回收装置在垃圾回收过程中,每一次目的block存满后才判断空闲block是否满足要求,即将停止垃圾回收的时机放在填满目的block之后,因此能够避免open block的产生,提高了目的block的稳定性和固态硬盘的可靠性。
上述实施例中,所述空间判断模块403的具体工作内容,在不同的实施例中具有不同的实现方式。如,在一个实施例中,所述空间判断模块403具体可以用于:在所述执行垃圾回收流程期间,每一次目的block存满数据后,确定空闲block的数量,并根据所述空闲block的数量以及所述空闲block的存储空间判断总存储空间是否达到预设阈值。
所有空闲block的总存储空间可以根据空闲block的数量以及空闲block的存储空间计算获得,如1个空闲block的存储空间是100kb,那么5个空间block的总存储空间就是5*100=500kb。
在其他的实施例中,在每一个空闲block的存储空间相同的情况下,所述判断所有空闲block的总存储空间是否达到预设阈值可以包括:在所述执行垃圾回收流程期间,每一次目的block存满数据后,判断所有空闲block的数量是否达到预设数量。因为每个空闲block的存储空间都相同,且为已知的,空闲block的数量满足了数量要求,总存储空间也就达到了预设阈值。
图5为本发明实施例公开的另一种固态硬盘的垃圾回收装置的结构示意图,如图5所示,固态硬盘的垃圾回收装置50可以包括:
block确定模块401,用于确定源block和目的block。
垃圾回收模块402,用于执行垃圾回收流程,所述垃圾回收流程包括:将所述源block中的有效数据复制到所述目的block,待所述源block中的有效数据复制完毕后,擦除所述源block,成为空闲block。
空间判断模块403,用于在所述执行垃圾回收流程期间,每一次目的block存满数据后,判断所有空闲block的总存储空间是否达到预设阈值。
回收终止模块404,用于在所述空间判断模块的判断结果为是时,停止执行垃圾回收流程
所述block确定模块401还用于在所述垃圾回收模块擦除所述源block,成为空闲block后,重新确定源block,并在所述空间判断模块的判断结果为否时,重新选取一个目的block。
数量更新模块501,用于在所述垃圾回收模块402在擦除所述源block,成为空闲block后,以及所述block确定模块401重新选取一个目的block后,更新空闲block的数量。
在所述垃圾回收模块402在擦除所述源block,成为空闲block后,更新空闲block的数量,是在原来的数量上加1,因为源block在其有效数据全部复制到目的block后,就被擦除,此时源block由写满数据的block变为没有存储任何数据的空闲block,因此空闲block的数量需要加1。
在所述block确定模块401重新选取一个目的block后,更新空闲block的数量,是在原来的数量上减1。因为原来的目的block已经被存满数据,此时需要继续进行垃圾回收流程的话,需要重新从空闲block中确定一个目的block,方便后续有效数据的复制存储。
本实施例中,在整个垃圾回收过程中实时更新空闲block的数量,便于后续在判断所有空闲block的数量是否达到预设数量时直接判断。所述固态硬盘的垃圾回收装置在垃圾回收过程中,每一次目的block存满后才判断空闲block是否满足要求,即将停止垃圾回收的时机放在填满目的block之后,因此能够避免open block的产生,提高了目的block的稳定性和固态硬盘的可靠性。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种固态硬盘的垃圾回收方法,其特征在于,包括:
确定源block和目的block;
执行垃圾回收流程,所述垃圾回收流程包括:将所述源block中的有效数据复制到所述目的block,待所述源block中的有效数据复制完毕后,擦除所述源block,成为空闲block,重新确定源block并继续执行所述垃圾回收流程;
在所述执行垃圾回收流程期间,在每次目的block存满数据时,才判断所有空闲block的总存储空间是否达到预设阈值;
若达到预设阈值,停止执行垃圾回收流程;
若没有达到预设阈值,重新选取一个目的block,继续执行垃圾回收流程。
2.根据权利要求1所述的固态硬盘的垃圾回收方法,其特征在于,所述确定源block和目的block,包括:
从存满数据的block中确定源block,并从空闲block中确定目的block。
3.根据权利要求1所述的固态硬盘的垃圾回收方法,其特征在于,所述判断所有空闲block的总存储空间是否达到预设阈值,包括:
确定空闲block的数量;
根据所述空闲block的数量以及所述空闲block的存储空间判断总存储空间是否达到预设阈值。
4.根据权利要求1所述的固态硬盘的垃圾回收方法,其特征在于,每一个空闲block的存储空间相同,则所述判断所有空闲block的总存储空间是否达到预设阈值,包括:
判断所有空闲block的数量是否达到预设数量。
5.根据权利要求1所述的固态硬盘的垃圾回收方法,其特征在于,还包括:
在所述擦除所述源block,成为空闲block后,以及重新选取一个目的block后,更新空闲block的数量。
6.一种固态硬盘的垃圾回收装置,其特征在于,包括:
block确定模块,用于确定源block和目的block;
垃圾回收模块,用于执行垃圾回收流程,所述垃圾回收流程包括:将所述源block中的有效数据复制到所述目的block,待所述源block中的有效数据复制完毕后,擦除所述源block,成为空闲block;
空间判断模块,用于在所述执行垃圾回收流程期间,在每次目的block存满数据时,才判断所有空闲block的总存储空间是否达到预设阈值;
回收终止模块,用于在所述空间判断模块的判断结果为是时,停止执行垃圾回收流程;
所述block确定模块还用于在所述垃圾回收模块擦除所述源block,成为空闲block后,重新确定源block,并在所述空间判断模块的判断结果为否时,重新选取一个目的block。
7.根据权利要求6所述的固态硬盘的垃圾回收装置,其特征在于,所述block确定模块具体用于:
从存满数据的block中确定源block,并从空闲block中确定目的block。
8.根据权利要求6所述的固态硬盘的垃圾回收装置,其特征在于,所述空间判断模块具体用于:
用于在所述执行垃圾回收流程期间,每一次目的block存满数据后,确定空闲block的数量,并根据所述空闲block的数量以及所述空闲block的存储空间判断总存储空间是否达到预设阈值。
9.根据权利要求6所述的固态硬盘的垃圾回收装置,其特征在于,每一个空闲block的存储空间相同,则所述空间判断模块具体用于:
用于在所述执行垃圾回收流程期间,每一次目的block存满数据后,判断所有空闲block的数量是否达到预设数量。
10.根据权利要求6所述的固态硬盘的垃圾回收装置,其特征在于,还包括:
数量更新模块,用于在所述垃圾回收模块在擦除所述源block,成为空闲block后,以及所述block确定模块重新选取一个目的block后,更新空闲block的数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810550307.7A CN108763102B (zh) | 2018-05-31 | 2018-05-31 | 一种固态硬盘的垃圾回收方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810550307.7A CN108763102B (zh) | 2018-05-31 | 2018-05-31 | 一种固态硬盘的垃圾回收方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108763102A CN108763102A (zh) | 2018-11-06 |
CN108763102B true CN108763102B (zh) | 2021-10-29 |
Family
ID=64001489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810550307.7A Active CN108763102B (zh) | 2018-05-31 | 2018-05-31 | 一种固态硬盘的垃圾回收方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108763102B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110362500B (zh) * | 2019-06-03 | 2023-06-20 | 深圳市金泰克半导体有限公司 | 一种固态硬盘垃圾回收方法、装置、固态硬盘和存储介质 |
CN110543284A (zh) * | 2019-09-05 | 2019-12-06 | 北京兆易创新科技股份有限公司 | 存储块的垃圾回收方法及装置、电子设备和存储介质 |
CN112052193B (zh) * | 2020-09-28 | 2023-04-07 | 成都佰维存储科技有限公司 | 一种垃圾回收方法、装置、可读存储介质及电子设备 |
CN112445428B (zh) * | 2020-10-23 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种硬盘主从垃圾回收方法及装置 |
CN113703677B (zh) * | 2021-08-20 | 2023-08-04 | 苏州浪潮智能科技有限公司 | 一种固态硬盘open block处理方法、装置及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744614A (zh) * | 2013-12-17 | 2014-04-23 | 记忆科技(深圳)有限公司 | 固态硬盘访问的方法及其固态硬盘 |
CN104572478A (zh) * | 2013-10-14 | 2015-04-29 | 联想(北京)有限公司 | 数据存取方法和数据存取装置 |
US9652382B1 (en) * | 2014-09-04 | 2017-05-16 | Sk Hynix Memory Solutions Inc. | Look-ahead garbage collection for NAND flash based storage |
CN106681935A (zh) * | 2016-12-29 | 2017-05-17 | 郑州云海信息技术有限公司 | 一种固态硬盘垃圾回收方法 |
CN106775479A (zh) * | 2016-12-21 | 2017-05-31 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器储存装置及存储器控制电路单元 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170123666A1 (en) * | 2015-10-30 | 2017-05-04 | Sandisk Technologies Inc. | System and method for managing maintenance scheduling in a non-volatile memory |
US9910773B2 (en) * | 2016-03-29 | 2018-03-06 | Sandisk Technologies Llc | Method and system for compacting data in non-volatile memory |
-
2018
- 2018-05-31 CN CN201810550307.7A patent/CN108763102B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572478A (zh) * | 2013-10-14 | 2015-04-29 | 联想(北京)有限公司 | 数据存取方法和数据存取装置 |
CN103744614A (zh) * | 2013-12-17 | 2014-04-23 | 记忆科技(深圳)有限公司 | 固态硬盘访问的方法及其固态硬盘 |
US9652382B1 (en) * | 2014-09-04 | 2017-05-16 | Sk Hynix Memory Solutions Inc. | Look-ahead garbage collection for NAND flash based storage |
CN106775479A (zh) * | 2016-12-21 | 2017-05-31 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器储存装置及存储器控制电路单元 |
CN106681935A (zh) * | 2016-12-29 | 2017-05-17 | 郑州云海信息技术有限公司 | 一种固态硬盘垃圾回收方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108763102A (zh) | 2018-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108763102B (zh) | 一种固态硬盘的垃圾回收方法及装置 | |
TWI489373B (zh) | 資料儲存裝置和快閃記憶體之區塊管理方法 | |
US20220413706A1 (en) | Data Storage Method, Apparatus and Storage System | |
KR101447188B1 (ko) | 플래시 메모리에 최적화된 입출력 제어 방법 및 장치 | |
CN113282522A (zh) | 数据储存装置以及其操作方法 | |
JP2005222550A (ja) | フラッシュメモリのリマッピング方法 | |
JP4227106B2 (ja) | フラッシュメモリのデータ復旧装置及び方法 | |
CN107491272B (zh) | 一种数据迁移的方法、装置、设备及存储介质 | |
CN111159059B (zh) | 一种垃圾回收方法、装置及非易失性的存储设备 | |
TWI608350B (zh) | 儲存裝置及其控制單元、可用於儲存裝置的資料搬移方 法 | |
JP5183662B2 (ja) | メモリ制御装置及びメモリ制御方法 | |
CN115129262A (zh) | 一种固态硬盘垃圾回收方法、装置、设备及介质 | |
CN117033268B (zh) | 一种ssd控制器、数据处理方法、设备及存储介质 | |
CN105955669A (zh) | 一种提升固态硬盘写性能的方法 | |
KR100631765B1 (ko) | 플래시 메모리의 데이터 처리 장치 및 방법 | |
JP2003058417A (ja) | 記憶装置 | |
CN111124307B (zh) | 一种数据下刷方法、装置、设备及可读存储介质 | |
CN111078137B (zh) | 清理存储空间的方法 | |
JP5452735B2 (ja) | メモリコントローラ及びメモリアクセス方法 | |
CN114185849A (zh) | 文件操作方法、文件操作系统、电子设备及存储介质 | |
CN112765048B (zh) | 一种固态硬盘垃圾回收方法、系统、电子设备及存储介质 | |
CN107346288B (zh) | 一种数据写入方法及装置 | |
CN111897489A (zh) | 数据写入方法、装置、设备及计算机可读存储介质 | |
CN107273217B (zh) | 一种信息显示方法、装置及终端设备 | |
CN115858407B (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 |