CN113867641A - 主机内存缓冲管理方法、装置、以及固态硬盘 - Google Patents

主机内存缓冲管理方法、装置、以及固态硬盘 Download PDF

Info

Publication number
CN113867641A
CN113867641A CN202111149556.3A CN202111149556A CN113867641A CN 113867641 A CN113867641 A CN 113867641A CN 202111149556 A CN202111149556 A CN 202111149556A CN 113867641 A CN113867641 A CN 113867641A
Authority
CN
China
Prior art keywords
space
ssd
hmb
current
data processing
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.)
Granted
Application number
CN202111149556.3A
Other languages
English (en)
Other versions
CN113867641B (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.)
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 CN202111149556.3A priority Critical patent/CN113867641B/zh
Publication of CN113867641A publication Critical patent/CN113867641A/zh
Application granted granted Critical
Publication of CN113867641B publication Critical patent/CN113867641B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明实施例提供了一种主机内存缓冲管理方法、装置、以及固态硬盘,涉及数据存储技术领域。该方法包括:监测固态硬盘SSD所申请的主机内存缓冲HMB空间的当前空间信息,以及所述SSD的当前运行状态;基于所述当前空间信息和所述当前运行状态,确定所述SSD所申请的HMB空间的调整策略;其中,所述调整策略用于保证按照所述调整策略调整所述SSD所申请的HMB空间后,所述SSD的工作性能满足预定性能要求;按照所述调整策略,对所述SSD所申请的HMB空间进行调整。与现有技术相比,应用本发明实施例提供的方案,可以实现根据SSD的运行状态,对SSD所申请的HMB空间管理,以使得SSD在任何运行状态下,均可以具有较高的工作性能。

Description

主机内存缓冲管理方法、装置、以及固态硬盘
技术领域
本发明涉及数据存储技术领域,特别是涉及一种主机内存缓冲管理方法、装置、以及固态硬盘。
背景技术
当前,SSD(Solid State Disk或Solid State Drive,固态硬盘)由于具有读写速度快、低功耗、无噪音等优点,被广泛应用到各类需要进行数据存储的场景中,例如,视频监控场景、网络监控场景等。
通常,为了节省制作成本且使得SSD便于携带,SSD的尺寸往往较小,从而,使得SSD的内存容量也随之较小。这样,为了保证SSD能够具有较好的工作性能,NVME(non-volatilememory Express,非易失性内存主机控制器接口规范)协议定义了HMB(Host MemoryBuffer,主机内存缓冲)功能。
其中,所谓HMB功能是指:在主机的内存中留出一块缓存区专门供SSD申请;这部分区域只占用主机内存的小部分空间,例如,128MB等,而主机内存保留充足的空间协调完成主机CPU(central processing unit,中央处理器)与SSD之间的数据交换。
基于此,SSD可以在自身内存容量不足的情况下,在主机内存中申请部分缓冲区为自身使用,则SSD所申请的主机内存中的缓冲区即为HMB空间。
相关技术中,SSD是采用静态的HMB管理策略进行HMB空间管理的,即SSD在上电之后向主机申请固定大小的HMB空间以供自身使用,并且,所申请的HMB空间的使用方式固定,在一些情况下,存在SSD的工作性能较差的问题。
发明内容
本发明实施例的目的在于提供一种主机内存缓冲管理方法、装置、固态硬盘以及存储介质,以实现根据SSD的运行状态,对SSD所申请的HMB空间管理,以使得SSD在任何运行状态下,均可以具有较高的工作性能。具体技术方案如下:
第一方面,本发明实施例提供了一种主机内存缓冲管理方法,所述方法包括:
监测固态硬盘SSD所申请的主机内存缓冲HMB空间的当前空间信息,以及所述SSD的当前运行状态;
基于所述当前空间信息和所述当前运行状态,确定所述SSD所申请的HMB空间的调整策略;其中,所述调整策略用于保证按照所述调整策略调整所述SSD所申请的HMB空间后,所述SSD的工作性能满足预定性能要求;
按照所述调整策略,对所述SSD所申请的HMB空间进行调整。
可选的,一种具体实现方式中,所述当前空间信息包括:当前空间大小和/或当前空间分布;其中,所述当前空间分布包括:为所述SSD所执行的各类数据处理任务分配的HMB空间的第一空间大小;
所述当前运行状态包括所述SSD所执行以下各类数据处理任务的当前负载压力中的至少一种:
当前映射表换入换出操作、当前数据删除操作、当前主机读写操作、当前垃圾回收操作和当前日志刷新操作。
可选的,一种具体实现方式中,所述基于所述当前空间信息和所述当前运行状态,确定所述SSD所申请的HMB空间的调整策略,包括:
基于所述当前运行状态,确定目标空间信息;其中,所述目标空间信息为:用于保证所述SSD在所述当前运行状态下的工作性能满足所述预定性能要求所需的HMB空间的信息;
根据所述当前空间信息和所述目标空间信息的差异,确定所述SSD所申请的HMB空间的调整策略。
可选的,一种具体实现方式中,所述基于所述当前运行状态,确定目标空间信息的步骤,包括:
根据预设的运行状态与HMB空间信息的对应关系,确定与所述当前运行状态对应的空间信息,作为目标空间信息;其中,每个运行状态对应的HMB空间信息为:能够保证SSD在该运行状态下的工作性能满足预定工作性能所需申请的HMB空间的空间信息;
或者,
根据所述当前运行状态与所述SSD的设备参数,计算目标空间信息。
可选的,一种具体实现方式中,所述当前空间信息包括当前空间大小;所述目标空间信息包括目标空间大小;
所述根据所述当前空间信息和所述目标空间信息的差异,确定所述SSD所申请的HMB空间的调整策略,包括:
若所述当前空间大小小于所述目标空间大小,则计算所述当前空间大小与所述目标空间大小的差值绝对值;
确定所述SSD所申请的HMB空间的调整策略包括:增加所述SSD所申请的HMB空间且所增加的HMB空间的空间大小为所述差值绝对值。
可选的,一种具体实现方式中,所述当前空间信息包括当前空间分布;所述目标空间信息包括目标空间分布;所述目标空间分布包括:为所述SSD所执行的各类数据处理任务分配的HMB空间的第二空间大小;所述当前运行状态包括以下所述SSD所在执行的各类数据处理任务的负载压力;
所述根据所述当前空间信息和所述目标空间信息的差异,确定所述SSD所申请的HMB空间的调整策略,包括:
针对所述SSD所执行的每一类数据处理任务,若为该类数据处理任务分配的HMB空间的第一空间大小小于为该类数据处理任务分配的HMB空间的第二空间大小,则计算为该类数据处理任务分配的HMB空间的第一空间大小与为该类数据处理任务分配的HMB空间的第二空间大小的差值绝对值;
确定所述SSD所申请的HMB空间的调整策略包括:增加为该类数据处理任务分配的HMB空间且所增加的HMB空间的空间大小为所述差值绝对值。
可选的,一种具体实现方式中,所述方法还包括:
针对所述SSD所执行的每一类任务,若为该类任务分配的HMB空间的第一空间大小小于为该类任务分配的HMB空间的第二空间大小,调整所述SSD执行该类任务的操作参数;
其中,若所述数据处理任务包括:映射表换入换出操作,则所述操作参数包括:数据组织方式;若所述数据处理任务包括:数据删除操作,则所述操作参数包括:数据删除工作粒度;若所述数据处理任务包括:日志刷新操作,则所述操作参数包括:日志刷新粒度。
可选的,一种具体实现方式中,在所述基于所述当前空间信息和所述当前运行状态,确定所述SSD所申请的HMB空间的调整策略之前,所述方法还包括:
确定所述SSD的当前工作性能是否满足预定性能要求;
如果不满足,执行所述基于所述当前空间信息和所述当前运行状态,确定所述SSD所申请的HMB空间的调整策略的步骤。
可选的,一种具体实现方式中,所述监测固态硬盘SSD所申请的主机内存缓冲HMB空间的当前空间信息,以及所述SSD所执行的各类数据处理任务的当前负载压力,包括:
按照预设周期,监测固态硬盘SSD所申请的主机内存缓冲HMB空间的当前空间信息,以及所述SSD的当前运行状态。
第二方面,本发明实施例提供了一种主机内存缓冲管理装置,所述装置包括:
信息监测模块,用于监测固态硬盘SSD所申请的主机内存缓冲HMB空间的当前空间信息,以及所述SSD的当前运行状态;
策略确定模块,用于基于所述当前空间信息和所述当前运行状态,确定所述SSD所申请的HMB空间的调整策略;其中,所述调整策略用于保证按照所述调整策略调整所述SSD所申请的HMB空间后,所述SSD的工作性能满足预定性能要求;
空间调整模块,用于按照所述调整策略,对所述SSD所申请的HMB空间进行调整。
可选的,一种具体实现方式中,所述当前空间信息包括:当前空间大小和/或当前空间分布;其中,所述当前空间分布包括:为所述SSD所执行的各类数据处理任务分配的HMB空间的第一空间大小;
所述当前运行状态包括所述SSD所执行以下各类数据处理任务的当前负载压力中的至少一种:
当前映射表换入换出操作、当前数据删除操作、当前主机读写操作、当前垃圾回收操作和当前日志刷新操作。
可选的,一种具体实现方式中,所述策略确定模块包括:
信息确定子模块,用于基于所述当前运行状态,确定目标空间信息;其中,所述目标空间信息为:用于保证所述SSD在所述当前运行状态下的工作性能满足所述预定性能要求所需的HMB空间的信息;
策略确定子模块,用于根据所述当前空间信息和所述目标空间信息的差异,确定所述SSD所申请的HMB空间的调整策略。
可选的,一种具体实现方式中,所述信息确定子模块具体用于:
根据预设的运行状态与HMB空间信息的对应关系,确定与所述当前运行状态对应的空间信息,作为目标空间信息;其中,每个运行状态对应的HMB空间信息为:能够保证SSD在该运行状态下的工作性能满足预定工作性能所需申请的HMB空间的空间信息;
或者,
根据所述当前运行状态与所述SSD的设备参数,计算目标空间信息。
可选的,一种具体实现方式中,所述当前空间信息包括当前空间大小;所述目标空间信息包括目标空间大小;所述策略确定子模块具体用于:
若所述当前空间大小小于所述目标空间大小,则计算所述当前空间大小与所述目标空间大小的差值绝对值;
确定所述SSD所申请的HMB空间的调整策略包括:增加所述SSD所申请的HMB空间且所增加的HMB空间的空间大小为所述差值绝对值。
可选的,一种具体实现方式中,所述当前空间信息包括当前空间分布;所述目标空间信息包括目标空间分布;所述目标空间分布包括:为所述SSD所执行的各类数据处理任务分配的HMB空间的第二空间大小;所述当前运行状态包括以下所述SSD所在执行的各类数据处理任务的负载压力;所述策略确定子模块具体用于:
针对所述SSD所执行的每一类数据处理任务,若为该类数据处理任务分配的HMB空间的第一空间大小小于为该类数据处理任务分配的HMB空间的第二空间大小,则计算为该类数据处理任务分配的HMB空间的第一空间大小与为该类数据处理任务分配的HMB空间的第二空间大小的差值绝对值;
确定所述SSD所申请的HMB空间的调整策略包括:增加为该类数据处理任务分配的HMB空间且所增加的HMB空间的空间大小为所述差值绝对值。
可选的,一种具体实现方式中,所述装置还包括:
参数确定模块,用于针对所述SSD所执行的每一类数据处理任务,若为该类数据处理任务分配的HMB空间的第一空间大小小于为该类数据处理任务分配的HMB空间的第二空间大小,调整所述SSD执行该类数据处理任务的操作参数;
其中,若所述数据处理任务包括:映射表换入换出操作,则所述操作参数包括:数据组织方式;若所述数据处理任务包括:数据删除操作,则所述操作参数包括:数据删除工作粒度;若所述数据处理任务包括:日志刷新,则所述操作参数包括:日志刷新粒度。
可选的,一种具体实现方式中,所述装置还包括:
性能判断模块,用于在所述基于所述当前空间信息和所述当前运行状态,确定所述SSD所申请的HMB空间的调整策略之前,确定所述SSD的当前工作性能是否满足预定性能要求;如果不满足,触发所述策略确定模块。
可选的,一种具体实现方式中,所述信息监测模块具体用于:
按照预设周期,监测固态硬盘SSD所申请的主机内存缓冲HMB空间的当前空间信息,以及所述SSD的当前运行状态。
第三方面,本发明实施例提供了一种固态硬盘,包括主控芯片,用于实现上述第一方面本发明实施例提供的任一主机内存缓冲管理方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面本发明实施例提供的任一主机内存缓冲管理方法的步骤。
第五方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面本发明实施例提供的任一主机内存缓冲管理方法的步骤。
本发明实施例有益效果:
以上可见,应用本发明实施例提供的方案,可以监测SSD所申请的HMB空空间的当前空间信息以及SSD的运行状态,从而,便可以根据所监测到的当前空间信息和当前运行状态,确定SSD所申请的HMB空间的调整策略,这样,白可以根据所确定的调整策略,对SSD所申请的HMB空间进行调整。其中,由于所确定的调整策略可以用于保证按照该调整策略调整SSD所申请的HMB空间后,SSD的工作性能满足预定性能要求,因此,在根据所确定的调整策略,对SSD所申请的HMB空间进行调整后,SSD工作性能可以满足预定性能要求。
基于此,应用本发明实施例提供的方案,根据SSD的运行状态动态地调整SSD所申请的HMB空间,即对SSD所申请的HMB空间进行动态管理,使其能够具有自适应能力,从而,可以始终满足SSD的运行需求,使得SSD在任何运行状态下,均可以具有较高的工作性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要申请的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
图1为本发明实施例提供的一种主机内存缓冲管理方法的流程示意图;
图2为本发明实施例提供的另一种主机内存缓冲管理方法的流程示意图;
图3为图1中S102的一种具体实现方式的流程示意图;
图4为本发明实施例提供的一种主机内存缓冲管理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本发明保护的范围。
相关技术中,SSD是采用静态的HMB管理策略进行HMB空间管理的,即SSD在上电之后向主机申请固定大小的HMB空间以供自己使用。
然而,在上述相关技术中,当SSD的运行状态发生改变时,例如,SSD所执行的各类数据处理任务的负载压力发生变化时,所申请的固定大小的HMB空间可能无法继续满足SSD的运行需求,从而,导致SSD的工作性能较差,例如,各类数据处理任务的执行效率较低等。
为了解决上述技术问题,本发明实施例提供了一种主机内存缓冲管理方法。
其中,该方法可以适用于任何SSD进行HMB空间申请的场景,例如,视频监控场景、网络监控场景、医疗数据管理场景等,对此,本发明实施例不做具体限定。
此外,该方法可以应用于各类型的支持HMB功能的SSD,例如,基于DRAM(DynamicRandom Access Memory,动态随机存取存储器)的固态硬盘、基于3D-XPoint类的固态硬盘等。其中,对于不存在DRAM的固态硬盘而言,通常可以统称为DRAM-Less固态硬盘。
SSD通常可以包括:主控芯片、DRAM和NAND(闪存)。其中,NAND表示:nor和and,即“与非”,其为SSD中的存储介质,用于存储各类数据;而主控芯片相当于SSD的CPU,可以对SSD的工作状态进行管理和监测,其可以合理调配数据在各个NAND芯片上的负荷,并且,通过连接NAND芯片和外部接口,承担了SSD的整个数据中转过程。
例如,由于HMB是由NVME协议定义的,而NVME协议为运行在PCLE(peripheralcomponent interconnect express,高速串行计算机扩展总线标准)接口上的协议标准,从而,NAND芯片可以与PCLE接口连接。
当然,NAND芯片还可以与其他支持NVME协议的外部端口连接,承担SSD的数据中转过程,对此,本发明实施例不做具体限定。
基于此,本发明实施例提供的一种主机内存缓冲管理方法便可以应用于SSD中的主控芯片,即SSD通过自身的主控芯片执行本发明实施例提供的一种主机内存缓冲管理方法,根据自身的运行状态,动态管理自身所申请的HMB空间,使得自身能够具有自适应能力,从而,可以始终满足自身的运行需求,使得在任何运行状态下,自身均可以具有较高的工作性能。
其中,本发明实施例提供的一种主机内存缓冲管理方法可以包括如下步骤:
监测固态硬盘SSD所申请的主机内存缓冲HMB空间的当前空间信息,以及所述SSD的当前运行状态;
基于所述当前空间信息和所述当前运行状态,确定所述SSD所申请的HMB空间的调整策略;其中,所述调整策略用于保证按照所述调整策略调整所述SSD所申请的HMB空间后,所述SSD的工作性能满足预定性能要求;
按照所述调整策略,对所述SSD所申请的HMB空间进行调整。
以上可见,应用本发明实施例提供的方案,可以监测SSD所申请的HMB空空间的当前空间信息以及SSD的运行状态,从而,便可以根据所监测到的当前空间信息和当前运行状态,确定SSD所申请的HMB空间的调整策略,这样,白可以根据所确定的调整策略,对SSD所申请的HMB空间进行调整。其中,由于所确定的调整策略可以用于保证按照该调整策略调整SSD所申请的HMB空间后,SSD的工作性能满足预定性能要求,因此,在根据所确定的调整策略,对SSD所申请的HMB空间进行调整后,SSD工作性能可以满足预定性能要求。
基于此,应用本发明实施例提供的方案,根据SSD的运行状态动态地调整SSD所申请的HMB空间,即对SSD所申请的HMB空间进行动态管理,使其能够具有自适应能力,从而,可以始终满足SSD的运行需求,使得SSD在任何运行状态下,均可以具有较高的工作性能。
下面,结合附图,对本发明实施例提供的一种主机内存缓冲管理方法进行具体说明。
图1为本发明实施例提供的一种主机内存缓冲管理方法的流程示意图,如图1所示,本发明实施例提供的一种主机内存缓冲管理方法可以包括如下步骤:
S101:监测固态硬盘SSD所申请的主机内存缓冲HMB空间的当前空间信息,以及SSD的当前运行状态;
SSD的主控芯片可以监测自身所申请的HMB空间的当前空间信息,以及SSD的当前运行状态。
可选的,上述当前空间信息可以包括:当前空间大小/或当前空间分布。也就是说,SSD的主控芯片可以只监测所申请的HMB空间的当前空间大小,也可以只监测所申请的HMB空间的当前空间分布,还可以同时监测所申请的HMB空间的当前空间大小和当前空间分布。
其中,由于SSD可以执行多类任务,因此,SSD所申请的HMB空间可以分配给各类不同任务,基于此,上述当前空间分布即可以包括:为SSD所执行的各类数据处理任务分配的HMB空间的第一空间大小。例如为执行映射表换入换出操作分配的HMB空间的第一空间大小,为执行数据删除操作分配的HMB空间的第一空间大小,为执行主机读写操作分配的HMB空间的第一空间大小,为执行垃圾回收操作分配的HMB空间的第一空间大小,或者为执行日志刷新操作分配的HMB空间的第一空间大小等。
可选的,上述当前运行状态可以包括:SSD所执行以下各类数据处理任务的当前负载压力中的至少一种:
当前映射表换入换出操作、当前数据删除操作、当前主机读写操作、当前垃圾回收操作和当前日志刷新操作。
应当理解,当前运行状态可以包括SSD执行任意类型的数据处理任务对应的负载压力,或者可以包括SSD执行特定类型(例如预先设定的操作类型,或者任务优先级较高的操作类型等)的数据处理任务对应的负载压力。
其中,所谓映射表(L2P Table,Logical to Physical Table)用于表征数据的主机逻辑地址与SSD物理地址的对应关系的。通常,映射表的数据量较大,而SSD在执行各类数据处理任务时,往往可以只利用映射表中的部分数据,从而,需要不断地将自身所利用的映射表中的数据从SSD的NAND中读到自身的内存或者自身所申请的HMB空间中,而将自身的内存或者自身申请的HMB空间中的不再利用的映射表中的数据写到SSD的NAND中,则该过程即被称为映射表换入换出。其中,SSD的内存包括:SRAM(StaticRandom-AccessMemory,静态随机存取存储器)和DRAM,当SSD存在DRAM时,可以将自身所利用的映射表中的数据读到DRAM中,当SSD不存在DRAM时,可以将自身所利用的映射表中的数据读到SRAM中。
具体的,将SSD的NAND中的映射表读到到自身的内存或者自身所申请的HMB空间中,称为换入操作,而将自身的内存或者自身所申请的HMB空间中的映射表写到SSD的NAND中,称为换出操作。
对于数据删除(Trim)操作而言,每个Trim操作具有一定的Trim工作粒度,即每个Trim操作所对应的删除数据的数据量是固定的,当Trim操作的频率较高时,可能导致Trim操作的效率较低。因此,可以将多个粒度较小的Trim操作进行聚合,从而,对多个粒度较小的Trim操作进行批量处理,以提升SSD的性能,而在将多个粒度较小的Trim操作进行聚合时,需要占用一定的缓存。
所谓主机读写即为Host读写,包括Host读命令和Host写命令,分别用于指示针对SSD中的NAND进行的读操作和写操作,每次Host读写也具有一定的读写工作粒度,即每次Host读写所对应的数据量是固定的,当Host读写的并发度较低时,可以导致Host读写的效率较低。其中,SSD中的NAND是由多个芯片构成的,而这些芯片可以支持同时进行数据读取,因此,可以实现Host读命令的并发。此外,SSD是否具有高性能取决于针对SSD的命令的高并发,对于Host写命令而言,可以通过设置空间足够的缓存,用于缓存Host写命令,从而,当Host写命令聚合到一定的数据量时,针对SSD中的NAND,并发执行所聚合的各个Host写命令,从而,可以提高Host写命令的并发度,进而得以提升SSD的性能;
垃圾回收是指:在SSD的内存或者SSD所申请的HMB空间中所分配的VDF BitmapTable buffer(有效数据位图空间)中,查找待回收的有效数据,并对所查找到的有效数据进行搬移,实现对VDF Bitmap Table buffer中的数据的回收处理。其中,VDF是有效数据(Valid datafarame)的缩写。
在SSD的运行过程中,通常需要记载关于SSD的运行状态以及所执行的各类任务的日志(Log),从而,可以在SSD的内存或者SSD所申请的HMB空间中分配log buffer(日志空间)用于记载日志数据。其中,当log buffer每次被全部占用时,可以对log buffer进行刷新。其中,对log buffer进行刷新可以称为对log的下刷,即利用新的待记录的Log覆盖全部被占用的log buffer中已有的Log。
当然,上述SSD所执行各类数据处理任务的当前负载压力,包括但不局限于上述当前映射表换入换出频率、当前Trim操作频率和当前主机读写压力中的至少一种,并且,除上述各类数据处理任务的当前负载压力外,SSD的主控芯片所监测的SSD的当前运行状态还可以包括:SSD中的当前可用存储空间、SSD的当前任务执行速度等信息。对此,本发明实施例不做具体限定。
为了保证SSD所申请的HMB空间可以始终满足SSD的运行需求,使得SSD在任何运行状态下,均可以具有较高的工作性能,可选的,SSD的主控芯片可以实时监测SSD所申请的HMB空间的当前空间信息,以及SSD的当前运行状态。
相应的,由于通常SSD的运行状态可以在一定时间内保持不变,因此,为了在保证SSD所申请的HMB空间可以始终满足SSD的运行需求,使得SSD在任何运行状态下,均可以具有较高的工作性能的前提下,减少SSD的主控芯片的资源消耗,可以周期性地监测SSD所申请的HMB空间的当前空间信息,以及SSD的当前运行状态。
基于此,可选的,一种具体实现方式中,上述步骤S101可以包括如下步骤11:
步骤11:按照预设周期,监测SSD所申请的HMB空间的当前空间信息,以及SSD的当前运行状态。
在本具体实现方式中,SSD的主控芯片可以按照预设周期,每隔预设周期所对应的时长,监测SSD所申请的HMB空间的当前空间信息,以及SSD的当前运行状态。
可选的,可以将监测SSD所申请的HMB空间的当前空间信息,以及SSD的当前运行状态的时刻称为HMB空间管理时刻,则SSD的主控芯片可以检测当前时刻与上一次HMB空间管理时刻之间的时间间隔是否达到上述预设周期所对应的时长,如果达到,则执行监测SSD所申请的HMB空间的当前空间信息,以及SSD的当前运行状态的步骤,否则,则继续检测当前时刻与上一次HMB空间管理时刻之间的时间间隔是否达到上述预设周期所对应的时长,直至该时间间隔达到上述预设周期所对应的时长。
这样,可以实现对SSD所申请的HMB空间的周期性管理,从而,在保证SSD所申请的HMB空间能够使SSD的工作性能满足预定性能要求的基础上,减少对SSD所申请的HMB空间的空间信息和SSD的运行状态的监测次数,减轻SSD的工作压力,提高SSD的工作性能。
可选的,另一种具体实现方式中,上述步骤S101可以包括如下步骤12:
步骤12:当检测到SSD的运行状态发生变化时,监测SSD所申请的HMB空间的当前空间信息,以及SSD的当前运行状态。
在本具体实现方式中,SSD的主控芯片可以实时或者周期性地对SSD的运行状态进行检测,以确定SSD的运行状态是否发生变化。
当检测到SSD的运行状态发生变化时,那么,为了适应变化后的SSD的运行状态,SSD所申请的HMB空间可能需要调整,例如,调整SSD所申请的空间大小和/或空间分布等。从而,为了确定对SSD所申请的HMB空间的调整策略,SSD的主控芯片可以在检测到SSD的运行状态发生变化时,监测SSD所申请的HMB空间的当前空间信息,以及SSD的当前运行状态。
其中,上述所监测到的SSD的当前运行状态即为:检测到SSD的运行状态发生变化时,SSD的变化后的当前运行状态。
S102:基于当前空间信息和当前运行状态,确定SSD所申请的HMB空间的调整策略;
其中,调整策略用于保证按照调整策略调整SSD所申请的HMB空间后,SSD的工作性能满足预定性能要求;
在监测到上述当前空间信息和当前运行状态,SSD的主控芯片便可以基于当前空间信息和当前运行状态,确定SSD所申请的HMB空间的调整策略。
其中,上述所确定的调整策略可以保证在按照该调整策略调整SSD所申请的HMB空间后,SSD的工作性能满足预定性能要求。
也就是说,在基于当前空间信息和当前运行状态,确定出上述调整策略后,SSD的主控芯片可以按照该调整策略,调整SSD所申请的HMB空间,例如,调整SSD所申请的HMB空间的空间大小,调整SSD所申请的HMB空间的空间分布等。从而,在调整完成后,SSD在利用调整后的所申请的HMB空间执行各类数据处理任务时,SSD的工作性能可以满足预定性能要求。
其中,上述预定性能要求可以包括:任务处理速率不小于指定处理速率、映射表换入换出频率不高于指定频率等能够反映SSD的工作性能的要求,对此,本发明实施例不做具体限定。
可选的,一种具体实现方式中,考虑到主机的性能,例如,主机的HMB空间较小,无法为SSD分配足够多的HMB空间,又例如,预先为主机设定的HMB空间分配规则,不允许SSD分配足够多的HMB空间,在设定上述所希望SSD满足的预定性能要求时,需要考虑主机的当前状态,其中,主机的当前状态包括但不限于:主机的HMB空间大小和预先为主机设定的HMB空间分配规则中至少一种。
基于此,在本具体实现方式中,上述预定性能要求可以为:与主机的当前状态相匹配的,且SSD所能达到的最佳性能要求。
也就是说,在确定SSD所申请的HMB空间的调整策略时,需要同时考虑SSD的性能以及主机的当前状态,以使得在按照调整策略,对SSD所申请的HMB空间进行调整后,SSD的性能可以达到主机的当前状态下的最佳性能。
S103:按照调整策略,对SSD所申请的HMB空间进行调整。
这样,在确定出上述调整策略后,SSD的主控芯片便可以对SSD所申请的HMB空间进行调整。
例如,调整策略为:增大SSD所申请的HMB空间,则SSD的主控芯片便可以向主机申请更多的HMB空间;调整策略为:为某个任务分配更多的HMB空间,则SSD的主控芯片便可以向主机申请更多的HMB空间,并将新申请到的HMB空间分配给该任务。
基于此,应用本发明实施例提供的方案,根据SSD的运行状态动态地调整SSD所申请的HMB空间,即对SSD所申请的HMB空间进行动态管理,使其能够具有自适应能力,从而,可以始终满足SSD的运行需求,使得SSD在任何运行状态下,均可以具有较高的工作性能。
在很多情况下,SSD当前所申请的HMB空间是可以满足SSD的运行需求的,从而,SSD的当前工作性能可以满足预定性能要求,那么,在这种情况下,可以无需对SSD当前所申请的HMB空间进行调整。
基于此,可选的,一种具体实现方式中,如图2所示,本发明实施例提供的一种主机内存缓冲管理方法,还可以包括如下步骤S104:
S104:确定SSD的当前工作性能是否满足预定性能要求;如果否,执行步骤S102。如果是,则返回步骤S101。
在本具体实现方式中,在基于所监测到的当前空间信息和当前运行状态,确定SSD所申请的HMB空间的调整策略之前,SSD的主控芯片可以首先确定SSD的当前工作性能,并判断SSD的当前工作性能是否满足预定性能要求。
这样,当判断出SSD的当前工作性能满足预定性能要求时,例如,任务处理速率不小于指定处理速率、映射表换入换出频率不高于指定频率等,那么,可以无需对SSD当前所申请的HMB空间进行调整,从而,也就无需基于所监测到的当前空间信息和当前运行状态,确定SSD所申请的HMB空间的调整策略;此时,可以返回上述步骤S101,继续再次监测SSD所申请的HMB空间的当前空间信息,以及SSD的当前运行状态。
其中,可选的,在按照预设周期,监测SSD所申请的HMB空间的当前空间信息,以及SSD的当前运行状态的情况下,当上述步骤S104的确定结果为是,即SSD的当前工作性能满足预定性能要求时,可以等待上述预设周期所对应的时长,在时间到达下一次HMB空间管理时刻时,执行上述步骤S101。
相应的,若判断出SSD的当前工作性能不能满足预定性能要求时,例如,任务处理速率小于指定处理速率、映射表换入换出频率高于指定频率等,那么,需要对SSD当前所申请的HMB空间进行调整,以使调整后的SSD的工作性能满足预定性能要求,因此,便需要进一步基于所监测到的当前空间信息和当前运行状态,确定SSD所申请的HMB空间的调整策略。
其中,可选的,考虑到主机的性能,在设定上述所希望SSD满足的预定性能要求时,需要考虑主机的当前状态,因此,上述预定性能要求可以为:与主机的当前状态相匹配的,且SSD所能达到的最佳性能要求。
也就是说,在确定SSD所申请的HMB空间的调整策略时,需要同时考虑SSD的性能以及主机的当前状态,以使得在按照调整策略,对SSD所申请的HMB空间进行调整后,SSD的性能可以达到主机的当前状态下的最佳性能。
可选的,一种具体实现方式中,如图3所示,在上述各个具体实现方式的基础上,上述步骤S102,基于当前空间信息和当前运行状态,确定SSD所申请的HMB空间的调整策略可以包括如下步骤:
S1021:基于当前运行状态,确定目标空间信息;
其中,目标空间信息为:用于保证SSD在当前运行状态下的工作性能满足预定性能要求所需的HMB空间的信息;
在监测到上述当前空间信息和当前运行状态,SSD的主控芯片便可以首先基于当前运行状态,确定用于保证SSD在当前运行状态下的工作性能满足预定性能要求所需的HMB空间的目标空间信息。
可选的,上述步骤S1021可以包括如下步骤21:
步骤21:根据预设的运行状态与HMB空间信息的对应关系,确定与当前运行状态对应的空间信息,作为目标空间信息。
其中,每个运行状态对应的HMB空间信息为:能够保证SSD在该运行状态下的工作性能满足预定工作性能所需申请的HMB空间的空间信息。
针对SSD所可能出现的运行状态,可以预先通过实验、计算等多种方式,确定各个运行状体与HMB空间信息的对应关系。
其中,针对该对应关系中每个运行状态,当SSD在该运行状态下运行时,为了保证SSD的工作性能满足预定工作性能,则SSD所需申请的HMB空间的空间信息即为该运行状态所对应的HMB空间信息。
这样,针对上述所监测到的当前运行状态,便可以在上述对应关系中,查找该当前运行状态所对应的HMB空间信息,则所查找到的HMB空间信息即为用于保证SSD在当前运行状态下的工作性能满足预定性能要求所需的HMB空间的目标空间信息。
可选的,上述步骤S1021可以包括如下步骤22:
步骤22:根据当前运行状态与SSD的设备参数,计算目标空间信息。
SSD的主控芯片可以根据当前运行状态和SSD的设备参数,计算用于保证SSD在当前运行状态下的工作性能满足预定性能要求所需申请的HMB空间的空间大小和/或空间分布等信息,从而,SSD的主控芯片所计算得到的关于所需申请的HMB空间的信息,即为目标空间信息。
其中,上述SSD的设备参数可以为:SSD的存储空间大小、SSD的主控芯片的芯片类型、SSD的读写速度等,对此,本发明实施例不做具体限定。
S1022:根据当前空间信息和目标空间信息的差异,确定SSD所申请的HMB空间的调整策略。
这样,在确定出上述目标空间信息后,由于上述目标空间信息可以保证SSD在当前运行状态下的工作性能满足预定性能要求,因此,为了使得SSD在当前运行状态下的工作性能能够满足预定工作性能,则需要对SSD所申请的HMB空间进行调整,使SSD所申请的HMB空间的空间信息由当前空间信息变更为目标空间信息。
基于此,便可以当前空间信息和目标空间信息的差异,确定SSD所申请的HMB空间的调整策略。
可选的,上述调整策略可以包括:SSD向主机申请目标空间大小的HMB空间。这样,在主机允许SSD进行上述目标空间大小的HMB空间申请时,SSD在申请到上述目标空间大小的HMB空间后,便可以满足预定性能要求。
可选的,上述调整策略可以包括:调整已申请的HMB空间的空间分布。在有些情况下,主机可以不允许SSD再次进行HMB空间申请,或者,所允许的SSD进行申请的HMB空间的大小,小于SSD所需申请的HMB空间的大小,这样,SSD便可以对已申请的HMB空间进行重新分配,从而,为各类数据处理任务分配空间大小较为合理的HMB空间,以使得SSD的性能可以达到当前状态下的最佳性能。
可选的,一种具体实现方式中,上述当前空间信息可以包括当前空间大小,则上述目标空间信息即可以包括目标空间大小。
相应的,在本具体实现方式中,上述步骤S1022,根据当前空间信息和目标空间信息的差异,确定SSD所申请的HMB空间的调整策略,可以包括如下步骤31-32:
步骤31:若当前空间大小小于目标空间大小,则计算当前空间大小与目标空间大小的差值绝对值;
步骤32:确定SSD所申请的HMB空间的调整策略包括:增加SSD所申请的HMB空间且所增加的HMB空间的空间大小为差值绝对值。
在本具体实现方式中,可以首先确定当前空间大小与目标空间大小的大小关系,从而,若当前空间大小小于目标空间大小,则说明需要将SSD所申请的HMB空间由当前空间大小增大至目标空间大小,才能够保证SSD在当前运行状态下的工作性能满足预定性能要求。
从而,若当前空间大小小于目标空间大小,便可以当前空间大小与目标空间大小的差值绝对值,并进一步确定SSD所申请的HMB空间的调整策略包括:增加SSD所申请的HMB空间且所增加的HMB空间的空间大小为差值绝对值。
这样,在按照所确定的调整策略,对SSD所申请的HMB空间进行调整时,则可以向主机再次申请空间大小为上述差值绝对值的HMB空间,从而,增加SSD所申请的HMB空间,使得所申请的HMB空间的空间大小由当前空间大小增大至目标空间大小。
此外,可选的,若当前空间大小大于等于目标空间大小,则说明SSD在当前运行状态下的工作性能满足预定性能要求,则可以不对SSD所申请的HMB空间进行调整。
可选的,若当前空间大小大于目标空间大小,则说明SSD在当前运行状态下的工作性能满足预定性能要求,则为了使得主机内存能够得到充分的利用,则可以通过调整SSD所申请的HMB空间,释放SSD所申请的HMB空间中的部分HMB空间,其中,为了使得剩余的SSD所申请的HMB空间的空间大小能够保证SSD在当前运行状态下的工作性能满足预定性能要求,则所释放的HMB空间的空间大小不大于上述差值绝对值,从而,保证所剩余的SSD所申请的HMB空间的空间大小不小于上述目标空间大小。
也就是说,若当前空间大小大于目标空间大小,则同样可以首先计算当前空间大小与目标空间大小的差值绝对值;进而,便可以确定SSD所申请的HMB空间的调整策略包括:释放SSD所申请的HMB空间且所释放的HMB空间的空间大小不大于上述差值绝对值。
可选的,一种具体实现方式中,上述当前空间信息可以包括当前空间分布,即包括为SSD所执行的各类数据处理任务分配的HMB空间的第一空间大小;则上述目标空间信息即可以包括目标空间分布,即包括为SSD所执行的各类数据处理任务分配的HMB空间的第二空间大小,并且,上述所监测到的当前运行状态包括以下SSD所在执行的各类数据处理任务的负载压力。
相应的,在本具体实现方式中,上述步骤S1022,根据当前空间信息和目标空间信息的差异,确定SSD所申请的HMB空间的调整策略,可以包括如下步骤33-34:
步骤33:针对SSD所执行的每一类数据处理任务,若为该类数据处理任务分配的HMB空间的第一空间大小小于为该类数据处理任务分配的HMB空间的第二空间大小,则计算为该类数据处理任务分配的HMB空间的第一空间大小与为该类数据处理任务分配的HMB空间的第二空间大小的差值绝对值;
步骤34:确定SSD所申请的HMB空间的调整策略包括:增加为该类数据处理任务分配的HMB空间且所增加的HMB空间的空间大小为差值绝对值。
在本具体实现方式中,针对SSD所执行的每一类数据处理任务,可以首先确定为该类数据处理任务分配的HMB空间的第一空间大小与为该类数据处理任务分配的HMB空间的第二空间大小的大小关系,从而,若第一空间大小小于第二空间大小,则说明需要将为该类数据处理任务分配的HMB空间的空间大小由第一空间大小增大至第二空间大小,才能够保证SSD在当前运行状态下的工作性能满足预定性能要求。
从而,若第一空间大小小于第二空间大小,便可以第一空间大小与第二空间大小的差值绝对值,并进一步确定SSD所申请的HMB空间的调整策略包括:增加为该类数据处理任务分配的HMB空间且所增加的HMB空间的空间大小为差值绝对值。
可选的,在按照所确定的调整策略,对SSD所申请的HMB空间进行调整时,则可以向主机再次申请空间大小为上述差值绝对值的HMB空间,从而,增加为该类任务分配的HMB空间,使得为该类数据处理任务分配的HMB空间的空间大小由第一空间大小增大至第二空间大小。
可选的,在按照所确定的调整策略,对SSD所申请的HMB空间进行调整时,可以在当前已申请的HMB空间中,减少为其他各类数据处理任务分配的HMB空间,并且,所减少的HMB空间的大小为上述差值绝对值,从而,可以将该空间大小为上述差值绝对值的HMB空间分配给该类数据处理任务,使得为该数据处理类任务分配的HMB空间的空间大小由第一空间大小增大至第二空间大小。
例如,若当前映射表换入换出频率较高,则可以为映射表分配更大的HMB空间,从而,提高映射表的命中率。
若当前Trim操作频率较高,则可以为Trim操作分配更大的HMB空间,从而,使得SSD可以大批量处理Trim操作,提高Trim操作的处理效率,进而,提高SSD的工作性能。
若垃圾回收负载较重,则可以提高HMB空间中所分配的VDF Bitmap Tablebuffer,从而,可以通过查找有效数据位图,在垃圾回收过程中找到待回收的有效数据进行搬移,提高垃圾回收效率,进而,提高SSD的工作性能。
若Host读写压力较大,则可以提高HMB空间中所分配的Read cache(读数据空间)和Write buffer(写数据空间),从而,使得SSD可以提高Host读命令和Host写命令的并发度,提高Host读写的处理效率,进而,提高SSD的工作性能。
若为Log分配的log buffer的刷新频率较高,即Log的下刷频率较高,则可以提高HMB空间中所分配的log buffer,从而,可以在Log的数据量积累到一定的大小时,再进行下刷,从而,降低log buffer的刷新频率,进而,提高SSD的工作性能。其中,所谓Log的下刷为:利用新的待记录的Log覆盖全部被占用的log buffer中已有的Log,即对log buffer进行刷新。
此外,可选的,若第一空间大小大于等于第二空间大小,则说明SSD在当前运行状态下的工作性能满足预定性能要求,则可以不对SSD所申请的HMB空间进行调整。
可选的,若当前空间大小大于目标空间大小,则说明SSD在当前运行状态下执行该类数据处理任务时的工作性能满足预定性能要求,则为了使得主机内存能够得到充分的利用,则可以通过调整SSD所申请的HMB空间,释放为该类数据处理任务分配的部分HMB空间,其中,为了使得剩余的为该类数据处理任务分配的空间大小能够保证SSD在当前运行状态下执行该类数据处理任务时的工作性能满足预定性能要求,则所释放的HMB空间的空间大小不大于上述差值绝对值,从而,保证所剩余的为该类数据处理任务分配的空间大小的空间大小不小于上述第二空间大小。
也就是说,若第一空间大小大于第二空间大小,则同样可以首先计算第一空间大小与第二空间大小的差值绝对值;进而,便可以确定SSD所申请的HMB空间的调整策略包括:释放为该类数据处理任务分配的HMB空间且所释放的HMB空间的空间大小不大于差值绝对值。
可选的,一种具体实现方式中,在上述步骤33和步骤34的基础上,本发明实施例提供的一种主机内存缓冲管理方法,还可以包括如下步骤35:
步骤35:针对SSD所执行的每一类数据处理任务,若为该类数据处理任务分配的HMB空间的第一空间大小小于为该类数据处理任务分配的HMB空间的第二空间大小,调整SSD执行该类数据处理任务的操作参数。
在本具体实现方式中,为了进一步提高SSD的工作性能,针对SSD所执行的每一类数据处理任务,若为该类数据处理任务分配的HMB空间的第一空间大小小于为该类数据处理任务分配的HMB空间的第二空间大小,则可以同时调整为该类任务分配的HMB空间,以及SSD执行该类数据处理任务的操作参数。
其中,若数据处理任务包括:映射表换入换出操作,则操作参数包括:数据组织方式;若数据处理任务包括:数据删除操作,则操作参数包括:数据删除工作粒度;若数据处理任务包括:日志刷新操作,则操作参数包括:日志刷新粒度。
示例性的,若当前映射表(L2P Table)换入换出频率较高,则可以为映射表分配更大的HMB空间,并且,还可以改变映射表在SSD所申请的HMB空间中的组织方式,例如,将映射表在SSD所申请的HMB空间中的组织方式由Hash Table(哈希表)改为数组,从而,可以提高映射表的查询效率。
若当前Trim操作负载较重,则可以为Trim操作分配更大的HMB空间,从而,可以将能够聚合的Trim操作进行聚合,从而,可以对所聚合的多个Trim操作进行批量处理,以提升SSD的性能。并且,还可以提高Trim工作粒度,从而,提高Trim操作的处理效率,进而,提高SSD的工作性能。
若Log(日志)更新频率较高,则可以提高HMB空间中所分配的log buffer(日志空间),并且,还可以提高Log的下刷粒度,从而,可以一次性刷新更多的log buffer中的空间,降低log buffer的刷新频率,进而,提高SSD的工作性能。
相应于上述本发明实施例提供的一种主机内存缓冲管理方法,本发明实施例提供了一种主机内存缓冲管理装置。以下实施例中未详细解释的内容,可以参考上述实施例的描述。
图4为本发明实施例提供的一种主机内存缓冲管理装置的结构示意图,如图4所示,该装置可以包括如下模块:
信息监测模块410,用于监测固态硬盘SSD所申请的主机内存缓冲HMB空间的当前空间信息,以及所述SSD的当前运行状态;
策略确定模块420,用于基于所述当前空间信息和所述当前运行状态,确定所述SSD所申请的HMB空间的调整策略;其中,所述调整策略用于保证按照所述调整策略调整所述SSD所申请的HMB空间后,所述SSD的工作性能满足预定性能要求;
空间调整模块430,用于按照所述调整策略,对所述SSD所申请的HMB空间进行调整。
基于此,应用本发明实施例提供的方案,根据SSD的运行状态动态地调整SSD所申请的HMB空间,即对SSD所申请的HMB空间进行动态管理,使其能够具有自适应能力,从而,可以始终满足SSD的运行需求,使得SSD在任何运行状态下,均可以具有较高的工作性能。
可选的,一种具体实现方式中,所述当前空间信息包括:当前空间大小和/或当前空间分布;其中,所述当前空间分布包括:为所述SSD所执行的各类数据处理任务分配的HMB空间的第一空间大小;
所述当前运行状态包括所述SSD所执行以下各类数据处理任务的当前负载压力中的至少一种:
当前映射表换入换出操作、当前数据删除操作、当前主机读写操作、当前垃圾回收操作和当前日志刷新操作。
可选的,一种具体实现方式中,所述策略确定模块420包括:
信息确定子模块,用于基于所述当前运行状态,确定目标空间信息;其中,所述目标空间信息为:用于保证所述SSD在所述当前运行状态下的工作性能满足所述预定性能要求所需的HMB空间的信息;
策略确定子模块,用于根据所述当前空间信息和所述目标空间信息的差异,确定所述SSD所申请的HMB空间的调整策略。
可选的,一种具体实现方式中,所述信息确定子模块具体用于:
根据预设的运行状态与HMB空间信息的对应关系,确定与所述当前运行状态对应的空间信息,作为目标空间信息;其中,每个运行状态对应的HMB空间信息为:能够保证SSD在该运行状态下的工作性能满足预定工作性能所需申请的HMB空间的空间信息;
或者,
根据所述当前运行状态与所述SSD的设备参数,计算目标空间信息。
可选的,一种具体实现方式中,所述当前空间信息包括当前空间大小;所述目标空间信息包括目标空间大小;所述策略确定子模块具体用于:
若所述当前空间大小小于所述目标空间大小,则计算所述当前空间大小与所述目标空间大小的差值绝对值;
确定所述SSD所申请的HMB空间的调整策略包括:增加所述SSD所申请的HMB空间且所增加的HMB空间的空间大小为所述差值绝对值。
可选的,一种具体实现方式中,所述当前空间信息包括当前空间分布;所述目标空间信息包括目标空间分布;所述目标空间分布包括:为所述SSD所执行的各类数据处理任务分配的HMB空间的第二空间大小;所述当前运行状态包括以下所述SSD所在执行的各类数据处理任务的负载压力;所述策略确定子模块具体用于:
针对所述SSD所执行的每一类数据处理任务,若为该类数据处理任务分配的HMB空间的第一空间大小小于为该类数据处理任务分配的HMB空间的第二空间大小,则计算为该类数据处理任务分配的HMB空间的第一空间大小与为该类数据处理任务分配的HMB空间的第二空间大小的差值绝对值;
确定所述SSD所申请的HMB空间的调整策略包括:增加为该类数据处理任务分配的HMB空间且所增加的HMB空间的空间大小为所述差值绝对值。
可选的,一种具体实现方式中,所述装置还包括:
参数确定模块,用于针对所述SSD所执行的每一类数据处理任务,若为该类数据处理任务分配的HMB空间的第一空间大小小于为该类数据处理任务分配的HMB空间的第二空间大小,调整所述SSD执行该类数据处理任务的操作参数;
其中,若所述数据处理任务包括:映射表换入换出操作,则所述操作参数包括:数据组织方式;若所述数据处理任务包括:数据删除操作,则所述操作参数包括:数据删除工作粒度;若所述数据处理任务包括:日志刷新操作,则所述操作参数包括:日志刷新粒度。
可选的,一种具体实现方式中,所述装置还包括:
性能判断模块,用于在所述基于所述当前空间信息和所述当前运行状态,确定所述SSD所申请的HMB空间的调整策略之前,确定所述SSD的当前工作性能是否满足预定性能要求;如果不满足,触发所述策略确定模块。
可选的,一种具体实现方式中,所述信息监测模块410具体用于:
按照预设周期,监测固态硬盘SSD所申请的主机内存缓冲HMB空间的当前空间信息,以及所述SSD的当前运行状态。
本发明实施例还提供了一种固态硬盘,包括主控芯片,用于实现本发明实施例提供的任一种主机内存缓冲管理方法的步骤。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例提供的任一种主机内存缓冲管理方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行本发明实施例提供的任一种主机内存缓冲管理方法的步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当申请软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例、固态硬盘实施例、计算机可读存储介质实施例,以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (12)

1.一种主机内存缓冲管理方法,其特征在于,所述方法包括:
监测固态硬盘SSD所申请的主机内存缓冲HMB空间的当前空间信息,以及所述SSD的当前运行状态;
基于所述当前空间信息和所述当前运行状态,确定所述SSD所申请的HMB空间的调整策略;其中,所述调整策略用于保证按照所述调整策略调整所述SSD所申请的HMB空间后,所述SSD的工作性能满足预定性能要求;
按照所述调整策略,对所述SSD所申请的HMB空间进行调整。
2.根据权利要求1所述的方法,其特征在于,所述当前空间信息包括:当前空间大小和/或当前空间分布;其中,所述当前空间分布包括:为所述SSD所执行的各类数据处理任务分配的HMB空间的第一空间大小;
所述当前运行状态包括所述SSD所执行以下各类数据处理任务的当前负载压力中的至少一种:
当前映射表换入换出操作、当前数据删除操作、当前主机读写操作、当前垃圾回收操作和当前日志刷新操作。
3.根据权利要求1或2所述的方法,其特征在于,所述基于所述当前空间信息和所述当前运行状态,确定所述SSD所申请的HMB空间的调整策略,包括:
基于所述当前运行状态,确定目标空间信息;其中,所述目标空间信息为:用于保证所述SSD在所述当前运行状态下的工作性能满足所述预定性能要求所需的HMB空间的信息;
根据所述当前空间信息和所述目标空间信息的差异,确定所述SSD所申请的HMB空间的调整策略。
4.根据权利要求3所述的方法,其特征在于,所述基于所述当前运行状态,确定目标空间信息的步骤,包括:
根据预设的运行状态与HMB空间信息的对应关系,确定与所述当前运行状态对应的空间信息,作为目标空间信息;其中,每个运行状态对应的HMB空间信息为:能够保证SSD在该运行状态下的工作性能满足预定工作性能所需申请的HMB空间的空间信息;
或者,
根据所述当前运行状态与所述SSD的设备参数,计算目标空间信息。
5.根据权利要求3所述的方法,其特征在于,所述当前空间信息包括当前空间大小;所述目标空间信息包括目标空间大小;
所述根据所述当前空间信息和所述目标空间信息的差异,确定所述SSD所申请的HMB空间的调整策略,包括:
若所述当前空间大小小于所述目标空间大小,则计算所述当前空间大小与所述目标空间大小的差值绝对值;
确定所述SSD所申请的HMB空间的调整策略包括:增加所述SSD所申请的HMB空间且所增加的HMB空间的空间大小为所述差值绝对值。
6.根据权利要求3所述的方法,其特征在于,所述当前空间信息包括当前空间分布;所述目标空间信息包括目标空间分布;所述目标空间分布包括:为所述SSD所执行的各类数据处理任务分配的HMB空间的第二空间大小;所述当前运行状态包括所述SSD所在执行的各类数据处理任务的负载压力;
所述根据所述当前空间信息和所述目标空间信息的差异,确定所述SSD所申请的HMB空间的调整策略,包括:
针对所述SSD所执行的每一类数据处理任务,若为该类数据处理任务分配的HMB空间的第一空间大小小于为该类数据处理任务分配的HMB空间的第二空间大小,则计算为该类数据处理任务分配的HMB空间的第一空间大小与为该类数据处理任务分配的HMB空间的第二空间大小的差值绝对值;
确定所述SSD所申请的HMB空间的调整策略包括:增加为该类数据处理任务分配的HMB空间且所增加的HMB空间的空间大小为所述差值绝对值。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
针对所述SSD所执行的每一类数据处理任务,若为该数据处理类任务分配的HMB空间的第一空间大小小于为该类数据处理任务分配的HMB空间的第二空间大小,调整所述SSD执行该类数据处理任务的操作参数;
其中,若所述数据处理任务包括:映射表换入换出操作,则所述操作参数包括:数据组织方式;若所述数据处理任务包括:数据删除操作,则所述操作参数包括:数据删除工作粒度;若所述数据处理任务包括:日志刷新操作,则所述操作参数包括:日志刷新粒度。
8.根据权利要求1所述的方法,其特征在于,在所述基于所述当前空间信息和所述当前运行状态,确定所述SSD所申请的HMB空间的调整策略之前,所述方法还包括:
确定所述SSD的当前工作性能是否满足预定性能要求;
如果不满足,执行所述基于所述当前空间信息和所述当前运行状态,确定所述SSD所申请的HMB空间的调整策略的步骤。
9.根据权利要求1所述的方法,其特征在于,所述监测固态硬盘SSD所申请的主机内存缓冲HMB空间的当前空间信息,以及所述SSD所执行的各类数据处理任务的当前负载压力,包括:
按照预设周期,监测固态硬盘SSD所申请的主机内存缓冲HMB空间的当前空间信息,以及所述SSD的当前运行状态。
10.一种主机内存缓冲管理装置,其特征在于,所述装置包括:
信息监测模块,用于监测固态硬盘SSD所申请的主机内存缓冲HMB空间的当前空间信息,以及所述SSD的当前运行状态;
策略确定模块,用于基于所述当前空间信息和所述当前运行状态,确定所述SSD所申请的HMB空间的调整策略;其中,所述调整策略用于保证按照所述调整策略调整所述SSD所申请的HMB空间后,所述SSD的工作性能满足预定性能要求;
空间调整模块,用于按照所述调整策略,对所述SSD所申请的HMB空间进行调整。
11.根据权利要求10所述的装置,其特征在于,所述当前空间信息包括:当前空间大小和/或当前空间分布;其中,所述当前空间分布包括:为所述SSD所执行的各类数据处理任务分配的HMB空间的第一空间大小;
所述当前运行状态包括所述SSD所执行以下各类数据处理任务的当前负载压力中的至少一种:当前映射表换入换出操作、当前数据删除操作、当前主机读写操作、当前垃圾回收操作和当前日志刷新操作;
和/或,
所述策略确定模块包括:信息确定子模块,用于基于所述当前运行状态,确定目标空间信息;其中,所述目标空间信息为:用于保证所述SSD在所述当前运行状态下的工作性能满足所述预定性能要求所需的HMB空间的信息;策略确定子模块,用于根据所述当前空间信息和所述目标空间信息的差异,确定所述SSD所申请的HMB空间的调整策略;
和/或,
所述信息确定子模块具体用于:根据预设的运行状态与HMB空间信息的对应关系,确定与所述当前运行状态对应的空间信息,作为目标空间信息;其中,每个运行状态对应的HMB空间信息为:能够保证SSD在该运行状态下的工作性能满足预定工作性能所需申请的HMB空间的空间信息;或者,根据所述当前运行状态与所述SSD的设备参数,计算目标空间信息;
和/或,
所述当前空间信息包括当前空间大小;所述目标空间信息包括目标空间大小;所述策略确定子模块具体用于:若所述当前空间大小小于所述目标空间大小,则计算所述当前空间大小与所述目标空间大小的差值绝对值;确定所述SSD所申请的HMB空间的调整策略包括:增加所述SSD所申请的HMB空间且所增加的HMB空间的空间大小为所述差值绝对值;
和/或,
所述当前空间信息包括当前空间分布;所述目标空间信息包括目标空间分布;所述目标空间分布包括:为所述SSD所执行的各类数据处理任务分配的HMB空间的第二空间大小;所述当前运行状态包括以下所述SSD所在执行的各类数据处理任务的负载压力;所述策略确定子模块具体用于:针对所述SSD所执行的每一类数据处理任务,若为该类数据处理任务分配的HMB空间的第一空间大小小于为该类数据处理任务分配的HMB空间的第二空间大小,则计算为该类数据处理任务分配的HMB空间的第一空间大小与为该类数据处理任务分配的HMB空间的第二空间大小的差值绝对值;确定所述SSD所申请的HMB空间的调整策略包括:增加为该类数据处理任务分配的HMB空间且所增加的HMB空间的空间大小为所述差值绝对值;
和/或,
所述装置还包括:参数确定模块,用于针对所述SSD所执行的每一类数据处理任务,若为该类数据处理任务分配的HMB空间的第一空间大小小于为该类数据处理任务分配的HMB空间的第二空间大小,调整所述SSD执行该类数据处理任务的操作参数;其中,若所述数据处理任务包括:映射表换入换出操作,则所述操作参数包括:数据组织方式;若所述数据处理任务包括:数据删除操作,则所述操作参数包括:数据删除工作粒度;若所述数据处理任务包括:日志刷新操作,则所述操作参数包括:日志刷新粒度;
和/或,
所述装置还包括:性能判断模块,用于在所述基于所述当前空间信息和所述当前运行状态,确定所述SSD所申请的HMB空间的调整策略之前,确定所述SSD的当前工作性能是否满足预定性能要求;如果不满足,触发所述策略确定模块;
和/或,
所述信息监测模块具体用于:按照预设周期,监测固态硬盘SSD所申请的主机内存缓冲HMB空间的当前空间信息,以及所述SSD的当前运行状态。
12.一种固态硬盘,其特征在于,包括主控芯片,用于实现权利要求1-9任一所述的方法步骤。
CN202111149556.3A 2021-09-29 2021-09-29 主机内存缓冲管理方法、装置、以及固态硬盘 Active CN113867641B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111149556.3A CN113867641B (zh) 2021-09-29 2021-09-29 主机内存缓冲管理方法、装置、以及固态硬盘

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111149556.3A CN113867641B (zh) 2021-09-29 2021-09-29 主机内存缓冲管理方法、装置、以及固态硬盘

Publications (2)

Publication Number Publication Date
CN113867641A true CN113867641A (zh) 2021-12-31
CN113867641B CN113867641B (zh) 2023-06-02

Family

ID=78992529

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111149556.3A Active CN113867641B (zh) 2021-09-29 2021-09-29 主机内存缓冲管理方法、装置、以及固态硬盘

Country Status (1)

Country Link
CN (1) CN113867641B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114741336A (zh) * 2022-06-09 2022-07-12 荣耀终端有限公司 内存中Host侧缓存区调整方法、电子设备及芯片系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5420998A (en) * 1992-04-10 1995-05-30 Fujitsu Limited Dual memory disk drive
CN105117180A (zh) * 2015-09-28 2015-12-02 联想(北京)有限公司 一种数据存储方法和装置以及固态硬盘
US20180136875A1 (en) * 2016-11-15 2018-05-17 Samsung Electronics Co., Ltd. Method and system for managing host memory buffer of host using non-volatile memory express (nvme) controller in solid state storage device
CN110362276A (zh) * 2019-07-10 2019-10-22 深圳忆联信息系统有限公司 基于固态硬盘的Trim执行效率提升方法和装置
CN110737607A (zh) * 2019-09-30 2020-01-31 深圳忆联信息系统有限公司 管理hmb内存的方法、装置、计算机设备及存储介质
CN111149096A (zh) * 2017-11-09 2020-05-12 西部数据技术公司 借助于主机内存缓冲区范围的自适应装置服务质量
US20210073404A1 (en) * 2019-09-11 2021-03-11 Kioxia Corporation Memory system
CN113407120A (zh) * 2021-06-30 2021-09-17 深圳忆联信息系统有限公司 基于hmb的映射表管理方法、装置及计算机设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5420998A (en) * 1992-04-10 1995-05-30 Fujitsu Limited Dual memory disk drive
CN105117180A (zh) * 2015-09-28 2015-12-02 联想(北京)有限公司 一种数据存储方法和装置以及固态硬盘
US20180136875A1 (en) * 2016-11-15 2018-05-17 Samsung Electronics Co., Ltd. Method and system for managing host memory buffer of host using non-volatile memory express (nvme) controller in solid state storage device
CN111149096A (zh) * 2017-11-09 2020-05-12 西部数据技术公司 借助于主机内存缓冲区范围的自适应装置服务质量
CN110362276A (zh) * 2019-07-10 2019-10-22 深圳忆联信息系统有限公司 基于固态硬盘的Trim执行效率提升方法和装置
US20210073404A1 (en) * 2019-09-11 2021-03-11 Kioxia Corporation Memory system
CN110737607A (zh) * 2019-09-30 2020-01-31 深圳忆联信息系统有限公司 管理hmb内存的方法、装置、计算机设备及存储介质
CN113407120A (zh) * 2021-06-30 2021-09-17 深圳忆联信息系统有限公司 基于hmb的映射表管理方法、装置及计算机设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114741336A (zh) * 2022-06-09 2022-07-12 荣耀终端有限公司 内存中Host侧缓存区调整方法、电子设备及芯片系统
CN114741336B (zh) * 2022-06-09 2022-11-25 荣耀终端有限公司 内存中Host侧缓存区调整方法、电子设备及芯片系统

Also Published As

Publication number Publication date
CN113867641B (zh) 2023-06-02

Similar Documents

Publication Publication Date Title
US8949568B2 (en) Memory storage device, and a related zone-based block management and mapping method
US8438334B2 (en) Hybrid storage subsystem with mixed placement of file contents
US8275965B2 (en) Creating substitute area capacity in a storage apparatus using flash memory
US8909887B1 (en) Selective defragmentation based on IO hot spots
KR102093523B1 (ko) 순차적인 순서의 스왑 파일을 이용한 작업 세트 스와핑 기법
KR101612922B1 (ko) 메모리 시스템 및 메모리 시스템 관리 방법
RU2661280C2 (ru) Контроллер массива, твердотельный диск и способ для управления твердотельным диском для записи данных
JP5955877B2 (ja) システム、記憶デバイスおよび記憶空間割当方法
US20090106518A1 (en) Methods, systems, and computer program products for file relocation on a data storage device
JP6459644B2 (ja) ストレージ制御装置、制御システム及び制御プログラム
US10997080B1 (en) Method and system for address table cache management based on correlation metric of first logical address and second logical address, wherein the correlation metric is incremented and decremented based on receive order of the first logical address and the second logical address
JP6323445B2 (ja) ストレージ装置と方法及びプログラム
WO2014209234A1 (en) Method and apparatus for hot data region optimized dynamic management
US8037276B2 (en) Computer system, storage area allocation method, and management computer
US11630779B2 (en) Hybrid storage device with three-level memory mapping
US11016889B1 (en) Storage device with enhanced time to ready performance
CN113867641B (zh) 主机内存缓冲管理方法、装置、以及固态硬盘
KR101026634B1 (ko) 하이브리드 플래시 메모리의 데이터 저장 방법
US11307797B2 (en) Storage device and information processing system
US11237738B2 (en) Managing operation of a data storage system with reservation of metadata space
US20210263648A1 (en) Method for managing performance of logical disk and storage array
JP6273678B2 (ja) ストレージ装置
CN115220660A (zh) 固态硬盘的写命令处理优化方法、装置和计算机设备
CN116088764A (zh) 动态容量缓存加速的ssd设备
CN118113214A (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