内存管理方法及计算设备技术

技术编号:36745771 阅读:45 留言:0更新日期:2023-03-04 10:27
本申请公开了一种内存管理方法和计算设备,该方法应用于计算设备,该计算设备包括至少一个扩展内存,该方法具体包括:当检测到第一扩展内存接入时,识别该第一扩展内存的存储类型,该第一扩展内存为该至少一个扩展内存中的任意一个;若该第一扩展内存为DRAM,则将该第一扩展内存作为第一NUMA节点的内存;其中,第一NUMA节点为任意一个具有CPU的NUMA节点;若该第一扩展内存为PMEM或SCM,则新增第二NUMA节点,并将该第一扩展内存作为该第二NUMA节点的内存,其中所述第二NUMA节点无CPU。通过根据扩展内存的不同存储类型实行不同的管理方式和分配方式,可以充分、灵活地发挥不同存储类型的扩展内存的特性优势,尽可能地提高内存带宽。存带宽。存带宽。

【技术实现步骤摘要】
内存管理方法及计算设备


[0001]本申请涉及计算机
,具体涉及一种内存管理方法及计算设备。

技术介绍

[0002]计算快速链路(computer express link,CXL)协议是由英特尔推出的一种开放性互联协议,能够让中央处理器(central processing unit,CPU)与图形处理器(graphic processing unit,GPU)、现场可编程逻辑门阵列(field programmable gate array,FPGA)或其他加速器之间实现高速高效的互联,从而满足高性能异构计算的要求。CXL协议支持计算设备的CPU通过内存语义访问设备附加内存,同时无需占用计算设备的内存插槽。
[0003]在CXL协议推出后,业界纷纷将CXL协议应用于内存扩展场景,帮助服务器、数据中心以及其他计算设备拓展其内存容量;同时提高内存带宽,以提高CPU访问各个内存的速度。
[0004]目前,计算设备在检测到有扩展内存通过CXL协议接入系统后,会将其作为非统一内存访问架构(non

uniform memory access,NUMA)下的一个独立节点,以使得CPU能够对该扩展内存进行访问。
[0005]然而,在CXL协议支持多种存储类型的内存进行扩展的情况下,统一将扩展内存作为独立NUMA节点的管理方式无法发挥出不同存储类型内存的特性优势。

技术实现思路

[0006]本申请提供一种内存管理方法及计算设备,能够在内存扩展场景中,灵活地根据内存存储类型的不同而选择不同的管理方式,尽可能地提高内存带宽。
[0007]第一方面,本申请提供了一种内存管理方法,应用于计算设备,该计算设备包括至少一个扩展内存;该方法包括:
[0008]当检测到第一扩展内存接入时,识别该第一扩展内存的存储类型,该第一扩展内存为该至少一个扩展内存中的任意一个;若该第一扩展内存为动态随机存取存储器(dynamic random access memory,DRAM),则将该第一扩展内存作为第一非统一内存访问架构(non

uniform memory access,NUMA)节点的内存;其中,该第一NUMA节点为任意一个具有CPU的节点;若该第一扩展内存为持久化内存(persistent memory,PMEM)或存储级内存(storage

class memory,SCM),则新增第二NUMA节点,并将该第一扩展内存作为该第二NUMA节点的内存,其中该第二NUMA节点无CPU。
[0009]本申请中,计算设备在检测到存储类型为DRAM的第一扩展内存时将其作为第一NUMA节点的内存,可以充分发挥DRAM的高带宽低时延的特性,提高CPU访问扩展内存的速度;在检测到存储类型为PMEM或SCM时将其第二NUMA节点的内存,将相对低带宽高时延的扩展内存添加至无CPU的第二NUMA节点管理,以便在慢速处理需求时调用分配。通过根据扩展内存的不同存储类型实行不同的管理方式和分配方式,可以充分、灵活地发挥不同存储类型的扩展内存的特性优势,尽可能地提高内存带宽。
[0010]在一种可能的实现中,该将该第一扩展内存作为第一NUMA节点的内存,具体包括:确定该第一扩展内存的地址范围;将该地址范围添加至该第一NUMA节点的内存。
[0011]在一种可能的实现中,该将该第一扩展内存作为该第二NUMA节点的内存,具体包括:确定该第一扩展内存的地址范围;将该地址范围添加至该第二NUMA节点的内存。
[0012]本申请中,通过先确定第一扩展内存被统一编址后的地址范围,再将该地址范围添加到NUMA节点中进行管理,使得CPU能够通过访问该地址范围实现对第一扩展内存的直接访问。
[0013]在一种可能的实现中,该计算设备还包括内存扩展器,该至少一个扩展内存包括N个通过该内存扩展器接入该计算设备的第二扩展内存,该第一扩展内存为N个该第二扩展内存中的任意一个,N大于1;该确定该第一扩展内存的地址范围包括:通过UEFI固件获取该N个第二扩展内存所对应的N段地址范围;从该内存扩展器处获取该N个第二扩展内存的容量;根据N个该容量和该N段地址范围,确定该第一扩展内存的地址范围。
[0014]本申请中,通过获取N个第二扩展内存对应的N段地址范围和每个第二扩展内存的容量后,可以根据容量和地址范围之间的匹配关系,识别出每个第二扩展内存对应的地址范围,从而确定第一扩展内存的地址范围。
[0015]在一种可能的实现中,该根据N个该容量和该N段地址范围,确定该第一扩展内存的地址范围,具体包括:若该第一扩展内存与该N个第二扩展内存中其他扩展内存的容量均不相同,则根据该第一扩展内存的容量匹配该N段地址范围,确定该第一扩展内存的地址范围;或者,若该第一扩展内存与该N个第二扩展内存中的至少一个该扩展内存的容量相同,则获取该N个第二扩展内存的内存编号;根据N个该内存编号的先后顺序和该N段地址范围的先后顺序,以及该第一扩展内存的内存编号,确定该第一扩展内存的地址范围。
[0016]本申请中,通过根据容量直接匹配地址范围,以及根据第二扩展内存的内存编号匹配第二扩展内存的地址范围两种方式,使得计算设备能够在第一扩展内存与该其他扩展内存的不同容量关系下均能够准确地识别第一扩展内存的存储类型。
[0017]在一种可能的实现中,该第一NUMA节点为该具有CPU的NUMA节点中与该第一扩展内存距离最近的NUMA节点。
[0018]本申请中,通过将该扩展内存作为一个内存分区添加至与该第一扩展内存距离最近的具有CPU的NUMA节点中,可以进一步提高CPU访问该扩展内存的速度,提高该NUMA节点中CPU的带宽,降低该CPU访问扩展内存的时延。
[0019]在一种可能的实现中,在该将该第一扩展内存作为该第二NUMA节点的内存之后,该方法还包括:将冷数据迁移到该第二NUMA节点的内存,热数据迁移到该具有CPU的NUMA节点的内存。
[0020]本申请中,通过将活动不频繁,不会被经常访问的冷数据迁移到距离CPU较远的第二NUMA节点的内存,利用PMEM和SCM容量大的特性,可以为活动频繁,被经常访问的热数据让出大量的空间;使得大量的热数据存储于延迟更低、带宽更高的具有CPU的NUMA节点的内存中,CPU与热数据存储的距离更近,进而提高CPU对热数据的访问速度和对高频使用热数据的业务的响应速度。
[0021]在一种可能的实现中,该扩展内存包括PMEM和SCM中的至少一者,以及DRAM;在将该DRAM作为该第一NUMA节点的内存,且将PMEM和SCM中的至少一者作为该第二NUMA节点的
内存之后,该方法还包括:将冷数据迁移到该第二NUMA节点的内存,将热数据迁移到该第一NUMA节点的内存。
[0022]在一种可能的实现中,该计算设备包括本地内存;该至少一个扩展内存包括该DRAM;在该将该第一扩展内存作为第一NUMA节点的内存之后,该方法还本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种内存管理方法,其特征在于,应用于计算设备,所述计算设备包括至少一个扩展内存,所述方法包括:当检测到第一扩展内存接入时,识别所述第一扩展内存的存储类型,所述第一扩展内存为所述至少一个扩展内存中的任意一个;若所述第一扩展内存为动态随机存取存储器DRAM,则将所述第一扩展内存作为第一非统一内存访问架构NUMA节点的内存;其中,所述第一NUMA节点为任意一个具有中央处理器CPU的节点;若所述第一扩展内存为持久化内存PMEM或存储级内存SCM,则新增第二NUMA节点,并将所述第一扩展内存作为所述第二NUMA节点的内存,其中所述第二NUMA节点无CPU。2.根据权利要求1所述的方法,其特征在于,所述将所述第一扩展内存作为第一NUMA节点的内存,具体包括:确定所述第一扩展内存的地址范围;将所述地址范围添加至所述第一NUMA节点的内存。3.根据权利要求1所述的方法,其特征在于,所述将所述第一扩展内存作为所述第二NUMA节点的内存,具体包括:确定所述第一扩展内存的地址范围;将所述地址范围添加至所述第二NUMA节点的内存。4.根据权利要求2或3所述的方法,其特征在于,所述计算设备还包括内存扩展器,所述至少一个扩展内存包括N个通过所述内存扩展器接入所述计算设备的第二扩展内存,所述第一扩展内存为N个所述第二扩展内存中的任意一个,N大于1;所述确定所述第一扩展内存的地址范围包括:通过UEFI固件获取所述N个第二扩展内存所对应的N段地址范围;从所述内存扩展器处获取所述N个第二扩展内存的容量;根据N个所述容量和所述N段地址范围,确定所述第一扩展内存的地址范围。5.根据权利要求4所述的方法,其特征在于,所述根据N个所述容量和所述N段地址范围,确定所述第一扩展内存的地址范围,具体包括:若所述第一扩展内存的容量与所述N个第二扩展内存中其他扩展内存的容量均不相同,则根据所述第一扩展内存的容量匹配所述N段地址范围,确定所述第一扩展内存的地址范围;或者,若所述第一扩展内存的容量与所述N个第二扩展内存中的至少一个所述扩展内存的容量相同,则获取所述N个第二扩展内存的内存编号;根据N个所述内存编号的先后顺序和所述N段地址范围的先后顺序,以及所述第一扩展内存的内存编号,确定所述第一扩展内存的地址范围。6.根据权利要求1至5中任一项所述的方法,其特征在于,所述第一NUMA节点为所述具有CPU的NUMA节点中与所述第一扩展内存距离最近的NUMA节点。7.根据权利要求1至6中任一项所述的方法,其特征在于,在所述将所述第一扩展内存作为所述第二NUMA节点的内存之后,所述方法还包括:将冷数据迁移到所述第二NUMA节点的内存,热数据迁移到所述具有CPU的NUMA节点的
内存。8.根据权利要求1至7中任一项所述的方法,其特征在于,所述计算设备包括本地内存;所述至少一个扩展内存包括所述DRAM;在所述将所述第一扩展内存作为第一NUMA节点的内存之后,所述方法还包括:接收应用发送的内存申请;若所述本地内存的占用率小于占用阈值,则根据所述内存申请将所述本地内存分配给所述应用;若所述本地内存的占用率大于所述占用阈值且小于100%,则根据所述内存申请,按照可用的所述本地内存和可用的所述DRAM的比例,将所述本地内存与所述DRAM分配给所述应用。9.根据权利要求8所述的方法,其特征在于,所述至少一个扩展内存还包括所述PMEM和所述SCM中的至少一者;在所述接收应用发送的内存申请之后,所述方法还包括:若所述本地内存和所述DRAM的占用率均为100%,则根据所述内存申请将所述PMEM和所述SCM中的至少一者分配给所述应用。10.根据权利要求1至9中任一项所述的...

【专利技术属性】
技术研发人员:姚爽
申请(专利权)人:超聚变数字技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1