G06F12/02 G06F12/0893
1.一种支持固态硬盘多场景复用的L2P表缓存方法,所述方法包括:
当触发用户数据垃圾回收、映射表垃圾回收、映射表刷新中任一项功能场景时,调用申请L2P表缓存空间接口;
通过所述接口根据不同场景申请对应大小的L2P表缓存空间,被申请的L2P表缓存空间不可被用做L2P表的相关处理;
记录在不同功能场景下申请的L2P表缓存数量;
待L2P表缓存申请成功后,可使用对应已分配的L2P表缓存空间执行内存空间与NANDFLASH数据的读取以及刷新动作。
2.根据权利要求1所述的支持固态硬盘多场景复用的L2P表缓存方法,其特征在于,所述通过所述接口根据不同场景申请对应大小的L2P表缓存空间的步骤还包括:
在用户数据垃圾回收场景下分配50%的L2P表缓存空间;
在映射表垃圾回收场景下分配10%的L2P缓存空间;
在映射表刷新场景下分配5%的L2P表缓存空间。
3.根据权利要求1或2所述的支持固态硬盘多场景复用的L2P表缓存方法,其特征在于,所述方法还包括:
待场景下的功能完成后,释放之前在所述场景下已申请的L2P表缓存空间并刷新L2P表缓存空间使用情况记录。
4.根据权利要求3所述的支持固态硬盘多场景复用的L2P表缓存方法,其特征在于,在所述释放之前在所述场景下已申请的L2P表缓存空间并刷新L2P表缓存空间使用情况记录的步骤之后还包括:
校验在所述场景下是否全部释放了之前已申请的L2P表缓存空间;
若在所述场景下释放L2P缓存空间后仍有未被释放的L2P表缓存空间则进行异常处理,被释放的L2P表缓存空间可被用做L2P表的相关处理。
5.一种支持固态硬盘多场景复用的L2P表缓存装置,其特征在于,所述支持固态硬盘多场景复用的L2P表缓存装置包括:
接口调用模块,所述接口调用模块用于当触发用户数据垃圾回收、映射表垃圾回收、映射表刷新中任一项功能场景时,调用申请L2P表缓存空间接口;
申请模块,所述申请模块用于通过所述接口根据不同场景申请对应大小的L2P表缓存空间,被申请的L2P表缓存空间不可被用做L2P表的相关处理;
记录模块,所述记录模块用于记录在不同功能场景下申请的L2P表缓存数量;
执行模块,所述执行模块用于待L2P表缓存申请成功后,可使用对应已分配的L2P表缓存空间执行内存空间与NAND FLASH数据的读取以及刷新动作。
6.根据权利要求5所述的支持固态硬盘多场景复用的L2P表缓存装置,其特征在于,所述申请模块还用于:
在用户数据垃圾回收场景下分配50%的L2P表缓存空间;
在映射表垃圾回收场景下分配10%的L2P缓存空间;
在映射表刷新场景下分配5%的L2P表缓存空间。
7.根据权利要求5或6所述的支持固态硬盘多场景复用的L2P表缓存装置,其特征在于,所述装置还包括:
释放模块,所述释放模块用于待场景下的功能完成后,释放之前在所述场景下已申请的L2P表缓存空间并刷新L2P表缓存空间使用情况记录。
8.根据权利要求7所述的支持固态硬盘多场景复用的L2P表缓存装置,其特征在于,所述装置还包括校验模块,所述校验模块用于:
校验在所述场景下是否全部释放了之前已申请的L2P表缓存空间;
若在所述场景下释放L2P缓存空间后仍有未被释放的L2P表缓存空间则进行异常处理,被释放的L2P表缓存空间可被用做L2P表的相关处理。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
本发明涉及固态硬盘技术领域,特别是涉及一种支持固态硬盘多场景复用的L2P表缓存方法、装置、计算机设备和存储介质。
随着SSD(Solid State Drive,固态硬盘)越来越多被广泛应用于各种场合,DRAM-less类型SSD的需求也越来越大,用户在入门级或者特定系统中使用的SSD要求具备的DRAM容量越小越好,甚至不包括DRAM。
然而,随着SSD减小DRAM或者不配置DRAM,SSD固件运行时可使用的整体系统内存受限,因此可为各功能分配使用的系统内存也非常有限,这种情况会导致某些场景下SSD的性能降低,从而影响了DRAM-less类型SSD的性价比。
基于此,有必要针对上述技术问题,提供一种支持固态硬盘多场景复用的L2P表缓存方法、装置、计算机设备和存储介质。
一种支持固态硬盘多场景复用的L2P表缓存方法,所述方法包括:
当触发用户数据垃圾回收、映射表垃圾回收、映射表刷新中任一项功能场景时,调用申请L2P表缓存空间接口;
通过所述接口根据不同场景申请对应大小的L2P表缓存空间,被申请的L2P表缓存空间不可被用做L2P表的相关处理;
记录在不同功能场景下申请的L2P表缓存数量;
待L2P表缓存申请成功后,可使用对应已分配的L2P表缓存空间执行内存空间与NAND FLASH数据的读取以及刷新动作。
在其中一个实施例中,所述通过所述接口根据不同场景申请对应大小的L2P表缓存空间的步骤还包括:
在用户数据垃圾回收场景下分配50%的L2P表缓存空间;
在映射表垃圾回收场景下分配10%的L2P缓存空间;
在映射表刷新场景下分配5%的L2P表缓存空间。
在其中一个实施例中,所述方法还包括:
待场景下的功能完成后,释放之前在所述场景下已申请的L2P表缓存空间并刷新L2P表缓存空间使用情况记录。
在其中一个实施例中,在所述释放之前在所述场景下已申请的L2P表缓存空间并刷新L2P表缓存空间使用情况记录的步骤之后还包括:
校验在所述场景下是否全部释放了之前已申请的L2P表缓存空间;
若在所述场景下释放L2P缓存空间后仍有未被释放的L2P表缓存空间则进行异常处理,被释放的L2P表缓存空间可被用做L2P表的相关处理。
一种支持固态硬盘多场景复用的L2P表缓存装置,所述支持固态硬盘多场景复用的L2P表缓存装置包括:
接口调用模块,所述接口调用模块用于当触发用户数据垃圾回收、映射表垃圾回收、映射表刷新中任一项功能场景时,调用申请L2P表缓存空间接口;
申请模块,所述申请模块用于通过所述接口根据不同场景申请对应大小的L2P表缓存空间,被申请的L2P表缓存空间不可被用做L2P表的相关处理;
记录模块,所述记录模块用于记录在不同功能场景下申请的L2P表缓存数量;
执行模块,所述执行模块用于待L2P表缓存申请成功后,可使用对应已分配的L2P表缓存空间执行内存空间与NAND FLASH数据的读取以及刷新动作。
在其中一个实施例中,所述申请模块还用于:
在用户数据垃圾回收场景下分配50%的L2P表缓存空间;
在映射表垃圾回收场景下分配10%的L2P缓存空间;
在映射表刷新场景下分配5%的L2P表缓存空间。
在其中一个实施例中,所述装置还包括:
释放模块,所述释放模块用于待场景下的功能完成后,释放之前在所述场景下已申请的L2P表缓存空间并刷新L2P表缓存空间使用情况记录。
在其中一个实施例中,所述装置还包括校验模块,所述校验模块用于:
校验在所述场景下是否全部释放了之前已申请的L2P表缓存空间;
若在所述场景下释放L2P缓存空间后仍有未被释放的L2P表缓存空间则进行异常处理,被释放的L2P表缓存空间可被用做L2P表的相关处理。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。
上述支持固态硬盘多场景复用的L2P表缓存方法、装置、计算机设备和存储介质针对SSD运行中用户数据垃圾回收、映射表垃圾回收、映射表刷新功能,为每个功能分配一定数量的可复用L2P表缓存空间,使得这些功能在运行时可使用的内存空间变大,从而降低系统内存对于功能的限制,有效地提高了在对应场景下的处理性能。
图1为一个实施例中支持固态硬盘多场景复用的L2P表缓存方法的流程示意图;
图2为另一个实施例中支持固态硬盘多场景复用的L2P表缓存方法的流程示意图;
图3为再一个实施例中支持固态硬盘多场景复用的L2P表缓存方法的流程示意图;
图4为一个实施例中支持固态硬盘多场景复用的L2P表缓存方法的应用环境图;
图5为一个实施例中支持固态硬盘多场景复用的L2P表缓存装置的结构框图;
图6为另一个实施例中支持固态硬盘多场景复用的L2P表缓存装置的结构框图;
图7为再一个实施例中支持固态硬盘多场景复用的L2P表缓存装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
目前,随着SSD减小DRAM或者不配置DRAM,SSD固件运行时可使用的整体系统内存受限,因此可为各功能分配使用的系统内存也非常有限,这种情况会导致某些场景下SSD的性能降低,从而影响了DRAM-less类型SSD的性价比。
基于此,本发明提出了一种支持固态硬盘多场景复用的L2P表缓存方法,旨在可以提升DRAM-less类型SSD的性能。
在一个实施例中,如图1所示,提供了一种支持固态硬盘多场景复用的L2P表缓存方法,该方法包括:
步骤102,当触发用户数据垃圾回收、映射表垃圾回收、映射表刷新中任一项功能场景时,调用申请L2P表缓存空间接口;
步骤104,通过接口根据不同场景申请对应大小的L2P表缓存空间,被申请的L2P表缓存空间不可被用做L2P表的相关处理;
步骤106,记录在不同功能场景下申请的L2P表缓存数量;
步骤108,待L2P表缓存申请成功后,可使用对应已分配的L2P表缓存空间执行内存空间与NAND FLASH数据的读取以及刷新动作。
在本实施例中,提供了一种支持固态硬盘多场景复用的L2P表缓存方法,该方法可应用于如图4所示的应用环境中,针对SSD运行中GC(用户数据垃圾回收)、MP GC(映射表垃圾回收)、MP FLUSH(映射表刷新)功能,为每个功能分配一定数量的可复用L2P表缓存空间,使得这些功能在运行时可使用的内存空间变大,从而降低系统内存对于功能的限制,提高处理性能。
具体地,参考图4所示,SSD固件为GC、MP GC、MP FLUSH功能分配了运行的系统内存,L2P表缓存管理功能提供了申请L2P表缓存空间的接口及L2P表缓存空间使用情况统计表。
当触发GC/MP GC/MP FLUSH中某一功能时,该功能首先调用申请L2P表缓存空间接口,申请对应大小的L2P表缓存空间,被申请的L2P表缓存空间不可被用做L2P表的相关处理。申请成功后该功能可使用的内存空间为系统分配内存+申请的L2P表缓存空间,然后执行内存空间与NAND FLASH数据的读取、FLUSH动作。因为此时可用的内存空间增加,所以该功能可并发处理的数据量变大,从而提升了功能执行时的性能,同时L2P表缓存管理功能记录下某个功能申请的L2P表缓存数量。
在本实施例中,针对SSD运行中用户数据垃圾回收、映射表垃圾回收、映射表刷新功能,为每个功能分配一定数量的可复用L2P表缓存空间,使得这些功能在运行时可使用的内存空间变大,从而降低系统内存对于功能的限制,有效地提高了在对应场景下的处理性能。
在一个实施例中,如图2所示,提供了一种支持固态硬盘多场景复用的L2P表缓存方法,该方法中通过接口根据不同场景申请对应大小的L2P表缓存空间的步骤还包括:
步骤202,在用户数据垃圾回收场景下分配50%的L2P表缓存空间;
步骤204,在映射表垃圾回收场景下分配10%的L2P缓存空间;
步骤206,在映射表刷新场景下分配5%的L2P表缓存空间。
在一个实施例中,如图3所示,提供了一种支持固态硬盘多场景复用的L2P表缓存方法,该方法还包括:
步骤302,待场景下的功能完成后,释放之前在场景下已申请的L2P表缓存空间并刷新L2P表缓存空间使用情况记录;
步骤304,校验在场景下是否全部释放了之前已申请的L2P表缓存空间;
步骤306,若在场景下释放L2P缓存空间后仍有未被释放的L2P表缓存空间则进行异常处理,被释放的L2P表缓存空间可被用做L2P表的相关处理。
在一个实施例中,结合参考图4所示,SSD运行过程中,根据不同场景对于内存的需求分配对应的L2P表缓存空间大小。
具体地,GC场景分配50%的L2P表缓存空间,MP GC场景分配10%的L2P缓存空间,MP FLUSH分配5%的L2P表缓存空间。当触发如上场景时,由该功能申请L2P表缓存空间的分配,系统优先分配空闲的L2P表缓存单元,被分配出去的空间不能再被用做L2P表缓存,同时系统需要记录哪个功能分配了多少L2P表缓存空间,以便于L2P表缓存空间的管理。
当该功能完成后,需要释放之前申请的L2P表缓存空间(此后这一部分空间可被用做L2P表缓存),同时系统刷新L2P表缓存空间使用情况记录,并且校验该功能是否全部释放了申请的L2P表缓存空间。
此外,如果该功能释放L2P缓存空间后仍有未被释放的L2P表缓存空间(也就是该功能申请的L2P表缓存数量不为0),则进行异常处理,例如可以强制释放未释放的L2P表缓存空间。被释放的L2P表缓存空间后续可被用做L2P表的相关处理。
在本实施例中,某个功能由原来可使用的内存空间增加了新增分配的L2P表缓存空间,从而解决了内存空间受限对于该功能执行性能的影响,整体提高了DRAM-less类型SSD运行的性能指标。
应该理解的是,虽然图1-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种支持固态硬盘多场景复用的L2P表缓存装置500,该装置包括:
接口调用模块501,所述接口调用模块用于当触发用户数据垃圾回收、映射表垃圾回收、映射表刷新中任一项功能场景时,调用申请L2P表缓存空间接口;
申请模块502,所述申请模块用于通过所述接口根据不同场景申请对应大小的L2P表缓存空间,被申请的L2P表缓存空间不可被用做L2P表的相关处理;
记录模块503,所述记录模块用于记录在不同功能场景下申请的L2P表缓存数量;
执行模块504,所述执行模块用于待L2P表缓存申请成功后,可使用对应已分配的L2P表缓存空间执行内存空间与NAND FLASH数据的读取以及刷新动作。
在一个实施例中,申请模块502还用于:
在用户数据垃圾回收场景下分配50%的L2P表缓存空间;
在映射表垃圾回收场景下分配10%的L2P缓存空间;
在映射表刷新场景下分配5%的L2P表缓存空间。
在一个实施例中,如图6所示,提供了一种支持固态硬盘多场景复用的L2P表缓存装置500,该装置还包括:
释放模块505,所述释放模块用于待场景下的功能完成后,释放之前在所述场景下已申请的L2P表缓存空间并刷新L2P表缓存空间使用情况记录。
在一个实施例中,如图7所示,提供了一种支持固态硬盘多场景复用的L2P表缓存装置500,该装置还包括校验模块506,所述校验模块用于:
校验在所述场景下是否全部释放了之前已申请的L2P表缓存空间;
若在所述场景下释放L2P缓存空间后仍有未被释放的L2P表缓存空间则进行异常处理,被释放的L2P表缓存空间可被用做L2P表的相关处理。
关于支持固态硬盘多场景复用的L2P表缓存装置的具体限定可以参见上文中对于支持固态硬盘多场景复用的L2P表缓存方法的限定,在此不再赘述。
在一个实施例中,提供了一种计算机设备,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器以及网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种支持固态硬盘多场景复用的L2P表缓存方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以上各个方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上各个方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一种非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
本文发布于:2023-04-13 12:35:32,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/4/85871.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |