CN116560826A - 内存管理方法,系统以及相关装置 - Google Patents

内存管理方法,系统以及相关装置 Download PDF

Info

Publication number
CN116560826A
CN116560826A CN202210114330.8A CN202210114330A CN116560826A CN 116560826 A CN116560826 A CN 116560826A CN 202210114330 A CN202210114330 A CN 202210114330A CN 116560826 A CN116560826 A CN 116560826A
Authority
CN
China
Prior art keywords
memory
host
network device
idle
providing device
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
CN202210114330.8A
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202210114330.8A priority Critical patent/CN116560826A/zh
Priority to PCT/CN2023/070589 priority patent/WO2023142936A1/zh
Publication of CN116560826A publication Critical patent/CN116560826A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • G06F9/5016Allocation 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 the resource being the memory
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种内存管理方法,系统以及相关装置,应用于数据处理领域,具体在内存管理过程中,主机产生内存需求时,向网络设备发送内存请求消息,网络设备根据内存请求消息向主机发送指示消息,指示主机使用该网络设备的空闲内存和/或内存提供设备的空闲内存。

Description

内存管理方法,系统以及相关装置
技术领域
本申请涉及数据处理领域,尤其涉及内存管理方法,系统以及相关装置。
背景技术
离散化数据中心(disaggregated data center,DDC)能够利用远程直接内存访问(Remote Direct Memory Access,RDMA),使服务器的应用所产生的内存数据能够存储至内存池中的远端内存。
当前的内存池包括数据中心中的各服务器提供的本地内存,一个服务器的应用产生的内存数据需要存入该服务器的本地内存以使应用正常运行。但是,若该服务器本地内存无法成功存储该服务器的内存数据,那么需要将该服务器的内存数据存入内存池中的远端内存,该远端内存包括另一服务器提供的本地内存。
上述内存分配方案中,可供分配的内存为各服务器提供的本地内存,由于每个服务器自身运行就需要较多内存,可以提供给其他服务器使用的内存比较少,因此,上述分配方案中可供分配的内存过小。
发明内容
本申请提供了一种内存管理方法,系统以及相关装置,能够扩大可供分配的内存。
本申请第一方面提供了一种内存管理方法,包括:
在数据中心网络中,当主机产生内存需求时,能够向与该主机直接连接的网络设备请求使用远端内存,该网络设备能够接收主机发送的内存请求消息,该主机通过该内存请求消息申请远端内存,该远端内存由该主机之外的设备提供。
网络设备收到内存请求消息后,判断空闲内存是否大于或等于该内存请求消息所请求的远端内存,如果网络设备确定该空闲内存大于或等于该第一内存请求消息所请求的远端内存,则网络设备向该主机发送指示消息,该指示消息能够指示主机使用该空闲内存,网络设备和/或内存提供设备能够提供该空闲内存。
本申请中,可供分配的内存除了各服务器提供的本地内存之外,还包括网络设备提供的内存,可供分配的内存较大。
基于本申请第一方面,本申请第一方面的第一种实现方式中,网络设备在为主机分配空闲内存时能够满足主机的时延要求,具体的,主机发送的内存请求消息携带第一时延,该第一时延表示主机使用远端内存产生的时延应小于或等于预设值,网络设备能够在发送指示消息之前预估主机使用前述空闲内存所产生的第二时延。
如果网络设备确定第二时延小于或等于第一时延,那么网络设备确定前述空闲内存满足主机的时延要求,此时网络设备向主机发送前述指示消息。
本申请中,网络设备为主机分配空闲内存时,该空闲内存大小除了能够满足主机所请求的内存大小要求,还能够满足主机所请求的内存时延要求。
基于本申请第一方面,基于本申请第一方面的第一种实现方式,本申请第一方面的第二种实现方式中,网络设备能够为主机优先分配该网络设备的空闲内存,具体的,空闲内存包括网络设备提供的第一空闲内存和第一内存提供设备提供的第二空闲内存,如果网络设备确定第一空闲内存大于主机请求的远端内存,那么无论第二空闲内存与主机请求的远端内存相比大小关系如何,网络设备发送的指示消息均指示主机使用第一空闲内存。
本申请中,若与主机直接连接的网络设备的空闲内存大于或等于主机所请求的远端内存,则网络设备优先为主机分配该网络设备的空闲内存,尽可能降低主机使用空闲内存产生的时延。
基于本申请第一方面,基于本申请第一方面的第一种实现方式,本申请第一方面的第三种实现方式中,当网络设备的空闲内存不足,但与该网络设备直接连接的第一内存提供设备的空闲内存足够时,网络设备能够为主机优先分配该第一内存提供设备的空闲内存,具体的,空闲内存包括网络设备提供的第一空闲内存和第一内存提供设备提供的第二空闲内存,第一内存提供设备与该网络设备直接连接,如果网络设备确定第一空闲内存小于主机请求的远端内存,且第二空闲内存大于或等于主机请求的远端内存,那么网络设备发送的指示消息能够指示主机使用第二空闲内存。
本申请中,如果与主机直接连接的网络设备的空闲内存小于主机所请求的远端内存,且与该网络设备直接连接的第一内存提供设备的空闲内存大于或等于主机所请求的远端内存,则网络设备优先为主机分配该第一内存提供设备的空闲内存,尽可能降低主机使用空闲内存产生的时延。
基于本申请第一方面的第三种实现方式,本申请第一方面的第四种实现方式中,网络设备能够根据内存提供设备的属性信息判断该内存提供设备的空闲内存大小,具体的,网络设备能够在收到主机的内存请求消息之前,接收第一内存提供设备发送的第一属性信息,该第一属性信息包括第一内存提供设备的第二空闲内存的大小,网络设备能够根据第一属性信息判断第二空闲内存与主机请求的远端内存的大小关系,网络设备向主机发送的指示消息中携带了第一内存提供设备的地址和第二空闲内存的地址。
本申请中,网络设备能够通过内存提供设备发送的属性信息判断内存提供设备的空闲内存大小,提升了方案的可实现性。
基于本申请第一方面,基于本申请第一方面的第一种实现方式,本申请第一方面的第五种实现方式中,当网络设备的空闲内存以及与该网络设备直接连接的第一内存提供设备的空闲内存均不足,但与另一网络设备直接连接的第二内存提供设备的空闲内存足够时,网络设备能够为主机分配第二内存提供设备的空闲内存,具体的,空闲内存包括网络设备提供的第一空闲内存,第一内存提供设备提供的第二空闲内存以及第二内存提供设备提供的第三空闲内存,如果网络设备确定第一空闲内存以及第二空闲内存均小于主机请求的远端内存,且第三空闲内存大于或等于主机请求的远端内存,那么网络设备发送的指示消息能够指示主机使用第三空闲内存。
本申请中,当网络设备与第一内存提供设备的空闲内存均不足时,网络设备能够为主机分配第二内存提供设备的空闲内存,保证主机能够使用远端内存。
基于本申请第一方面的第五种实现方式,本申请第一方面的第六种实现方式中,网络设备能够根据内存提供设备的属性信息判断该内存提供设备的空闲内存大小,具体的,网络设备能够在收到主机的内存请求消息之前,接收第一内存提供设备发送的第一属性信息,以及第二内存提供设备发送的第二属性信息,第一属性信息包括第一内存提供设备的第二空闲内存的大小,第二属性信息包括第二内存提供设备的第三空闲内存的大小,网络设备能够根据第一属性信息判断第二空闲内存与主机请求的远端内存的大小关系,能够根据第二属性信息判断第三空闲内存与主机请求的远端内存的大小关系,网络设备向主机发送的指示消息中携带了第二内存提供设备的地址和第三空闲内存的地址。
本申请中,网络设备能够通过内存提供设备发送的属性信息判断内存提供设备的空闲内存大小,提升了方案的可实现性。
基于本申请第一方面的第五种实现方式,本申请第一方面的第七种实现方式中,网络设备通过内存控制器接收第二内存提供设备的属性信息,具体的,网络设备收到主机的内存请求消息后,将该内存请求消息向内存控制器转发,该内存控制器可以独立于该网络设备,且该内存控制器与该网络设备属于同一设备集群。
网络设备接收内存控制器发送的第三属性信息,该第三属性信息是内存控制器根据该内存请求消息以及第二内存提供设备向该内存控制器上报的属性信息生成的,该第三属性信息包括第二内存提供设备的地址和所述第三空闲内存的地址。
本申请中,网络设备能够通过内存控制器获取第二内存提供设备的第三属性信息,该第三属性信息包括第二内存提供设备的地址以及第二内存提供设备的空闲内存的地址,使得网络设备能够根据该第三属性信息直接指示主机使用第二内存提供设备的空闲内存,降低了网络设备的处理负担,提升了内存分配的效率。
基于本申请第一方面,基于本申请第一方面的第一种实现方式至第七种实现方式中的任一种,本申请第一方面的第八种实现方式中,网络设备能够对消息进行终结,具体的,网络设备收到主机的内存请求消息前,与主机之间建立第一连接,网络设备与主机通过该第一连接建立通信,进行信息交互,网络设备能够通过该第一连接对主机发送的消息进行终结。
本申请中,网络设备具有终结消息的能力,且该能力通过与主机建立连接所实现,提升了方案的可实现性。
基于本申请第一方面的第六种实现方式,本申请第一方面的第九种实现方式中,网络设备能够对消息进行终结,具体的,网络设备收到主机的内存请求消息前,与目标内存提供设备之间建立第二连接,网络设备与目标内存提供设备通过该第二连接建立通信,进行信息交互,网络设备能够通过该第二连接对目标内存提供设备发送的消息进行终结,该目标提供设备包括第一内存提供设备或第二内存提供设备。
本申请中,网络设备具有终结消息的能力,且该能力通过与目标内存提供设备建立连接所实现,提升了方案的可实现性。
基于本申请第一方面的第八种或第九种实现方式,本申请第一方面的第十种实现方式中,第一连接和/或第二连接根据远程直接内存访问协议、传输控制协议、高速串行计算机扩展总线标准协议和计算快速链路协议中的任意一种建立。
本申请限定了第一连接以及第二连接的建立方式,提升了方案的可实现性。
基于本申请第一方面,基于本申请第一方面的第一种实现方式至第十种实现方式中的任一种,本申请第一方面的第十一种实现方式中,网络设备包括交换机或数据处理单元,主机包括服务器,内存提供设备包括服务器。
本申请限定了设备的具体形态,提升了方案的可实现性。
本申请第二方面提供了一种内存管理方法,包括:
在数据中心网络中,当主机产生内存需求时,能够向与该主机直接连接的网络设备请求使用远端内存,该主机能够向该网络设备发送内存请求消息,该主机通过该内存请求消息申请远端内存,该远端内存由该主机之外的设备提供。
主机向网络设备发送内存请求消息后,能够收到网络设备的指示消息,该指示消息是网络设备根据该内存请求消息确定空闲内存后发出的,该空闲内存由网络设备和/或内存提供设备提供。
主机根据该指示消息确定该空闲内存,并使用该空闲内存。
本申请中,内存分配的对象除了内存池中第一服务器和第二服务器提供的本地内存之外,还包括网络设备提供的内存,可供分配的内存较大。
基于本申请第二方面,本申请第二方面的第一种实现方式中,网络设备的第一空闲内存大于或等于主机请求的远端内存时,指示消息能够指示主机使用该第一空闲内存,或者,第一内存提供设备的第二空闲内存大于或等于主机请求的远端内存时,指示消息能够指示主机使用该第二空闲内存。
本申请中,对于指示消息所指示的空闲内存作出了限定,提升了方案的可实现性。
基于本申请第二方面,基于本申请第二方面的第一种实现方式,本申请第二方面的第二种实现方式中,主机具有发送内存请求消息的触发条件,具体的,主机向网络设备发送内存请求消息前,若确定自身的空闲内存小于或等于预设值,则主机确定预设条件已满足,此时触发前述主机发送内存请求消息的步骤。
本申请中,主机能够在本地空闲内存不足时向网络设备发送内存请求消息,提升了方案的可实现性。
基于本申请第二方面,基于本申请第二方面的第一种或第二种实现方式,本申请第二方面的第三种实现方式中,主机包括服务器,网络设备包括交换机或数据处理单元,内存提供设备包括服务器。
本申请限定了设备的具体形态,提升了方案的可实现性。
本申请第三方面提供一种网络设备,包括:
接收单元,用于接收来自主机的内存请求消息,内存请求消息用于请求使用远端内存,接收来自内存控制器的第三属性信息,第三属性信息包括第二内存提供设备的地址和第三空闲内存的地址,接收来自第一内存提供设备的第一属性信息,第一属性信息包括第二空闲内存的大小,指示消息包括第一内存提供设备的地址和第二空闲内存的地址,接收来自第一内存提供设备的第一属性信息,第一属性信息包括第二空闲内存的大小,指示消息包括第一内存提供设备的地址和第二空闲内存的地址;
发送单元,用于当空闲内存大于或等于远端内存时,向主机发送指示消息,指示消息用于指示主机使用空闲内存,空闲内存包括网络设备的空闲内存和/或内存提供设备的空闲内存,当第二时延小于或等于第一时延时,向主机发送指示消息。
本申请第二方面提供的网络设备用于执行第一方面所述的方法。
本申请第四方面提供一种主机,包括:
发送单元,用于向网络设备发送内存请求消息,所述内存请求消息用于请求使用远端内存;
接收单元,用于接收来自所述网络设备的指示消息,所述指示消息用于指示所述主机使用空闲内存,所述空闲内存包括所述网络设备的空闲内存和/或内存提供设备的空闲内存,所述空闲内存大于或等于所述远端内存;
处理单元,用于根据指示消息使用空闲内存,确定满足预设条件,预设条件为主机的空闲内存小于或等于预设值。
本申请第四方面提供的主机用于执行第二方面所述的方法。
本申请第五方面提供一种网络设备,包括:
处理器,存储器以及收发器,所述处理器分别与所述存储器和所述收发器连接;
所述处理器用于获取所述存储器所存储的指令,以执行第一方面所述的方法。
本申请第六方面提供一种主机,包括:
处理器,存储器以及收发器,所述处理器分别与所述存储器和所述收发器连接;
所述处理器用于获取所述存储器所存储的指令,以执行第二方面所述的方法。
本申请第七方面提供一种系统,包括网络设备以及与所述网络设备连接的主机,其中,所述网络设备用于执行第一方面所述的方法,所述主机用于执行第二方面所述的方法。
本申请第八方面提供一种计算机可读写存储介质,所述计算机可读写存储介质包括指令,当所述指令在计算机上运行时,使得计算机执行第一方面或第二方面所述的方法。
本申请第九方面提供一种包含指令的计算机程序产品,当所述计算机程序产品在计算机上运行时,使得计算机执行第一方面或第二方面所述的方法。
本申请第十方面提供一种芯片系统,所述芯片系统包括至少一个处理器和通信接口,所述通信接口和所述至少一个处理器通过线路互联,所述至少一个处理器用于运行计算机程序或指令,以执行第一方面或第二方面所述的方法。
附图说明
图1为本申请实施例中内存管理系统架构示意图;
图2为本申请提供的内存管理方法一个实施例示意图;
图3为本申请提供的内存管理方法另一实施例示意图;
图4为本申请提供的内存管理方法另一实施例示意图;
图5为本申请提供的内存管理方法另一实施例示意图;
图6为本申请实施例中网络设备一个实施例示意图;
图7为本申请实施例中网络设备另一实施例示意图;
图8为本申请实施例中主机一个实施例示意图;
图9为本申请实施例中网络设备另一实施例示意图;
图10为本申请实施例中主机另一实施例示意图。
具体实施方式
本申请实施例提供了一种内存管理方法,系统以及相关装置,能够扩大可供分配的内存。
请参阅图1,本申请实施例中内存管理系统包括:网络设备101至103,主机104,内存提供设备105至109,汇聚交换机110至111。
现有技术中,内存管理系统中的内存池包括内存提供设备105至109提供的空闲内存,本申请实施例对现有内存池进行了拓展,在网络设备101至103处提供了大量内存,本申请实施例的逻辑上的内存池包括网络设备101至103提供的空闲内存以及内存提供设备105至109提供的空闲内存,前述两种内存相对于作为内存需求方的主机104,均属于远端内存。主机以及内存提供设备通过网络设备接入网络,网络设备所连接的主机数量不作限定,网络设备所连接的内存提供设备数量不作限定。
以网络设备101为例,网络设备101连接主机104以及内存提供设备103。网络设备101可以部署在机架(rack)上。分发点(point of delivery,POD)是rack的上一级概念,以汇聚交换机110为例,一个POD包括汇聚交换机110,汇聚交换机110连接的网络设备101至103,网络设备101至103连接的主机以及内存提供设备,与汇聚交换机连接的网络设备的数量不作限定,网络设备102以及网络设备103与各设备的连接形式参见网络设备101。
为了对现有内存池进行拓展,本申请实施例在网络设备处提供大量内存,具体为在网络设备处提供了大内存接口,以使网络设备能够提供内存,网络设备提供的内存进入内存池中参与内存分配。
本申请实施例在网络设备内增加内存管理模块,该模块包括网络级的内存控制器(memory controller,MC),使网络设备能够执行内存管理系统中的内存管理任务,对主机以及内存提供设备的内存进行管理,为主机分配内存。为使网络设备能够与主机以及内存提供设备直接进行数据交互,本申请实施例还在网络设备内增加高速通信模块,以使网络设备完成与主机以及内存提供设备间通信协议的终结,使网络设备能够对主机以及内存提供设备的内存进行管理。
网络设备101至103包括交换机、数据处理单元或其他含交换功能的网络设备,能够同时作为内存管理设备和内存提供设备,对内存池中的内存进行管理分配。主机104包括通用服务器或其他带有计算功能的设备,其作为内存需求方,向网络设备请求内存。内存提供设备105至109包括主机、通用服务器或内存服务器,其作为内存提供方,向主机104提供内存。
需要说明的是,本申请实施例中的内存可以是动态随机存取存储器,储存级内存或高带宽内存,其中储存级内存包括非易失性内存,相变化内存或英特尔持久化内存,具体此处不作限定。
基于图1所示的内存管理系统架构,主机104的本地内存不足时,能够向与主机104直接连接的网络设备101请求使用远端内存,网络设备101能够根据主机104的请求以及内存池中的空闲内存情况为主机104分配远端内存。
本申请实施例中,网络设备可以通过多种方式为主机分配远端内存,具体提供多个实施例,下面对实施例一进行说明,实施例一能够将网络设备的空闲内存向主机分配,具体执行过程请参阅图2所示,本申请提供的内存管理方法的实施例一包括:
201、网络设备和主机建立第一连接。
网络设备和主机之间通过网络协议建立第一连接,可选的,网络设备和主机之间还能够通过总线协议建立第一连接。以RDMA协议为例,主机与网络设备进行连接管理(connection management,CM)建链,具体的,主机在操作系统的内核驱动下,与网络设备进行RDMA CM建链,通过CM建链,为网络设备与主机建立第一连接,从而为网络设备与主机之间建立通信,使网络设备和该主机通过该第一连接进行信息交互,网络设备通过该第一连接接收主机发送的消息时,能够解析该消息,从而使网络设备对通过第一连接接收的消息进行终结。终结是指对于通过第一协议格式接收的消息,不再通过该第一协议格式继续转发。
网络协议包括传输控制协议(Transmission Control Protocol,TCP)或者RDMA协议。总线协议包括高速串行计算机扩展总线标准(Peripheral Component InterconnectExpress,PCIE)协议或者计算快速链路(Compute Express Link,CXL)协议。具体的协议类型此处不作限定。
202、网络设备和目标内存提供设备建立第二连接。
网络设备和目标内存提供设备之间通过网络协议建立第二连接,可选的,网络设备和目标内存提供设备之间还能够通过总线协议建立第二连接,以RDMA协议为例,主机与网络设备进行CM建链,具体的,目标内存提供设备与网络设备进行RDMA CM建链,通过CM建链,为网络设备与主机建立第一连接,从而为网络设备与主机之间建立通信。目标内存提供设备包括内存提供设备105至109,后续将以与网络设备101连接的内存提供设备101为第一内存提供设备,与网络设备102连接的内存提供设备106至107以及与网络设备103连接的内存提供设备108至109为第二内存提供设备为例说明本申请实施例所示的方法。
需要说明的是,由于第二内存提供设备与网络设备101之间没有直接连接,网络设备101与第二内存提供设备之间只能通过网络协议建立第二连接,网络设备102至103与目标内存提供设备通过何种协议建立连接请参照网络设备101。
网络设备和目标内存提供设备通过第二连接进行信息交互,网络设备通过该第二连接接收目标内存提供设备发送的消息时,并解析该消息,从而使网络设备对通过第二连接接收的消息进行终结。终结是指对于通过第二协议格式接收的消息,不再通过该第二协议格式继续转发。
需要说明的是,步骤201与步骤202的先后关系不作限定。
203、目标内存提供设备向网络设备发送属性信息。
目标内存提供设备通过第二连接向网络设备发送属性信息,该属性信息包括目标内存提供设备的空闲内存的大小,该目标内存提供设备的空闲内存在被占用后或被释放的情形下,目标内存提供设备均会向网络设备发送该属性信息。
204、主机向网络设备发送内存请求消息。
主机的应用产生的内存数据需要存入内存以使应用正常运行,若主机本地内存无法成功存储应用产生的内存数据,则主机需要将该内存数据存入远端内存以使应用正常运行。
当主机本地的空闲内存小于或等于预设值时,主机通过前述第一连接向网络设备发送内存请求消息以请求使用远端内存。
可以理解的是,主机在发送内存请求消息前,除了判断本地空闲内存是否小于或等于预设值之外,实际应用中还可判断是否存在预设类型的应用,且该应用处于运行状态,若主机确定存在预设类型的应用且该应用处于运行状态,则主机向网络设备发送内存请求消息以请求使用远端内存,该预设类型的应用的定义可以是默认需要使用远端内存的应用,对于主机发送内存请求消息的触发条件,具体不作限定。
前述内存请求消息包含主机所请求的内存大小信息,可选的,若主机对请求的远端内存有时延要求,则该内存请求消息还包含第一时延,该第一时延体现主机所要求的时延信息,该时延信息用于表示主机请求在预设时间内将内存数据存入远端内存。
205、网络设备向主机发送指示消息。
可选情况1、主机无时延要求:
主机对请求的远端内存无时延要求,网络设备判断自身的第一空闲内存是否大于或等于主机所请求的远端内存,若是,则网络设备通过前述第一连接向主机发送指示消息,该指示消息包含该网络设备的地址,该指示消息能够指示主机使用该网络设备的第一空闲内存,若否,则该网络设备继续根据前述属性信息判断目标内存提供设备的空闲内存是否大于或等于主机所请求的远端内存。
需要说明的是,本申请实施例描述的空闲内存指未被数据占用的内存。
可选情况2、主机有时延要求:
主机对请求的远端内存有时延要求,则第一空闲内存在满足可选情况1中大小要求的前提下,还要满足主机的时延要求,网络设备对主机使用第一空闲内存将会产生的时延进行预估,得到第二时延,再将第二时延与内存请求消息携带的第一时延进行比对,若第二时延小于或等于第一时延,则确定第一空闲内存已满足大小要求和时延要求,网络设备此时发送可选情况1中所述指示消息,若第二时延大于第一时延,则第一空闲内存不满足时延要求,网络设备此时确定第一空闲内存不可分配。当第一空闲内存不可分配时,网络设备判断目标内存提供设备的空闲内存是否符合前述大小要求与前述时延要求。
需要说明的是,网络设备预估第二时延具体为,网络设备向主机发送探测包以探测第二时延,或,网络设备根据内存管理系统的初始配置信息获得主机的位置信息,并根据主机的位置信息得到第二时延,网络设备预估第二时延的方式具体不作限定。
206、主机根据指示消息使用网络设备的空闲内存。
主机接收前述指示消息后,根据指示消息中网络设备的地址信息使用网络设备的第一空闲内存,以主机与网络设备通过RDMA协议建立了第一连接为例,主机与网络设备通过RDMA发送(RDMA SEND)操作进行交互,具体的,主机向网络设备发送RDMA CM仅发送(RCSend Only)消息,该消息用于申请使用该网络设备的第一空闲内存,网络设备收到该RCSend Only消息后,向主机发送RDMA CM告知收悉(RC Acknowledge)消息以进行响应,若网络设备确定第一空闲内存可分配给主机,则该网络设备向主机发送RC Send Only消息,该消息携带第一空闲内存的虚拟地址以及对应的远端密钥(remote rey,Rkey),该虚拟地址用于指示第一空闲内存的位置,该远端密钥用于表示使用第一空闲内存的权限,若网络设备检测到第一空闲内存已被占用,则确定第一空闲内存不可分配,此时通过RCAcknowledge消息指示主机第一空闲内存不可用,该主机会使用本地固态硬盘的虚拟内存。
主机接收第一空闲内存的虚拟地址以及对应的远端密钥后,通过虚拟地址以及对应的远端密钥以RDMA写(RDMA WRITE)操作将主机的内存数据写到第一空闲内存中,网络设备将该内存数据存好后,向该主机发送RC Acknowledge消息以通告该主机报文携带的内存数据已写入第一空闲内存中。
若主机需要前述内存数据时,可通过RDMA读取(RDMA READ)操作从网络设备中读取该内存数据。
需要说明的是,步骤206所述的主机使用空闲内存的过程包括主机向空闲内存发送内存数据的过程以及主机向空闲内存读取该内存数据的过程,对于使用的定义具体此处不作限定。
207、主机向网络设备发送内存释放消息。
若主机短期内不需要使用网络设备的内存,则以步骤206通过RDMA协议建立的第一连接为例,主机通过RDMA READ操作向网络设备发送内存释放消息以通知网络设备释放内存数据占用的内存。
若主机不再需要使用网络设备的内存,则该主机通过RDMA CM拆链操作,与网络设备结束第一连接,该网络设备会删除与该主机对应的上下文(context),该上下文是主机与网络设备用以建立第一连接的上下文,网络设备删除该上下文后,释放已分配好的第一空闲内存。
208、网络设备根据内存释放消息释放第一空闲内存。
网络设备接收主机的内存释放消息后,释放该主机的内存数据占用的内存。
需要说明的是,本实施例中主机的内存数据存入网络设备的空闲内存后,该空闲内存被主机的内存数据占用,对于主机是否再需要该被占用的空闲内存不作限定,故步骤207至208为可选步骤。
本实施例中,当主机需要使用远端内存时,若主机无时延要求,则网络设备在自身空闲内存大于或等于主机需要使用的远端内存的情况下,在网络设备的空闲内存和目标内存提供设备的空闲内存中,优先为主机分配网络设备的空闲内存,由于网络设备与主机具有直接连接的关系,所以主机使用网络设备的空闲内存所产生的时延相对于主机使用目标内存提供设备的空闲内存所产生的时延更小,从而降低了主机使用远端内存产生的时延。若主机有时延要求,则网络设备的空闲内存在满足大于或等于主机需要使用的远端内存的前提下,还需满足主机的时延要求,即主机使用网络设备的空闲内存所产生的时延需要小于或等于主机要求的时延,因此本实施例能够满足主机使用远端内存的时延要求。
下面对实施例二进行说明,实施例一能够将网络设备的空闲内存向主机分配,而本实施例中网络设备能够将目标内存提供设备的空闲内存向主机分配,具体执行过程请参阅图3所示,本申请提供的内存管理方法的实施例二包括:
301、网络设备和主机建立第一连接。
302、网络设备和目标内存提供设备建立第二连接。
303、目标内存提供设备向网络设备发送属性信息。
304、主机向网络设备发送内存请求消息。
本实施例中,步骤301至304与前述图2所示实施例中的步骤201至204类似,具体此处不再赘述。
305、网络设备向主机发送指示消息。
可选情况1、主机无时延要求:
若主机对请求的远端内存无时延要求,网络设备根据设备的优先级为主机分配空闲内存,具体的,划分设备优先级的依据为时延,以网络设备101为例,记主机104使用网络设备101的空闲内存产生的时延为A,主机104使用内存提供设备105的空闲内存产生的时延为B,主机104使用内存提供设备106的空闲内存产生的时延为C,因为主机104与网络设备101直接连接,内存提供设备105与网络设备101直接连接,内存提供设备106与网络设备102直接连接,所以时延的大小为A<B<C,故相对于主机104,网络设备101的优先级最大,内存提供设备105的优先级其次,内存提供设备106的优先级最小,优先级大的设备的空闲内存能够被优先分配给主机。
综上所述,网络设备对同一主机分配内存时,网络设备的优先级最大,第一内存提供设备的优先级其次,第二内存提供设备的优先级最小。
网络设备首先判断自身的第一空闲内存是否大于或等于主机所请求的远端内存,若第一空闲内存小于主机所请求的远端内存,则网络设备确定第一空闲内存不可分配。当第一空闲内存不可分配时,网络设备根据步骤303获得的第一内存提供设备的第一属性信息得到第一内存提供设备的第二空闲内存大小信息,并判断第二空闲内存是否大于或等于主机所请求的远端内存,若第二空闲内存大于或等于主机所请求的远端内存,则网络设备通过前述第一连接向主机发送指示消息,该指示消息包含第一内存提供设备的地址以及第二空闲内存的地址,该指示消息能够指示主机使用第二空闲内存。
若第二空闲内存小于主机所请求的远端内存,则网络设备确定第二空闲内存不可分配。当第二空闲内存不可分配时,网络设备根据步骤303获得的第二内存提供设备的第二属性信息得到第二内存提供设备的第三空闲内存大小信息,并判断第三空闲内存是否大于或等于主机所请求的远端内存,若第三空闲内存大于或等于主机所请求的远端内存,则网络设备通过前述第一连接向主机发送指示消息,该指示消息包含第二内存提供设备的地址以及第三空闲内存的地址,该指示消息能够指示主机使用第三空闲内存。
若第一空闲内存,第二空闲内存以及第三空闲内存均小于主机所请求的远端内存,主机会使用本地固态硬盘的虚拟内存。
可选情况2、主机有时延要求:
可选情况2在可选情况1的基础之上,主机对请求的远端内存还有时延要求,即目标内存提供设备的空闲内存在满足大于或等于主机所请求的远端内存的前提下,还要满足主机的时延要求,网络设备对主机使用目标内存提供设备的空闲内存将会产生的时延进行预估,得到第二时延,再将第二时延与内存请求消息携带的第一时延进行比对,若第二时延小于或等于第一时延,则确定目标内存提供设备的空闲内存已满足大小要求和时延要求,网络设备此时发送可选情况1中所述的指示消息,若第二时延大于第一时延,则目标内存提供设备的空闲内存不满足时延要求,则网络设备确定目标内存提供设备的空闲内存不可分配。
需要说明的是,网络设备预估第二时延具体为,网络设备向目标内存提供设备发送探测包以探测第二时延,可选的,网络设备根据内存管理系统的初始配置信息获得目标内存提供设备的位置信息,并根据该目标内存提供设备的位置信息得到第二时延,网络设备预估第二时延的方式具体不作限定。
306、主机根据指示消息使用目标内存提供设备的空闲内存。
主机接收前述指示消息后,根据指示消息中目标内存提供设备的地址信息使用目标内存提供设备的空闲内存,以主机与目标内存提供设备通过RDMA协议建立第三连接为例,主机与目标内存提供设备通过RDMA SEND操作进行交互,具体的,主机向目标内存提供设备发送RC Send Only消息,该消息用于申请使用该目标内存提供设备的空闲内存,目标内存提供设备收到该RC Send Only消息后,向主机发送RC Acknowledge消息以进行响应,若目标内存提供设备确定自身的空闲内存可分配给主机,则该目标内存提供设备向主机发送RC Send Only消息,该消息携带目标内存提供设备的空闲内存的虚拟地址以及对应的远端密钥,该虚拟地址用于指示目标内存提供设备的空闲内存的位置,该远端密钥用于表示使用目标内存提供设备的空闲内存的权限,若目标内存提供设备检测到空闲内存已被占用,则确定该空闲内存不可分配,此时通过RC Acknowledge消息指示主机该空闲内存不可用,该主机会使用本地固态硬盘的虚拟内存。
主机接收目标内存提供设备的空闲内存的虚拟地址以及对应的远端密钥后,通过虚拟地址以及对应的远端密钥以RDMA WRITE操作将主机的内存数据写到目标内存提供设备的空闲内存中,目标内存提供设备将该内存数据存好后,向该主机发送RC Acknowledge消息以通告该主机报文携带的内存数据已写入该目标内存提供设备的空闲内存中。
若主机需要前述内存数据时,可通过RDMA READ操作从目标内存提供设备的空闲内存读取该内存数据。
需要说明的是,步骤306所述的主机使用空闲内存的过程包括主机向空闲内存发送内存数据的过程以及主机向空闲内存读取该内存数据的过程,对于使用的定义具体此处不作限定。
307、主机向目标内存提供设备发送内存释放消息。
308、目标内存提供设备根据内存释放消息释放空闲内存。
本实施例中,步骤307至308与前述图2所示实施例中的步骤207至208相比,除了网络设备替换为目标内存提供设备以及主机与目标内存提供设备建立的是第三连接之外,其余过程均类似,具体此处不再赘述。
本实施例中,当主机需要使用远端内存时,若主机无时延要求,则网络设备能够在网络设备,第一内存提供设备以及第二内存提供设备中依据时延进行设备优先级划分,网络设备的优先级最大,第一内存提供设备的优先级其次,第二内存提供设备的优先级最小,网络设备能够根据设备优先级为主机分配内存,使主机使用空闲内存产生的时延尽可能小,实现空闲内存的灵活分配。若主机有时延要求,则目标内存提供设备的空闲内存在满足大于或等于主机需要使用的远端内存的前提下,还需满足主机的时延要求,即主机使用目标内存提供设备的空闲内存所产生的时延需要小于或等于主机要求的时延,因此本实施例还能够满足主机使用远端内存的时延要求。
下面对实施例三进行说明,实施例二中网络设备通过与目标内存提供设备建立连接的方式为主机分配目标内存提供设备的空闲内存,而本实施例中网络设备能够通过内存控制器为主机分配目标内存提供设备的空闲内存,具体执行过程请参阅图4所示,本申请提供的内存管理方法的实施例三包括:
401、目标内存提供设备向内存控制器发送属性信息。
本实施例中,目标内存提供设备可为第二内存提供设备,目标内存提供设备的属性信息通过网络设备向内存控制器上报,该属性信息包括目标内存提供设备的空闲内存的大小,该目标内存提供设备的地址以及目标内存提供设备的空闲内存的地址,该网络设备与该目标内存提供设备直接连接,该内存控制器可以是独立于该网络设备的设备,内存控制器与网络设备属于同一设备集群,具体的,该内存控制器下连接多个POD,该网络设备属于该多个POD之一,该目标内存提供设备的空闲内存在被占用后或被释放后的情形下,目标内存提供设备均会向网络设备上报该属性信息。
需要说明的是,步骤401与本实施例其他步骤的先后关系不作限定。
内存控制器可以部署在服务器、管理设备或其他带有计算资源的网络设备上,具体此处不作限定。
402、网络设备和主机建立第一连接。
403、主机向网络设备发送内存请求消息。
本实施例中,步骤402至403与前述图2所示实施例中的步骤203至204类似,具体此处不再赘述。
404、网络设备向内存控制器转发内存请求消息。
网络设备收到步骤403所述的内存请求消息后,向内存控制器转发该内存请求消息。
可以理解的是,主机除了通过网络设备向内存控制器转发内存请求消息之外,在实际应用中还可以直接向内存控制器发送该内存请求消息,具体此处不做限定。
405、内存控制器向网络设备发送属性信息。
内存控制器收到步骤404所述的内存请求消息后,根据该内存请求消息以及步骤401所述的属性信息进行内存提供设备的选择,具体的,若目标内存提供设备的空闲内存符合内存请求消息的要求,则内存控制器向网络设备发送该目标内存提供设备的属性信息,该属性信息包含该目标内存提供设备的地址以及该目标内存提供设备的空闲内存的地址。
406、网络设备向主机发送指示消息。
网络设备收到步骤405所述的属性信息后,根据该属性信息获取步骤405所述的目标内存提供设备的地址以及该目标内存提供设备的空闲内存的地址,并向主机发送指示消息,该指示消息携带了该目标内存提供设备的地址以及该目标内存提供设备的空闲内存的地址。
407、主机根据指示消息使用目标内存提供设备的空闲内存。
408、主机向目标内存提供设备发送内存释放消息。
409、目标内存提供设备根据内存释放消息释放空闲内存。
本实施例中,步骤407至409与前述图3所示实施例中的步骤306至308类似,此处不再赘述。
本实施例中,目标内存提供设备能够将属性信息向内存控制器上报,网络设备能够通过内存控制器获取目标内存提供设备的属性信息,从而指示主机使用该目标内存提供设备的空闲内存,降低了网络设备的处理负担,提升了内存分配的效率。
下面对实施例四进行说明,实施例一将网络设备的空闲内存向主机分配,实施例二以及实施例三将目标内存提供设备的空闲内存向主机分配,本实施例中网络设备和目标内存提供设备这两种设备的空闲内存均大于或等于主机请求的远端内存,并且主机使用该两种设备的空闲内存将会产生的时延均满足主机请求使用远端内存的时延要求,在此前提下,网络设备向主机分配空闲内存较大的设备所提供的空闲内存,具体执行过程请参阅图5所示,本申请提供的内存管理方法的实施例四包括:
501、网络设备和主机建立第一连接。
502、网络设备和目标内存提供设备建立第二连接。
503、目标内存提供设备向网络设备发送属性信息。
504、主机向网络设备发送内存请求消息。
本实施例中,步骤501至504与前述图2所示实施例中的步骤201至204类似,具体此处不再赘述。
505、网络设备向主机发送指示消息。
可选情况1、主机无时延要求:
主机对请求的远端内存无时延要求,网络设备进行判断步骤一:判断自身的第一空闲内存是否大于或等于主机所请求的远端内存;网络设备进行判断步骤二:根据步骤503获得的目标内存提供设备的属性信息得到目标内存提供设备的空闲内存大小信息,并判断目标内存提供设备的空闲内存是否大于或等于主机所请求的远端内存。
需要说明的是,对判断步骤一与判断步骤二的先后关系不作限定。
若第一空闲内存以及目标内存提供设备的空闲内存均大于或等于主机所请求的远端内存,则网络设备确定第一空闲内存以及目标内存提供设备的空闲内存均可分配,网络设备从该网络设备和目标内存提供设备中选择空闲内存最大的设备,并为主机分配该设备的空闲内存,网络设备通过步骤501所述的第一连接向主机发送指示消息,该指示消息包含提供空闲内存的设备的地址以及该空闲内存的地址,该指示消息能够指示主机使用该空闲内存,该空闲内存是网络设备按照前述方式选择的。
可选情况2、主机有时延要求:
主机对请求的远端内存有时延要求,则第一空闲内存以及目标内存提供设备的空闲内存在满足可选情况1中大小要求的前提下,还要满足主机的时延要求,网络设备对主机使用第一空闲内存以及目标内存提供设备的空闲内存将会产生的时延进行预估,得到第二时延,再将第二时延与内存请求消息携带的第一时延进行比对,若第二时延小于或等于第一时延,则确定第一空闲内存以及目标内存提供设备的空闲内存均已满足大小要求和时延要求,网络设备此时参照可选情况1中所述的方式为主机分配空闲内存,可选的,网络设备按照另一方式为主机分配空闲内存,具体的,网络设备从该网络设备和该目标内存提供设备中选择时延最大的设备,并为主机分配该设备的空闲内存。
需要说明的是,网络设备预估第二时延的过程请参照步骤205以及步骤305所示,具体此处不再赘述。
506、主机根据指示消息使用空闲内存。
本实施例中,步骤506与前述图2所示实施例中的步骤206以及前述图3所示实施例中的步骤306相类似,具体此处不再赘述。
本实施例中,网络设备和目标内存提供设备这两种设备的空闲内存均大于或等于主机请求的远端内存,并且主机使用该两种设备的空闲内存将会产生的时延均满足主机请求使用远端内存的时延要求,在此前提下,网络设备能够为主机分配前述设备中空闲内存最大的设备的空闲内存,保证远端内存尽可能合理配置,可选的,网络设备能够为主机分配前述设备中时延最大的设备的空闲内存,尽可能降低内存分配的成本。
上面对本申请实施例中的内存管理方法进行了描述,下面对本申请实施例中的网络设备进行描述,请参阅图6,本申请实施例中的网络设备一个实施例包括:
接收单元601,用于接收来自主机的内存请求消息,内存请求消息用于请求使用远端内存。
发送单元602,用于当空闲内存大于或等于远端内存时,向主机发送指示消息,指示消息用于指示主机使用空闲内存,空闲内存包括网络设备的空闲内存和/或内存提供设备的空闲内存。
本申请实施例中,发送单元602可根据接收单元601收到的内存请求消息为主机分配网络设备和/或内存提供设备的空闲内存,增加了可供分配的内存。
下面对本申请实施例中的网络设备进行详细描述,请参阅图7,本申请实施例中的网络设备另一实施例包括:
接收单元701,用于接收来自主机的内存请求消息,内存请求消息用于请求使用远端内存,接收来自内存控制器的第三属性信息,第三属性信息包括第二内存提供设备的地址和第三空闲内存的地址,接收来自第一内存提供设备的第一属性信息,第一属性信息包括第二空闲内存的大小,指示消息包括第一内存提供设备的地址和第二空闲内存的地址,接收来自第一内存提供设备的第一属性信息,第一属性信息包括第二空闲内存的大小,指示消息包括第一内存提供设备的地址和第二空闲内存的地址。
发送单元702,用于当空闲内存大于或等于远端内存时,向主机发送指示消息,指示消息用于指示主机使用空闲内存,空闲内存包括网络设备的空闲内存和/或内存提供设备的空闲内存,当第二时延小于或等于第一时延时,向主机发送指示消息。
处理单元703,用于预估主机使用空闲内存所产生的第二时延,建立第一连接,第一连接用于实现网络设备和主机之间的信息交互,网络设备用于终结通过第一连接接收的消息,建立第二连接,第二连接用于实现网络设备和目标内存提供设备之间的信息交互,目标提供设备为第一内存提供设备或第二内存提供设备,网络设备用于终结通过第二连接接收的消息,向内存控制器转发内存请求消息。
本实施例中,网络设备中的各单元执行如前述图2至图5所示实施例中网络设备的操作,具体此处不再赘述。
上面对本申请实施例中的网络设备进行了描述,下面对本申请实施例中的主机进行描述,请参阅图8,本申请实施例中的主机一个实施例包括:
发送单元801,用于向网络设备发送内存请求消息,内存请求消息用于请求使用远端内存。
接收单元802,用于接收来自网络设备的指示消息,指示消息用于指示主机使用空闲内存,空闲内存包括网络设备的空闲内存和/或内存提供设备的空闲内存,空闲内存大于或等于远端内存。
处理单元803,用于根据指示消息使用空闲内存。
本申请实施例中,处理单元803可根据指示消息使用网络设备的空闲内存和/或内存提供设备的空闲内存,增加了可供分配的内存。
下面对本申请实施例中的主机进行详细描述,请参阅图8,本申请实施例中的主机另一实施例包括:
发送单元801,用于向网络设备发送内存请求消息,内存请求消息用于请求使用远端内存。
接收单元802,用于接收来自网络设备的指示消息,指示消息用于指示主机使用空闲内存,空闲内存包括网络设备的空闲内存和/或内存提供设备的空闲内存,空闲内存大于或等于远端内存。
处理单元803,用于根据指示消息使用空闲内存,确定满足预设条件,预设条件为主机的空闲内存小于或等于预设值。
本实施例中,主机中的各单元执行如前述图2至图5所示实施例中主机的操作,具体此处不再赘述。
下面请参阅图9,本申请实施例中网络设备另一实施例包括:
处理器901,存储器902以及收发器903,处理器901分别与存储器902和收发器903连接。
处理器901用于获取存储器902所存储的指令,以执行前述图2至图5所示实施例中的方法。
本实施例所示的处理器901可以是一个或多个现场可编程门阵列(field-programmable gate array,FPGA)、专用集成芯片(application specific integratedcircuit,ASIC)、系统芯片(system on chip,SoC)、中央处理器(central processor unit,CPU)、网络处理器(network processor,NP)、数字信号处理电路(digital signalprocessor,DSP)、微控制器(micro controller unit,MCU),可编程控制器(programmablelogic device,PLD)或其它集成芯片,或者上述芯片或者处理器的任意组合等。
网络设备具有用于实现上述方法实施例所示的内存分配的内存接口,其中,所述内存接口集成于处理器,或,所述处理器与内存接口呈分立式的架构。
下面请参阅图10,本申请实施例中主机另一实施例包括:
处理器1001,存储器1002以及收发器1003,处理器1001分别与存储器1002和收发器1003连接。
处理器1001用于获取存储器1002所存储的指令,以执行前述图2至图5所示实施例中的方法。
本申请实施例还提供一种系统,其特征在于,所述系统包括网络设备以及与所述网络设备连接的主机,其中,所述网络设备用于执行前述图2至图5所示实施例中的方法,所述主机用于执行前述图2至图5所示实施例中的方法。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (19)

1.一种内存管理方法,其特征在于,所述方法包括:
网络设备接收来自主机的内存请求消息,所述内存请求消息用于请求使用远端内存;
若空闲内存大于或等于所述远端内存,则所述网络设备向所述主机发送指示消息,所述指示消息用于指示所述主机使用所述空闲内存,所述空闲内存包括所述网络设备的空闲内存和/或内存提供设备的空闲内存。
2.根据权利要求1所述的内存管理方法,其特征在于,所述内存请求消息携带第一时延,所述网络设备向所述主机发送指示消息之前,所述方法还包括:
所述网络设备预估所述主机使用所述空闲内存所产生的第二时延;
所述网络设备向所述主机发送指示消息包括:
若所述第二时延小于或等于所述第一时延,则所述网络设备向所述主机发送所述指示消息。
3.根据权利要求1或2所述的方法,其特征在于,所述空闲内存包括所述网络设备的第一空闲内存和第一内存提供设备的第二空闲内存,所述第一空闲内存大于所述远端内存,所述指示消息用于指示所述主机使用所述第一空闲内存。
4.根据权利要求1或2所述的方法,其特征在于,所述空闲内存包括所述网络设备的第一空闲内存和第一内存提供设备的第二空闲内存,所述第一空闲内存小于所述远端内存,且所述第二空闲内存大于或等于所述远端内存,所述指示消息用于指示所述主机使用所述第二空闲内存,所述第一内存提供设备与所述网络设备连接。
5.根据权利要求4所述的内存管理方法,其特征在于,所述网络设备接收来自主机的内存请求消息之前,所述方法还包括:
所述网络设备接收来自所述第一内存提供设备的第一属性信息,所述第一属性信息包括所述第二空闲内存的大小,所述指示消息包括所述第一内存提供设备的地址和所述第二空闲内存的地址。
6.根据权利要求1或2所述的内存管理方法,其特征在于,所述空闲内存包括所述网络设备的第一空闲内存,第一内存提供设备的第二空闲内存以及第二内存提供设备的第三空闲内存,所述第一空闲内存小于所述远端内存,所述第二空闲内存小于所述远端内存,且所述第三空闲内存大于或等于所述远端内存,所述指示消息用于指示所述主机使用所述第三空闲内存,所述第二内存提供设备与另一网络设备连接,所述第一内存提供设备与所述网络设备连接。
7.根据权利要求6所述的内存管理方法,其特征在于,所述网络设备接收来自主机的内存请求消息之前,所述方法还包括:
所述网络设备接收来自所述第一内存提供设备的第一属性信息,所述第一属性信息包括所述第二空闲内存的大小;
所述网络设备接收来自所述第二内存提供设备的第二属性信息,所述第二属性信息包括所述第三空闲内存的大小,所述指示消息包括所述第二内存提供设备的地址和所述第三空闲内存的地址。
8.根据权利要求6所述的内存管理方法,所述网络设备接收来自主机的内存请求消息之后,所述方法还包括:
所述网络设备向内存控制器转发所述内存请求消息;
所述网络设备接收来自所述内存控制器的第三属性信息,所述第三属性信息包括所述第二内存提供设备的地址和所述第三空闲内存的地址。
9.根据权利要求1至8中任一项所述的内存管理方法,其特征在于,所述网络设备接收来自主机的内存请求消息之前,所述方法还包括:
所述网络设备建立第一连接,所述第一连接用于实现所述网络设备和所述主机之间的信息交互,所述网络设备用于终结通过所述第一连接接收的消息。
10.根据权利要求7所述的内存管理方法,其特征在于,所述网络设备接收来自主机的内存请求消息之前,所述方法还包括:
所述网络设备建立第二连接,所述第二连接用于实现所述网络设备和目标内存提供设备之间的信息交互,所述目标提供设备为所述第一内存提供设备或所述第二内存提供设备,所述网络设备用于终结通过所述第二连接接收的消息。
11.根据权利要求9或10所述的内存管理方法,其特征在于,所述第一连接和/或所述第二连接根据以下协议中的任意一种建立:
远程直接内存访问协议、传输控制协议、高速串行计算机扩展总线标准协议和计算快速链路协议。
12.根据权利要求1至11中任一项所述的内存管理方法,其特征在于,所述网络设备包括交换机或数据处理单元,所述主机包括服务器,所述内存提供设备包括服务器。
13.一种内存管理方法,其特征在于,所述方法包括:
主机向网络设备发送内存请求消息,所述内存请求消息用于请求使用远端内存;
所述主机接收来自所述网络设备的指示消息,所述指示消息用于指示所述主机使用空闲内存,所述空闲内存包括所述网络设备的空闲内存和/或内存提供设备的空闲内存;
所述主机根据所述指示消息使用所述空闲内存。
14.根据权利要求13所述的方法,其特征在于,所述指示消息用于指示所述主机使用所述网络设备的第一空闲内存,所述第一空闲内存大于或等于所述远端内存;或
所述指示消息用于指示所述主机使用第一内存提供设备的第二空闲内存,所述第二空闲内存大于或等于所述远端内存。
15.根据权利要求13或14所述的内存管理方法,其特征在于,所述主机向网络设备发送内存请求消息之前,所述方法还包括:
所述主机确定满足预设条件,所述预设条件为所述主机的空闲内存小于或等于预设值。
16.根据权利要求13至15中任一项所述的内存管理方法,其特征在于,所述主机包括服务器,所述网络设备包括交换机或数据处理单元,所述内存提供设备包括服务器。
17.一种网络设备,其特征在于,包括:
处理器,存储器以及收发器,所述处理器分别与所述存储器和所述收发器连接;
所述处理器用于获取所述存储器所存储的指令,以执行权利要求1至12中任意一项所述的方法。
18.一种主机,其特征在于,包括:
处理器,存储器以及收发器,所述处理器分别与所述存储器和所述收发器连接;
所述处理器用于获取所述存储器所存储的指令,以执行权利要求13至16中任意一项所述的方法。
19.一种系统,其特征在于,包括网络设备以及与所述网络设备连接的主机,其中,所述网络设备用于执行权利要求1至12中任意一项所述的方法,所述主机用于执行权利要求13至16中任意一项所述的方法。
CN202210114330.8A 2022-01-30 2022-01-30 内存管理方法,系统以及相关装置 Pending CN116560826A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210114330.8A CN116560826A (zh) 2022-01-30 2022-01-30 内存管理方法,系统以及相关装置
PCT/CN2023/070589 WO2023142936A1 (zh) 2022-01-30 2023-01-05 内存管理方法,系统以及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210114330.8A CN116560826A (zh) 2022-01-30 2022-01-30 内存管理方法,系统以及相关装置

Publications (1)

Publication Number Publication Date
CN116560826A true CN116560826A (zh) 2023-08-08

Family

ID=87470553

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210114330.8A Pending CN116560826A (zh) 2022-01-30 2022-01-30 内存管理方法,系统以及相关装置

Country Status (2)

Country Link
CN (1) CN116560826A (zh)
WO (1) WO2023142936A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100517242C (zh) * 2007-10-10 2009-07-22 中兴通讯股份有限公司 快速申请内存的方法
CN100489815C (zh) * 2007-10-25 2009-05-20 中国科学院计算技术研究所 一种内存共享的系统和装置及方法
WO2017206190A1 (zh) * 2016-06-03 2017-12-07 华为技术有限公司 传输信息的方法、用户设备、接入网设备和核心网设备
CN112231101B (zh) * 2020-10-16 2024-03-01 北京中科网威信息技术有限公司 内存分配方法、装置及可读存储介质

Also Published As

Publication number Publication date
WO2023142936A1 (zh) 2023-08-03

Similar Documents

Publication Publication Date Title
CN107992436B (zh) 一种NVMe数据读写方法及NVMe设备
CN108628775B (zh) 一种资源管理的方法和装置
US11507426B2 (en) Resource pool management method and apparatus, resource pool control unit, and communications device
CN111654519B (zh) 用于传输数据处理请求的方法和装置
EP3660686B1 (en) Method and device for transmitting data processing request
US9183169B2 (en) SAS expander based persistent connections
CN109408243B (zh) 一种基于rdma的数据处理方法、装置和介质
CN114546913B (zh) 一种基于pcie接口的多主机之间数据高速交互的方法和装置
CN111858228B (zh) 用于存储装置中的加速内核的状态监测的方法及系统
US20210326177A1 (en) Queue scaling based, at least, in part, on processing load
US11449456B2 (en) System and method for scheduling sharable PCIe endpoint devices
US20230152978A1 (en) Data Access Method and Related Device
CN114265800A (zh) 中断消息处理方法、装置、电子设备及可读存储介质
WO2022160308A1 (zh) 数据存取方法、装置和存储介质
EP2913759A1 (en) Memory access processing method based on memory chip interconnection, memory chip, and system
CN114416470A (zh) 一种云端监控方法、系统、设备及计算机存储介质
US20230342086A1 (en) Data processing apparatus and method, and related device
CN116560826A (zh) 内存管理方法,系统以及相关装置
CN114880266B (zh) 故障处理的方法、装置、计算机设备和存储介质
US20230409506A1 (en) Data transmission method, device, network system, and storage medium
CN116032498A (zh) 一种内存区域注册方法、装置及设备
CN105389127A (zh) 在存储系统中传输消息的方法、装置及存储系统、控制器
CN112463670A (zh) 一种存储控制器访问方法及相关装置
US20230385190A1 (en) Communication method, apparatus, and system
CN116743587B (zh) 一种基于异构计算加速卡的虚拟网络接口实现方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication