CN117806570A - 在线内存扩展方法、装置、设备及存储介质 - Google Patents

在线内存扩展方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN117806570A
CN117806570A CN202410226278.4A CN202410226278A CN117806570A CN 117806570 A CN117806570 A CN 117806570A CN 202410226278 A CN202410226278 A CN 202410226278A CN 117806570 A CN117806570 A CN 117806570A
Authority
CN
China
Prior art keywords
data
memory
address
ssd
cache
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
CN202410226278.4A
Other languages
English (en)
Other versions
CN117806570B (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.)
Shencun Technology Wuxi Co ltd
Original Assignee
Shencun Technology Wuxi 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 Shencun Technology Wuxi Co ltd filed Critical Shencun Technology Wuxi Co ltd
Priority to CN202410226278.4A priority Critical patent/CN117806570B/zh
Publication of CN117806570A publication Critical patent/CN117806570A/zh
Application granted granted Critical
Publication of CN117806570B publication Critical patent/CN117806570B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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

Abstract

本申请涉及一种在线内存扩展方法、装置、设备及存储介质,应用在计算机存储领域,包括设置所述SSD存储器所支持的标准协议,并对每个所述SSD存储器配置单独的DMA通道;将所述SSD存储器的逻辑地址与在线内存地址进行映射对应;获取待写入的数据以及所述待写入的数据对应的目标在线内存地址,将所述待写入的数据以及所述目标在线内存地址缓存至所述高带宽存储器;将所述高带宽存储器中缓存的数据同步至所述SSD存储器的所述逻辑地址中。本申请具有的技术效果是:扩展在线内存,降低延时,同时可以降低在线内存扩展方案实现的成本。

Description

在线内存扩展方法、装置、设备及存储介质
技术领域
本申请涉及计算机存储技术领域,尤其是涉及一种在线内存扩展方法、装置、设备及存储介质。
背景技术
随着信息技术的发展,数据量日益增多,本地可能会出现存储空间不够的情况,因此可以通过在线内存的形式进行扩展以便于进行正常的操作。目前最常用的在线内存扩展技术主要基于服务器架构,通过配置超大内存来获得大容量存储空间,也可以采用多服务器并行进一步扩展存储空间,或是使用SSD扩展存储空间。
这种基于服务器架构的扩展方案可有效满足对容量的需求,但网络数据经过网卡—内存—CPU会产生较大的延时,同时CPU访问内存时由于天然的多层cache架构也有较大延时;基于服务器架构的方案中一般会进行加速设置,例如,通过配置智能网卡来降低网络延时,或是结合网络协议栈DPDK技术进一步降低网络延时,然而经过层层硬件流转,架构上产生的延时仍然较高。
鉴于服务器/CPU方案往往不能满足低延时需求,目前常采用硬件RDMA的解决方案,网络在硬件中直接访问内存,可降低延时。然而,硬件加速器可挂载的内存容量有限,一般在几十GB到一百多GB,因此需要大量设备来支持大容量在线内存,一般情况下,内存设备如DDR内存或高带宽存储器(HBM)等的价格昂贵,使用大量内存设备会使得扩展方案成本高。
发明内容
为了有助于解决扩展在线内存容量的方案会使得延时高且扩展方案成本高的问题,本申请提供一种在线内存扩展方法、装置、设备及存储介质。
第一方面,本申请提供一种在线内存扩展方法,采用如下技术方案:所述方法应用于在线内存扩展系统,所述在线内存扩展系统包括高带宽存储器和若干SSD存储器,所述SSD存储器包含逻辑地址,所述方法包括:
设置所述SSD存储器所支持的标准协议,并对每个所述SSD存储器配置单独的DMA通道;
将所述SSD存储器的逻辑地址与在线内存地址进行映射对应;
获取待写入的数据以及所述待写入的数据对应的目标在线内存地址,将所述待写入的数据以及所述目标在线内存地址缓存至所述高带宽存储器;
将所述高带宽存储器中缓存的数据同步至所述SSD存储器的所述逻辑地址中。
通过上述技术方案,(1)对比基于CPU/服务器架构搭建的在线内存扩展系统,可以更低成本建设相同容量在线内存扩展系统,并提供数量级下降的访问延时。(2)SSD存储器不基于文件系统访问,SSD存储器的逻辑地址直接映射为远程内存页,完全基于硬件加速的逻辑地址访问实现低成本、低延时、大容量的远程内存系统建设。(3)SSD逻辑访问+高带宽存储器写入页缓存方案可扩展性好,低延时提供在线内存容量上线更大,硬件器件涉及少,部署更简单,对部署环境要求更低。
在一个具体的可实施方案中,所述SSD存储器的逻辑地址包括逻辑内存页,所述将所述SSD存储器的逻辑地址与在线内存地址进行映射对应包括:
对所述在线内存地址配置预设数量的在线内存页;
按照固定的转换关系将所述在线内存页与所述逻辑内存页进行一一对应。
通过上述技术方案,将逻辑地址直接映射为远程内存页,将SSD存储器的逻辑地址与在线内存地址进行对应绑定,通过增加SSD存储器的数量可以实现对在线内存的扩展,增大在线内存的容量。
在一个具体的可实施方案中,所述在线内存扩展系统还包括RDMA模块,所述将所述待写入的数据以及所述目标在线内存地址缓存至所述高带宽存储器包括:
根据预设的转译规则将所述目标在线内存地址转换为目标缓存地址;
将所述目标在线内存地址转换为目标逻辑地址,并记录所述目标逻辑地址;
利用所述RDMA模块传输所述待写入的数据,并将所述待写入的数据缓存到所述高带宽存储器中的所述目标缓存地址中。
通过上述技术方案,采用SSD存储器前后两次写数据的方式复杂,需要将前一次的数据擦除后才可以将后一次的数据写入,写数据的过程中伴随着块数据擦除,SSD存储器的寿命即为块数据擦除的次数,因此,将数据先缓存在高带宽存储器中再写入SSD存储器的方式可以有效减少块擦除的次数,从而可以提高SSD的寿命。
在一个具体的可实施方案中,所述高带宽存储器包含若干数据缓存器,所述将所述待写入的数据缓存到所述高带宽存储器中的所述目标缓存地址中包括:
新建缓存页状态表,所述缓存页状态表的数量与所述数据缓存器的数量一致;
将所述数据缓存器与所述SSD存储器一一对应;
根据所述待写入的数据的大小、所述数据缓存器的地址以及所述数据缓存器对应的SSD存储器的情况,将所述待写入的数据按页存储到具体的数据缓存器得到页缓存数据,并对所述数据缓存器中已使用的位置进行标记;
将所述待写入的数据写入的所述目标逻辑地址存储到所述缓存页状态表中,并对所述页缓存数据进行标记。
通过上述技术方案,采用高带宽存储器进行写入数据的缓存,高带宽存储器带宽高,写入速度较高,可以加快写数据的速度,降低时延,并行多个SSD存储器的访问设计,可满足同时在线内存访问场景下的写入速度需求,小容量(几十GB)的高带宽存储器结合大容量(可达几十TB)SSD可低成本达到大容量内存系统的写性能。在写入缓存数据时,采用log的方式直接迭代写入缓存区域,不需要知道页的具体的存储位置,从而可以节省时间,降低时延。
在一个具体的可实施方案中,所述将所述高带宽存储器中缓存的数据同步至所述SSD存储器的所述逻辑地址中包括:
判断所述数据缓存器中缓存的数据是否达到预设的占用比例;
若所述数据缓存器中缓存的数据达到预设的占用比例,则触发缓存数据按页同步至所述SSD存储器的所述目标逻辑地址;
所述触发缓存数据按页同步至所述SSD存储器的所述目标逻辑地址包括:
查询所述缓存页状态表,判断所述缓存页状态表中对应的页缓存数据是否过期;
若所述页缓存数据为非过期,则将所述页缓存数据写入所述目标逻辑地址中。
通过上述技术方案,内存页在写入后往往存在连续修改,如果每次都同步到SSD存储器中会增加写操作的开销并消耗SSD存储器寿命,通过缓存管理再写入SSD逻辑地址的方式可在数据同步到SSD时识别垃圾清理标记,跳过被标记的页,减少写入操作数量。
在一个具体的可实施方案中,在所述将所述页缓存数据写入所述目标逻辑地址中之前,还包括:
将非过期的页缓存数据组合生成块缓存数据;
将所述块缓存数据写入所述目标逻辑地址中。
通过上述技术方案,在写入SSD存储器目标逻辑地址前合并相同页的多次写入操作,从页写入的方式变为块写入的方式,可以减少高频操作,加快写数据的速度;此外,可以减少SSD存储器擦除的情况,进而提高SSD寿命。
在一个具体的可实施方案中,在所述新建缓存页状态表的同时,还包括:
新建缓存页检索表,并将所述目标逻辑地址写入所述缓存页检索表;
所述方法还包括:
在接收到数据读取的指令时,利用所述RDMA模块读取数据;
识别所述读取的数据对应的目标读取逻辑地址;
查询所述缓存页检索表,判断所述目标读取逻辑地址是否存在于所述缓存页检索表中;
若所述目标读取逻辑地址在所述缓存页检索表中,则返回所述高带宽存储器读取的数据;
若所述目标读取逻辑地址不在所述缓存页检索表中,则返回所述SSD存储器读取的数据。
通过上述技术方案,读取数据时,查询读取数据对应的目标逻辑地址,判断目标逻辑地址中对应的数据是否已经同步至SSD存储器,若已经同步完成则将SSD存储器中的数据读取并返回,若未同步,仍在缓存状态,则将高带宽存储器中的数据读取并返回,SSD并行处理在多任务时可发挥并行处理优势,读任务的响应采用双通道并行,防止层层查询增加延时,加速数据读取的速度。
第二方面,本申请提供一种在线内存扩展装置,采用如下技术方案:所述装置应用于在线内存扩展系统,所述在线内存扩展系统包括高带宽存储器和若干SSD存储器,所述SSD存储器包含逻辑地址,所述装置包括:
初始设置模块,用于设置所述SSD存储器所支持的标准协议,并对每个所述SSD存储器配置单独的DMA通道;
地址映射模块,用于将所述SSD存储器的逻辑地址与在线内存地址进行映射对应;
数据缓存模块,用于获取待写入的数据以及所述待写入的数据对应的目标在线内存地址,将所述待写入的数据以及所述目标在线内存地址缓存至所述高带宽存储器;
数据写入模块,用于将所述高带宽存储器中缓存的数据同步至所述SSD存储器的所述逻辑地址中。
第三方面,本申请提供一种计算机设备,采用如下技术方案:包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行如上述任一种在线内存扩展方法的计算机程序。
第四方面,本申请提供一种计算机可读存储介质,采用如下技术方案:存储有能够被处理器加载并执行上述任一种在线内存扩展方法的计算机程序。
综上所述,本申请具有以下有益技术效果:
(1)对比基于CPU/服务器架构搭建的在线内存扩展系统,可以更低成本建设相同容量在线内存扩展系统,并提供数量级下降的访问延时。(2)SSD存储器不基于文件系统访问,SSD存储器的逻辑地址直接映射为远程内存页,完全基于硬件加速的RDMA结合SSD逻辑地址访问实现低成本、低延时、大容量的远程内存系统建设。(3)SSD逻辑访问结合高带宽存储器写入页缓存方案可扩展性好,低延时提供在线内存容量上线更大,硬件器件涉及少,部署更简单,对部署环境要求更低。(4)利用硬件加速器引脚丰富特性,并行挂载多个SSD存储器,提升可扩展容量,且可以提升设计的硬件加速器的利用率。
附图说明
图1是本申请实施例中在线内存扩展方法的流程图;
图2是本申请实施例中SSD存储器直接访问引擎进行交互的示意图;
图3是本申请实施例中在线内存扩展方案的总体架构示意图;
图4是本申请实施例中在线内存地址与逻辑地址的对应关系示意图;
图5是本申请实施例中页缓存数据缓存到高带宽存储器过程的示意图;
图6是本申请实施例中在线内存扩展访问管理读写数据的架构示意图;
图7是本申请实施例中基于在线内存扩展方法写入数据的流程图;
图8是本申请实施例中基于在线内存扩展方法读取数据的流程图;
图9是本申请实施例中在线内存扩展装置的示意图;
图10是本申请实施例中用于体现计算机设备的示意图。
附图标记:901、初始设置模块;902、地址映射模块;903、数据缓存模块;904、数据写入模块。
具体实施方式
以下结合图1-图10对本申请作进一步详细说明。
本申请实施例公开一种在线内存扩展方法,该方法应用于在线内存扩展系统,通过设计硬件加速器在硬件端实现在线内存的数据扩展,硬件加速器包括了高带宽存储器,RDMA模块以及在线内存扩展访问管理模块等以实现在线内存扩展,使得远端主机可以访问内存。远端用户输入待写入的数据,待写入的数据先写入在线内存地址中,系统获取到待写入的数据和待写入的数据对应的目标在线内存地址,将在线内存地址根据预先设定好的转换规则转换成缓存地址和目标逻辑地址,之后根据缓存规则将数据缓存至高带宽存储器中,当数据缓存到一定大小时,将缓存的数据同步至SSD存储器中;系统在获取到读取数据的指令时,识别读取的数据对应的目标逻辑地址,并查询缓存页检索表查看是否缓存命中,根据缓存命中的情况返回高带宽存储器或是SSD存储器中读取的数据,通过读和写的过程最终实现在线内存的扩展。
采用硬件加速器实现在线内存扩展的原因在于,目前常用的基于服务器架构实现的在线内存扩展方案往往不能满足低延时需求,而目前已有的采用硬件加速器实现在线内存扩展的方案可以降低延时,但是由于需要大量的内存设备支持大容量在线内存导致扩展方案成本高。为了有助于扩展在线内存并且能有效降低扩展方案的成本,本申请提出一种在线内存扩展方法。
参照图1,该方法包括以下步骤:
S10,设置SSD存储器所支持的标准协议,并对每个SSD存储器配置单独的DMA通道。
具体来说,在本申请实施例中采用多个SSD存储器并行处理的方法实现在线内存扩展方案。SSD存储器采用PCIe总线进行传输,在设计硬件加速器时为每个SSD存储器配置独立的PCIe Root port子系统以支持PCIe传输,并配置队列管理支持NVMe协议逻辑地址的读写,从而完成对SSD存储器所支持的标准协议的设置;此外对每个SSD存储器都配置单独的DMA通道以便于数据的传输。参照图2,为硬件加速器中完成标准协议的设置后,SSD存储器直接访问硬件加速器中的引擎交互的示意图。
S20,将SSD存储器的逻辑地址与在线内存地址进行映射对应。
具体来说,在线内存地址为虚拟地址,逻辑地址为SSD存储器中的地址,将SSD存储器的逻辑地址通过一定的映射关系虚拟为在线内存的内存页地址,从而以便于实现远端主机的访问。
S30,获取待写入的数据以及待写入的数据对应的目标在线内存地址,将待写入的数据以及目标在线内存地址缓存至高带宽存储器。
具体来说,远端用户输入待写入的数据,待写入的数据先写入在线内存地址中,系统接收到待写入的数据和待写入的数据对应的目标在线内存地址后,按照缓存规则将数据和目标在线内存地址缓存至高带宽存储器。其中,数据缓存至高带宽存储器的方式可以由用户根据实际需求自行设定,在本申请实施例中,申请人考虑到数据传输速率等问题,在设计硬件加速器时添加了RDMA模块用于数据写入和数据读取,提高数据传输速率;通过RDMA模块结合SSD逻辑访问的方案可以实现在线内存的扩展,实现低延时、提供更大的在线内存容量并且可以有效降低方案成本。
S40,将高带宽存储器中缓存的数据同步至SSD存储器的逻辑地址中。
具体来说,将缓存中的数据按照数据缓存量触发数据同步至SSD存储器中最终实现数据在线写入存储,也即可以实现在线内存的扩展。
参照图3,为本申请实施例的在线内存扩展方案的总体架构,在线内存扩展方案的总体架构通过设计硬件加速器并结合多个SSD存储器并行实现,设计的硬件加速器中包含有高速MAC和PHY、RDMA模块、HBM存储器和在线内存扩展访问管理模块;其中,MAC和PHY表示的是网络结构中的数据链路层(MAC层)和以太网物理层(PHY层);RDMA是指远程直接数据存取,采用RDMA模块可以使远程数据访问是直接基于地址而不是基于网络数据包传输,简化并加速了网络协议栈,使访问数据的延时更短;HBM存储器也即高带宽存储器,用于缓存数据;在线内存扩展访问管理模块可以将缓存的数据写入到SSD存储器中,对数据的写入操作进行管理。在硬件加速器之外设计有若干个SSD存储器,多个SSD存储器并行可以扩展容量,SSD存储器具有非易失特性使在线内存系统数据风险更小,数据重建更快;此外,SSD价格相对较低,可有效降低扩展方案的成本。
在本申请方案中,(1)对比基于CPU/服务器架构搭建的在线内存扩展系统,可以更低成本建设相同容量在线内存扩展系统,并提供数量级下降的访问延时。(2)SSD存储器不基于文件系统访问,SSD存储器的逻辑地址直接映射为远程内存页,完全基于硬件加速的RDMA结合SSD逻辑地址访问实现低成本、低延时、大容量的远程内存系统建设。(3)SSD逻辑访问结合高带宽存储器写入页缓存方案可扩展性好,低延时提供在线内存容量上线更大,硬件器件涉及少,部署更简单,对部署环境要求更低。(4)利用硬件加速器引脚丰富特性,并行挂载多个SSD存储器,提升可扩展容量,且可以提升设计的硬件加速器的利用率。
在一个实施例中,SSD存储器的逻辑地址包括逻辑内存页,将SSD存储器的逻辑地址与在线内存地址进行映射对应可以被具体执行为:
首先,在线内存空间在初始化时为在线内存地址配置预设数量的在线内存页,并对应SSD存储器中的相同数量的逻辑内存页;之后,按照固定的转换关系将在线内存页与逻辑内存页进行一一对应,例如,若每页内存大小是4KB时,逻辑地址=在线内存地址/4K。参照图4,图4为在线内存地址的在线内存页与逻辑地址的逻辑内存页的对应关系示意图,其中,在线内存地址的在线内存页的数量应是小于逻辑地址的逻辑内存页的数量的。需要说明的是,SSD存储器空间包含有物理地址和逻辑地址两种地址,在SSD存储器内部存在有地址映射表,参照图4,可以通过内部控制将逻辑地址与物理地址进行映射。此外,将在线内存地址与SSD存储器的逻辑地址进行映射对应时,本申请实施例中不把SSD存储器存储空间用尽,并且在设计硬件加速器时,添加存储器空间主动整理模块;基于SSD存储器写操作的原理,前后两次写同一个逻辑地址,对应的物理存储空间不同,在第二次进行写操作时,是直接写入新物理地址,再修改内部的逻辑地址与物理地址映射表指向新物理地址,而原来的物理地址对应的内容并不会立刻删除,会在内部存储碎片整理时删除释放,故而不把物理地址用尽,留出后台碎片整理所需余量,从而可以有效提高写性能;有些SSD存储器在初始设置时已经留有余量,但这只是保证功能正常,本申请方案在初始设置的余量的基础上,配合存储器空间主动整理模块对碎片的主动整理控制,可在大流量写的情况下有效保证写的性能和速度。
SSD写操作伴随着块擦除,也即block擦除,而SSD寿命即为块擦除次数,而SSD本身的磨损均衡功能,可平均使用物理块,当配置的余量空间比例越高,SSD使用寿命越长,维护成本越低,在不增加硬件加速器数量的情况下,合理配置余量空间,可平衡建设及维护成本,从而可以降低扩展方案的成本。
在本申请方案中,将逻辑地址直接映射为远程内存页,将SSD存储器的逻辑地址与在线内存地址进行对应绑定,通过增加SSD存储器的数量可以实现对在线内存的扩展,增大在线内存的容量。
在一个实施例中,在线内存扩展系统还包括RDMA模块,将待写入的数据以及目标在线内存地址缓存至高带宽存储器可以被具体执行为:
远端用户输入待写入的数据,用户输入的数据写入在线内存地址中,在线内存地址为虚拟地址,系统需要将待写入的数据对应的目标在线内存地址转换为缓存地址和对应的逻辑地址以进行后续的缓存和写入操作;根据预先设定好的转译规则动态修改写地址,以将目标在线内存地址转换为目标缓存地址,根据映射关系可以将目标在线内存地址转换为目标逻辑地址,并记录目标逻辑地址以便于后续的写入存储操作。系统在获取到待写入的数据后利用RDMA模块传输数据,以将待写入的数据缓存到高带宽存储器中的目标缓存地址中。
在本申请方案中,采用SSD存储器前后两次写数据的方式复杂,需要将前一次的数据擦除后才可以将后一次的数据写入。写数据的过程中伴随着块数据擦除,块数据为最小擦除单位,即使一个块中要写入一个页(对应一个逻辑地址,占块容量10%以下,甚至1%以下),也需要整个块擦除;SSD存储器的寿命即为块数据擦除的次数,因此,将数据先缓存在高带宽存储器中去重并合并为块数据再写入SSD存储器,可以有效减少块擦除的次数,从而可以提高SSD的寿命。此外,利用RDMA模块可以提高数据传输速率,降低访问延时。
在一个实施例中,高带宽存储器包含若干数据缓存器,参照图5,将待写入的数据缓存到高带宽存储器中的目标缓存地址中可以被具体执行为:
首先,新建缓存页状态表,新建的缓存页状态表的数量与高带宽存储器中的数据缓存器的数量一致,每个数据缓存器对应一个SSD存储器,与SSD存储器对应主要是为更精确区分每个存储器需要同步的数据量;之后,根据待写入的数据的大小、数据缓存器的地址以及数据缓存器对应的SSD存储器的情况,将待写入的数据按页存储到具体的数据缓存器得到页缓存数据,并对数据缓存器中已使用的位置进行标记;新建的缓存页状态表与对应数据缓存器的页空间一一对应,参照图5,每个数据缓存器中的缓存容量可能会不一致,图中buffer_index_end和buffer_index_current为两个指针,两个所指向的位置是数据缓存器中已缓存数据的页地址,通过指针指向标记已使用的位置。之后将待写入的数据需要写入的目标逻辑地址也存储到缓存页状态表中,并对已经缓存的页缓存数据进行标记,将页缓存数据标记为非过期目的在于记录数据状态,以便于后续在写入数据时,缓存页状态表可以根据数据状态判断页缓存数据是否过期,是否需要写入到SSD存储器中。其中,数据缓存器可以理解为地址段,用于存储数据,将待写入的数据缓存至数据缓存器中也即将待写入的数据缓存至高带宽存储器中的目标缓存地址中。需要说明的是,在将数据写入高带宽存储器的缓存区域时,采用的log方式直接迭代写入,也即,参照图5,在指针buffer_index_current指向的位置直接写入需要缓存的数据,这种方式只需要知道指针指向的位置,而不需要知道数据缓存的具体地址,可以减少寻址的过程,提高数据缓存和写入的速度,从而可以提高数据处理得效率。
新建立的缓存页状态表可以记录该页存储SSD的目标逻辑地址,以及该页数据是否过期,以便于缓存页状态表根据地址寻址。采用高带宽存储器进行写入数据的缓存,高带宽存储器带宽高,写入速度较高,可以加快写数据的速度,降低时延,并行多个SSD存储器的访问设计,可满足同时在线内存访问场景下的写入速度需求,小容量(几十GB)的高带宽存储器结合大容量(可达几十TB)SSD可低成本达到大容量内存系统的写性能。在写入缓存数据时,采用log的方式直接迭代写入缓存区域,不需要知道页的具体的存储位置,从而可以节省时间,降低时延。
在一个实施例中,将高带宽存储器中缓存的数据同步至SSD存储器的逻辑地址中可以被具体执行为:
判断数据缓存器中缓存的数据是否达到预设的占用比例,其中占用比例可设定为70%、80%或90%,用户可以在实际应用场景中根据实际情况进行设定,此处不做限制;若未达到占用比例,则继续缓存数据,若缓存的数据达到预设的占用比例,则触发缓存数据按页同步至SSD存储器的目标逻辑地址。
缓存数据按页同步至SSD存储器的目标逻辑地址具体可以被执行为,查询缓存页状态表,判断缓存页状态表中对应的页缓存数据是否过期;若页缓存数据为过期数据,则跳过该页;若页缓存数据为非过期数据,则将页缓存数据写入目标逻辑地址中。每页处理完成后更新缓存页状态表中的指针,以提醒该页数据处理完成,释放存储空间,循环使用数据缓存器。
在本申请方案中,内存页在写入后往往存在连续修改,如果每次都同步到SSD存储器中会增加写操作的开销并消耗SSD存储器寿命,通过缓存管理再写入SSD逻辑地址的方式可在数据同步到SSD时识别垃圾清理标记,跳过被标记的页,减少写入操作数量。
在一个实施例中,考虑到页写入的形式写入数据的速度较慢,因此在将页缓存数据写入目标逻辑地址中之前还可以执行以下步骤:
将非过期的页缓存数据组合生成块缓存数据;将块缓存数据写入目标逻辑地址中,以块写入的形式将缓存数据写入到SSD的目标逻辑地址中。
在本申请方案中,在写入SSD存储器目标逻辑地址前合并相同页的多次写入操作,从页写入的方式变为块写入的方式,可以减少高频操作,加快写数据的速度;此外,可以减少SSD存储器擦除的情况,进而提高SSD寿命。
在一个实施例中,内存扩展方法还包括数据读取的方法,可以被具体执行为:
在新建若干缓存页状态表的同时,新建一个缓存页检索表,参照图5,新建的若干缓存页状态表在高带宽存储器中,也即HBM存储空间中,而新建的缓存页检索表位于片上RAM,缓存页检索表供读数据时快速检索目标页是否在缓存中。把目标逻辑地址写入缓存页状态表与把目标逻辑地址写入缓存页检索表并行进行。在写入缓存页检索表时,如果对应的目标逻辑地址条目已存在,则修改条目内容为新的数据缓存器的地址,同时操作缓存页状态表把旧地址对应的状态标识标记为过期。
在接收到数据读取的指令时,借助RDMA模块读取数据;识别读取的数据对应的目标读取逻辑地址,需要说明的是,目标读取逻辑地址可以理解为读取的数据所对应的目标逻辑地址,在写入数据时,将写入数据对应的目标逻辑地址写入到缓存页状态表和缓存页检索表中,读取数据时,识别需要读取的数据对应的目标逻辑地址即可以理解为识别到目标读取逻辑地址。查询缓存页检索表,判断目标读取逻辑地址是否存在于缓存页检索表中;若目标读取逻辑地址在缓存页检索表中,则返回高带宽存储器读取的数据;若目标读取逻辑地址不在缓存页检索表中,则返回SSD存储器读取的数据。缓存页检索表根据存储的逻辑地址寻址,由于逻辑地址范围远远大于缓存可存储的表数量,采用KV-hash表技术压缩寻址范围,支持平均一次读取即可检索到需要的内容,也可以理解为,采用KV-hash表技术检索一次即可找到目标,可以极大地提高检索的速度,节省检索时间。
数据读取任务队列从RDMA模块中获取,根据目标逻辑地址转换到对应SSD存储器的读任务队列,在多任务时可发挥并行处理优势。读任务的响应采用双通道并行,防止层层查询增加延时;如果目标逻辑地址在缓存页检索表中命中,则直接读取高带宽存储器中的数据并返回读取的数据,同时对该任务做命中标记,待SSD存储器数据读取返回时直接丢弃;如目标逻辑地址在缓存页检索表中未命中,则对该任务做未命中标记,待SSD存储器中的数据读取后返回给远端用户。
在本申请方案中,读取数据时,查询读取数据对应的目标逻辑地址,判断目标逻辑地址中对应的数据是否已经同步至SSD存储器,若已经同步完成则将SSD存储器中的数据读取并返回,若未同步,仍在缓存状态,则将高带宽存储器中的数据读取并返回,SSD并行处理在多任务时可发挥并行处理优势,读任务的响应采用双通道并行,防止层层查询增加延时,加速数据读取的速度。
参照图6,图6为在线内存扩展访问管理读写数据的架构示意图,页缓存管理包括数据写,RDMA读任务队列管理,以及若干个SSD数据返回通道,数据写包括地址转译、缓存页表写入以及采用pipeline的形式写数据;每个SSD通过检索缓存页检索表查询并读取对应地址的数据后返回。
参照图7,图7为基于在线内存扩展方法写入数据的流程图,远端用户发起数据写入的指令,通过RDMA模块传输数据,以pipeline的方式将数据写入在线内存地址,系统将在线内存地址转换为缓存地址和逻辑地址,将要存储的目标逻辑地址记录并存储,并将待写入的数据写入缓存地址中;将目标逻辑地址记录在缓存页状态表和缓存页检索表中,有新的任务进来时不断进行写入和更新的操作,之后查询数据缓存器的状态,当数据缓存器中缓存的数据达到阈值,也即预设的比例之后,读取非过期的页缓存数据并写入对应的目标逻辑地址。需要说明的是,高带宽存储器(HBM)具有多通达特性,缓存页表与数据缓存器放在不同通道,由于数据写为页写入,所以并行执行时缓存页表写入先完成,数据写入完成即可开始下个任务;又因为HBM写入速度、并行SSD存储器写入速度均远大于网络传输速度,故可以保持全速传输。
参照图8,图8为基于在线内存扩展方法读取数据的流程图,远端用户发起读取数据的指令,RDMA模块读任务到任务队列,识别在线内存地址对应的SSD存储器的目标逻辑地址,通过查询缓存页检索表中是否有该目标逻辑地址,若缓存命中,也可以理解为目标逻辑地址在缓存页检索表中,则返回高带宽存储器读取的数据,也即图8中返回缓存读取的数据;若缓存未命中,也即目标逻辑地址不在缓存页检索表中,则返回SSD存储器读取的数据;其中,返回缓存读取的数据和返回SSD读取的数据在一个数据读取任务中,只返回一路数据,两种情况判断符合其中一种则返回对应的数据。此外,当有多个任务进行时,读取逻辑地址和返回数据可以并行进行,提高数据处理的速度。
图1为一个实施例中在线内存扩展方法的流程示意图。应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行;除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行;并且图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
基于上述方法,本申请实施例还公开一种在线内存扩展装置。
参照图9,该装置包括以下模块:
初始设置模块901,用于设置SSD存储器所支持的标准协议,并对每个SSD存储器配置单独的DMA通道;
地址映射模块902,用于将SSD存储器的逻辑地址与在线内存地址进行映射对应;
数据缓存模块903,用于获取待写入的数据以及待写入的数据对应的目标在线内存地址,将待写入的数据以及目标在线内存地址缓存至高带宽存储器;
数据写入模块904,用于将高带宽存储器中缓存的数据同步至SSD存储器的逻辑地址中。
在一个实施例中,地址映射模块902,具体用于对在线内存地址配置预设数量的在线内存页;按照固定的转换关系将在线内存页与逻辑内存页进行一一对应。
在一个实施例中,数据缓存模块903,具体用于根据预设的转译规则将目标在线内存地址转换为目标缓存地址;将目标在线内存地址转换为目标逻辑地址,并记录目标逻辑地址;利用RDMA模块传输待写入的数据,并将待写入的数据缓存到高带宽存储器中的目标缓存地址中。
在一个实施例中,数据缓存模块903,具体用于新建缓存页状态表,缓存页状态表的数量与数据缓存器的数量一致;将数据缓存器与SSD存储器一一对应;根据待写入的数据的大小、数据缓存器的地址以及数据缓存器对应的SSD存储器的情况,将待写入的数据按页存储到具体的数据缓存器得到页缓存数据,并对数据缓存器中已使用的位置进行标记;将待写入的数据写入的目标逻辑地址存储到缓存页状态表中,并对页缓存数据进行标记。
在一个实施例中,数据写入模块904,具体用于判断数据缓存器中缓存的数据是否达到预设的占用比例;若数据缓存器中缓存的数据达到预设的占用比例,则触发缓存数据按页同步至SSD存储器的目标逻辑地址;触发缓存数据按页同步至SSD存储器的目标逻辑地址包括:查询缓存页状态表,判断缓存页状态表中对应的页缓存数据是否过期;若页缓存数据为非过期,则将页缓存数据写入目标逻辑地址中。
在一个实施例中,数据写入模块904,具体用于将非过期的页缓存数据组合生成块缓存数据;将块缓存数据写入目标逻辑地址中。
在一个实施例中,数据缓存模块903,还用于在新建缓存页状态表的同时,新建缓存页检索表,并将目标逻辑地址写入缓存页检索表;在线内存扩展装置还用于在接收到数据读取的指令时,利用RDMA模块读取数据;识别读取的数据对应的目标读取逻辑地址;查询缓存页检索表,判断目标读取逻辑地址是否存在于缓存页检索表中;若目标读取逻辑地址在缓存页检索表中,则返回高带宽存储器读取的数据;若目标读取逻辑地址不在缓存页检索表中,则返回SSD存储器读取的数据。
本申请实施例提供的在线内存扩展装置,可以应用于如上述实施例中提供的在线内存扩展方法,相关细节参考上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
需要说明的是:本申请实施例中提供的在线内存扩展装置在进行在线内存扩展时,仅以上述各功能模块/功能单元的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块/功能单元完成,即将在线内存扩展装置的内部结构划分成不同的功能模块/功能单元,以完成以上描述的全部或者部分功能。另外,上述方法实施例提供的在线内存扩展方法的实施方式与本实施例提供的在线内存扩展装置的实施方式属于同一构思,本实施例提供的在线内存扩展装置的具体实现过程详见上述方法实施例,这里不再赘述。
本申请实施例还公开一种计算机设备。
具体来说,如图10所示,该计算机设备可以是桌上型计算机、笔记本电脑、掌上电脑以及云端服务器等计算机设备。该计算机设备可以包括,但不限于,处理器和存储器。其中,处理器和存储器可以通过总线或者其他方式连接。其中,处理器可以为中央处理器(Central Processing Unit,CPU)。处理器还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、图形处理器(Graphics Processing Unit,GPU)、嵌入式神经网络处理器(Neural-network Processing Unit,NPU)或者其他专用的深度学习协处理器、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本申请上述实施方式中的方法对应的程序指令/模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施方式中的方法。存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例还公开一种计算机可读存储介质。
具体来说,计算机可读存储介质用于存储计算机程序,计算机程序被处理器执行时,实现上述方法实施方式中的方法。本领域技术人员可以理解,实现本申请上述实施方式方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施方式的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;存储介质还可以包括上述种类的存储器的组合。
本具体实施例仅仅是对本发明的解释,其并不是对本发明的限制,本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本发明的权利要求范围内都受到专利法的保护。

Claims (9)

1.一种在线内存扩展方法,其特征在于:所述方法应用于在线内存扩展系统,所述在线内存扩展系统包括高带宽存储器和若干SSD存储器,所述SSD存储器包含逻辑地址,所述方法包括:
设置所述SSD存储器所支持的标准协议,并对每个所述SSD存储器配置单独的DMA通道;
将所述SSD存储器的逻辑地址与在线内存地址进行映射对应;
获取待写入的数据以及所述待写入的数据对应的目标在线内存地址,将所述待写入的数据以及所述目标在线内存地址缓存至所述高带宽存储器;
将所述高带宽存储器中缓存的数据同步至所述SSD存储器的所述逻辑地址中;
所述在线内存扩展系统还包括RDMA模块,所述将所述待写入的数据以及所述目标在线内存地址缓存至所述高带宽存储器包括:
根据预设的转译规则将所述目标在线内存地址转换为目标缓存地址;
将所述目标在线内存地址转换为目标逻辑地址,并记录所述目标逻辑地址;
利用所述RDMA模块传输所述待写入的数据,并将所述待写入的数据缓存到所述高带宽存储器中的所述目标缓存地址中。
2.根据权利要求1所述的方法,其特征在于:所述SSD存储器的逻辑地址包括逻辑内存页,所述将所述SSD存储器的逻辑地址与在线内存地址进行映射对应包括:
对所述在线内存地址配置预设数量的在线内存页;
按照固定的转换关系将所述在线内存页与所述逻辑内存页进行一一对应。
3.根据权利要求1所述的方法,其特征在于:所述高带宽存储器包含若干数据缓存器,所述将所述待写入的数据缓存到所述高带宽存储器中的所述目标缓存地址中包括:
新建缓存页状态表,所述缓存页状态表的数量与所述数据缓存器的数量一致;
将所述数据缓存器与所述SSD存储器一一对应;
根据所述待写入的数据的大小、所述数据缓存器的地址以及所述数据缓存器对应的SSD存储器的情况,将所述待写入的数据按页存储到具体的数据缓存器得到页缓存数据,并对所述数据缓存器中已使用的位置进行标记;
将所述待写入的数据写入的所述目标逻辑地址存储到所述缓存页状态表中,并对所述页缓存数据进行标记。
4.根据权利要求3所述的方法,其特征在于:所述将所述高带宽存储器中缓存的数据同步至所述SSD存储器的所述逻辑地址中包括:
判断所述数据缓存器中缓存的数据是否达到预设的占用比例;
若所述数据缓存器中缓存的数据达到预设的占用比例,则触发缓存数据按页同步至所述SSD存储器的所述目标逻辑地址;
所述触发缓存数据按页同步至所述SSD存储器的所述目标逻辑地址包括:
查询所述缓存页状态表,判断所述缓存页状态表中对应的页缓存数据是否过期;
若所述页缓存数据为非过期,则将所述页缓存数据写入所述目标逻辑地址中。
5.根据权利要求4所述的方法,其特征在于:在所述将所述页缓存数据写入所述目标逻辑地址中之前,还包括:
将非过期的页缓存数据组合生成块缓存数据;
将所述块缓存数据写入所述目标逻辑地址中。
6.根据权利要求3所述的方法,其特征在于:在所述新建缓存页状态表的同时,还包括:
新建缓存页检索表,并将所述目标逻辑地址写入所述缓存页检索表;
所述方法还包括:
在接收到数据读取的指令时,利用所述RDMA模块读取数据;
识别所述读取的数据对应的目标读取逻辑地址;
查询所述缓存页检索表,判断所述目标读取逻辑地址是否存在于所述缓存页检索表中;
若所述目标读取逻辑地址在所述缓存页检索表中,则返回所述高带宽存储器读取的数据;
若所述目标读取逻辑地址不在所述缓存页检索表中,则返回所述SSD存储器读取的数据。
7.一种在线内存扩展装置,用于实现权利要求1至6中任意一项所述的在线内存扩展方法,其特征在于:所述装置应用于在线内存扩展系统,所述在线内存扩展系统包括高带宽存储器和若干SSD存储器,所述SSD存储器包含逻辑地址,所述装置包括:
初始设置模块(901),用于设置所述SSD存储器所支持的标准协议,并对每个所述SSD存储器配置单独的DMA通道;
地址映射模块(902),用于将所述SSD存储器的逻辑地址与在线内存地址进行映射对应;
数据缓存模块(903),用于获取待写入的数据以及所述待写入的数据对应的目标在线内存地址,将所述待写入的数据以及所述目标在线内存地址缓存至所述高带宽存储器;
数据写入模块(904),用于将所述高带宽存储器中缓存的数据同步至所述SSD存储器的所述逻辑地址中。
8.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行如权利要求1至6中任一项所述方法的计算机程序。
9.一种计算机可读存储介质,其特征在于,存储有能够被处理器加载并执行如权利要求1至6中任一项所述方法的计算机程序。
CN202410226278.4A 2024-02-29 2024-02-29 在线内存扩展方法、装置、设备及存储介质 Active CN117806570B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410226278.4A CN117806570B (zh) 2024-02-29 2024-02-29 在线内存扩展方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410226278.4A CN117806570B (zh) 2024-02-29 2024-02-29 在线内存扩展方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN117806570A true CN117806570A (zh) 2024-04-02
CN117806570B CN117806570B (zh) 2024-05-03

Family

ID=90433827

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410226278.4A Active CN117806570B (zh) 2024-02-29 2024-02-29 在线内存扩展方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN117806570B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012014140A2 (en) * 2010-07-27 2012-02-02 International Business Machines Corporation Logical to physical address mapping in storage systems comprising solid state memory devices
US20160342509A1 (en) * 2015-05-22 2016-11-24 Sandisk Enterprise Ip Llc Hierarchical FTL Mapping Optimized for Workload
CN107066393A (zh) * 2017-01-12 2017-08-18 安徽大学 提高地址映射表中映射信息密度的方法
CN112988611A (zh) * 2019-12-17 2021-06-18 国民技术股份有限公司 非易失性存储器的数据写入方法、终端和可读存储介质
CN114356246A (zh) * 2022-03-17 2022-04-15 北京得瑞领新科技有限公司 Ssd内部数据的存储管理方法、装置、存储介质及ssd设备
CN114415972A (zh) * 2022-03-28 2022-04-29 北京得瑞领新科技有限公司 Ssd的数据处理方法、装置、存储介质及ssd设备
CN117370222A (zh) * 2023-12-08 2024-01-09 成都佰维存储科技有限公司 存储映射方法、装置、计算机可读存储介质及电子设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012014140A2 (en) * 2010-07-27 2012-02-02 International Business Machines Corporation Logical to physical address mapping in storage systems comprising solid state memory devices
US20160342509A1 (en) * 2015-05-22 2016-11-24 Sandisk Enterprise Ip Llc Hierarchical FTL Mapping Optimized for Workload
CN107066393A (zh) * 2017-01-12 2017-08-18 安徽大学 提高地址映射表中映射信息密度的方法
CN112988611A (zh) * 2019-12-17 2021-06-18 国民技术股份有限公司 非易失性存储器的数据写入方法、终端和可读存储介质
CN114356246A (zh) * 2022-03-17 2022-04-15 北京得瑞领新科技有限公司 Ssd内部数据的存储管理方法、装置、存储介质及ssd设备
CN114415972A (zh) * 2022-03-28 2022-04-29 北京得瑞领新科技有限公司 Ssd的数据处理方法、装置、存储介质及ssd设备
CN117370222A (zh) * 2023-12-08 2024-01-09 成都佰维存储科技有限公司 存储映射方法、装置、计算机可读存储介质及电子设备

Also Published As

Publication number Publication date
CN117806570B (zh) 2024-05-03

Similar Documents

Publication Publication Date Title
KR102584018B1 (ko) 압축된 데이터 백그라운드를 캐싱하는 장치, 시스템 및 방법
CN111033477B (zh) 逻辑到物理映射
US7475185B2 (en) Nonvolatile memory system, nonvolatile memory device, memory controller, access device, and method for controlling nonvolatile memory device
KR102437775B1 (ko) 효율적인 맵핑을 위한 페이지 캐시 장치 및 방법
CN111061655B (zh) 存储设备的地址转换方法与设备
CN111512290B (zh) 文件页表管理技术
US20160124639A1 (en) Dynamic storage channel
KR20220049026A (ko) 메모리 네임스페이스에 대한 데이터 바인딩을 위한 메모리 시스템
CN110543433B (zh) 一种混合内存的数据迁移方法及装置
CN115048034A (zh) 用于sgl的存储空间映射方法及其装置
CN111352865B (zh) 存储控制器的写缓存
US9632950B2 (en) Storage control device controlling access to a storage device and access controlling method of a storage device
CN117806570B (zh) 在线内存扩展方法、装置、设备及存储介质
EP4170506A1 (en) Systems, methods, and devices for ordered access of data in block modified memory
CN111290975A (zh) 使用统一缓存处理读命令与预读命令的方法及其存储设备
CN111290974A (zh) 用于存储设备的缓存淘汰方法与存储设备
EP4307129A1 (en) Method for writing data into solid-state hard disk
CN110968527A (zh) Ftl提供的缓存
WO2015118623A1 (ja) 情報処理装置
CN114610654A (zh) 一种固态存储设备以及向其写入数据的方法
US11586353B2 (en) Optimized access to high-speed storage device
CN114265791A (zh) 一种数据调度方法、芯片以及电子设备
CN107066208B (zh) 一种外存设备的非对称读写方法及nvm外存设备
EP4328755A1 (en) Systems, methods, and apparatus for accessing data in versions of memory pages
CN116665727B (zh) 写i/o汇聚方法、装置、存储设备和存储介质

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