掌桥专利:专业的专利平台
掌桥专利
首页

超级块管理方法和装置

文献发布时间:2023-06-19 18:35:48


超级块管理方法和装置

技术领域

本申请涉及信息技术领域,尤其涉及一种超级块管理方法和装置。

背景技术

当前,计算机设备,例如终端设备,的通用架构包含文件系统(例如,闪存友好文件系统(Flash-Friendly File System,F2FS)等)和通用存储器(例如,通用闪存存储(Universal Flash Storage,UFS)和嵌入式多媒体存储卡(Embedded Multi-Media Card,EMMC)等)。文件系统和存储器完全独立运转,不存在任何的耦合。文件系统用于管理逻辑地址空间,存储器用于存储应用层数据。

在当前的以闪存Flash为基础的存储器中,由于Flash页编程块擦除的物理限制,需要通过垃圾回收(Garbage Collection,GC)算法回收超级块中的有效数据,以释放出超级块承载后续数据的写入。目前,业界已经提出了一些将与存储器和文件系统分别对应的两层GC拉通成一层GC的新型架构,如统一存储、分区命名空间(Zoned Name Spaces,ZNS)等,以减小两层GC所导致的写放大。

然而,现有架构中存储器侧的关键请求的阻塞概率高;此外,随着未来存储器工艺的提升,在上述一层GC的架构中,存储器中单个晶粒die上物理块的容量会明显增加,因而超级块(Super Block)的容量也会显著增加,但过大的超级块会增加GC负担,严重影响存储器的性能。

发明内容

本申请实施例提供了一种超级块管理方法和装置,可以通过动态配置超级块的大小来减小关键请求阻塞概率,并降低过大的超级块对存储性能影响,以提升整机性能。

第一方面,本申请提供了一种超级块管理方法,该方法包括:获取存储器的参数和目标数据的类型;其中,所述目标数据为待写入所述存储器中的数据;基于所述目标数据的类型和/或所述参数配置文件系统中节的容量;其中,所述节为所述文件系统中逻辑地址空间的管理单元,配置后的所述节的容量与所述存储器中超级块的容量相匹配;基于所述配置后的所述节管理所述存储器对应的逻辑地址空间。

其中,目标数据的类型可以分为热数据、温数据和冷数据。节为文件系统管理的逻辑地址空间的单元。

可选的,上述实施例可以通过在处理器上运行文件系统来实现。

从技术效果上看,相比于现有技术中固定的节的容量而言,本申请实施例可以基于不同场景(对应不同的目标数据的类型和/或存储器的参数)对节的容量进行动态调整,由于节的容量与存储器中超级块容量相匹配,因而在动态配置节的容量时,也在同步调整存储器中超级块的容量,以适应不同场景的需求,从而提升整机性能。例如,随着未来制造工艺的提升,采用现有技术管理超级块时超级块的容量不断增加,在存储器容量一定的条件下,空闲超级块的数量会不断减小。而本申请实施例可以通过减小节的容量来同步减小存储器中超级块的容量,从而增加存储器中冗余块(即冗余空间(Over Provisioning,OP)中的超级块)的数量,进而提升整机性能。

在一种可行的实施方式中,所述存储器包括至少一个晶粒Die,所述至少一个Die中的每个Die包括至少一个物理块;所述超级块为所述存储器中的管理单元,且所述超级块包括至少一个所述物理块,所述至少一个所述物理块中的每个所述物理块分别位于不同的所述Die上。

应当理解,节的容量等于存储器中超级块的容量,超级块包括至少一个物理块,因而节的容量在存储器中对应至少一个物理块,即节的容量等于其在存储器中对应物理块的数量和单个物理块的容量的乘积。

其中,Die和Die上的物理块为存储器上的硬件结构,超级块为存储器上的逻辑结构。

在一种可行的实施方式中,所述参数包括所述存储器中空闲超级块的数量和所述Die的数量;当所述空闲超级块的数量小于或等于预设数量时,所述配置后的所述节的容量在所述存储器中对应物理块的数量小于所述Die的数量。

从技术效果上看,当存储器中空闲超级块数量小于或等于预设数量时,会严重影响存储器中数据的读写过程,本申请实施例可以动态配置节的容量,例如通过减小节的容量,使节的容量在存储器中对应物理块的数量小于Die的数量,即同步减小存储器中超级块的容量,以增加存储器中冗余块的数量,提升整机性能。

在一种可行的实施方式中,所述参数包括所述存储器中空闲超级块的数量和所述Die的数量;当所述空闲超级块的数量大于预设数量时,所述配置后的所述节的容量在所述存储器中对应物理块的数量小于或等于所述Die的数量。

可选的,当目标数据类型为热数据时,节的容量在存储器中对应物理块的数量等于Die的数量;当目标数据类型为温数据或冷数据时,节的容量在存储器中对应物理块的数量小于Die的数量。

从技术效果上看,现有技术中,关键请求(即热数据的读写请求)和非关键请求(即温数据或冷数据的读写请求)在存储器中对应的超级块的大小相同,即包含的物理块数量都等于Die的数量,因而在关键请求被插入非关键请求之前进行处理时,两个请求较大概率会落入同一个Die上,造成关键请求阻塞。而在本申请实施例中,对于非关键请求,可以配置较小的节的容量,即存储器中超级块包含物理块数量小于Die的数量;对于关键请求,可以配置较大的节的容量,即存储器中超级块包含物理块数量等于Die的数量。因而,在关键请求被插入非关键请求之前进行处理时,由于两个请求在存储器中对应超级块包含的物理块数量不同,此时两个请求落入同一个Die上的概率较小,即本申请实施例可以降低关键请求被阻塞的概率。

在一种可行的实施方式中,所述基于配置后的所述节管理所述存储器对应的逻辑地址空间,包括:从所述存储器对应的逻辑地址空间中确定E个所述配置后的所述节;其中,E个所述配置后的所述节分别对应所述存储器中的E个所述超级块;指示所述处理器将E个所述超级块中的数据回收到F个空闲的所述超级块中;其中,所述E大于所述F,E和F为正整数。

从技术效果上看,在文件系统配置了节的容量,存储器根据节的容量执行GC过程中:当文件系统配置的节的容量对应物理块数量小于Die的数量时,相比于现有技术中节的容量对应物理块数量等于Die的数量而言,在释放相同数量空闲超级块时,本申请实施例可以通过减小存储器中超级块的容量来减少有效数据的搬运次数;或者,在搬运相同数量的有效数据时,本申请实施例由于超级块容量较小,因而可以释放出更多数量的超级块,即提升GC过程冗余块的释放效率,进而提升整机性能。

在一种可行的实施方式中,所述基于配置后的所述节管理所述存储器对应的逻辑地址空间,包括:从所述存储器对应的逻辑地址空间中确定K个所述配置后的所述节;其中,K个所述配置后的所述节分别对应所述存储器中的K个所述超级块;指示所述存储器将所述目标数据写入K个所述超级块中;其中,所述K为正整数。

从技术效果上看,在文件系统配置了节的容量,存储器根据节的容量执行目标数据写入过程:当目标数据写入为被插入的关键请求时,由上述实施例可以知,本申请实施例可以降低目标数据写入时被阻塞的概率。

第二方面,本申请提供了一种超级块管理装置,该装置包括:获取单元,用于获取存储器的参数和目标数据的类型;其中,所述目标数据为待写入所述存储器中的数据;配置单元,用于基于所述目标数据的类型和/或所述参数配置文件系统中节的容量;其中,所述节为所述文件系统中逻辑地址空间的管理单元,配置后的所述节的容量与所述存储器中超级块的容量相匹配;管理单元,用于基于所述配置后的所述节管理所述存储器对应的逻辑地址空间。

在一种可行的实施方式中,所述存储器包括至少一个晶粒Die,所述至少一个Die中的每个Die包括至少一个物理块;所述超级块为所述存储器中的管理单元,且所述超级块包括至少一个所述物理块,所述至少一个所述物理块中的每个所述物理块分别位于不同的所述Die上。

在一种可行的实施方式中,所述参数包括所述存储器中空闲超级块的数量和所述Die的数量;当所述空闲超级块的数量小于或等于预设数量时,所述配置后的所述节的容量在所述存储器中对应物理块的数量小于所述Die的数量。

在一种可行的实施方式中,所述参数包括所述存储器中空闲超级块的数量和所述Die的数量;当所述空闲超级块的数量大于预设数量时,所述配置后的所述节的容量在所述存储器中对应物理块的数量小于或等于所述Die的数量。

在一种可行的实施方式中,所述管理单元具体用于:从所述存储器对应的逻辑地址空间中确定E个所述配置后的所述节;其中,E个所述配置后的所述节分别对应所述存储器中的E个所述超级块;指示所述处理器将E个所述超级块中的数据回收到F个空闲的所述超级块中;其中,所述E大于所述F,E和F为正整数。

在一种可行的实施方式中,所述管理单元具体用于:从所述存储器对应的逻辑地址空间中确定K个所述配置后的所述节;其中,K个所述配置后的所述节分别对应所述存储器中的K个所述超级块;指示所述存储器将所述目标数据写入K个所述超级块中;其中,所述K为正整数。

第三方面,本申请提供了一种计算机设备,所述计算机设备包括处理器和存储器;所述处理器,用于:获取所述存储器的参数和目标数据的类型;其中,所述目标数据为待写入所述存储器中的数据;基于所述目标数据的类型和/或所述参数配置文件系统中节的容量;其中,所述节为所述文件系统中逻辑地址空间的管理单元,所述节的容量与配置后的所述存储器中超级块的容量相匹配;基于所述配置后的所述节管理所述存储器对应的逻辑地址空间。

在一种可行的实施方式中,所述存储器包括至少一个晶粒Die,所述至少一个Die中的每个Die包括至少一个物理块;所述超级块为所述存储器中的管理单元,且所述超级块包括至少一个所述物理块,所述至少一个所述物理块中的每个所述物理块分别位于不同的所述Die上。

在一种可行的实施方式中,所述参数包括所述存储器中空闲超级块的数量和所述Die的数量;当所述空闲超级块的数量小于或等于预设数量时,所述节的容量在所述存储器中对应物理块的数量小于所述Die的数量。

在一种可行的实施方式中,所述参数包括所述存储器中空闲超级块的数量和所述Die的数量;当所述空闲超级块的数量大于预设数量时,所述配置后的所述节的容量在所述存储器中对应物理块的数量小于或等于所述Die的数量。

在一种可行的实施方式中,在所述基于配置后的所述节管理所述存储器对应的逻辑地址空间的方面,所述处理器具体用于:从所述存储器对应的逻辑地址空间中确定E个所述配置后的所述节;其中,E个所述配置后的所述节分别对应所述存储器中的E个所述超级块;所述存储器,用于:将E个所述超级块中的数据回收到F个空闲的所述超级块中;其中,所述E大于所述F,E和F为正整数。

在一种可行的实施方式中,在所述基于配置后的所述节管理所述存储器对应的逻辑地址空间的方面,所述处理器具体用于:从所述存储器对应的逻辑地址空间中确定K个所述配置后的所述节;其中,K个所述配置后的所述节分别对应所述存储器中的K个所述超级块;所述存储器,用于:将所述目标数据写入K个所述超级块中;其中,所述K为正整数。

第四方面,本申请提供了一种芯片系统,所述芯片系统包括至少一个处理器,存储器和接口电路,所述存储器、所述接口电路和所述至少一个处理器通过线路互联,所述至少一个存储器中存储有指令;所述指令被所述处理器执行时,上述第一方面中任一所述的方法得以实现。

第五方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序指令,当所述程序指令在一个或多个处理器上运行时,以实现上述第一方面中任一项所述的方法。

第六方面,本申请提供了一种计算机程序产品,当所述计算机程序产品在计算机设备上运行时,上述第一方面中任一项所述的方法得以实现。

附图说明

以下对本申请实施例用到的附图进行介绍。

图1是现有技术中一种存储器的结构示意图;

图2是本申请实施例中一种系统架构的示意性框图;

图3是本申请实施例中一种超级块管理方法的流程示意图;

图4是本申请实施例中一种逻辑地址空间和存储器对应关系示意图;

图5为本申请实施例中一种请求的阻塞过程示意图;

图6是本申请实施例中一种垃圾回收GC的过程示意图;

图7是本申请实施例中另一种系统架构的示意性框图;

图8是本申请实施例中一种超级块管理装置结构示意图;

图9是本申请实施例中一种计算机设备的硬件结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例进行描述。本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

在本说明书中使用的术语“部件”、“模块”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在2个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一部件交互的二个部件的数据,例如通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。

下面结合本申请实施例中的附图对本申请实施例进行描述。

首先对本申请实施例中的相关术语进行解释:

(1)闪存Flash:也称为非易失性内存。可以多次写入擦除,并且在没有电流电压供应下也能长久保持数据。

(2)文件系统:操作系统中负责管理和存储文件信息的软件机构。文件系统的功能包括:管理和调度文件的存储空间,提供文件的逻辑结构、物理结构和存储方法;实现文件从标识到实际地址的映射,实现文件的控制操作和存取操作,实现文件信息的共享并提供可靠的文件保密和保护措施,提供文件的安全措施。

(3)GC算法:即垃圾回收(Garbage Collection,GC)算法,该算法用于将一个块中的有效页搬移到另外一个空闲块中,使得有效数据被转移后的空闲块来承载后续的写入。

(4)OP:即Over Provisioning,可称为冗余空间或预留空间。OP指存储器上用户不可操作的容量,其大小为存储器的实际容量减去用户可用容量。OP区域一般被用于优化操作,如GC等。OP块(或称为冗余块)即为冗余空间所包含的超级块,OP块数量越多,GC的负担越小。

(5)节:文件系统侧块管理单元,在闪存文件系统(Flash File System)中,文件系统侧的节和存储器中的超级块(Superblock)容量对应。在F2FS中,节为其包含的三种逻辑地址空间管理单元(zone、section和segment)中的section。

(6)超级块Super Block:存储器中的最小管理单元,为存储器中的一种逻辑结构划分。存储器以超级块为单位进行数据的读写和垃圾回收等操作。

请参见图1,图1为现有技术中一种存储器100的结构示意图。存储器100可以是随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)或闪存(Flash Memory)等存储器中的任意一种;其中,RAM包括静态随机存储器(Static RAM,SRAM)和动态随机存储器(Dynamic RAM,DRAM)等,ROM包括可擦除可编程ROM(ErasableProgrammable ROM,EPROM)和电可擦可编程只读存储器(Electrically ErasableProgrammable ROM,EEPROM)等。

如图1所示,存储器100中可以包含M个闪存晶粒Flash Die,每个Die为一个独立的并发单元,每个Die上可以包含N个物理块block。为了提升性能,通常从每个Die上取一个物理块组成一个超级块(图1中的超级块1和超级块N),组成一个超级块的所有物理块间可以并发,并以超级块作为存储器侧最小操作单元,后续运行过程中超级块大小维持不变。其中,M和N为正整数。

存储器100在处理请求时会维护一个队列,主机下发的请求按照顺序排到该队列中,其中高优先级的关键请求可以插队到低优先级的非关键请求的头部,随后按照先进先出的原则串行处理。

可选地,存储器100可以是手机等计算机设备上的通用闪存存储UFS或嵌入式多媒体存储卡EMMC等,本方案对此不限定。在统一存储和ZNS等架构中,可以将闪存转换层(Flash Translation Layer,FTL)下的GC算法和块管理算法等核心算法上移,交给内核进行管理,但整体FTL策略保持不变,在超级块组成上和原先保持一致。从而将存储器侧的GC和文件系统侧的GC拉通为一层GC。

然而,随着制造工艺的提升,未来闪存等存储器会朝着更大的密度演进,表现为堆叠层数的增加和单个存储单元存储容量的增加,从而使得单个物理块的容量也增加明显。目前存储器侧的超级块是由各个Die上的一个物理块组成,因此在未来单个物理块的容量增加时,单个超级块的容量也会显著增加,过大的超级块会增加GC过程中有效数据被重复写入的次数,即增加GC的负担,从而影响存储器的整体吞吐量;特别是在容量末期(空闲超级块的数量小于或等于预设数量),每个超级块存储了较多的有效数据,GC算法中数据搬移引入的额外开销会被进一步的放大。

同时,在存储器正在处理低优先级的非关键请求时,主机下发一个高优先级的关键请求,该高优先级的关键请求会排到低优先级的非关键请求队头,此时低优先级的非关键请求正在处理,这两个请求大概率会在同一个Die上,但单个Die在某个时刻只能处理一笔请求,高优先级的关键请求虽然排在低优先级的非关键请求前面,但是也必须等待低优先级的非关键请求处理完成后才能得到处理,因此便造成高优先级的关键请求的阻塞。

请参见图2,图2是本申请实施例中一种系统架构的示意性框图,用于描述计算机设备200的系统架构。如图2所示,计算机设备200的系统架构可以包括应用层210、操作系统220和设备层230。

可选地,该计算机设备200可以是手机、电脑、平板或可穿戴设备等,本申请对此不限定。

可选地,应用层210可以包括应用程序层211和应用程序框架层212。其中,应用程序层211可以包括一系列应用程序包。应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序(也可以称为应用)。应用程序框架层212为应用程序层的应用程序提供应用编程接口(Application Programming Interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。

可选地,操作系统220可以包括文件系统221、块层222和设备驱动223。其中,文件系统221用于管理和调度文件的存储空间,提供文件的逻辑结构、物理结构和存储方法。块层222块层是文件系统221访问设备层230的接口,用于连接文件系统221和设备驱动223。块层222可以分为两层:一个是bio层,另一个是request层。块层222用于封装/解封装相关请求。设备驱动223可以包含显示驱动、摄像头驱动、音频驱动和传感器驱动等。

可选地,设备层230可以包括存储器100。

在一些可行的实施方式中,程序的运行可以分为用户态和内核态。当程序运行于用户态时,处理器只能访问部分内存中的数据,且不允许访问外围设备,例如硬盘,网卡等。当程序运行于内核态时,处理器可以访问内存中的所有数据,包括外围设备,例如硬盘,网卡等。同时,处理器也可以将自己从一个程序切换到另一个程序。通常,应用层210中的应用程序运行于用户态,操作系统220运行于内核态。

在计算机设备200运行过程中,首先由应用层210发起读写请求;文件系统221确定读写请求对应数据在存储器100中的逻辑地址;块层222用于向设备驱动223分发读写请求;设备驱动223用于封装读写请求,并将封装后的读写请求和与该读写请求对应的逻辑地址发送到存储器100;存储器100将封装后的读写请求进行解封,并将读写请求对应的逻辑地址转化为存储器100中对应的物理地址;然后基于该读写请求向该物理地址中写入数据或读取出该物理地址中的数据。

请参见图3,图3是本申请实施例中一种超级块管理方法的流程示意图。如图3所示,方法300可包括步骤S310、S320和S330。

步骤S310:获取存储器的参数和目标数据的类型;其中,所述目标数据为待写入所述存储器中的数据。

步骤S320:基于所述目标数据的类型和/或所述参数配置所述文件系统中节的容量;其中,所述节为所述文件系统中逻辑地址空间的管理单元,配置后的所述节的容量与所述存储器中超级块的容量相匹配。

步骤S330:基于所述配置后的所述节的容量管理所述存储器对应的逻辑地址空间。

其中,目标数据的类型可以是冷数据(Cold data)、温数据(Warm data)或热数据(Hot data)中的任意一种,或其它数据类型分类方式中的任意一种数据类型。上述存储器可以是图1实施例中的存储器100。

其中,存储器的参数可以包括存储器中空闲超级块的数量和存储器上晶粒Die的数量(如图1中的存储器所示,Die的数量为M)。

可选的,上述步骤S310、S320和S330中的操作可以是通过处理器运行文件系统实现的。

上述文件系统可以是闪存文件系统(Flash File System)或其它可行的文件系统中的任意一种。其中,闪存文件系统可以包括闪存日志型文件系统第2版(JournalingFlashFileSystemVersion2,JFFS2)、YAFFS文件系统(Yet Another Flash File System,YAFFS)、闪存友好文件系统(Flash-Friendly File System,F2FS)等。

其中,不同的文件系统可以采用不同的层级管理单元来管理对应的逻辑地址空间。可选地,例如,在F2FS中,逻辑地址空间可以包含三种层级的管理单元:Zone、Section和Segment。其中,每个Zone可以包括至少一个Section,每个Section可以包括至少一个Segment。

具体地,请参见图4,图4为本申请实施例中一种逻辑地址空间和存储器对应关系示意图。如图4所示,在文件系统的逻辑地址空间布局中,共包括三种层级管理单元:区域Zone、节Section和段Segment。每个Zone包括N个section,每个section包括M个segment(即,section1包括segment 1-1…segment 1-M,section N包括:segment N-1…segmentN-M)。存储器中的基本管理单元为超级块。逻辑地址空间中section的容量与存储器中超级块的容量对应相同,即section 1与超级块1相匹配,sectionN与超级块N相匹配。其中,M和N为正整数。

应当理解,图4是以F2FS文件系统中的一个zone为例,来描述文件系统管理的逻辑地址空间与存储器的对应关系。不同的文件系统可以采用不同层级的管理单元来管理对应的逻辑地址空间,其中,节为每个文件系统所包含的一个管理单元,该管理单元的容量与存储器侧超级块的容量对应相同。此外,文件系统所管理的逻辑地址空间可以包括存储器对应的逻辑地址空间。

具体地,步骤S320中,基于所述目标数据的类型和/或所述参数配置所述文件系统中节的容量,可以包括两种情况:

(1)当存储器处于容量末期(即存储器中空闲超级块的数量小于或等于预设数量)时,基于存储器的参数配置文件系统中节的容量。

(2)当存储器未处于容量末期(即存储器中空闲超级块的数量大于预设数量)时,基于目标数据的类型和存储器的参数配置文件系统中节的容量。

具体地,在步骤S330中,基于配置后的所述节的容量管理所述存储器对应的逻辑地址空间,可以包括:

根据具体的应用场景(基于目标数据的类型和存储器的参数进行确定),配置文件系统中节的容量,以配置后的节的容量为单位对存储器所对应的逻辑地址空间进行划分。由于配置后的节的容量与存储器中超级块的容量相匹配,且存储器是以超级块为基本单元进行数据的读写等操作。因而本申请实施例即是通过动态配置文件系统中节的容量,来同步调整存储器中超级块的容量,并指示存储器以调整后的超级块为单位进行数据读写和垃圾回收GC等操作。

从技术效果上看,相比于现有技术中固定的节的容量而言,本申请实施例可以基于不同场景(对应不同的目标数据的类型和/或存储器的参数)对节的容量进行动态调整,由于节的容量与存储器中超级块容量相匹配,因而在动态配置节的容量时,也在同步调整存储器中超级块的容量,以适应不同场景的需求,从而提升整机性能。例如,随着未来制造工艺的提升,采用现有技术管理超级块时超级块的容量不断增加,在存储器容量一定的条件下,空闲超级块的数量会不断减小。而本申请实施例可以通过减小节的容量来同步减小存储器中超级块的容量,从而增加存储器中冗余块(即冗余空间(Over Provisioning,OP)中的超级块)的数量,进而提升整机性能。

在一种可行的实施方式中,所述存储器包括至少一个晶粒Die,所述至少一个Die中的每个Die包括至少一个物理块;所述存储器中的管理单元为超级块,且所述超级块包括至少一个所述物理块,所述至少一个所述物理块中的每个所述物理块分别位于不同的所述Die上。

应当理解,节的容量等于存储器中超级块的容量,超级块包括至少一个物理块,因而节的容量在存储器中对应至少一个物理块,即节的容量等于其在存储器中对应物理块的数量和单个物理块的容量的乘积。

具体地,如图1所示,存储器包括至少M个晶粒Die,每个Die上包括N个物理块Block。超级块为存储器中的基本管理单元,即存储器以超级块为单元进行数据的读写等操作。每个超级块对应的逻辑地址空间的大小与每个节Section对应的逻辑地址空间的大小相匹配,即保持一致。其中,每个超级块包括至少一个物理块,且该至少一个物理块分别位于不同的Die上。

在一种可行的实施方式中,所述参数包括所述存储器中空闲超级块的数量和所述Die的数量;当所述空闲超级块的数量小于或等于预设数量时,所述节的容量在所述存储器中对应物理块的数量小于所述Die的数量。

在一种可行的实施方式中,所述参数包括所述存储器中空闲超级块的数量和所述Die的数量;当所述空闲超级块的数量大于预设数量时,所述配置后的所述节的容量在所述存储器中对应物理块的数量小于或等于所述Die的数量。

其中,空闲超级块为不包含任何数据的超级块。空闲超级块可以位于用户可见的存储空间或冗余空间OP中。

其中,预设数量可以是依据具体场景进行设定的数值,本申请不限定。

具体地,上述基于目标数据的类型和/或参数配置所述文件系统中节的容量,可以分为两种情况:

(1)在存储器处于容量末期(即存储器中空闲超级块的数量小于或等于预设数量)时,基于存储器的参数(此处为Die的数量)配置文件系统中节的容量,使得配置后的节的容量在存储器中对应物理块的数量小于Die的数量。由于每个节对应的逻辑地址空间大小与存储器中超级块对应的逻辑地址空间的大小保持一致,因而存储器中超级块的容量与节的容量同步变化;即此时存储器中每个超级块包括的物理块的数量小于存储器中Die的数量。通过此种方式来增加存储器中冗余块的数量,减少GC回收过程中有效数据的搬运次数,从而提升计算机设备性能。

从技术效果上看,当存储器中空闲超级块数量小于或等于预设数量时,会严重影响存储器中数据的读写过程,本申请实施例可以动态配置节的容量,例如通过减小节的容量,使节的容量在存储器中对应物理块的数量小于Die的数量,即同步减小存储器中超级块的容量,以增加存储器中冗余块的数量,提升整机性能。

(2)在存储器未处于容量末期(即存储器中空闲超级块的数量大于预设数量)时,基于目标数据的类型和存储器的参数(此处为Die的数量)来配置节的容量。可选地,此种情况下的配置方式可以为:当目标数据的类型为热数据时(关键请求),配置节的容量,使得配置后的节的容量在存储器中对应物理块的数量等于Die的数量,即存储器中超级块包含的物理块的数量等于存储器中Die的数量。此种场景下,本申请可以通过同步提升节和超级块的容量,来满足热数据的性能要求;当目标数据的类型为温数据或冷数据时(非关键请求),配置节的容量,使得配置后的节的容量在存储器中对应物理块的数量小于Die的数量,即存储器中超级块包含的物理块的数量小于存储器中Die的数量。

从技术效果上看,对于此种性能需求较低的场景,可以配置较小的节的容量和超级块的容量,因而在存储器维护的请求队列中被插入关键请求时(即热数据的读写请求),由于关键请求和非关键请求在存储器上对应的物理块数量不同,此时,可以有效降低关键请求的阻塞几率,进一步提升数据读写性能。

下面将参照图5来描述请求的阻塞过程,图5为本申请实施例中一种请求的阻塞过程示意图。如图5所示,请求发生阻塞的场景可以是:存储器100当前正在处理的请求为非关键请求(对应冷数据或温数据),该非关键请求当前的处理过程位于第M个Die上的物理块N中。此时,若存储器维护的请求队列中插入一个优先级较高的关键请求(对应热数据),存储器会暂停该非关键请求的处理,并开始处理该关键请求,当该关键请求的处理也落入第M个Die上时,由于同一个Die在同一时刻只能处理一个请求,此时关键请求的处理会发生阻塞。

现有技术中,关键请求和非关键请求对应的超级块的大小相同,包含的物理块数量都等于Die的数量,因而在关键请求被插入非关键请求之前进行处理时,两个请求较大概率会落入同一个Die上。

然而,在本申请实施例中,由于文件系统可以动态配置节的容量,即关键请求和非关键请求对应不同容量的超级块。如图5所示,可选的,关键请求对应的超级块包括每个Die上的物理块1,共M个物理块;非关键请求对应的超级块包括第M-1个Die上的物理块N和第M个Die上的物理块N,共两个物理块。由于关键请求和非关键请求分别对应的超级块所包含的物理块数量不同,因而在关键请求被插入非关键请求之前进行处理时,两个请求落入同一个Die上的几率被大大降低,即本申请实施例可以有效降低关键请求阻塞的几率。

请参见表1,表1为不同的节的容量配比下,关键请求发生阻塞的概率表。存储器中Die的数量的4,此时文件系统配置的节的容量所对应的超级块,最多包括四个物理块,最少包括一个物理块。表1中横向为关键请求下,配置的节的容量对应的超级块包括的物理块数量;表1纵向为非关键请求下,配置的节的容量对应的超级块包括的物理块数量。

如表1所示,当关键请求下超级块中包括的物理块数量和非关键请求下超级块中包括的物理块数量相同时,关键请求发生阻塞的概率为100%。当关键请求下超级块中包括的物理块数量越多,非关键请求下超级块中包括的物理块数量越少时,关键请求发生阻塞的概率越小。

表1:不同的节的容量配比下,关键请求发生阻塞的概率表

在一种可行的实施方式中,上述基于配置后的所述节管理所述存储器对应的逻辑地址空间,包括:从所述存储器对应的逻辑地址空间中确定E个所述配置后的所述节;其中,E个所述配置后的所述节分别对应所述存储器中的E个所述超级块;指示所述处理器将E个所述超级块中的数据回收到F个空闲的所述超级块中;其中,所述E大于所述F,E和F为正整数。

在基于目标数据的类型和/或存储器的参数配置对文件系统中节的容量进行配置后,文件系统可以基于配置后的节的容量来管理存储器对应的逻辑地址空间,该管理过程可以包括:以配置后的节的容量为单位划分存储器对应的逻辑地址空间,并指示存储器以超级块为单位进行垃圾回收,以释放出存储器中的空闲超级块;其中,存储器中超级块的容量与配置后的节的容量相同。

具体地,在基于配置后的节的容量对存储器对应的逻辑地址空间进行划分后,可以从存储器对应的逻辑地址空间中确定E个配置后的节,将E个配置后的节分别对应的E个逻辑地址发送到存储器中。然后指示存储器将该E个逻辑地址分别映射为E个物理地址,该E个物理地址即对应存储器中的E个超级块。最后将E个超级块中的有效数据搬运到F个空闲的超级块中,从而将该E个超级块进行释放。其中,E大于F,且E和F都为正整数。

从技术效果上看,在文件系统配置了节的容量,存储器根据节的容量执行GC过程中:当文件系统配置的节的容量对应物理块数量小于Die的数量时,相比于现有技术中节的容量对应物理块数量等于Die的数量而言,在释放相同数量空闲超级块时,本申请实施例可以通过减小存储器中超级块的容量来减少有效数据的搬运次数;或者,在搬运相同数量的有效数据时,本申请实施例由于超级块容量较小,因而可以释放出更多数量的超级块,即提升GC过程冗余块的释放效率,进而提升整机性能。

请参见图6,图6为本申请实施例中一种垃圾回收GC的过程示意图。如图6所示,图6比较了在超级块大小不同情况下(即配置的节的容量不同),有效数据的搬运次数和空闲超级块释放效率的区别。

在垃圾回收过程GC_A中,配置后的节的容量对应的超级块包括9个存储单元。存储器中包含8个超级块,存储单元1-7中存放的数据为有效数据。当要求释放出两个空闲超级块时,存储器需要将存储单元1、存储单元2、存储单元3、存储单元4和存储单元5中的有效数据回收到一个空闲超级块中。当要求回收存储单元1-7中存放的有效数据时,可以释放出4个空闲的超级块。

在垃圾回收过程GC_B中,文件系统分配的节的容量对应超级块的大小为18个存储单元。存储器中包含4个超级块,存储单元1-7中存放的数据为有效数据。当要求释放出两个空闲超级块时,存储器需要将存储单元1-7中的有效数据回收到一个空闲超级块中。当要求回收存储单元1-7中存放的有效数据时,此时释放出2个空闲的超级块。

其中,每个存储单元的存储空间大小可由具体场景限定,本申请不限定。

综上,相比于超级块容量较大的情况,在超级块容量较小时,GC回收过程中释放出相同数量的空闲超级块需要搬运的有效数据较少,或者在搬运相同数量的有效数据时,释放出的空闲超级块的数量更多。容易理解,在本申请实施例中,对于容量末期或性能需求较低的读写场景下,文件系统可以为每个节配置较小的容量,即每个超级块对应较小的容量,从而有效提升计算机设备的整机性能。

在一种可行的实施方式中,上述基于配置后的所述节管理所述存储器对应的逻辑地址空间,包括:从所述存储器对应的逻辑地址空间中确定K个所述配置后的所述节;其中,K个所述配置后的所述节分别对应所述存储器中的K个所述超级块;指示所述存储器将所述目标数据写入K个所述超级块中;其中,所述K为正整数。

在基于目标数据的类型和/或存储器的参数配置对文件系统中节的容量进行配置后,基于配置后的节的容量来管理存储器对应的逻辑地址空间,该管理过程包括:以配置后的节的容量为单位划分存储器对应的逻辑地址空间,并指示存储器以超级块为单位进行数据读写;其中,存储器中超级块的容量与配置后的节的容量相同。

具体地,在基于配置后的节的容量对存储器对应的逻辑地址空间进行划分后,可以从存储器对应的逻辑地址空间中确定K个配置后的节,将目标数据和K个配置后的节分别对应的K个逻辑地址发送到存储器中。指示存储器将该K个逻辑地址分别映射为K个物理地址,该K个物理地址对应存储器中的K个超级块。最后将目标数据写入该K个超级块中;其中,K为正整数。

从技术效果上看,在文件系统配置了节的容量,存储器根据节的容量执行目标数据写入过程:当目标数据写入为被插入的关键请求时,由上述实施例可以知,本申请实施例可以降低目标数据写入时被阻塞的概率。

请参见图7,图7是本申请实施例中另一种系统架构的示意性框图。作为对图2所示系统架构的补充和细化。

下面以图7为例来详细描述数据读写等过程在计算机设备200上的用户态/应用层210、内核态/操作系统220和存储器100中的体现。首先应用程序层211发起第一读写请求,第一读写请求对应的数据为热数据。此时文件系统221接收第一读写请求,并获取存储器参数。文件系统基于存储器参数判断存储器是否处于容量末期,假如此时存储器未处于容量末期,文件系统221基于第一读写请求对应的数据类型配置节的容量。由于此时数据类型为热数据,文件系统可以配置较大的节的容量(如图7所示section1),以满足热数据的性能需求;此时,section1对应的逻辑地址空间在存储器中对应超级块1,超级块1包括M个物理块。块层222分发第一读写请求,设备驱动223对第一读写请求进行封装,并将第一读写请求和section1对应的逻辑地址发送给存储器100。存储器100接收第一读写请求和section1对应的逻辑地址,并对第一读写请求进行解封转,以及将section1对应的逻辑地址映射为相应的第一物理地址,该第一物理地址对应超级块1。存储器基于第一物理地址和第一读写请求,在超级块1上进行相应的数据读写操作。

应用程序层211还可以发起第二读写请求,第二读写请求对应的数据为冷数据。此时文件系统221接收第二读写请求,并获取存储器参数。文件系统基于存储器参数判断存储器是否处于容量末期,假如此时存储器处于容量末期,文件系统221可以配置较小的节的容量(如图7所示sectionN),以尽可能释放较多的空闲超级块来提升整机性能;此时,sectionN对应的逻辑地址空间在存储器中对应超级块N,超级块N包括2个物理块。块层222分发第二读写请求,设备驱动223对第二读写请求进行封装,并将第二读写请求和sectionN对应的逻辑地址发送给存储器100。存储器100接收第二读写请求和sectionN对应的逻辑地址,并对第二读写请求进行解封转,以及将sectionN对应的逻辑地址映射为相应的第二物理地址,该第二物理地址对应超级块N。存储器基于第二物理地址和第二读写请求,在超级块N上进行相应的数据读写操作。

请参见图8,图8为本申请实施例中一种超级块管理装置结构示意图。如图8所示,装置800包括:

获取单元801,用于获取存储器的参数和目标数据的类型;其中,所述目标数据为待写入所述存储器中的数据。

配置单元802,用于基于所述目标数据的类型和/或所述参数配置文件系统中节的容量;其中,所述节为所述文件系统中逻辑地址空间的管理单元,配置后的所述节的容量与所述存储器中超级块的容量相匹配。

管理单元803,用于基于所述配置后的所述节管理所述存储器对应的逻辑地址空间。

在一种可行的实施方式中,所述存储器包括至少一个晶粒Die,所述至少一个Die中的每个Die包括至少一个物理块;所述超级块为所述存储器中的管理单元,且所述超级块包括至少一个所述物理块,所述至少一个所述物理块中的每个所述物理块分别位于不同的所述Die上。

在一种可行的实施方式中,所述参数包括所述存储器中空闲超级块的数量和所述Die的数量;当所述空闲超级块的数量小于或等于预设数量时,所述配置后的所述节的容量在所述存储器中对应物理块的数量小于所述Die的数量。

在一种可行的实施方式中,所述参数包括所述存储器中空闲超级块的数量和所述Die的数量;当所述空闲超级块的数量大于预设数量时,所述配置后的所述节的容量在所述存储器中对应物理块的数量小于或等于所述Die的数量。

在一种可行的实施方式中,所述管理单元具体用于:从所述存储器对应的逻辑地址空间中确定E个所述配置后的所述节;其中,E个所述配置后的所述节分别对应所述存储器中的E个所述超级块;指示所述处理器将E个所述超级块中的数据回收到F个空闲的所述超级块中;其中,所述E大于所述F,E和F为正整数。

在一种可行的实施方式中,所述管理单元具体用于:从所述存储器对应的逻辑地址空间中确定K个所述配置后的所述节;其中,K个所述配置后的所述节分别对应所述存储器中的K个所述超级块;指示所述存储器将所述目标数据写入K个所述超级块中;其中,所述K为正整数。

应当理解,本申请实施例中超级块管理装置的具体运行过程可以参见前述方法实施例中的对应过程,此处不再赘述。

请参见图9,图9为本申请实施例中一种计算机设备的硬件结构示意图。设备900包括处理器901、存储器902、接口电路903和总线904。

所述处理器901,用于通过接口电路903获取所述存储器902的参数和目标数据的类型;其中,所述目标数据为待写入所述存储器中的数据;基于所述目标数据的类型和/或所述参数配置文件系统中节的容量;其中,所述节为所述文件系统中逻辑地址空间的管理单元,所述节的容量与配置后的所述存储器中超级块的容量相匹配;基于所述配置后的所述节管理所述存储器对应的逻辑地址空间。

其中,处理器901、存储器902和接口电路903通过总线904进行数据传输。

在一种可行的实施方式中,所述存储器包括至少一个晶粒Die,所述至少一个Die中的每个Die包括至少一个物理块;所述超级块为所述存储器中的管理单元,且所述超级块包括至少一个所述物理块,所述至少一个所述物理块中的每个所述物理块分别位于不同的所述Die上。

在一种可行的实施方式中,所述参数包括所述存储器中空闲超级块的数量和所述Die的数量;当所述空闲超级块的数量小于或等于预设数量时,所述节的容量在所述存储器中对应物理块的数量小于所述Die的数量。

在一种可行的实施方式中,所述参数包括所述存储器中空闲超级块的数量和所述Die的数量;当所述空闲超级块的数量大于预设数量时,所述配置后的所述节的容量在所述存储器中对应物理块的数量小于或等于所述Die的数量。

在一种可行的实施方式中,在所述基于配置后的所述节管理所述存储器对应的逻辑地址空间的方面,所述处理器具体用于:从所述存储器对应的逻辑地址空间中确定E个所述配置后的所述节;其中,E个所述配置后的所述节分别对应所述存储器中的E个所述超级块;所述存储器,用于:将E个所述超级块中的数据回收到F个空闲的所述超级块中;其中,所述E大于所述F,E和F为正整数。

在一种可行的实施方式中,在所述基于配置后的所述节管理所述存储器对应的逻辑地址空间的方面,所述处理器具体用于:从所述存储器对应的逻辑地址空间中确定K个所述配置后的所述节;其中,K个所述配置后的所述节分别对应所述存储器中的K个所述超级块;所述存储器,用于:将所述目标数据写入K个所述超级块中;其中,所述K为正整数。

应当理解,本申请实施例中计算机设备上处理器和存储器的具体运行过程可以参见前述方法实施例中的对应过程,此处不再赘述。

本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序指令,当所述程序指令在一个或多个处理器上运行时,以实现上述超级块管理方法中的部分或全部步骤。

本申请提供了一种计算机程序产品,当所述计算机程序产品在计算机设备上运行时,上述超级块管理方法中的部分或全部步骤得以实现。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可能可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

技术分类

06120115627886