CN116382574A - Buffer管理方法、装置及存储设备 - Google Patents

Buffer管理方法、装置及存储设备 Download PDF

Info

Publication number
CN116382574A
CN116382574A CN202310242802.2A CN202310242802A CN116382574A CN 116382574 A CN116382574 A CN 116382574A CN 202310242802 A CN202310242802 A CN 202310242802A CN 116382574 A CN116382574 A CN 116382574A
Authority
CN
China
Prior art keywords
buffer
task
target
buffer area
data
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.)
Pending
Application number
CN202310242802.2A
Other languages
English (en)
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.)
Hangzhou Haikang Storage Technology Co ltd
Original Assignee
Hangzhou Haikang Storage Technology 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 Hangzhou Haikang Storage Technology Co ltd filed Critical Hangzhou Haikang Storage Technology Co ltd
Priority to CN202310242802.2A priority Critical patent/CN116382574A/zh
Publication of CN116382574A publication Critical patent/CN116382574A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Memory System (AREA)

Abstract

本申请提供了Buffer管理方法、装置及存储设备。本申请通过对DRAMLess/DRAM Partial存储系统中Buffer空间合理划分至少一个Buffer区域,并基于各任务队列是否被标记的紧急状态标识、任务队列中的任务的优先级来为各任务分配所需的可用的目标Buffer块,保证了需要紧急分配Buffer的任务、或者高优先级的任务及时被分配Buffer,优化DRAMLess/DRAM Partial存储系统中Buffer的利用率,实现了Buffer的智能高效管理。进一步地,本实施例通过基于硬件实现的Buffer管理组件来实现Buffer的智能高效管理,这能减少CPU管理Buffer的开销。

Description

Buffer管理方法、装置及存储设备
技术领域
本申请涉及存储技术,特别涉及缓存(Buffer)管理方法、装置及存储设备。
背景技术
Buffer作为数据的缓存,对存储系统的正常高效运行至关重要。以固态硬盘(SSD:Solid State Disk)为例,Buffer主要用于存放映射表,如L2PTable、P2L Table、各类Bitmap Table等,这些映射表需要占用比较多的buffer空间,比如容量为4T的SSD,L2PTable的大小为4G。
为了节省成本,目前常采用无DRAM(DRAM Less)存储系统(比如固态硬盘SSD)、带DRAM(DRAM Partial)存储系统(比如固态硬盘SSD)。但是,对于DRAMLess/DRAM Partial存储系统,其Buffer的资源是非常有限的,不足以放置全部的映射表,影响正常业务的使用,也降低了存储性能。
发明内容
本申请提供了Buffer管理方法、装置及存储设备,以优化DRAMLess/DRAM Partial存储系统中Buffer的利用率。
本申请实施例提供了一种Buffer管理方法,该方法应用于DRAMLess/DRAMPartial存储系统中基于硬件实现的Buffer管理组件,Buffer管理组件连接在DRAMLess/DRAM Partial存储系统中的系统总线上;该方法包括:
在调度任务Task时,若发现至少一个任务队列被标记了紧急状态标识,则停止为未被标记紧急状态标识的任一任务队列中的任务分配Buffer,并将被标记了紧急状态标识的任务队列中的至少一个任务确定为待分配Buffer的目标任务,为所述目标任务分配所需的目标Buffer空间;所述目标Buffer空间包含目标Buffer区域中的至少一个Buffer块,所述目标Buffer区域为目标任务被执行时所需的Buffer区域;所述DRAMLess/DRAM Partial存储系统中指定Buffer空间被划分为多个Buffer区域,每一Buffer区域对应所述DRAMLess/DRAM Partial存储系统中固态硬盘SSD被划分的至少一个区zone,当所述目标Buffer区域对应的zone被确定为第一状态时,所述目标任务所处队列被标记紧急状态标识,所述第一状态用于指示将所述目标任务所处队列标记为紧急状态标识;或者
若发现任一任务队列均未被标记紧急状态标识,则依据各任务队列中任务的优先级,确定待分配Buffer的目标任务,为目标任务分配所需的目标Buffer空间;任一任务的优先级指示了该任务被分配Buffer块的顺序和数量。
一种Buffer管理装置,该装置应用于DRAMLess/DRAM Partial存储系统中基于硬件实现的Buffer管理组件,Buffer管理组件连接在DRAMLess/DRAM Partial存储系统中的系统总线上;该装置包括:
检查单元,用于在调度任务Task时,检查至少一个任务队列是否被标记了紧急状态标识;
调度分配单元,用于在至少一个任务队列被标记了紧急状态标识时,停止为未被标记紧急状态标识的任一任务队列中的任务分配Buffer,并将被标记了紧急状态标识的任务队列中的至少一个任务确定为待分配Buffer的目标任务,为所述目标任务分配所需的目标Buffer空间;所述目标Buffer空间包含目标Buffer区域中的至少一个Buffer块,所述目标Buffer区域为目标任务被执行时所需的Buffer区域;所述DRAMLess/DRAM Partial存储系统中指定Buffer空间被划分为多个Buffer区域,每一Buffer区域对应所述DRAMLess/DRAM Partial存储系统中固态硬盘SSD被划分的至少一个区zone,当所述目标Buffer区域对应的zone被确定为第一状态时,所述目标任务所处队列被标记紧急状态标识,所述第一状态用于指示将所述目标任务所处队列标记为紧急状态标识;或者
在发现任一任务队列均未被标记紧急状态标识时,依据各任务队列中任务的优先级,确定待分配Buffer的目标任务,为目标任务分配所需的目标Buffer空间;任一任务的优先级指示了该任务被分配Buffer块的顺序和数量。
一种存储设备,所述存储设备至少包括:基于硬件实现的Buffer管理组件、Buffer、系统总线;
其中,所述Buffer管理组件通过所述存储设备中的系统总线访问Buffer;所述Buffer管理组件,被用于执行本申请实施例提供的任一Buffer管理方法。
由以上技术方案可以看出,在本实施例中,通过对DRAMLess/DRAM Partial存储系统中Buffer空间合理划分至少一个Buffer区域,并基于各任务队列是否被标记的紧急状态标识、任务队列中的任务的优先级来为各任务分配所需的可用的目标Buffer块,保证了需要紧急分配Buffer的任务、或者高优先级的任务及时被分配Buffer,优化DRAMLess/DRAMPartial存储系统中Buffer的利用率,实现了Buffer的智能高效管理。
进一步地,本实施例通过基于硬件实现的Buffer管理组件来实现Buffer的智能高效管理,这能减少CPU管理Buffer的开销。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本申请实施例提供的方法流程图;
图2为本申请实施例提供的组网结构图;
图3为本申请实施例提供的递归查找映射关系示意图;
图4为本申请实施例提供的Buffer划分示意图;
图5为本申请实施例提供的Buffer分配流程图;
图6a为本申请实施例提供的数据下刷操作示意图;
图6b为本申请实施例提供的数据淘汰操作示意图;
图7为本申请实施例提供的装置的结构示意图;
图8为本申请实施例提供的硬盘设备结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。
DRAMLess/DRAM Partial存储系统中,Buffer资源较少,不足以放置全部的映射表,为避免影响正常业务的使用,提高存储系统的存储性能,本实施例提供了应用于存储系统比如DRAMLess/DRAM Partial存储系统的Buffer管理方法,其通过对存储系统比如DRAMLess/DRAM Partial存储系统中的Buffer的合理调度,可以避免影响正常业务的使用,提高存储系统的存储性能。下面进行举例描述:
参见图1,图1为本申请实施例提供的方法流程图。该方法应用于DRAMLess/DRAMPartial存储系统中新部署的基于硬件实现的Buffer管理组件。如图2所示,Buffer管理组件连接在DRAMLess/DRAM Partial存储系统中的系统总线上。可选地,这里的系统总线是指信息传输总线,比如为高级可扩展接口(AXI:Advanced eXtensible Interface)总线等。Buffer管理组件通过上述系统总线访问诸如双倍速率(DDR:Double Data Rate)同步动态随机存储器(SDRAM:Synchronous Dynamic Random Access Memory)、静态随机随机存储器(SRAM:Static Random-Access Memory)、主机内存缓冲器(HMB:Host Memory Buffer)等存储器对应的Buffer空间。
需要说明的是,对于DRAM Less存储系统而言,图2中的DDR不存在;对于DRAMPartial存储系统而言,图2中DDR容量小于一级L2P Table的大小。
在描述图1所示流程之前,先对本申请实施例提供的DRAMLess/DRAM Partial存储系统中指定Buffer空间如何被划分进行描述:
在本实施例中,DRAMLess/DRAM Partial存储系统中指定Buffer空间可为DRAMLess/DRAM Partial存储系统中的所有Buffer空间或者部分Buffer空间,本实施例并不具体限定。
作为一个实施例,可基于系统状态合理对DRAMLess/DRAM Partial存储系统中指定Buffer空间进行划分,以优化系统性能。这里,系统状态至少包括:
(1)各映射表(Table)的大小;
(2)各类存储器(DDR、SRAM、HMB)的大小
(3)相关任务的Buffer需求量,包括但不限于Table、IO;
基于上述系统状态,则作为一个实施例,可按照以下原则对对DRAMLess/DRAMPartial存储系统中指定Buffer空间进行划分:
①划分出第一类Buffer区域。第一类Buffer区域包括各低级映射表的专用Buffer区域。以映射表为L2P Table为例,则一级、二级L2P Table有专用的Buffer空间,该空间较小。通过划分出各低级映射表的专用Buffer区域,则可保证系统不会死锁,以使得在无法申请到共享Buffer区域时可使用专用Buffer区域。
②划分出第二类Buffer区域。第二类Buffer区域包括用户数据、以及各低级映射表共享的共享Buffer区域。以映射表为L2P Table为例,则User、一级、二级L2P Table共享上述共享Buffer区域。通过用户数据、以及各低级映射表共享的共享Buffer区域,可以提高Buffer资源的高效利用率。
③划分出第三类Buffer区域。第三类Buffer区域包括被用于存放各映射表类型下预设级别的映射表的高级Buffer区域;第三类Buffer区域中任一高级Buffer区域被预先存放了一映射表类型下预设级别的映射表,其中预设级别的映射表例如可以是级别最高的映射表,具体可以根据任务执行需求而定。比如,以映射表为L2P Table为例,则整张三级L2PTable放在其专用的高级Buffer区域中。通过第三类buffer区域,保证了递归查找映射关系(在执行任务时用到低级映射表,往往需要查询高一级的映射表)。图3举例示出了递归查找映射关系。
基于如上描述,则以容量为4TB的DRAM Less SSD为例,以及映射表为L2PTable为例,则DRAM Less SSD的总Buffer划分如图4所示。假若容量为4TB的DRAM Less SSD中SRAM大小为1MB,计算可知其一级、二级、三级L2P Table的大小分别为4GB、4MB、4KB。上电后,若主机没有可分配的缓存资源作为HMB,则可用的Buffer资源只有SRAM,而本实施例将各映射表类型下预设级别的映射表比如三级L2P Table提前全部存放在该SRAM中,可以保证后续即使有任务执行时可以直接基于该预设级别的映射表进行递归查找到对应的映射表以完成任务。
需要说明的是,在本实施例中,Buffer区域划分与处理器中的缓存划分有区别,处理器中涉及到L1、L2等多级缓存(cache),目的是兼顾速度和命中率;而本实施例中上述指定Buffer空间对应同一级缓存(SRAM/DRAM/HMB),其进行Buffer区域划分是为了提高Buffer利用效率和防止死锁。
在本实施例中,当系统状态发生变化(如HMB容量发生变化等需要更新buffer区域的事件),CPU向上述Buffer管理组件发送更新命令,Buffer管理组件会基于该更新命令实时更新Buffer区域,具体更新方式可参考上述的Buffer区域的划分,这里不再赘述。
需要说明的是,在本实施例中,DRAMLess/DRAM Partial存储系统中指定Buffer空间对应DRAMLess/DRAM Partial存储系统中固态硬盘SSD(具体是指SSD中的闪存Nand),对应地,DRAMLess/DRAM Partial存储系统中指定Buffer空间被划分的Buffer区域,其对应DRAMLess/DRAM Partial存储系统中固态硬盘SSD被划分的至少一个区zone。
基于如上描述,则如图1所示,该流程可包括以下步骤:
步骤101,在调度任务Task时,若发现至少一个任务队列被标记了紧急状态标识,则执行步骤102,若发现任一任务队列均未被标记紧急状态标识,则执行步骤103。
在本实施例中,任务队列是否被标记紧急状态标识,主要依赖于任务队列中任务所需的映射表或用户数据所处的zone的状态。可选地,在本实施例中,同一zone可对应至少一个任务队列,同一任务队列用于存放同一任务类型比如写、垃圾回收等的任务。
作为一个实施例,在具体实现时,当zone被确定为第一状态时,则该zone对应的第一任务队列被标记紧急状态标识,第一状态用于指示将第一任务所处队列标记为紧急状态标识,而该zone对应的其它任务队列原被标记的紧急状态标识被删除;而当zone被确定为第二状态时,则该zone对应的第二任务队列被标记紧急状态标识,第二状态用于指示将第二任务所处队列标记为紧急状态标识,而该zone对应的其它任务队列原被标记的紧急状态标识被删除。其它依次类推。
在本实施例中,zone被确定为什么状态,具体可基于该zone中可用空闲块的数量确定,比如,用于存放用户数据的zone(记为User zone)由于可用空闲块(free blk)严重不足,必须强制加快垃圾回收(GC)使free blk恢复,此时可将User zone的状态设置为用于表示垃圾回收需要紧急处理的状态,对应地,User zone对应的任务类型为垃圾回收的任务队列被标记为紧急状态标识,其它zone和其它任务都处于非紧急态,不允许为其分配Buffer区域,直至free blk恢复正常;而当free blk恢复正常,则User zone的状态可不再设置为用于表示垃圾回收需要紧急处理的状态,此时可将User zone对应的任务类型为垃圾回收的任务队列被标记的紧急状态标识删除。以上只是举例描述如何设置zone的状态,本实施例并不具体限定。
步骤102,停止为未被标记紧急状态标识的任一任务队列中的任务分配Buffer,并将被标记了紧急状态标识的任务队列中的至少一个任务确定为待分配Buffer的目标任务,为所述目标任务分配所需的目标Buffer空间。
本步骤102是在至少一个任务队列被标记了紧急状态标识的前提下执行的。一旦有任务队列被标记了紧急状态标识,则作为一个实施例,可需要将该被标记了紧急状态标识的任务队列中的所有任务确定为待分配Buffer的目标任务,然后为各目标任务分配所需的目标Buffer空间。为各目标任务分配所需的目标Buffer空间具体可参见下文描述,这里暂不赘述。
步骤103,依据各任务队列中任务的优先级,确定待分配Buffer的目标任务,为目标任务分配所需的目标Buffer空间。
本步骤103是在任一任务队列均未被标记紧急状态标识的前提下执行的。假若任一任务队列均未被标记紧急状态标识,则可根据相应的调度算法(如RR、WFQ等)计算得到不同任务的优先级。各任务的优先级决定各任务的Buffer分配数量和顺序。
在本实施例中,任一任务的优先级与该任务所需的zone、以及该任务的任务类型有关。其中,任务所需的zone被用于存放任务执行时需要的映射表或用户数据。任务所需的zone的优先级越高,则该任务的优先级越高。而任一zone的优先级依赖于该zone存放的映射表的级别。用于存放高级别映射表的zone的优先级高于用于存放低级别映射表的zone的优先级。另外,对应同一zone的不同任务类型被设置对应的优先级权重。
下面举例描述各任务的优先级:
比如,仅考虑每个zone内的主机写(HW:Host write)和垃圾回收(GW:GC write)任务,仍以L2P Table为例,以图4所示,三级L2P Table由于常驻在Buffer区域,没有Hostwrite,且下刷时为顺序覆盖,因此没有GC write,故主要考虑其它图4所示的zone0至zone2这三个zone,一种可选的方法如下:
①zone间:这3个zone存放的内容逐级映射的关系,这3个zone理论上的优先级为:zone2>zone1>zone0。
其中,zone2是指存放二级L2P Table的zone,zone1是指存放一级L2P Table的zone,zone0是指存放用户数据的zone。比如,为zone2、zone1、zone0设置的优先级比例为100:20:5,则表示同一时间段内为这3个zone分配的Buffer块的数量比例为100:20:5。
②zone内:同一zone内不同任务类型的任务对应的优先级权重可根据系统状态比如空闲块(free blk)等信息确定。比如,同一zone内Host write和GC write任务的优先级权重可以根据系统状态确定。假若上述3个zone中Host write和GC write的优先级权重分别为1:1、1:3和1:4,结合zone间的比例关系,最终得到的各任务的优先级比例即zone2内HW:zone2内GW:zone1内HW:zone1内GW:zone0内HW:zone0内GW为50:50:5:15:1:4。
最终,通过上述方式确定出各任务的优先级。需要说明的是,上述各zone的优先级、或者各任务类型的优先级权重,可基于实际需求动态调整,以优化系统性能。
作为一个实施例,上述依据各任务队列中任务的优先级,确定待分配Buffer的目标任务可包括:选择优先级最高的任务作为目标任务。
至此,完成图1所示流程。
通过图1所示流程可以看出,在本实施例中,通过对DRAMLess/DRAM Partial存储系统中Buffer空间合理划分至少一个Buffer区域,并基于各任务队列是否被标记的紧急状态标识、任务队列中的任务的优先级来为各任务分配所需的可用的目标Buffer块,保证了需要紧急分配Buffer的任务、或者高优先级的任务及时被分配Buffer,优化DRAMLess/DRAMPartial存储系统中Buffer的利用率,实现了Buffer的智能高效管理。
进一步地,本实施例通过基于硬件实现的Buffer管理组件来实现Buffer的智能高效管理,这能减少CPU管理Buffer的开销。
下面对上述步骤102或步骤103中,如何为目标任务分配所需的目标Buffer空间进行描述:
参见图5,图5为本申请实施例提供的Buffer分配流程图。在本实施例中,目标Buffer空间包含目标Buffer区域中的至少一个Buffer块。目标Buffer区域为目标任务对应的Buffer区域。作为一个实施例,目标任务对应的Buffer区域可为目标任务执行时所需的数据比如映射表等所在的zone对应的Buffer区域,本实施例并不具体限定。
如图5所示,该流程可包括以下步骤:
步骤501,若目标Buffer区域存在的可用Buffer块的数量满足目标任务所需的目标Buffer空间,则执行步骤502,若目标Buffer区域存在的可用Buffer块的数量不满足目标任务所需的目标Buffer空间,则执行步骤503。
步骤502,从目标Buffer区域中分配目标任务所需的目标Buffer空间。
步骤503,从共享Buffer区域中获得目标任务所需的目标Buffer空间,或者,从目标Buffer区域存在的可用Buffer块中获得目标任务所需的第一Buffer空间,从共享Buffer区域中获得所述目标任务所需的第二Buffer空间,第一Buffer空间和第二Buffer空间的和为目标Buffer空间。
在本实施例中,共享Buffer区域可被所有zone共享,以提高Buffer的使用效率。对于共享Buffer区域,同一时间可能有多个对应的任务申请Buffer,此时根据共享Buffer区域中可用Buffer块的数量,然后依据各zone内所有任务的优先级,确定各任务的Buffer分配顺序(比如优先为优先级最高的任务分配Buffer,依次类推等)。之后,基于各任务的Buffer分配顺序和各任务的优先级指示的各任务被分配Buffer块的数量,从共享Buffer区域中为各任务分配所需的Buffer。
至此,完成图5所示流程。
通过图5所示流程实现了为目标任务分配所需的目标Buffer空间。
在本实施例中,为提高系统性能、保证系统数据安全,需要采用合理的Buffer下刷。以防止异常掉电丢失数据。
比如,高级映射表一般被访问的可能性更高,优先保留在Buffer区域中,提升命中率。同时,dirtyBuffer区域存放的映射表包含了更多的最新的间接映射关系,为了防止异常掉电丢失数据,需要更频繁地下刷到硬盘比如Nand中,以使得在发生异常掉电时,优先下刷高级映射表。
在具体实现时,可对存放脏dirty数据的dirty Buffer区域执行数据下刷操作,以基于数据下刷操作将dirty Buffer区域中的dirty数据下刷至对应的硬盘(比如Nand);dirty数据是指dirty Buffer区域中发生了更新的数据比如发生了更新的映射表。具体地,对存放脏dirty数据的dirty Buffer区域执行数据下刷操作包括:依据Buffer链表中dirtyBuffer区域的表头Header和偏移量offset定位对应的dirty Buffer区域,基于定位出的dirty Buffer区域中数据信息确定该dirty Buffer区域的优先级;数据信息至少包括:数据存在的时间、更新频率;依据各dirty Buffer区域的优先级确定需要执行数据下刷操作的目标dirty Buffer区域(比如优先级最高的dirty Buffer区域),对目标dirty Buffer区域执行数据下刷操作。这可以实现在合理的时间将dirty Buffer区域中的数据下刷,提升系统可用Buffer数量,并让数据及时落盘,防止掉电发生数据丢失。图6a举例示出了数据下刷操作。
另外,在本实施例中,还可基于带权重的淘汰算法比如LRU算法,对一些Buffer区域中的数据进行淘汰或删除。比如,对目标clean Buffer区域执行数据淘汰操作,以基于所述数据淘汰操作将目标clean Buffer区域中的clean数据删除;clean数据是指设定时间段内未发生更新的数据,目标clean Buffer区域是指淘汰优先级满足设定优先级要求的Buffer区域。
具体地,对目标clean Buffer区域执行数据淘汰操作包括:依据Buffer链表中clean Buffer区域的表头Header和偏移量offset,定位对应的clean Buffer区域,基于该定位出的clean Buffer区域中数据信息确定该clean Buffer区域的优先级;数据信息至少包括:数据存在的时间、更新频率;依据各clean Buffer区域的优先级确定需要执行数据淘汰操作的目标clean Buffer区域,对目标clean Buffer区域执行数据淘汰操作。这可以实现基于不同的数据在将来被访问的可能性不同而淘汰存有访问概率最低的数据的,可提升系统性能。图6b举例示出了数据淘汰操作。
在本实施例中,会针对每一zone对应的Buffer区域中的数据设置淘汰优先级权重(老化程度),比如,存放用户数据的zone(简称User zone)对应的Buffer区域中数据老化程度为20,存放一级Table的zone(简称一级Table zone)对应的Buffer区域中数据老化程度为5,存放二级Table的zone(简称二级Table zone)对应的Buffer区域中数据老化程度为1,存放三级Table的zone(简称三级Table zone)对应的Buffer区域中数据老化程度为0.5,依次类推。存放高级映射表的zone对应的Buffer区域中数据老化程度越小,以保证高级映射表在Buffer区域中留存的时间更长。
在确定各Buffer区域中的数据老化程度后,即可基于数据老化程度确定各Buffer区域的淘汰优先级,一般Buffer区域中的数据老化程度越大,淘汰优先级越高。
以上对本申请实施例提供的方法进行了描述,下面对本申请实施例提供的装置进行描述:
参见图7,图7为本申请实施例提供的装置结构图。该装置应用于DRAMLess/DRAMPartial存储系统中基于硬件实现的Buffer管理组件,Buffer管理组件连接在DRAMLess/DRAM Partial存储系统中的系统总线上;该装置包括:
检查单元,用于在调度任务Task时,检查至少一个任务队列是否被标记了紧急状态标识;
调度分配单元,用于在至少一个任务队列被标记了紧急状态标识时,停止为未被标记紧急状态标识的任一任务队列中的任务分配Buffer,并将被标记了紧急状态标识的任务队列中的至少一个任务确定为待分配Buffer的目标任务,为所述目标任务分配所需的目标Buffer空间;所述目标Buffer空间包含目标Buffer区域中的至少一个Buffer块,所述目标Buffer区域为目标任务被执行时所需的Buffer区域;所述DRAMLess/DRAM Partial存储系统中指定Buffer空间被划分为多个Buffer区域,每一Buffer区域对应所述DRAMLess/DRAM Partial存储系统中固态硬盘SSD被划分的至少一个区zone,当所述目标Buffer区域对应的zone被确定为第一状态时,所述目标任务所处队列被标记紧急状态标识,所述第一状态用于指示将所述目标任务所处队列标记为紧急状态标识;或者,
在发现任一任务队列均未被标记紧急状态标识时,依据各任务队列中任务的优先级,确定待分配Buffer的目标任务,为目标任务分配所需的目标Buffer空间;任一任务的优先级指示了该任务被分配Buffer块的顺序和数量。
可选地,所述多个Buffer区域中至少包括:第一类buffer区域、第二类buffer区域、第三类buffer区域;
其中,第一类Buffer区域包括各低级映射表的专用Buffer区域;
第二类buffer区域包括用户数据、以及各低级映射表共享的共享Buffer区域;
第三类buffer区域包括被用于存放各映射表类型下预设级别的映射表的高级Buffer区域;所述第三类buffer区域中任一高级Buffer区域被预先存放了一映射表类型下预设级别的映射表。
可选地,调度分配单元进一步在当通过所述系统总线接收到所述DRAMLess/DRAMPartial存储系统中CPU发送的更新命令时,更新已划分的至少一个buffer区域;所述CPU是在监测到需要更新buffer区域的事件下发送所述更新命令的;
可选地,所述为所述目标任务分配所需的目标Buffer空间包括:
若目标Buffer区域存在的可用Buffer块的数量满足目标任务所需的目标Buffer空间,则从目标Buffer区域中分配目标任务所需的目标Buffer空间;
若目标Buffer区域存在的可用Buffer块的数量不满足目标任务所需的目标Buffer空间,则从共享Buffer区域中获得目标任务所需的目标Buffer空间,或者,从所述目标Buffer区域存在的可用Buffer块中获得所述目标任务所需的第一Buffer空间,从共享Buffer区域中获得所述目标任务所需的第二Buffer空间,所述第一Buffer空间和所述第二Buffer空间的和为所述目标Buffer空间。
可选地,当所述目标Buffer区域对应的zone从所述第一状态更新为不同于第一状态的第二状态时,调度分配单元进一步删除所述目标任务所处队列被标记的紧急状态标识;并在所述第二状态指示将其它任务所处队列标记为紧急状态标识时,将该其它任务所处队列标记为紧急状态标识。
可选地,任一任务的优先级与该任务所需的zone、以及该任务的任务类型有关;
其中,任务所需的zone被用于存放任务执行时需要的映射表或用户数据,任务所需的zone的优先级越高,则该任务的优先级越高;任一zone的优先级依赖于该zone存放的映射表的级别,存放了高级别映射表的zone的优先级高于存放了低级别映射表的zone的优先级;
对应同一zone的不同任务类型被设置对应的优先级权重。
可选地,调度分配单元进一步对存放dirty数据的dirty Buffer区域执行数据下刷操作,以基于所述数据下刷操作将dirty Buffer区域中的dirty数据下刷至对应的zone;所述dirty数据是指通过执行任务发生了更新的数据;以及对目标clean Buffer区域执行数据淘汰操作,以基于所述数据淘汰操作将目标clean Buffer区域中的clean数据删除;clean数据是指设定时间段内未发生更新的数据,目标clean Buffer区域是指淘汰优先级满足设定优先级要求的Buffer区域。
可选地,所述对存放dirty数据的dirty Buffer区域执行数据下刷操作包括:依据Buffer链表中dirty Buffer区域的表头Header和偏移量offset,定位对应的dirty Buffer区域,基于该dirty Buffer区域中数据信息确定该dirty Buffer的优先级;所述数据信息至少包括:数据存在的时间、更新频率;依据各dirty Buffer区域的优先级确定需要执行数据下刷操作的目标dirty Buffer区域,对所述目标dirty Buffer区域执行数据下刷操作。
可选地,所述对目标clean Buffer区域执行数据淘汰操作包括:依据Buffer链表中clean Buffer区域的表头Header和偏移量offset,定位对应的clean Buffer区域,基于该clean Buffer区域中数据信息确定该clean Buffer区域的优先级;所述数据信息至少包括:数据存在的时间、更新频率;依据各clean Buffer区域的优先级确定需要执行数据淘汰操作的目标clean Buffer区域,对所述目标clean Buffer区域执行数据淘汰操作。
至此,完成本申请时示例提供的装置结构图。
对应地,本申请实施例还提供了一种存储设备,具体如图8所示,该存储设备至少包括:基于硬件实现的Buffer管理组件、Buffer、系统总线;
其中,Buffer管理组件通过所述存储设备中的系统总线访问Buffer;所述Buffer管理组件,被用于执行如图1所示方法中的步骤。
基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本申请上述示例公开的方法。
示例性的,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机处理单元或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种Buffer管理方法,其特征在于,该方法应用于DRAMLess/DRAM Partial存储系统中基于硬件实现的Buffer管理组件,Buffer管理组件连接在DRAMLess/DRAM Partial存储系统中的系统总线上;该方法包括:
在调度任务Task时,若发现至少一个任务队列被标记了紧急状态标识,则停止为未被标记紧急状态标识的任一任务队列中的任务分配Buffer,并将被标记了紧急状态标识的任务队列中的至少一个任务确定为待分配Buffer的目标任务,为所述目标任务分配所需的目标Buffer空间;所述目标Buffer空间包含目标Buffer区域中的至少一个Buffer块,所述目标Buffer区域为目标任务对应的Buffer区域;所述DRAMLess/DRAM Partial存储系统中指定Buffer空间被划分为多个Buffer区域,每一Buffer区域对应所述DRAMLess/DRAMPartial存储系统中固态硬盘SSD被划分的至少一个区zone,当所述目标Buffer区域对应的zone被确定为第一状态时,所述目标任务所处队列被标记紧急状态标识,所述第一状态用于指示将所述目标任务所处队列标记为紧急状态标识;或者
若发现任一任务队列均未被标记紧急状态标识,则依据各任务队列中任务的优先级,确定待分配Buffer的目标任务,为目标任务分配所需的目标Buffer空间;任一任务的优先级指示了该任务被分配Buffer块的顺序和数量。
2.根据权利要求1所述的方法,其特征在于,所述多个Buffer区域中至少包括:第一类Buffer区域、第二类Buffer区域、第三类Buffer区域;
其中,第一类Buffer区域包括各低级映射表的专用Buffer区域;
第二类Buffer区域包括用户数据、以及各低级映射表共享的共享Buffer区域;
第三类Buffer区域包括被用于存放各映射表类型下预设级别的映射表的高级Buffer区域;所述第三类Buffer区域中任一高级Buffer区域被预先存放了一映射表类型下预设级别的映射表。
3.根据权利要求2所述的方法,其特征在于,该方法进一步包括:
当通过所述系统总线接收到所述DRAMLess/DRAM Partial存储系统中CPU发送的更新命令时,更新已划分的至少一个Buffer区域;所述CPU是在监测到需要更新Buffer区域的事件下发送所述更新命令的。
4.根据权利要求2所述的方法,其特征在于,所述为所述目标任务分配所需的目标Buffer空间包括:
若目标Buffer区域存在的可用Buffer块的数量满足目标任务所需的目标Buffer空间,则从目标Buffer区域中分配目标任务所需的目标Buffer空间;
若目标Buffer区域存在的可用Buffer块的数量不满足目标任务所需的目标Buffer空间,则从共享Buffer区域中获得目标任务所需的目标Buffer空间,或者,从所述目标Buffer区域存在的可用Buffer块中获得所述目标任务所需的第一Buffer空间,从共享Buffer区域中获得所述目标任务所需的第二Buffer空间,所述第一Buffer空间和所述第二Buffer空间的和为所述目标Buffer空间。
5.根据权利要求1所述的方法,其特征在于,当所述目标Buffer区域对应的zone从所述第一状态更新为不同于第一状态的第二状态时,该方法进一步包括:
删除所述目标任务所处队列被标记的紧急状态标识;并在所述第二状态指示将其它任务所处队列标记为紧急状态标识时,将该其它任务所处队列标记为紧急状态标识。
6.根据权利要求1所述的方法,其特征在于,任一任务的优先级与该任务所需的zone、以及该任务的任务类型有关;
其中,任务所需的zone被用于存放任务执行时需要的映射表或用户数据,任务所需的zone的优先级越高,则该任务的优先级越高;任一zone的优先级依赖于该zone存放的映射表的级别,存放了高级别映射表的zone的优先级高于存放了低级别映射表的zone的优先级;
对应同一zone的不同任务类型被设置对应的优先级权重。
7.根据权利要求1所述的方法,其特征在于,该方法进一步包括:
对存放dirty数据的dirty Buffer区域执行数据下刷操作,以基于所述数据下刷操作将dirty Buffer区域中的dirty数据下刷至对应的zone;所述dirty数据是指通过执行任务发生了更新的数据;
对目标clean Buffer区域执行数据淘汰操作,以基于所述数据淘汰操作将目标cleanBuffer区域中的clean数据删除;clean数据是指设定时间段内未发生更新的数据,目标clean Buffer区域是指淘汰优先级满足设定优先级要求的Buffer区域。
8.根据权利要求7所述的方法,其特征在于,所述对存放dirty数据的dirty Buffer区域执行数据下刷操作包括:
依据Buffer链表中dirty Buffer区域的表头Header和偏移量offset,定位对应的dirty Buffer区域,基于该dirty Buffer区域中数据信息确定该dirty Buffer的优先级;所述数据信息至少包括:数据存在的时间、更新频率;依据各dirty Buffer区域的优先级确定需要执行数据下刷操作的目标dirty Buffer区域,对所述目标dirty Buffer区域执行数据下刷操作;
所述对目标clean Buffer区域执行数据淘汰操作包括:依据Buffer链表中cleanBuffer区域的表头Header和偏移量offset,定位对应的clean Buffer区域,基于该cleanBuffer区域中数据信息确定该clean Buffer区域的优先级;所述数据信息至少包括:数据存在的时间、更新频率;依据各clean Buffer区域的优先级确定需要执行数据淘汰操作的目标clean Buffer区域,对所述目标clean Buffer区域执行数据淘汰操作。
9.一种Buffer管理装置,其特征在于,该装置应用于DRAMLess/DRAM Partial存储系统中基于硬件实现的Buffer管理组件,Buffer管理组件连接在DRAMLess/DRAM Partial存储系统中的系统总线上;该装置包括:
检查单元,用于在调度任务Task时,检查至少一个任务队列是否被标记了紧急状态标识;
调度分配单元,用于在至少一个任务队列被标记了紧急状态标识时,停止为未被标记紧急状态标识的任一任务队列中的任务分配Buffer,并将被标记了紧急状态标识的任务队列中的至少一个任务确定为待分配Buffer的目标任务,为所述目标任务分配所需的目标Buffer空间;所述目标Buffer空间包含目标Buffer区域中的至少一个Buffer块,所述目标Buffer区域为目标任务被执行时所需的Buffer区域;所述DRAMLess/DRAM Partial存储系统中指定Buffer空间被划分为多个Buffer区域,每一Buffer区域对应所述DRAMLess/DRAMPartial存储系统中固态硬盘SSD被划分的至少一个区zone,当所述目标Buffer区域对应的zone被确定为第一状态时,所述目标任务所处队列被标记紧急状态标识,所述第一状态用于指示将所述目标任务所处队列标记为紧急状态标识;或者,
在发现任一任务队列均未被标记紧急状态标识时,依据各任务队列中任务的优先级,确定待分配Buffer的目标任务,为目标任务分配所需的目标Buffer空间;任一任务的优先级指示了该任务被分配Buffer块的顺序和数量。
10.一种存储设备,其特征在于,所述存储设备至少包括:基于硬件实现的Buffer管理组件、Buffer、系统总线;
其中,所述Buffer管理组件通过所述存储设备中的系统总线访问Buffer;所述Buffer管理组件,被用于执行如权利要求1至8任一方法中的步骤。
CN202310242802.2A 2023-03-08 2023-03-08 Buffer管理方法、装置及存储设备 Pending CN116382574A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310242802.2A CN116382574A (zh) 2023-03-08 2023-03-08 Buffer管理方法、装置及存储设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310242802.2A CN116382574A (zh) 2023-03-08 2023-03-08 Buffer管理方法、装置及存储设备

Publications (1)

Publication Number Publication Date
CN116382574A true CN116382574A (zh) 2023-07-04

Family

ID=86960683

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310242802.2A Pending CN116382574A (zh) 2023-03-08 2023-03-08 Buffer管理方法、装置及存储设备

Country Status (1)

Country Link
CN (1) CN116382574A (zh)

Similar Documents

Publication Publication Date Title
US9081702B2 (en) Working set swapping using a sequentially ordered swap file
US7949839B2 (en) Managing memory pages
US7653799B2 (en) Method and apparatus for managing memory for dynamic promotion of virtual memory page sizes
US20110246742A1 (en) Memory pooling in segmented memory architecture
US7363456B2 (en) System and method of allocating contiguous memory in a data processing system
US11403224B2 (en) Method and system for managing buffer device in storage system
CN113590045B (zh) 数据分层式存储方法、装置及存储介质
US20080244118A1 (en) Method and apparatus for sharing buffers
CN114063894A (zh) 一种协程执行方法及装置
CN116382574A (zh) Buffer管理方法、装置及存储设备
KR20150136811A (ko) 임베디드 시스템에서 메모리 관리 장치 및 방법
CN116483260A (zh) Buffer管理方法、装置及存储设备
CN117093508B (zh) 一种内存资源管理方法、装置、电子设备及存储介质
CN112000471B (zh) 内存优化方法及装置
KR102334237B1 (ko) 다중 포그라운드 어플리케이션을 위한 페이지 캐쉬 관리 방법 및 장치
WO2024152705A9 (zh) 内存回收方法、装置、设备、介质及产品
CN117991992A (zh) 基于小分区zns ssd的数据写入方法、系统、设备及介质
US20060230247A1 (en) Page allocation management for virtual memory

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