CN112306896B - 一种垃圾回收方法及装置 - Google Patents
一种垃圾回收方法及装置 Download PDFInfo
- Publication number
- CN112306896B CN112306896B CN201911209032.1A CN201911209032A CN112306896B CN 112306896 B CN112306896 B CN 112306896B CN 201911209032 A CN201911209032 A CN 201911209032A CN 112306896 B CN112306896 B CN 112306896B
- Authority
- CN
- China
- Prior art keywords
- storage space
- processing unit
- memory
- data
- garbage collection
- 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
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种垃圾回收方法及装置,在该方法中,将终端设备中文件系统的垃圾回收和存储器的垃圾回收进行合并,例如,可以通过文件系统中的垃圾回收机制,统一对存储在文件系统的部分逻辑区域中的数据和存储在存储器中与该部分逻辑区域对应的物理块中的数据进行垃圾回收处理,或者,通过存储器中的垃圾回收机制,统一对存储在文件系统的剩余逻辑区域中的数据和存储在存储器中剩余物理块中的数据进行垃圾回收处理,从而针对同一数据只会进行一次垃圾回收处理,可以避免文件系统和存储器同时进行垃圾回收时存在的重复搬移数据的情况,可以减少应用程序访问文件的时延。
Description
本申请要求在2019年07月31日提交中国专利局、申请号为201910719350.6、申请名称为“一种文件系统管理的方法”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机技术领域,尤其涉及一种垃圾回收方法及装置。
背景技术
在终端设备中,数据以文件的方式保存在终端设备的存储器上,并通过终端设备的文件系统对存储的文件进行管理。终端设备的文件系统接收到应用程序的文件访问请求后,会将该访问请求转化为对存储器中存储的数据的读写操作,然后通过块设备层以及设备驱动,下发到存储器中,从而实现文件访问。
目前,终端设备中采用的存储器为快闪存储器(flash memory),例如,与非(notand,NAND)闪存(flash)。由于快闪存储器采用异地更新方式写入数据,因此,为了对存储器友好,要求终端设备的文件系统也使用数据写入方式为异地更新方式的文件系统,例如,终端设备的文件系统可以为闪存友好文件系统(flash friendly file system,F2FS)。
采用异地更新方式写入数据会使得存储器或者文件系统中的存储空间逐渐减少,为了能够持续地将应用程序产生的数据写入到存储器中,文件系统和存储器都会进行垃圾回收处理。然而,文件系统和存储器都进行垃圾回收处理时,会使得应用程序的文件访问产生较大的延迟,甚至产生卡顿。
发明内容
本申请提供一种垃圾回收方法及装置,用以减少应用程序访问文件的时延。
第一方面,提供了一种垃圾回收方法,在该方法中,终端设备的处理器首先从该终端设备的存储器中获取用于指示第一单位处理单元的大小的第一信息,该第一单位处理单元为该存储器进行垃圾回收操作的单位处理单元,并根据该第一单位处理单元的大小,配置终端设备的文件系统进行垃圾回收操作所使用的第二单位处理单元的大小。然后,该处理器向该存储器发送地址配置指令,该地址配置指令中包括该文件系统所占用的块设备的逻辑地址,通过该地址配置指令用于指示存储器不用对与该逻辑地址对应的物理存储空间进行垃圾回收操作,最后,由处理器根据该第二单位处理单元的大小,对与该逻辑地址对应的逻辑存储空间进行垃圾回收操作。
在上述技术方案中,由处理器统一对逻辑存储空间和物理存储空间进行垃圾回收,也就是说,存储器不用再对该部分物理存储空间进行垃圾回收操作,从而可以省略存储器对该部分物理存储空间进行垃圾回收操作的过程,可以减少应用程序访问文件时的时延。
在一种可能的设计中,该第二单位处理单元的大小与所述第一单位处理单元的大小相同,或,所述第二单位处理单元的大小为所述第一单位处理单元的大小的整数倍。
在上述技术方案中,将文件系统进行垃圾回收操作的单位处理单元的大小与存储器进行垃圾回收操作的单位处理单元的大小进行统一,通常情况下,存储器进行垃圾回收操作的单位处理单元较大,从而相当于增加了文件系统进行垃圾回收操作的单位处理单元的大小,可以提高文件系统进行垃圾回收操作的效率。
在一种可能的设计中,所述文件系统包括主数据区和元数据区,所述主数据区用于存储数据,所述元数据用于存储数据的元数据,所述逻辑地址为所述主数据区对应的逻辑地址集合。
在上述技术方案中,文件系统的主数据区占用的存储空间较大,从而可以只针对文件系统的主数据区进行上述垃圾回收操作,可以提高垃圾回收操作的效率。
在一种可能的设计中,该处理器禁止与该逻辑地址对应的逻辑存储空间采用本地更新的方式写入数据。
也就是说,该逻辑地址对应的逻辑存储空间采用异地更新的方式写入数据,可以保证文件系统所占用的逻辑存储空间中存储的数据与存储器中存储的数据的一致性。
第二方面,提供一种垃圾回收方法,在该方法中,终端设备的存储器在接收数据后,将接收到的数据写入到目标存储空间中,该目标存储空间包括该终端设备的文件系统的元数据区对应的物理存储空间和/或该终端设备的非用户数据UDA分区对应的物理存储空间,该文件系统包括主数据区和该元数据区,该主数据区用于存储数据,该元数据用于存储数据的元数据。然后,该存储器则根据预设的垃圾回收策略以及预设的单位处理单元,对该目标存储空间进行垃圾回收操作。
在上述技术方案中,在存储器对该目的存储空间进行垃圾回收操作后,文件系统不用再对该其元数据分区对应的存储空间进行垃圾回收操作,从而可以省略文件系统对部分存储空间进行垃圾回收操作的过程,可以减少应用程序访问文件时的时延。
在一种可能的设计中,存储器建立逻辑存储空间的逻辑页与该目标存储空间的物理页之间的映射关系,该逻辑存储空间为与该元数据区和/或该非用户数据UDA分区对应的逻辑存储空间,然后,存储器可以根据该映射关系确定无效数据,若一个物理页中无效数据的数量大与阈值,则存储器对该物理页进行垃圾回收操作。
在本申请实施例中,不限制存储器确定无效数据的方式。
在一种可能的设计中,存储器以本地更新的方式,向该目标存储空间中写入数据。
第二方面,提供一种垃圾回收装置,该垃圾回收装置可以是终端设备,也可以是终端设备中的装置。该垃圾回收装置包括处理器,用于实现上述第一方面描述的方法。该垃圾回收装置还可以包括存储器,用于存储程序指令和数据。该存储器与该处理器耦合,该处理器可以调用并执行该存储器中存储的程序指令,用于实现上述第一方面描述的方法中的任意一种方法中。该垃圾回收装置还可以包括接口,该接口用于该垃圾回收装置与其它装置或模块进行通信。
在一种可能的设计中,该垃圾回收装置处理器和接口,其中:
所述处理器,用于从所述终端设备的存储器中获取第一信息,所述第一信息用于指示第一单位处理单元的大小,所述第一单位处理单元为所述存储器进行垃圾回收操作的单位处理单元;以及,根据所述第一单位处理单元的大小,配置第二单位处理单元的大小,所述第二单位处理单元为所述终端设备的文件系统进行垃圾回收操作所使用的单位处理单元;
所述接口,用于在所述处理器的控制下,向所述存储器发送地址配置指令,所述地址配置指令中包括所述文件系统所占用的块设备的逻辑地址,所述地址配置指令用于指示所述存储器不用对与所述逻辑地址对应的物理存储空间进行垃圾回收操作;
所述处理器,还用于根据所述第二单位处理单元的大小,对与所述逻辑地址对应的逻辑存储空间进行垃圾回收操作。
其中,对第二单位处理单元的大小的配置、逻辑地址以及数据写入方式的说明,与第一方面中相应的内容相似,在此不再赘述。
第三方面,提供一种垃圾回收装置,该垃圾回收装置可以是终端设备,也可以是终端设备中的装置。该垃圾回收装置包括处理器,用于实现上述第二方面描述的方法。该垃圾回收装置还可以包括存储器,用于存储程序指令和数据。该存储器与该处理器耦合,该处理器可以调用并执行该存储器中存储的程序指令,用于实现上述第二方面描述的方法中的任意一种方法中。该垃圾回收装置还可以包括接口,该接口用于该垃圾回收装置与其它装置或模块进行通信。
在一种可能的设计中,该垃圾回收装置处理器和接口,其中:
所述接口,用于接收数据;
所述处理器,用于将接收的数据写入到目标存储空间中,所述目标存储空间包括所述终端设备的文件系统的元数据区对应的物理存储空间和/或所述终端设备的非用户数据UDA分区对应的物理存储空间,所述文件系统包括主数据区和所述元数据区,所述主数据区用于存储数据,所述元数据用于存储数据的元数据;以及,
根据预设的垃圾回收策略以及预设的单位处理单元,对所述目标存储空间进行垃圾回收操作。
在一种可能的设计中,所述处理器还用于:
建立逻辑存储空间的逻辑页与所述目标存储空间的物理页之间的映射关系,所述逻辑存储空间为与所述元数据区和/或所述非用户数据UDA分区对应的逻辑存储空间;根据所述映射关系确定无效数据;以及,若一个物理页中无效数据的数量大与阈值,则所述存储器对所述物理页进行垃圾回收操作。
在一种可能的设计中,所述处理器以本地更新的方式,向所述目标存储空间中写入数据。
第四方面,提供一种垃圾回收装置,该垃圾回收装置可以是终端设备,也可以是终端设备中的装置,该垃圾回收装置可以包括处理模块和通信模块,这些模块可以执行上述第一方面任一种设计示例中的所执行的相应功能,具体的:
通信模块,用于从所述装置的存储器中获取第一信息,所述第一信息用于指示第一单位处理单元的大小,所述第一单位处理单元为所述存储器进行垃圾回收操作的单位处理单元;
处理模块,用于根据所述第一单位处理单元的大小,配置第二单位处理单元的大小,所述第二单位处理单元为所述装置的文件系统进行垃圾回收操作所使用的单位处理单元;
所述通信模块,还用于向所述存储器发送地址配置指令,所述地址配置指令中包括所述文件系统所占用的块设备的逻辑地址,所述地址配置指令用于指示所述存储器不用对与所述逻辑地址对应的物理存储空间进行垃圾回收操作;
所述处理模块,还用于根据所述第二单位处理单元的大小,对与所述逻辑地址对应的逻辑存储空间进行垃圾回收操作。
第五方面,提供一种垃圾回收装置,该垃圾回收装置可以是终端设备,也可以是终端设备中的装置,该垃圾回收装置可以包括处理模块和通信模块,这些模块可以执行上述第一方面任一种设计示例中的所执行的相应功能,具体的:
通信模块,用于接收数据;
处理模块,用于将接收的数据写入到目标存储空间中,所述目标存储空间包括所述装置的文件系统的元数据区对应的物理存储空间和/或所述装置的非用户数据UDA分区对应的物理存储空间,所述文件系统包括主数据区和所述元数据区,所述主数据区用于存储数据,所述元数据用于存储数据的元数据;以及,
根据预设的垃圾回收策略以及预设的单位处理单元,对所述目标存储空间进行垃圾回收操作。
第六方面,本申请实施例中还提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行第一方面或第二方面所述的方法。
第七方面,本申请实施例中还提供一种计算机程序产品,包括指令,当其在计算机上运行时,使得计算机执行第一方面或第二方面所述的方法。
第八方面,本申请实施例提供了一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现第一方面或第二方面所述的方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
上述第二方面至第八方面及其实现方式的有益效果可以参考对第一方面或第二方面的方法及其实现方式的有益效果的描述。
附图说明
图1为异地更新的方式的一种示例的示意图;
图2为本申请实施例中终端设备的一个示例性的结构示意图;
图3为本申请实施例中终端设备的一种示例的逻辑框图;
图4为文件系统进行垃圾回收处理的一种示例的示意图;
图5为存储器进行垃圾回收处理的一种示例的示意图;
图6为逻辑页或物理页的映射关系的一种示例的示意图;
图7为本申请实施例提供的垃圾回收方法的一种示例的流程图;
图8为本申请实施例提供的垃圾回收方法的另一种示例的流程图;
图9为本申请实施例提供的垃圾回收装置的一种示例的流程图;
图10为本申请实施例提供的垃圾回收装置的另一种示例的流程图。
具体实施方式
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例作进一步地详细描述。
1)终端设备,可以是移动式或便携式并执行无线通信的各种类型的计算机系统或设备中的任一个计算机系统或设备,或者也可以是服务器式终端设备。例如可包括移动电话或智能电话、便携式游戏设备、个人通信业务(personal communication service,PCS)电话、会话发起协议(session initiation protocol,SIP)话机、无线本地环路(wirelesslocal loop,WLL)站、个人数码助理(personal digital assistant,PDA)、便携式互联网设备、音乐播放器、数据存储设备、其他手持设备以及可穿戴设备。
或者,终端设备还可以包括受限设备,例如功耗较低的设备,或存储能力有限的设备,或计算能力有限的设备等。例如包括条码、射频识别(radio frequencyidentification,RFID)、传感器、全球定位系统(global positioning system,GPS)、激光扫描器等信息传感设备。
或者,该终端设备还可以是智能穿戴式设备,是应用穿戴式技术对日常穿戴进行智能化设计、开发出可以穿戴的设备的总称,如眼镜、手套、手表、服饰及鞋等。或者,也可以是虚拟现实(virtual reality,VR)设备、增强现实(augmented reality,AR)设备、工业控制(industrial control)中的无线终端设备、无人驾驶(driverless)中的无线终端设备、远程手术(remote medical surgery)中的无线终端设备、智能电网(smart grid)中的无线终端设备、运输安全(transportation safety)中的无线终端设备、智慧城市(smart city)中的无线终端设备、智慧家庭(smart home)中的无线终端设备等。
2)本地更新的方式,是指当接收到写操作请求后,首先确定该写操作请求对应的操作地址,然后将写操作请求中携带的数据写入到该地址中,若该地址上存储有原始数据,则将该写操作指令中包括的数据覆盖原始数据。
3)异地更新的方式,是指当接收到写操作请求后,会顺序写入到存储空间中,而不是在该写操作请求对应的操作地址上直接进行写操作。作为一种示例,请参考图1,存储器会维护地址标识以及存储空间的映射关系,例如,初始的地址标识与存储空间的映射关系为地址1映射到第一个存储单元(例如物理块或者物理页),地址2映射到第二个存储单元,以此类推。若存储器中前10个存储单元存储有数据,当存储器接收到针对地址9的写操作请求后,存储器会将该写操作请求对应的数据存储到第11个存储单元中。然后,存储器会地址与存储单元的映射关系,将地址9映射到第11个存储单元中,这样,当后续需要读取地址9中的数据时,存储器会从第11个存储单元中读取数据。
4)无效数据,是由于删除操作或针对同一地址的多次写操作造成的。例如,在图1中,对地址9进行了两次写操作,则第一次写操作对应的数据,即图1中的第9个存储单元中存储的数据,则变成无效数据。或者,当存储器接收到对某个地址的删除操作请求,则该地址对应的数据标则为无效数据。
需要说明的是,上述内容中,是以存储器为例来解释“异地更新的方式”以及“无效数据”。针对文件系统的异地更新的方式以及无效数据的说明,与存储器类似,在此不再赘述。
5)文件系统的垃圾回收处理,是指当文件系统中的某一个逻辑块的多个逻辑页中,只有少量的逻辑页中存储有效数据,则文件系统认为可以对该逻辑块进行垃圾回收处理,从而将该逻辑块中存储的有效数据复制到其他逻辑块中,然后将该逻辑块擦除,完成垃圾回收处理。
6)本申请实施例中“多个”是指两个或两个以上,鉴于此,本申请实施例中也可以将“多个”理解为“至少两个”。“至少一个”,可理解为一个或多个,例如理解为一个、两个或更多个。例如,包括至少一个,是指包括一个、两个或更多个,而且不限制包括的是哪几个,例如,包括A、B和C中的至少一个,那么包括的可以是A、B、C、A和B、A和C、B和C、或A和B和C。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。在本申请实施例中,“节点”和“节点”可以互换使用。
除非有相反的说明,本申请实施例提及“第一”、“第二”等序数词用于对多个对象进行区分,不用于限定多个对象的顺序、时序、优先级或者重要程度。
下面介绍本申请实施例的一种终端设备的结构图。图2示出了终端设备的一个示例性的结构示意图。如图2所示,终端设备200包括:处理器210、存储器220和通信接口230等部件。本领域技术人员可以理解,图2中示出的终端设备的结构并不构成对终端设备的限定,本发明实施例提供的终端设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
这些部件可通过一根或多根总线240或信号线进行通信,总线可以分为地址总线、数据总线、控制总线等。
处理器210可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。处理器210还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
存储器220,用于存储计算机程序,例如应用程序、操作系统以及文件系统等;处理器210可调用存储器220存储的计算机程序,从而实现该计算机程序定义的功能。
例如处理器210可以执行操作系统从而在计算设备200上实现操作系统的各种功能,处理器210也可以执行应用程序从而在计算设备200上实现该应用程序的各种功能。操作系统可以为Windows系统、MAC OS系统、Linux系统或者Android系统等,当然也可以是面向未来的计算机系统,本申请实施例描述的系统是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定。举例来说,应用程序可以为微信应用程序或百度应用程序等第三方应用程序,还可以为计算设备200的系统应用程序,例如系统服务(system server)或系统界面(system ui)。
存储器220可以包括存储程序区和存储数据区。存储程序区可存储操作系统以及各种应用程序等。存储数据区用于存储有除计算机程序之外的其他数据,例如,操作系统和应用程序运行过程中产生的数据(例如各种图片信息、视频信息等)。
存储器220可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器220也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flash memory)(例如,与非(not and,NAND)闪存(flash),嵌入式多媒体卡(embedded multi media card,eMMC)等),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器220还可以包括上述种类的存储器的组合。存储器220的个数可以为一个或者多个,具体可以根据需要进行设置。存储器220也可以是处理器210中的存储器,在此不做限制。
通信接口230用于将终端设备200与其它电子设备连接,允许终端设备200在网络上进行通讯的硬件,可以实现数据包的发送与接收的硬件。例如,通信接口230可以通过有线或无线连接到网络以连接到其他电子设备,例如外部其它的终端设备或服务器。例如,通信接口230可以具体为调制解调器或者天线或者无线保真(wireless fidelity,WiFi)模块,在终端设备200为服务器式终端设备时,通信接口230可以具体为射频单元或者天线。
进一步地,在一个实施例中,以终端设备200的操作系统为Linux系统为例,如图3所示,终端设备200从逻辑上可划分为应用层21、操作系统层22和硬件层23。其中,硬件层23可包括图2所示的处理器210、存储器220和通信接口230;应用层21包括一个或多个应用程序(应用程序201和应用程序202),具体应用程序可以为社交类应用、电子商务类应用、浏览器等任意类型的应用程序。操作系统层22作为硬件层23和应用层21之间的软件中间件,是管理和控制硬件与软件资源的计算机程序。
在一个实施例中,操作系统层22的核心是内核。其中,内核用于提供底层系统组件和服务,例如:电源管理、存储管理、线程管理、硬件驱动程序等;硬件驱动程序包括块设备驱动、传感器驱动、定位模块驱动等。在操作系统层22的设计中,往往将一些与硬件紧密相关的(例如,中断处理程序、设备驱动程序等)、基本的、公共的、处理频率较高的模块(例如时钟管理、进程调度等)以及关键性数据独立开来,使这些内容可以常驻内存,并对他们进行保护,通常将这一部分称之为内核。内核的实质是一段程序代码,通过处理器调用内核对应的程序代码来实现内核的功能。
作为一种示例,请参考图3,内核用于将硬件层23中包括的存储器虚拟成多个块设备,形成块设备层2201,并将该块设备层2201提供给文件系统2202使用。文件系统2202将应用层中各个应用程序产生的数据,以文件的形式存储在存储器中的,当文件系统2202接收到应用层21中某个应用程序,例如应用程序201,发送的文件访问请求时,则将生成对块设备层2201中的块设备对应的块设备访问请求,然后,将该块设备访问请求发送到块设备层2201,通过块设备层2201的调度管理,驱动对应的块设备驱动2203,从而将该访问请求下发到存储器中,从而通过文件系统2201、块设备层2202以及块设备驱动2203实现终端设备200的存储功能。在本申请实施例中,文件系统2201可以是F2FS,或者,也可以是其他的以异地更新的方式写入数据的文件系统,在此不作限制。
由于块设备层2201的存储空间有限,例如,可以为100吉字节(gigabyte,GB)。随着应用程序产生的数据越来越多,块设备层2201的存储空间会越来越小。因此,为了能够将持续地将数据写入到存储器中,文件系统会进行垃圾回收(garbage collection,GC)处理。
请参考图4,存储器向文件系统提供若干个块设备,例如包括块设备1和块设备2,其中,块设备1中包括2个逻辑块,分别为逻辑块1和逻辑块2,且每个逻辑块中包括4个逻辑页。假设文件系统进行垃圾回收的条件是,当一个逻辑块中有存储无效数据的逻辑页的数量大于2时,则进行垃圾回收。当文件系统确定该4个逻辑页中的3个逻辑页(例如逻辑页1~逻辑页3)中的数据都是无效数据,则文件系统确定该逻辑块1需要进行垃圾回收,从而将逻辑页4中的数据复制到其他逻辑块中,然后,将该逻辑块1擦除,进而实现回收该逻辑块。这样,当后续需要存储数据时,则可以存储在该逻辑块1中。
目前,在终端设备中使用的存储器的存储介质通常为Nand Flash。Nand Flash由多个Nand Flash颗粒组成,单个Nand Flash颗粒包括多个物理块,每个物理块包括多个物理页。Nand Flash按照物理页进行读写,按照物理块进行擦除,且物理块必须在擦除之后才能按照特定顺序逐个物理页写入数据,这种特定的数据操作方式要求存储器在持续的数据写入过程中,需要由存储器的控制器,对Nand Flash中存储的数据进行垃圾回收处理。
请参考图5,存储器包括的存储介质为2个Nand Flash颗粒,每个Nand Flash颗粒中包括2个物理块,分别为物理块1和物理块2,每个物理块中包括8个物理页。存储器的控制器会通过垃圾回收来管理所有的存储介质包括的物理块,假设存储器进行垃圾回收的条件是,当一个物理块中存储无效数据的物理页的数量大于4时,则进行垃圾回收。例如,如果控制器发现的物理块1中只有少数的物理页的数据为有效数据,例如,物理页1~物理页8中间只有物理页6~物理页8中存储的是有效数据,其他物理页中存储的是无效数据,则控制器确定需要对物理块1进行垃圾回收,从而,将物理页6~物理页8中的数据复制到物理块2中的物理页9~物理页11中,然后擦除物理块1,完成对物理块1的垃圾回收。
需要说明的是,文件系统中的逻辑块和逻辑页只是一个逻辑概念,文件系统中存储的数据最终存储在存储介质中的,也就是说,文件系统中的逻辑块和逻辑页与存储器介质中的多个物理块和物理页存在一定的映射关系。请参考图6,文件系统中的逻辑块1和逻辑块2分别对应存储介质中的物理块1和物理块2(在图6中以逻辑块1和物理块1为例),逻辑页1分别对应物理页1和物理页2,逻辑页2分别对应物理页3和物理页4,以此类推。则当文件系统进行如图4所示的垃圾回收处理时,实际是将物理页7和物理页8中的数据复制到其他物理页中。
由上述过程可知,当文件系统和存储器都需要进行垃圾回收处理时,会使得应用程序的文件访问产生较大的延迟,甚至产生卡顿。
鉴于此,本申请实施例提供一种垃圾回收方法,在该方法中,将终端设备中文件系统的垃圾回收和存储器的垃圾回收进行合并,例如,可以通过文件系统中的垃圾回收机制,统一对存储在文件系统的部分逻辑区域中的数据和存储在存储器中与该部分逻辑区域对应的物理块中的数据进行垃圾回收处理,或者,通过存储器中的垃圾回收机制,统一对存储在文件系统的剩余逻辑区域中的数据和存储在存储器中剩余物理块中的数据进行垃圾回收处理,也就是说,针对同一数据只会进行一次垃圾回收处理,从而可以避免文件系统和存储器同时进行垃圾回收时存在的重复搬移数据的情况,可以减少应用程序访问文件的时延。
下面结合附图介绍本申请实施例提供的技术方案。
需要说明的是,由前述内容可知,将终端设备中文件系统的垃圾回收和存储器的垃圾回收进行合并,可以通过文件系统中的垃圾回收机制实现,也可以通过存储器中的垃圾回收机制实现,因此,在下文中,将分为两个实施例,即实施例一和实施例二,对本申请实施例中的垃圾回收方法进行说明。其中,在实施例一中,通过文件系统中的垃圾回收机制来实现本申请的垃圾回收方法,在实施例二中,通过存储器中的垃圾回收机制,实现本申请实施例中的垃圾回收方法。
实施例一
请参考图7,为本申请实施例提供的垃圾回收方法的一种示例的流程图。在下面的介绍过程中,以本申请提供的技术方案应用在图3所示的应用场景中为例进行说明。作为一种示例,该方法可由如图3所示的计算设备200中的处理器210执行,可以理解为,由处理器210调用文件系统2201中的程序来执行。该流程图的描述如下:
S71、处理器210从存储器220获取第一信息。
在本申请实施例中,该第一信息用于指示第一单位处理单元的大小,该第一单位处理单元为存储器220进行垃圾回收操作的单位处理单元。
存储器220进行垃圾回收操作的单位处理单元,也可以称为存储器220进行垃圾回收操作的粒度,可以理解为,存储器220根据单位处理单元来判断是否需要进行垃圾回收操作。若存储器220确定某一个大小为该单位处理单元的大小的存储空间中,只有少量的数据为有效数据时,则存储器220可以对该存储空间进行垃圾回收处理,从而将该存储空间中存储的有效数据复制到其他物理块中,然后将该存储空间擦除,完成垃圾回收操作。
作为一种示例,第一单位处理单元的大小可以为存储器220的物理块的大小,例如,为72兆字节(megabyte,MB)。作为另一种示例,第一单位处理单元的大小为存储器220的物理块的大小的预设倍数,例如,该预设倍数为4倍,若存储器220的物理块的大小为72MB,则第一单位处理单元的大小为72*4=288MB。该第一单位处理单元的大小可以根据实际使用需求进行设置,在本申请实施例中不作限制。
处理器210从存储器220获取该第一信息,可以包括但不限于如下方式。
第一种获取方式:
处理器210可以通过处理器210与存储器220之间的内部通道,向存储器220发送查询指令,该查询指令用于获取存储器220的单位处理单元的大小。当存储器220接收该查询指令后,则通过该内部通道向处理器210发送与该查询指令对应的响应消息,该响应消息中携带该第一单位处理单元的大小。
该内部通道可以是基于嵌入式多媒体卡(embedded multi media card,eMMC)协议、UNIX文件系统(UNIX file system,UFS)协议的通道,或者,自定义的私有通道。该查询指令可以是在新增的专用于查询该第一单位处理单元的大小的指令,或者,也可以是通过在已有的查询指令中增加新的字段得到的,该新的字段用于指示上报该第一单位处理单元的大小,在此不对该内部通道以及查询指令作限制。
第二种获取方式:
存储器220可以主动向处理器210上报该第一单位处理单元的大小。
作为一种示例,可以对存储器220的属性信息集合进行自定义,在属性信息集合中新增字段,存储器220可以将该第一单位处理单元的大小存储在该字段中,从而处理器210可以从该属性信息集合中获取该第一单位处理单元的大小。该属性信息可以在终端设备处于工作状态后上报给处理器210。
作为另一种示例,可以在操作系统层22中安装预设的驱动程序以及与该预设的驱动程序对应的客户端软件,该预设的驱动程序用于查询存储器220的单位处理单元的大小,这样,工程人员在开启该客户端软件后,则处理器210可以通过该驱动程序获取该第一单位处理单元的大小。
作为另一种示例,可以通过自动安装技术(例如,AutoYast)或者无人值守批量安装操作系统接口技术(例如,kick-start),插入自定义动作。该自定义动作可以是:在检测到终端设备处于运行状态后,存储器220通过处理器210与存储器220之间的内部通道,向处理器210上报该第一单位处理单元的大小。
当然,处理器210可以采用其他方式,从存储器220中获取该第一单位处理单元的大小,在此不作限制。
S72、处理器210根据第一单位处理单元的大小,配置文件系统进行垃圾回收操作所使用的第二单位处理单元的大小。
具体来讲,处理器210将第二单位处理单元的大小配置为与第一单位处理单元的大小相同,例如,该第一单位处理单元的大小为288MB,则处理器210配置该第二单位处理单元的大小为288MB,或者,也可以配置该第二单位处理单元的大小为该第一单位处理单元的大小的整数倍,这样,文件系统则根据处理器210配置的第二单位处理单元的大小,对文件系统中存储的数据进行垃圾回收操作。
S73、处理器210向存储器220发送地址配置指令。
在本申请实施例中,该地址配置指令中包括文件系统所占用的块设备的逻辑地址,该地址配置指令用于指示存储器220不用对与该逻辑地址对应的物理存储空间进行垃圾回收处理。
在本申请实施例中,该地址配置指令中包括的逻辑地址可以是一个逻辑地址范围。作为一种示例,可以通过起始逻辑地址以及地址的长度来指示该逻辑地址范围,例如,可以通过每个逻辑地址的标识信息(例如,索引号或者编号等)来指示每个逻辑地址,则逻辑地址1~逻辑地址10这一段逻辑地址可以通过“1+10”表示,其中,“1”表示起始逻辑地址为逻辑地址1,“10”表示这一段逻辑地址中包括10个逻辑地址。或者,该地址配置指令中包括多个逻辑地址,该多个逻辑地址是需要与物理地址对齐的所有的逻辑地址。沿用上述例子,若需要将逻辑地址1~逻辑地址10与物理地址对齐,则该地址配置指令中则包括该多个逻辑地址中每个逻辑地址的标识信息,例如包括“1、2、3……10”。或者,该地址配置指令中只包括一个逻辑地址,该逻辑地址为一个逻辑地址范围的起始地址,用于指示位于该逻辑地址之后的所有的逻辑地址。
需要说明的是,文件系统所占用的逻辑存储空间,可以根据存储的内容不同,分为元数据区和主数据区,其中,主数据区用于存储数据,元数据区用于存储数据的元数据。以地址配置指令中包括逻辑地址范围为例,该逻辑地址范围,可以是文件系统所占用的所有的逻辑存储空间对应的一段逻辑地址,也可以是文件系统的主数据区所占用的逻辑存储空间对应的一段逻辑地址,或者,当文件系统还包括其他分区时,该逻辑地址范围也可以是其他分区对应的一段逻辑地址,在本申请实施例中不作限制。为方便说明,下文中,以该逻辑地址范围为文件系统的主数据区对应的一段逻辑地址为例。
另外,处理器210可以是在文件系统或者存储器220中存储第一个数据之前,例如,检测到终端设备处于运行状态的预设时间段内,便向存储器220发送该地址配置指令,或者,也可以是在文件系统或者存储器220中存储数据之后,才向存储器220发送该地址配置指令,在此不作限制。
S74、存储器220确定不对与该地址配置指令所包括的逻辑地址对应的物理存储空间进行垃圾回收操作。
作为一种示例,该地址配置指令中包括的逻辑地址为逻辑地址1~逻辑地址10,存储器220根据预设的算法,例如哈希算法等,计算与每个逻辑地址对应的物理地址,例如,计算得到与该逻辑地址1~逻辑地址10对应的物理地址分别为物理地址3~物理地址12,则存储器220确定不需要对物理地址3~物理地址12对应的存储空间进行垃圾回收操作。
在本申请实施例中,不限制步骤S71~步骤S72与步骤S73~步骤S74的执行顺序。例如,可以先执行步骤S71~步骤S72,再执行步骤S73~步骤S74,也可以先执行步骤S73~步骤S74,再执行步骤S71~步骤S72,也可以同时执行步骤S71~步骤S72与步骤S73~步骤S74。在图7中,以先执行步骤S71~步骤S72,再执行步骤S73~步骤S74为例。
S75、处理器210禁止该地址配置指令所包括的逻辑地址对应的存储空间采用本地更新的方式写入数据。
为了保证文件系统所占用的逻辑存储空间中存储的数据与存储器220中存储的数据的一致性,处理器210将禁止该地址配置指令所包括的逻辑地址对应的存储空间采用本地更新的方式写入数据。
具体来讲,文件系统可以以本地更新的方式写入数据,也可以以异地更新的方式写入数据,在这种情况下,处理器210则配置文件系统禁止以本地更新的方式写入数据,例如,文件系统可以包括多个配置参数,其中,该配置参数中包括用于指示该文件系统支持以本地更新的方式写入数据的属性,则处理器210可以配置该文件系统禁用启用该属性。
S76、处理器210向文件系统对应的逻辑存储空间中写入数据。
当处理器210接收到数据后,则以异地更新的方式向文件系统对应的逻辑存储空间中写数据,并存储到存储器220对应的物理存储空间中。
作为一种示例,处理器210接收到写数据操作,该写数据操作中包括待写入数据,处理器210可以根据预设的规则,确定与该待写入数据对应的逻辑地址,例如,确定将该写数据存储到逻辑块1中。然后,处理器210向存储器220发送数据存储指令,该指令中包括该写入数据,以及该待写入数据对应的逻辑地址,例如,为逻辑块1的标识(编号或者索引号等)。处理器220接收该指令后,确定与逻辑块1对应的物理存储空间为物理块1,则将该待写入数据存储到物理块1中。
S77、存储器220建立逻辑地址与物理地址的映射关系。
当存储器220将数据存储到对应的物理块之后,存储器220则可以建立逻辑地址与物理地址的映射关系。在本申请实施例中,以该映射关系为逻辑块和物理块之间的映射关系。例如,使用每个逻辑块或者物理块的标识来表示各个逻辑块或者物理块,由步骤S76可知,逻辑块1对应物理块1,从而得到如表1所示映射关系。
表1
逻辑块 | 物理块 |
1 | 1 |
需要说明的是,表1会随着写入的数据的增多而增加表项,表1记录了存储在存储器220的逻辑块与物理块之间的映射关系。若某一个逻辑块中未存储数据,则表1中不会存储与该逻辑块对应的映射关系。
另外,在本申请实施例中,由于表1只包括逻辑块与物理块之间的映射关系,而没有与逻辑页或者物理页之间的映射关系,所以该表1所占用的存储空间较小,可以节省存储资源。
S78、处理器210采用文件系统的垃圾回收机制进行垃圾回收操作。
随着文件系统中写入的数据越来越多,处理器210则可以运行文件系统中用于进行垃圾回收操作的代码或程序,对前述由地址配置指令所指示的逻辑存储空间进行垃圾回收操作,即确定该逻辑存储空间所包括的每一个逻辑块中,存储无效数据的逻辑页的数量是否大于阈值,若为是,则进行垃圾回收,即根据该逻辑块和物理块之间的映射关系,确定需要擦除的物理块,并对存储器220下发擦除该物理块中的数据的指令,具体方式与现有技术中相似,在此不再赘述。
由于前述地址配置指令所指示的逻辑存储空间中每个逻辑块对应一个物理块,因此,对该逻辑存储空间进行垃圾回收操作后,存储器220不用再对该部分物理存储空间进行垃圾回收操作。从而可以省略存储器220对该部分物理存储空间进行垃圾回收操作的过程,可以减少应用程序访问文件时的时延。
在实施例一中,若步骤S73中,处理器210发送的地址配置指令所指示的逻辑地址为文件系统的部分逻辑存储空间对应的逻辑地址,例如为文件系统的主数据区对应的逻辑地址,则处理器210只针对文件系统的部分逻辑存储空间进行了垃圾回收操作。对于终端设备中的其他存储空间,例如,文件系统的元数据区对应的逻辑存储空间,则可以由存储器220来执行垃圾回收操作。下面,将介绍通过存储器220中的垃圾回收机制,实现本申请实施例中的垃圾回收方法的过程。
实施例二
请参考图8,为本申请实施例提供的垃圾回收方法的一种示例的流程图。在下面的介绍过程中,以本申请提供的技术方案应用在图3所示的应用场景中为例进行说明。作为一种示例,该方法可由如图3所示的计算设备200中的存储器220执行,可以理解为,存储器220中的控制装置或者控制器来执行。该流程图的描述如下:
S81、处理器210配置存储器220的目标存储空间以本地更新的方式写入数据。
在实际使用过程中,存储器220可以根据终端设备的使用需求,分为多个分区。例如,可以包括启动(boot)分区、重放保护数据块(replay protected memory block,RPMB)分区、用户数据分区(user data area,UDA)等。其中,boot分区用于存储终端设备所需的启动程序;RPMB分区中通常用于存储有防止非法篡改需求的数据,例如终端设备上指纹支付相关的公钥、序列号等;UDA分区通常用于存储用户数据等。当然,本申请实施例中不对终端设备的分区进行限制。
通常情况下,终端设备的UDA分区会配置文件系统,而其他分区可能没有配置文件系统。若文件系统对应的逻辑存储空间仅包括主数据区和元数据区,则该目标存储空间是指文件系统的元数据区对应的逻辑存储空间和终端设备的除UDA分区之外的其他分区。处理器210可以将元数据区和终端设备的除UDA分区之外的其他分区配置为以本地更新的方式写入数据。
需要说明的是,步骤S81是可选步骤,即不是必须要执行的。例如,元数据区和终端设备的除UDA分区之外的其他分区可以是默认配置为以本地更新的方式写入数据,在这种情况下,则处理器210不用执行步骤S81。在图8中以虚线表示该步骤为可选步骤。
S82、处理器210向存储器220的目标存储空间中写入数据。
处理器210接收到针对该元数据区的写数据操作后,则根据预设的规则,确定与该待写入数据对应的逻辑地址,例如,确定将该写入数据存储到逻辑块1的逻辑页3中。然后,处理器210向存储器220发送数据存储指令,该指令中包括该写入数据,以及该待写入数据对应的逻辑地址,例如,为逻辑块1的逻辑页3的标识(编号或者索引号等)。处理器220接收该指令后,确定与逻辑块1的逻辑页3对应的物理存储空间为物理块1的物理页4和物理页5,则将该待写入数据存储到物理块1的物理页4和物理页5中。
S83、存储器220建立逻辑地址与物理地址的映射关系。
在本申请实施例中,以该映射关系为逻辑页和物理页之间的映射关系。例如,使用每个逻辑页或者物理页的标识来表示各个逻辑页或者物理页,由步骤S82可知,逻辑块1的逻辑页3对应物理块1的物理页4和物理页5,从而得到如表2所示映射关系。
表2
逻辑页 | 物理页 |
逻辑块1的逻辑页3 | 物理块1的物理页4和物理页5 |
需要说明的是,表2与表1相似,也会随着写入的数据的增多而增加表项。表2记录了该目的存储空间的逻辑页与物理页之间的映射关系。
S84、存储器220根据所述映射关系,确定无效数据。
作为一种示例,若该映射关系中,同一个逻辑页对应两个不同的物理页,则确定该两个不同的物理页中在先的物理页中存储的数据为无效数据。
作为另一种示例,存储器220中还可以包括其他的映射关系,例如,包括以物理页为索引的反向映射关系,该反向映射关系为物理页和逻辑页之间的映射关系,存储器220通过逻辑页和物理页之间的映射关系以及该反向映射关系,一起确定某个物理页中的数据是否为无效数据。
当然,也可以通过其他方式确定某一个物理页中的数据为无效数据,在此不作限制。
S85、存储器220对目的存储空间进行垃圾回收操作。
当存储器220确定目的存储空间中的物理页满足垃圾回收条件时,例如物理页中的无效数据的数量大与阈值,则对该物理页进行垃圾回收操作,具体方式与现有技术中相似,在此不再赘述。
需要说明的是,在存储器220对该目的存储空间进行垃圾回收操作后,文件系统不用再对该其元数据分区对应的存储空间进行垃圾回收操作。从而可以省略文件系统对部分存储空间进行垃圾回收操作的过程,可以减少应用程序访问文件时的时延。
需要说明的是,实施例一和实施例二可以单独实施,也就是说,某一个终端设备中可以只实现上述两种实施例中的其中一种;或者,实施例一和实施例二也可以结合实施,也就是说,某一个终端设备中可以实现这两种实施例。
另外,本申请实施例中的方法除了可以应用在终端设备上,还可以应用在其他具有文件系统的设备中,在此不作限制。
上述本申请提供的实施例中,为了实现上述本申请实施例提供的方法中的各功能,终端设备可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。
图9示出了一种垃圾回收装置900的结构示意图。其中,垃圾回收装置900可以用于实现终端设备的处理器的功能。垃圾回收装置900可以是硬件结构、软件模块、或硬件结构加软件模块。垃圾回收装置900可以由芯片系统实现。本申请实施例中,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
垃圾回收装置900可以包括处理模块901和通信模块902。
处理模块901可以用于执行图7所示的实施例中的步骤S72、步骤S75~步骤S76以及步骤S78,或用于执行图8所示的实施例中的步骤S81,和/或用于支持本文所描述的技术的其它过程。
通信模块902可以用于执行图7所示的实施例中的步骤S71和步骤S73,或用于执行图8所示的实施例中的步骤S82,和/或用于支持本文所描述的技术的其它过程。通信模块902用于垃圾回收装置900和其它模块进行通信,其可以是电路、器件、接口、总线、软件模块、收发器或者其它任意可以实现通信的装置。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
图10示出了一种垃圾回收装置1000的结构示意图。其中,垃圾回收装置1000可以用于实现终端设备的存储器的功能。垃圾回收装置1000可以是硬件结构、软件模块、或硬件结构加软件模块。垃圾回收装置1000可以由芯片系统实现。本申请实施例中,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
垃圾回收装置1000可以包括处理模块1001和通信模块1002。
处理模块1001可以用于执行图7所示的实施例中的步骤S74以及步骤S77,或用于执行图8所示的实施例中的步骤S83~步骤S85,和/或用于支持本文所描述的技术的其它过程。
通信模块1002可以用于执行图7所示的实施例中的步骤S71和步骤S73,或用于执行图8所示的实施例中的步骤S82,和/或用于支持本文所描述的技术的其它过程。通信模块1002用于垃圾回收装置1000和其它模块进行通信,其可以是电路、器件、接口、总线、软件模块、收发器或者其它任意可以实现通信的装置。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
图9或图10所示的实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。例如,图9或图10所示的垃圾回收装置也可以是如图2所示的终端设备,则处理模块901可以对应图2所示的终端设备的处理器210,处理模块1001可以对应图2所示的终端设备的存储器220,通信模块903和通信模块1002可以对应图2所示的终端设备的通信接口230,在此不再赘述。
本申请实施例中还提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行图7或图8所示的实施例中处理器或存储器执行的方法。
本申请实施例中还提供一种计算机程序产品,包括指令,当其在计算机上运行时,使得计算机执行图7或图8所示的实施例中处理器或存储器执行的方法。
本申请实施例提供了一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现前述方法中处理器或存储器的功能。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
本申请实施例提供了一种终端设备,该终端设备包括图7或图8所示的实施例中处理器和/或存储器。
本申请实施例提供的方法中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,简称DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机可以存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,简称DVD))、或者半导体介质(例如,SSD)等。
Claims (26)
1.一种垃圾回收方法,其特征在于,包括:
终端设备的处理器从所述终端设备的存储器中获取第一信息,所述第一信息用于指示第一单位处理单元的大小,所述第一单位处理单元为所述存储器进行垃圾回收操作的单位处理单元;
所述处理器根据所述第一单位处理单元的大小,配置第二单位处理单元的大小,所述第二单位处理单元为所述终端设备的文件系统进行垃圾回收操作所使用的单位处理单元;
所述处理器向所述存储器发送地址配置指令,所述地址配置指令中包括所述文件系统所占用的块设备的逻辑地址,所述地址配置指令用于指示所述存储器不用对与所述逻辑地址对应的物理存储空间进行垃圾回收操作;
所述处理器根据所述第二单位处理单元的大小,对与所述逻辑地址对应的逻辑存储空间进行垃圾回收操作。
2.根据权利要求1所述的方法,其特征在于,所述第二单位处理单元的大小与所述第一单位处理单元的大小相同,或,所述第二单位处理单元的大小为所述第一单位处理单元的大小的整数倍。
3.根据权利要求1或2所述的方法,其特征在于,所述文件系统包括主数据区和元数据区,所述主数据区用于存储数据,所述元数据用于存储数据的元数据,所述逻辑地址为所述主数据区对应的逻辑地址集合。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述处理器禁止与所述逻辑地址对应的逻辑存储空间采用本地更新的方式写入数据。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述处理器禁止与所述逻辑地址对应的逻辑存储空间采用本地更新的方式写入数据。
6.一种垃圾回收方法,其特征在于,所述方法还包括:
终端设备的存储器接收数据;
所述存储器将接收的数据写入到目标存储空间中,所述目标存储空间包括所述终端设备的文件系统的元数据区对应的物理存储空间和/或所述终端设备的非用户数据UDA分区对应的物理存储空间,所述文件系统包括主数据区和所述元数据区,所述主数据区用于存储数据,所述元数据用于存储数据的元数据;
所述存储器根据预设的垃圾回收策略以及预设的单位处理单元,对所述目标存储空间进行垃圾回收操作;
所述终端设备的处理器从所述终端设备的存储器中获取第一信息,所述第一信息用于指示第一单位处理单元的大小,所述第一单位处理单元为所述存储器进行垃圾回收操作的单位处理单元;
所述处理器根据所述第一单位处理单元的大小,配置第二单位处理单元的大小,所述第二单位处理单元为所述终端设备的文件系统进行垃圾回收操作所使用的单位处理单元;
所述处理器向所述存储器发送地址配置指令,所述地址配置指令中包括所述文件系统所占用的块设备的逻辑地址,所述地址配置指令用于指示所述存储器不用对与所述逻辑地址对应的物理存储空间进行垃圾回收操作;
所述处理器根据所述第二单位处理单元的大小,对与所述逻辑地址对应的逻辑存储空间进行垃圾回收操作;
其中,所述终端设备的存储空间包括所述逻辑地址对应的逻辑存储空间与所述目标存储空间,且所述逻辑地址对应的逻辑存储空间与所述目标存储空间互不重合。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述存储器建立逻辑存储空间的逻辑页与所述目标存储空间的物理页之间的映射关系,所述逻辑存储空间为与所述元数据区和/或所述非用户数据UDA分区对应的逻辑存储空间;
所述存储器根据所述映射关系确定无效数据;
若一个物理页中无效数据的数量大与阈值,则所述存储器对所述物理页进行垃圾回收操作。
8.根据权利要求6或7所述的方法,其特征在于,所述终端设备的存储器向目标存储空间中写入数据,包括:
所述存储器以本地更新的方式,将接收的数据写入到所述目标存储空间中。
9.根据权利要求6所述的方法,其特征在于,所述第二单位处理单元的大小与所述第一单位处理单元的大小相同,或,所述第二单位处理单元的大小为所述第一单位处理单元的大小的整数倍。
10.根据权利要求6或9所述的方法,其特征在于,所述文件系统包括主数据区和元数据区,所述主数据区用于存储数据,所述元数据用于存储数据的元数据,所述逻辑地址为所述主数据区对应的逻辑地址集合。
11.根据权利要求6或9所述的方法,其特征在于,所述方法还包括:
所述处理器禁止与所述逻辑地址对应的逻辑存储空间采用本地更新的方式写入数据。
12.根据权利要求10所述的方法,其特征在于,所述方法还包括:
所述处理器禁止与所述逻辑地址对应的逻辑存储空间采用本地更新的方式写入数据。
13.一种垃圾回收装置,其特征在于,包括:
通信模块,用于从所述装置的存储器中获取第一信息,所述第一信息用于指示第一单位处理单元的大小,所述第一单位处理单元为所述存储器进行垃圾回收操作的单位处理单元;
处理模块,用于根据所述第一单位处理单元的大小,配置第二单位处理单元的大小,所述第二单位处理单元为所述装置的文件系统进行垃圾回收操作所使用的单位处理单元;
所述通信模块,还用于向所述存储器发送地址配置指令,所述地址配置指令中包括所述文件系统所占用的块设备的逻辑地址,所述地址配置指令用于指示所述存储器不用对与所述逻辑地址对应的物理存储空间进行垃圾回收操作;
所述处理模块,还用于根据所述第二单位处理单元的大小,对与所述逻辑地址对应的逻辑存储空间进行垃圾回收操作。
14.根据权利要求13所述的装置,其特征在于,所述第二单位处理单元的大小与所述第一单位处理单元的大小相同,或,所述第二单位处理单元的大小为所述第一单位处理单元的大小的整数倍。
15.根据权利要求13或14所述的装置,其特征在于,所述文件系统包括主数据区和元数据区,所述主数据区用于存储数据,所述元数据用于存储数据的元数据,所述逻辑地址为所述主数据区对应的逻辑地址集合。
16.根据权利要求13或14所述的装置,其特征在于,所述处理模块还用于:
禁止与所述逻辑地址对应的逻辑存储空间采用本地更新的方式写入数据。
17.根据权利要求15所述的装置,其特征在于,所述处理模块还用于:
禁止与所述逻辑地址对应的逻辑存储空间采用本地更新的方式写入数据。
18.一种垃圾回收装置,其特征在于,包括:
通信模块,用于接收数据;
处理模块,用于将接收的数据写入到目标存储空间中,所述目标存储空间包括所述装置的文件系统的元数据区对应的物理存储空间和/或所述装置的非用户数据UDA分区对应的物理存储空间,所述文件系统包括主数据区和所述元数据区,所述主数据区用于存储数据,所述元数据用于存储数据的元数据;以及,
根据预设的垃圾回收策略以及预设的单位处理单元,对所述目标存储空间进行垃圾回收操作;
所述通信模块还用于从所述装置的存储器中获取第一信息,所述第一信息用于指示第一单位处理单元的大小,所述第一单位处理单元为所述存储器进行垃圾回收操作的单位处理单元;
所述处理模块还用于根据所述第一单位处理单元的大小,配置第二单位处理单元的大小,所述第二单位处理单元为所述装置的文件系统进行垃圾回收操作所使用的单位处理单元;
所述通信模块还用于向所述存储器发送地址配置指令,所述地址配置指令中包括所述文件系统所占用的块设备的逻辑地址,所述地址配置指令用于指示所述存储器不用对与所述逻辑地址对应的物理存储空间进行垃圾回收操作;
所述处理模块还用于根据所述第二单位处理单元的大小,对与所述逻辑地址对应的逻辑存储空间进行垃圾回收操作;
其中,所述装置的存储空间包括所述逻辑地址对应的逻辑存储空间与所述目标存储空间,且所述逻辑地址对应的逻辑存储空间与所述目标存储空间互不重合。
19.根据权利要求18所述的装置,其特征在于,所述处理模块还用于:
建立逻辑存储空间的逻辑页与所述目标存储空间的物理页之间的映射关系,所述逻辑存储空间为与所述元数据区和/或所述非用户数据UDA分区对应的逻辑存储空间;以及,根据所述映射关系确定无效数据;若一个物理页中无效数据的数量大与阈值,则对所述物理页进行垃圾回收操作。
20.根据权利要求18或19所述的装置,其特征在于,所述处理模块用于:
以本地更新的方式,将接收的数据写入到所述目标存储空间中。
21.根据权利要求18所述的装置,其特征在于,所述第二单位处理单元的大小与所述第一单位处理单元的大小相同,或,所述第二单位处理单元的大小为所述第一单位处理单元的大小的整数倍。
22.根据权利要求18或21所述的装置,其特征在于,所述文件系统包括主数据区和元数据区,所述主数据区用于存储数据,所述元数据用于存储数据的元数据,所述逻辑地址为所述主数据区对应的逻辑地址集合。
23.根据权利要求18或21所述的装置,其特征在于,所述处理模块还用于:
禁止与所述逻辑地址对应的逻辑存储空间采用本地更新的方式写入数据。
24.根据权利要求22所述的装置,其特征在于,所述处理模块还用于:
禁止与所述逻辑地址对应的逻辑存储空间采用本地更新的方式写入数据。
25.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令在被所述计算机调用时用于使所述计算机执行上述权利要求1-5或6-12中任一项所述的方法。
26.一种终端设备,其特征在于,所述终端设备包括处理器和存储器,所述存储器中存储有计算机可执行指令,所述计算机可执行指令在被所述处理器调用时用于使所述处理器执行上述权利要求1-5或6-12中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211612816.0A CN116166570A (zh) | 2019-07-31 | 2019-11-30 | 一种垃圾回收方法及装置 |
PCT/CN2020/104599 WO2021018052A1 (zh) | 2019-07-31 | 2020-07-24 | 一种垃圾回收方法及装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910719350 | 2019-07-31 | ||
CN2019107193506 | 2019-07-31 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211612816.0A Division CN116166570A (zh) | 2019-07-31 | 2019-11-30 | 一种垃圾回收方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112306896A CN112306896A (zh) | 2021-02-02 |
CN112306896B true CN112306896B (zh) | 2022-12-27 |
Family
ID=74336649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911209032.1A Active CN112306896B (zh) | 2019-07-31 | 2019-11-30 | 一种垃圾回收方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112306896B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102364474A (zh) * | 2011-11-17 | 2012-02-29 | 中国科学院计算技术研究所 | 用于机群文件系统的元数据存储系统和管理方法 |
US9436595B1 (en) * | 2013-03-15 | 2016-09-06 | Google Inc. | Use of application data and garbage-collected data to improve write efficiency of a data storage device |
CN105930356A (zh) * | 2016-04-08 | 2016-09-07 | 上海交通大学 | 日志型异构混合内存文件系统的实现方法 |
CN106708751A (zh) * | 2015-11-13 | 2017-05-24 | 三星电子株式会社 | 包括用于多模操作的多分区的存储装置及其操作方法 |
CN107209719A (zh) * | 2015-12-03 | 2017-09-26 | 华为技术有限公司 | 一种阵列控制器、固态硬盘和控制固态硬盘写数据的方法 |
CN109960663A (zh) * | 2017-12-22 | 2019-07-02 | 三星电子株式会社 | 执行垃圾回收的存储装置和存储装置的垃圾回收方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120297121A1 (en) * | 2011-05-17 | 2012-11-22 | Sergey Anatolievich Gorobets | Non-Volatile Memory and Method with Small Logical Groups Distributed Among Active SLC and MLC Memory Partitions |
US20140059279A1 (en) * | 2012-08-27 | 2014-02-27 | Virginia Commonwealth University | SSD Lifetime Via Exploiting Content Locality |
CN103577338B (zh) * | 2013-11-14 | 2016-06-29 | 华为技术有限公司 | 一种回收垃圾数据的方法及存储设备 |
US9645924B2 (en) * | 2013-12-16 | 2017-05-09 | International Business Machines Corporation | Garbage collection scaling |
CN109491588B (zh) * | 2017-09-13 | 2022-05-31 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
-
2019
- 2019-11-30 CN CN201911209032.1A patent/CN112306896B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102364474A (zh) * | 2011-11-17 | 2012-02-29 | 中国科学院计算技术研究所 | 用于机群文件系统的元数据存储系统和管理方法 |
US9436595B1 (en) * | 2013-03-15 | 2016-09-06 | Google Inc. | Use of application data and garbage-collected data to improve write efficiency of a data storage device |
CN106708751A (zh) * | 2015-11-13 | 2017-05-24 | 三星电子株式会社 | 包括用于多模操作的多分区的存储装置及其操作方法 |
CN107209719A (zh) * | 2015-12-03 | 2017-09-26 | 华为技术有限公司 | 一种阵列控制器、固态硬盘和控制固态硬盘写数据的方法 |
CN105930356A (zh) * | 2016-04-08 | 2016-09-07 | 上海交通大学 | 日志型异构混合内存文件系统的实现方法 |
CN109960663A (zh) * | 2017-12-22 | 2019-07-02 | 三星电子株式会社 | 执行垃圾回收的存储装置和存储装置的垃圾回收方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112306896A (zh) | 2021-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111241006B (zh) | 存储阵列及控制方法 | |
US11099937B2 (en) | Implementing clone snapshots in a distributed storage system | |
US20190213085A1 (en) | Implementing Fault Domain And Latency Requirements In A Virtualized Distributed Storage System | |
CN110018998B (zh) | 一种文件管理方法、系统及电子设备和存储介质 | |
US20210160319A1 (en) | Data Sending Method and Apparatus, and Data Receiving Method and Apparatus | |
CN110018900B (zh) | 内存处理方法和装置、电子设备、计算机可读存储介质 | |
CN109726137B (zh) | 固态硬盘垃圾回收任务的管理方法、控制器和固态硬盘 | |
CN110489138B (zh) | 一种应用更新方法、装置和存储介质 | |
CN112445766A (zh) | 一种终端碎片整理方法、装置以及终端 | |
CN111831215A (zh) | 用于在存储器系统中传输映射信息的装置 | |
WO2021018052A1 (zh) | 一种垃圾回收方法及装置 | |
US11237761B2 (en) | Management of multiple physical function nonvolatile memory devices | |
CN109597707A (zh) | 克隆卷数据拷贝方法、装置及计算机可读存储介质 | |
CN111930305A (zh) | 数据的存储方法和装置、存储介质、电子装置 | |
CN110888769B (zh) | 数据处理方法及计算机设备 | |
KR20140042431A (ko) | 컴퓨팅 시스템 및 컴퓨팅 시스템의 데이터 관리 방법 | |
EP3964996A1 (en) | Database access method and device | |
CN112306896B (zh) | 一种垃圾回收方法及装置 | |
JP6584529B2 (ja) | ファイルにアクセスするための方法および装置、ならびに記憶システム | |
CN113032290B (zh) | 闪存配置方法、装置、电子设备和存储介质 | |
CN108762985B (zh) | 数据恢复方法及相关产品 | |
US10452308B2 (en) | Encoding tags for metadata entries in a storage system | |
KR20140042428A (ko) | 컴퓨팅 시스템 및 그 데이터 관리 방법 | |
CN112783804A (zh) | 数据访问方法、装置及存储介质 | |
WO2023201648A1 (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 |