CN110674056B - 一种垃圾回收方法及装置 - Google Patents

一种垃圾回收方法及装置 Download PDF

Info

Publication number
CN110674056B
CN110674056B CN201910845538.5A CN201910845538A CN110674056B CN 110674056 B CN110674056 B CN 110674056B CN 201910845538 A CN201910845538 A CN 201910845538A CN 110674056 B CN110674056 B CN 110674056B
Authority
CN
China
Prior art keywords
data block
target data
sector
logical address
cache space
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
Application number
CN201910845538.5A
Other languages
English (en)
Other versions
CN110674056A (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.)
New H3C Big Data Technologies Co Ltd
Original Assignee
New H3C Big Data 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 New H3C Big Data Technologies Co Ltd filed Critical New H3C Big Data Technologies Co Ltd
Priority to CN201910845538.5A priority Critical patent/CN110674056B/zh
Publication of CN110674056A publication Critical patent/CN110674056A/zh
Application granted granted Critical
Publication of CN110674056B publication Critical patent/CN110674056B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

本发明提供一种垃圾回收方法及装置,所述方法包括:当对目标数据块进行数据写入时,将写入数据的扇区的逻辑地址记录到预设缓存空间中;当确定所述预设缓存空间中记录的逻辑地址满足预设条件时,将所述预设缓存空间中记录的逻辑地址写入所述目标数据块的指定扇区;当对所述目标数据块进行垃圾回收时,基于所述目标数据块的指定扇区中存储的逻辑地址和记录的最新的逻辑地址与物理地址的映射关系表,确定所述目标数据块中各扇区的数据是否为有效数据,并基于所确定的结果对所述目标数据块进行垃圾回收。应用本发明实施例可以节省存储空间,提高垃圾回收效率。

Description

一种垃圾回收方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种垃圾回收方法及装置。
背景技术
固态硬盘使用了固态的闪存介质取代传统的磁介质。闪存介质从结构上来说是一种高集成度,超大容量且非易失性的存储介质,是随着集成电路的发展形成的一个新兴的技术行业,它与上一代的磁介质相比,在读写速度、读写延迟、抗震安全性、功耗等方面均提高了一个等级。
在闪存介质的同一数据单元中更新数据的代价是很大的。一方面,要先擦去原先的数据才能写入新数据,写入效率低;另一方面,数据擦除会消耗闪存介质的寿命,因此,闪存介质使用异地更新的方式进行数据更新。
异地更新是指在写入新数据时,不在原先的数据单元中直接写入,而是把原先的数据有效位设置为无效,并在一个新的数据单元中写入新的数据。随着数据的不断写入,异地更新的不断进行,空闲的新数据块总量越来越少,此时,必须要有一种机制来保证在需要写数据时要有空闲数据单元存在,这种机制称为垃圾回收。
垃圾回收是指将那些已经存放着数据,但是所存的数据中无效数据较多的数据单元回收再利用的过程。垃圾回收过程中涉及如何启动和如何控制这个循环回收利用的方法和算法,以保证闪存介质的稳定性和寿命最大化。
目前,在对某个数据块进行垃圾回收时,通过以下方式确定该数据块中哪些扇区无效,哪些扇区有效:
在写某个数据块的时候,将该数据块中每个扇区的逻辑地址到物理地址的映射关系(可以称为正向映射关系)保存到一块缓存空间中,该正向映射关系标识逻辑地址对应的实际存放数据的物理地址。在一个数据块写完后,将缓存空间中与该数据块对应的正向映射关系写到硬盘中。当对某个数据块进行垃圾回收时,先读取该数据块对应的正向映射关系,然后将该正向映射关系与硬盘中最新的映射关系表(该最新的映射关系表记录着最新的逻辑地址与物理地址的对应关系)进行比对,对于该数据块对应的正向映射关系中的任一逻辑地址与物理地址的映射关系,若在最新的映射关系表中存在相同的映射关系,则确定对应扇区的数据是有效的,垃圾回收的过程中需要对该扇区中的数据进行搬迁;否则,确定对应扇区的数据是无效的,垃圾回收的过程中不需要对该扇区中的数据进行搬迁。
然而,上述垃圾回收实现方案中,需要专门的存储空间来存储正向映射关系(包括各扇区的逻辑地址到物理地址的映射关系),且进行垃圾回收时,需要先根据自定义的逻辑地址找到上述正向映射关系的存储位置,然后进行正向映射关系的读取,降低了垃圾回收的效率。
发明内容
本发明提供一种垃圾回收方法及装置,以解决现有垃圾回收方案中存在的存储空间浪费和垃圾回收效率低的问题。
根据本发明的第一方面,提供一种垃圾回收方法,包括:
当对目标数据块进行数据写入时,将写入数据的扇区的逻辑地址记录到预设缓存空间中;
当确定满足预设条件时,将所述预设缓存空间中记录的逻辑地址写入所述目标数据块的指定扇区;
当对所述目标数据块进行垃圾回收时,基于所述目标数据块的指定扇区中存储的逻辑地址和记录的最新的逻辑地址与物理地址的映射关系表,确定所述目标数据块中各扇区的数据是否为有效数据,并基于所确定的结果对所述目标数据块进行垃圾回收。
根据本发明的第二方面,提供一种垃圾回收装置,包括:写入单元、记录单元、确定单元以及垃圾回收单元;其中:
所述记录单元,用于当所述写入单元对目标数据块进行数据写入时,将写入数据的扇区的逻辑地址记录到预设缓存空间中;
所述写入单元,用于当所述确定单元确定满足预设条件时,将所述预设缓存空间中记录的逻辑地址写入所述目标数据块的指定扇区;
所述确定单元,用于当所述垃圾回收单元对所述目标数据块进行垃圾回收时,基于所述目标数据块的指定扇区中存储的逻辑地址和记录的最新的逻辑地址与物理地址的映射关系表,确定所述目标数据块中各扇区的数据是否为有效数据;
所述垃圾回收单元,用于基于所述确定单元确定的结果对所述目标数据块进行垃圾回收。
应用本发明公开的技术方案,当对目标数据块进行数据写入时,将写入数据的扇区的逻辑地址记录到预设缓存空间中;当确定满足预设条件时,将预设缓存空间中记录的逻辑地址写入目标数据块的指定扇区,进而,当对目标数据块进行垃圾回收时,基于目标数据块的指定扇区中存储的逻辑地址和记录的最新的逻辑地址与物理地址的映射关系表,确定目标数据块中各扇区的数据是否为有效数据,并基于所确定的结果对目标数据块进行垃圾回收,通过将数据块的各扇区的逻辑地址存储到本地指定扇区,与将扇区的逻辑地址到物理地址的映射关系存储到其他数据块中的实现相比,节省了存储空间,提高了垃圾回收效率。
附图说明
图1是本发明实施例提供的一种垃圾回收方法的流程示意图;
图2是本发明实施例提供的一种垃圾回收装置的结构示意图;
图3是本发明实施例提供的另一种垃圾回收装置的结构示意图;
图4是本发明实施例提供的另一种垃圾回收装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
请参见图1,为本发明实施例提供的一种垃圾回收方法的流程示意图,其中,该垃圾回收方法可以应用于以SSD(Solid State Disk,固态硬盘)为存储介质的网络设备,如图1所示,该垃圾回收方法可以包括以下步骤:
步骤101、当对目标数据块进行数据写入时,将写入数据的扇区的逻辑地址记录到预设缓存空间中。
本发明实施例中,目标数据块并不特指某一固定的数据块,而是可以指代网络设备的存储介质中的任一数据块,本发明实施例后续不再复述。
本发明实施例中,当对目标数据库进行数据写入时,可以将写入数据的扇区的逻辑地址记录到预设缓存空间中。
在一个示例中,当申请目标数据块成功时,可以构建目标数据块对应的缓存空间,即为目标数据块申请一段缓存空间。
当对目标数据块进行数据写入时,对于目标数据块中的任一扇区,当该扇区写入数据时,将该扇区的逻辑地址记录到目标数据块对应的缓存空间中。
步骤102、当确定该预设缓存空间中记录的逻辑地址满足预设条件时,将预设缓存空间中记录的逻辑地址写入目标数据块的指定扇区。
本发明实施例中,为了节省存储空间,并提高垃圾回收的效率,不再存储数据块中各扇区的逻辑地址到物理地址的映射关系,而是将数据块中各扇区的逻辑地址存储到该数据块的指定扇区中,在后续垃圾回收过程中,基于数据块中存储的各扇区的逻辑地址,确定各扇区的逻辑地址到物理地址的映射关系。
相应地,在本发明实施例中,当确定预设缓存空间中记录的逻辑地址满足预设条件时,可以将预设缓存空间中记录的逻辑地址写入目标数据块的指定扇区。
在一个示例中,上述当确定预设缓存空间中记录的逻辑地址满足预设条件时,将预设缓存空间中记录的逻辑地址写入目标数据块的指定扇区,可以包括:
当目标数据块中除指定扇区之外的其余扇区的逻辑地址均记录到预设缓存空间中时,将预设缓存空间中记录的逻辑地址写入目标数据块的指定扇区。
在该示例中,可以在目标数据块中除指定扇区之外的其余扇区的逻辑地址均记录到预设缓存空间中,即除指定扇区之外的其余扇区均写入数据时,确定预设缓存空间中记录的逻辑地址满足预设条件,此时,将预设缓存空间中记录的逻辑地址写入目标数据块的指定扇区。
示例性的,将预设缓存空间中记录的逻辑地址写入目标数据块的指定扇区时,可以按照约定的顺序,将各扇区的逻辑地址写入目标数据块的指定扇区,如按照各扇区的序号,依次将各扇区的逻辑地址写入目标数据块的指定扇区。
需要说明的是,在本发明实施例中,上述预设缓存空间中记录的逻辑地址满足预设条件并不限于目标数据块中除指定扇区之外的其余扇区的逻辑地址均记录到预设缓存空间,其还可以包括其他条件,如目标数据块中写入数据的扇区达到预设数量,即记录到预设缓存空间中的逻辑地址的数量达到预设数量,或,逻辑地址记录在预设缓存空间中的时间达到预设时间阈值等,其具体实现在此不做赘述。
步骤103、当对目标数据块进行垃圾回收时,基于目标数据块的指定扇区中存储的逻辑地址和记录的最新的逻辑地址与物理地址的映射关系表,确定目标数据块中各扇区的数据是否有效数据,并基于所确定的结果对目标数据块进行垃圾回收。
本发明实施例中,可以维护一个用于确定数据块中各扇区的数据是否为有效数据的映射关系表,该映射关系表中记录有最新的逻辑地址与物理地址的映射关系。
初始时,该映射关系表为空,当任一数据块的任一扇区中写入数据时,可以根据该扇区对应的逻辑地址与物理地址的映射关系,查询该映射关系表,若该映射关系表中不存在逻辑地址相同的映射关系,则将该扇区对应的逻辑地址与物理地址的映射关系记录到该映射关系表;若该映射关系表中存在逻辑地址相同的映射关系(即发生了数据更新),则用该扇区对应的逻辑地址与物理地址的映射关系覆盖该映射关系表中记录的该逻辑地址相同的映射关系。
其中,为了保证该映射关系表的安全性,避免数据丢失,该映射关系表可以保存在SLC(Single-Level Cell,单层单元)区域。
本发明实施例中,当对目标数据块进行垃圾回收时,不需要再读取各扇区的逻辑地址到物理地址的映射关系,而是从目标数据块的指定扇区中读取各扇区的逻辑地址,并基于各扇区的逻辑地址和记录的最新的逻辑地址与物理地址的映射关系表,确定目标数据块中各扇区的数据是否为有效数据。
在一个示例中,上述基于目标数据块的指定扇区中存储的逻辑地址和记录的最新的逻辑地址与物理地址的映射关系表,确定目标数据块中各扇区的数据是否为有效数据,包括:
读取目标数据块的指定扇区中存储的逻辑地址;
基于目标数据块的指定扇区中存储的逻辑地址,确定目标数据块中各扇区的逻辑地址到物理地址的映射关系;
基于目标数据块中各扇区的逻辑地址到物理地址的映射关系,以及上述映射关系表,确定目标数据块中各扇区的数据是否为有效数据。
在该示例中,当需要对目标数据块进行垃圾回收时,可以读取目标数据块的指定扇区中存储的逻辑地址。
示例性的,该目标数据块的指定扇区可以包括目标数据块的最后的预设数量(可以根据SSD的颗粒规格以及所定义的数据结构设置,如3个)的扇区。
应该认识到,在本发明实施例中,目标数据块的指定扇区并不限于目标数据块的最后的预设数量的扇区,其也可以是目标数据块的其他位置的预设数量的扇区,如目标数据块的最前的预设数量的扇区,或,目标数据块的中间的预设数量的扇区等,其具体实现在此不做限定。
在该示例中,从目标数据块的指定扇区中读取到目标数据块的各扇区的逻辑地址之后,可以基于各扇区的逻辑地址,以及各扇区的物理地址,确定各扇区的逻辑地址到物理地址的映射关系。
举例来说,以各扇区的逻辑地址按照各扇区的序号顺序存储为例,当从目标数据块的指定扇区读取到了目标数据块的各扇区的逻辑地址时,可以根据读取到的逻辑地址中的第1个逻辑地址,以及第1个扇区的物理地址,确定第1个扇区的逻辑地址到物理地址的映射关系;根据读取到的逻辑地址中的第2个逻辑地址,以及第2个扇区的物理地址,确定第2个扇区的逻辑地址到物理地址的映射关系,以此类推,可以确定目标数据块中各扇区的逻辑地址到物理地址的映射关系。
需要说明的是,在本发明实施例中,当目标数据块的指定扇区中按照其他约定顺序存储各扇区的逻辑地址时,在对该目标数据块进行垃圾回收时,也可以根据该其他约定顺序,基于读取到的各扇区的逻辑地址,确定目标数据块的各扇区的逻辑地址到物理地址的映射关系,其具体实现在此不做赘述。
本发明实施例中,确定了目标数据块中各扇区的逻辑地址到物理地址的映射关系之后,可以基于目标数据块中各扇区的逻辑地址到物理地址的映射关系,查询上述映射关系表(该映射关系表中记录了最新的逻辑地址到物理地址的映射关系),以确定目标数据块中各扇区的数据是否为有效数据,并基于确定的结果进行垃圾回收。
示例性的,对于目标数据块中任一扇区的逻辑地址到物理地址的映射关系,可以在最新的映射关系表中查询是否存在相同的映射关系,若存在,则表明该扇区中的数据为有效数据;否则,确定该扇区中的数据发生过更新,即该扇区中的数据为无效数据,从而,在对该目标数据块进行垃圾回收时,对数据为有效数据的扇区中的数据进行搬迁,而数据无效数据的扇区中的数据不需要搬迁。
需要说明的是,在本发明实施例中,当对目标数据块进行数据读取(包括读取用户数据或指定扇区中的逻辑地址)时,发生数据读取失败时,可以先不对该目标数据块进行垃圾回收,例如,将该目标数据块设置为Dead Block(死块)。在后续过程中,可以根据预设策略再次尝试对该目标数据块进行数据读取,直至数据读取成功时,按照上述实施例中描述的方式进行垃圾回收或读取次数达到预设上限。
可见,在图1所示方法流程中,通过在目标数据块的指定扇区中存储目标数据块的各扇区的逻辑地址,当对目标数据块进行垃圾回收时,从目标数据块的指定扇区中读取目标数据块的各扇区的逻辑地址,基于目标数据块的各扇区的逻辑地址和记录的最新的逻辑地址与物理地址的映射关系表,确定目标数据块的各扇区的逻辑地址到物理地址的映射关系,并基于该映射关系确定目标数据块中各扇区的数据为有效数据或无效数据,基于确定的结果对目标数据块进行垃圾回收,与存储扇区的逻辑地址到物理地址的映射关系的实现方案相比,节省了存储空间;在进行垃圾回收时,不需要先根据自定义的逻辑地址查找存储逻辑地址到物理地址的映射关系的存储位置,提高了垃圾回收的效率。
此外,由于目标数据块的各扇区的逻辑地址存储在本地指定扇区中,不再占用其他数据块的存储空间,当该目标数据块由于读取失败等原因无法进行处理时,目标数据块的各扇区的逻辑地址到物理地址的映射关系不需要再占用其他数据块中的空间,也不需要跟随其他数据块的垃圾回收而不断被搬迁,减少了对存储资源的占用。
为了使本领域技术人员更好地理解本发明实施例提供的技术方案,下面结合具体实例对本发明实施例提供的技术方案进行说明。
在该实施例中,假设1个物理块包括2304个扇区(扇区号依次为0~2303),1个扇区的大小为4096字节,1个扇区的逻辑地址为4字节,因此,将数据块的后3个扇区(扇区号2301、2302、2303)确定为指定扇区,用于存储该数据块的各扇区的逻辑地址。
在该实施例中,用于进行块管理的CPU(Center Process Unit,中央处理单元),申请数据块成功时,可以构造出一个缓存空间,用于存放该数据块中各扇区的逻辑地址(大小为2304*4=9216字节)。
用于负责数据下发的CPU,由对扇区0~2303进行轮询,更新为对扇区0~2300进行轮询,扇区2301、2302、2303这3个扇区不再用于存放用户数据;在扇区0~2300均写入数据后,用于负责数据下发的CPU创建一个定向写操作:将上述BUF分成三个扇区的写命令,加入到Cache(高速缓存空间)命令队列中,等待写入,即往指定的物理位置(扇区2301~2303)写该BUF中的数据,数据写完后释放相应的BUF空间。
当对数据块进行垃圾回收时,可以读取数据块的扇区2301~2303中存储的各扇区的逻辑地址,并基于各扇区的逻辑地址确定各扇区的逻辑地址到物理地址的映射关系,根据各扇区的逻辑地址到物理地址的映射关系,查询记录的最新的逻辑地址与物理地址的映射关系表,以确定各扇区中的数据为有效数据或无效数据。
对于数据为有效数据的扇区,在进行垃圾回收时,对该扇区中的数据进行搬迁;
对于数据为无效数据的扇区,在进行垃圾回收时,不对该扇区中的数据进行处理。
通过以上描述可以看出,在本发明实施例提供的技术方案中,当对目标数据块进行数据写入时,将写入数据的扇区的逻辑地址记录到预设缓存空间中;当确定预设缓存空间中记录的逻辑地址满足预设条件时,将预设缓存空间中记录的逻辑地址写入目标数据块的指定扇区,进而,当对目标数据块进行垃圾回收时,基于目标数据块的指定扇区中存储的逻辑地址和记录的最新的逻辑地址与物理地址的映射关系表,确定目标数据块中各扇区的数据是否为有效数据,并基于所确定的结果对目标数据块进行垃圾回收,通过将数据块的各扇区的逻辑地址存储到本地指定扇区,与将扇区的逻辑地址到物理地址的映射关系存储到其他数据块中的实现相比,节省了存储空间,提高了垃圾回收效率。
请参见图2,为本发明实施例提供一种垃圾回收装置的结构示意图,如图2所示,该垃圾回收装置可以包括:写入单元210、记录单元220、确定单元230以及垃圾回收单元240;其中:
所述记录单元220,用于当所述写入单元210对目标数据块进行数据写入时,将写入数据的扇区的逻辑地址记录到预设缓存空间中;
所述写入单元210,用于当所述确定单元230确定所述预设缓存空间中记录的逻辑地址满足预设条件时,将所述预设缓存空间中记录的逻辑地址写入所述目标数据块的指定扇区;
所述确定单元230,用于当所述垃圾回收单元240对所述目标数据块进行垃圾回收时,基于所述目标数据块的指定扇区中存储的逻辑地址和记录的最新的逻辑地址与物理地址的映射关系表,确定所述目标数据块中各扇区的数据是否为有效数据;
所述垃圾回收单元240,用于基于所述确定单元230确定的结果对所述目标数据块进行垃圾回收。
请一并参见图3,为本发明实施例提供的另一种垃圾回收装置的结构示意图,如图3所示,在图2所示垃圾回收装置的基础上,图3所示的垃圾回收装置还包括:申请单元250和构建单元260;其中:
所述构建单元260,用于当所述申请单元250申请所述目标数据块成功时,构建所述目标数据块对应的缓存空间;
所述记录单元220,具体用于对于所述目标数据块中的任一扇区,当该扇区写入数据时,将该扇区的逻辑地址记录到所述目标数据块对应的缓存空间中。
在可选实施例中,所述写入单元210,具体用于当所述目标数据块中除所述指定扇区之外的其余扇区的逻辑地址均记录到所述预设缓存空间中时,将所述预设缓存空间中记录的逻辑地址写入所述目标数据块的指定扇区。
请一并参见图4,为本发明实施例提供的另一种垃圾回收装置的结构示意图,如图4所示,在图2所示垃圾回收装置的基础上,图4所示的垃圾回收装置还包括:读取单元270;其中:
所述读取单元270,用于当所述垃圾回收单元240对所述目标数据块进行垃圾回收时,读取所述目标数据块的指定扇区中存储的逻辑地址;
所述确定单元230,具体用于基于所述目标数据块的指定扇区中存储的逻辑地址,确定所述目标数据块中各扇区的逻辑地址到物理地址的映射关系;
所述确定单元230,还具体用于基于所述目标数据块中各扇区的逻辑地址到物理地址的映射关系,以及所述映射关系表,确定所述目标数据块中各扇区的数据是否为有效数据。
在可选实施例中,所述目标数据块的指定扇区包括所述目标数据块的最后的预设数量的扇区。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
由上述实施例可见,当对目标数据块进行数据写入时,将写入数据的扇区的逻辑地址记录到预设缓存空间中;当确定预设缓存空间中记录的逻辑地址满足预设条件时,将预设缓存空间中记录的逻辑地址写入目标数据块的指定扇区,进而,当对目标数据块进行垃圾回收时,基于目标数据块的指定扇区中存储的逻辑地址和记录的最新的逻辑地址与物理地址的映射关系表,确定目标数据块中各扇区的数据是否为有效数据,并基于所确定的结果对目标数据块进行垃圾回收,通过将数据块的各扇区的逻辑地址存储到本地指定扇区,与将扇区的逻辑地址到物理地址的映射关系存储到其他数据块中的实现相比,节省了存储空间,提高了垃圾回收效率。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (8)

1.一种垃圾回收方法,其特征在于,包括:
当对目标数据块进行数据写入时,将写入数据的扇区的逻辑地址记录到预设缓存空间中;
当确定所述预设缓存空间中记录的逻辑地址满足预设条件时,将所述预设缓存空间中记录的逻辑地址写入所述目标数据块的指定扇区;
当对所述目标数据块进行垃圾回收时,基于所述目标数据块的指定扇区中存储的逻辑地址和记录的最新的逻辑地址与物理地址的映射关系表,确定所述目标数据块中各扇区的数据是否为有效数据,并基于所确定的结果对所述目标数据块进行垃圾回收;
其中,所述基于所述目标数据块的指定扇区中存储的逻辑地址和记录的最新的逻辑地址与物理地址的映射关系表,确定所述目标数据块中各扇区的数据是否为有效数据,包括:
读取所述目标数据块的指定扇区中存储的逻辑地址;
基于所述目标数据块的指定扇区中存储的逻辑地址,确定所述目标数据块中各扇区的逻辑地址到物理地址的映射关系;
基于所述目标数据块中各扇区的逻辑地址到物理地址的映射关系,以及所述映射关系表,确定所述目标数据块中各扇区的数据是否为有效数据。
2.根据权利要求1所述的方法,其特征在于,所述当对目标数据块进行写入时,将写入数据的扇区的逻辑地址记录到预设缓存空间中之前,还包括:
当申请所述目标数据块成功时,构建所述目标数据块对应的缓存空间;
所述当对目标数据块进行写入时,将写入数据的扇区的逻辑地址记录到预设缓存空间中,包括:
对于所述目标数据块中的任一扇区,当该扇区写入数据时,将该扇区的逻辑地址记录到所述目标数据块对应的缓存空间中。
3.根据权利要求1所述的方法,其特征在于,所述当确定预设缓存空间中记录的逻辑地址满足预设条件时,将所述预设缓存空间中记录的逻辑地址写入所述目标数据块的指定扇区,包括:
当所述目标数据块中除所述指定扇区之外的其余扇区的逻辑地址均记录到所述预设缓存空间中时,将所述预设缓存空间中记录的逻辑地址写入所述目标数据块的指定扇区。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述目标数据块的指定扇区包括所述目标数据块的最后的预设数量的扇区。
5.一种垃圾回收装置,其特征在于,包括:写入单元、记录单元、确定单元以及垃圾回收单元;其中:
所述记录单元,用于当所述写入单元对目标数据块进行数据写入时,将写入数据的扇区的逻辑地址记录到预设缓存空间中;
所述写入单元,用于当所述确定单元确定所述预设缓存空间中记录的逻辑地址满足预设条件时,将所述预设缓存空间中记录的逻辑地址写入所述目标数据块的指定扇区;
所述确定单元,用于当所述垃圾回收单元对所述目标数据块进行垃圾回收时,基于所述目标数据块的指定扇区中存储的逻辑地址和记录的最新的逻辑地址与物理地址的映射关系表,确定所述目标数据块中各扇区的数据是否为有效数据;
所述垃圾回收单元,用于基于所述确定单元确定的结果对所述目标数据块进行垃圾回收;
其中,所述装置还包括:读取单元;其中:
所述读取单元,用于当所述垃圾回收单元对所述目标数据块进行垃圾回收时,读取所述目标数据块的指定扇区中存储的逻辑地址;
所述确定单元,具体用于基于所述目标数据块的指定扇区中存储的逻辑地址,确定所述目标数据块中各扇区的逻辑地址到物理地址的映射关系;
所述确定单元,还具体用于基于所述目标数据块中各扇区的逻辑地址到物理地址的映射关系,以及所述映射关系表,确定所述目标数据块中各扇区的数据是否为有效数据。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:申请单元和构建单元;其中:
所述构建单元,用于当所述申请单元申请所述目标数据块成功时,构建所述目标数据块对应的缓存空间;
所述记录单元,具体用于对于所述目标数据块中的任一扇区,当该扇区写入数据时,将该扇区的逻辑地址记录到所述目标数据块对应的缓存空间中。
7.根据权利要求5所述的装置,其特征在于,
所述写入单元,具体用于当所述目标数据块中除所述指定扇区之外的其余扇区的逻辑地址均记录到所述预设缓存空间中时,将所述预设缓存空间中记录的逻辑地址写入所述目标数据块的指定扇区。
8.根据权利要求5-7任一项所述的装置,其特征在于,所述目标数据块的指定扇区包括所述目标数据块的最后的预设数量的扇区。
CN201910845538.5A 2019-09-02 2019-09-02 一种垃圾回收方法及装置 Active CN110674056B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910845538.5A CN110674056B (zh) 2019-09-02 2019-09-02 一种垃圾回收方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910845538.5A CN110674056B (zh) 2019-09-02 2019-09-02 一种垃圾回收方法及装置

Publications (2)

Publication Number Publication Date
CN110674056A CN110674056A (zh) 2020-01-10
CN110674056B true CN110674056B (zh) 2021-11-23

Family

ID=69076151

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910845538.5A Active CN110674056B (zh) 2019-09-02 2019-09-02 一种垃圾回收方法及装置

Country Status (1)

Country Link
CN (1) CN110674056B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111930301A (zh) * 2020-06-29 2020-11-13 深圳佰维存储科技股份有限公司 垃圾回收优化方法、装置、存储介质及电子设备
CN112988618B (zh) * 2021-02-20 2023-02-28 山东英信计算机技术有限公司 一种固态硬盘的垃圾回收方法、装置、设备及存储介质
CN113805805B (zh) * 2021-05-06 2023-10-13 北京奥星贝斯科技有限公司 缓存内存块的淘汰方法、装置及电子设备
CN116009761A (zh) * 2021-10-21 2023-04-25 华为技术有限公司 一种数据写入方法以及相关设备
CN114579051B (zh) * 2022-02-25 2024-04-23 阿里巴巴(中国)有限公司 识别硬盘读模式的方法以及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4985829A (en) * 1984-07-31 1991-01-15 Texas Instruments Incorporated Cache hierarchy design for use in a memory management unit
CN103577338A (zh) * 2013-11-14 2014-02-12 华为技术有限公司 一种回收垃圾数据的方法及存储设备
CN105630705A (zh) * 2015-06-10 2016-06-01 上海磁宇信息科技有限公司 数据存储装置及使用块替换表的读写方法
CN106776376A (zh) * 2015-11-24 2017-05-31 群联电子股份有限公司 缓冲存储器管理方法、存储器控制电路单元及存储装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9405672B2 (en) * 2013-06-25 2016-08-02 Seagate Technology Llc Map recycling acceleration
US9817588B2 (en) * 2015-04-10 2017-11-14 Macronix International Co., Ltd. Memory device and operating method of same

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4985829A (en) * 1984-07-31 1991-01-15 Texas Instruments Incorporated Cache hierarchy design for use in a memory management unit
CN103577338A (zh) * 2013-11-14 2014-02-12 华为技术有限公司 一种回收垃圾数据的方法及存储设备
CN105630705A (zh) * 2015-06-10 2016-06-01 上海磁宇信息科技有限公司 数据存储装置及使用块替换表的读写方法
CN106776376A (zh) * 2015-11-24 2017-05-31 群联电子股份有限公司 缓冲存储器管理方法、存储器控制电路单元及存储装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于缓存映射项重用距离的闪存地址映射方法;周权彪 等;《计算机研究与发展》;20180531;第1065-1077页 *

Also Published As

Publication number Publication date
CN110674056A (zh) 2020-01-10

Similar Documents

Publication Publication Date Title
CN110674056B (zh) 一种垃圾回收方法及装置
US10871900B2 (en) Memory system and method of controlling memory system
US10891225B2 (en) Host- directed sanitization of memory
JP5413572B2 (ja) メモリストレージ装置及びその制御方法
KR100771519B1 (ko) 플래시 메모리를 포함한 메모리 시스템 및 그것의 머지방법
US7975095B2 (en) Device and method for using a flash memory as a hard disk cache
US7774540B2 (en) Storage system and method for opportunistic write-verify
US9923562B1 (en) Data storage device state detection on power loss
US9053007B2 (en) Memory system, controller, and method for controlling memory system
CN105718530B (zh) 文件存储系统及其文件存储控制方法
CN110955384B (zh) 数据储存装置以及非挥发式存储器控制方法
US20120317337A1 (en) Managing data placement on flash-based storage by use
US20070094445A1 (en) Method to enable fast disk caching and efficient operations on solid state disks
KR101678868B1 (ko) 플래시 주소 변환 장치 및 그 방법
US9176866B2 (en) Active recycling for solid state drive
KR20200068941A (ko) 메모리 시스템 내 저장된 데이터를 제어하는 방법 및 장치
CN106445401B (zh) 表格更新方法、存储器储存装置及存储器控制电路单元
CN106598493A (zh) 一种固态硬盘地址映射表管理方法
US20170017405A1 (en) Systems and methods for improving flash-oriented file system garbage collection
CN112130749A (zh) 数据储存装置以及非挥发式存储器控制方法
US9304906B2 (en) Memory system, controller and control method of memory
US9778862B2 (en) Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus
CN102160038A (zh) 管理非易失性磁盘高速缓存的方法和设备
US20200104384A1 (en) Systems and methods for continuous trim commands for memory systems
US20170017406A1 (en) Systems and methods for improving flash-oriented file system garbage collection

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