CN118210620A - 内存管理方法、装置及系统 - Google Patents
内存管理方法、装置及系统 Download PDFInfo
- Publication number
- CN118210620A CN118210620A CN202410123466.4A CN202410123466A CN118210620A CN 118210620 A CN118210620 A CN 118210620A CN 202410123466 A CN202410123466 A CN 202410123466A CN 118210620 A CN118210620 A CN 118210620A
- Authority
- CN
- China
- Prior art keywords
- memory
- cxl
- target
- resource
- management module
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 651
- 238000007726 management method Methods 0.000 title claims abstract description 340
- 238000000034 method Methods 0.000 claims abstract description 35
- 238000012216 screening Methods 0.000 claims abstract description 12
- 238000013468 resource allocation Methods 0.000 claims description 22
- 230000008859 change Effects 0.000 claims description 12
- 238000013507 mapping Methods 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 5
- 238000010276 construction Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 19
- 230000006870 function Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000011176 pooling Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
Abstract
本申请实施例提供了一种内存管理方法、装置及系统,该方法包括:根据OS层的至少一个OS管理模块反馈的设备信息和CXL Switch层的至少一个CXL管理模块反馈的内存资源信息,构建配置信息对应表;响应于目标主机发送的内存分配请求,根据配置信息对应表在内存资源信息中进行筛选,确定内存资源池中的目标内存资源并生成内存分配指令,并根据内存分配指令和设备信息将目标内存资源分配至目标主机。能够在CXL FM和OS FM的上层实现内存资源的统一精细化管理,提高内存资源的利用率,提升内存管理的效率。
Description
技术领域
本申请涉及计算机技术领域,具体地,涉及一种内存管理方法、装置及系统。
背景技术
随着多核处理器的发展,服务器中处理器的计算速度不断提高。但由于内存的存取速度和内存容量严重滞后处理器的计算速度,导致“内存墙”的问题日益凸显。计算快速链接(Compute Express Link,CXL)技术就在此背景下被提出。
相关技术中,CXL内存池化后,一般依赖于CXL交换机(Switch)厂商提供的CXL结构管理器(Fabric Manager,FM)或操作系统(OperatingSystem,OS)端提供的FM来管理内存池,但不同厂商的FM之间的实现策略并不统一,在使用不同厂商的主机组成系统时可能会出现兼容性问题。
发明内容
本申请主要提供一种内存管理方法、装置及系统,能够提高内存资源的利用率,进而提升内存管理的效率。
本申请的技术方案是这样实现的:
第一方面,本申请实施例提供了一种内存管理方法,包括:
根据OS层的至少一个OS管理模块反馈的设备信息和CXL Switch层的至少一个CXL管理模块反馈的内存资源信息,构建配置信息对应表;
响应于目标主机发送的内存分配请求,根据配置信息对应表在内存资源信息中进行筛选,确定内存资源池中的目标内存资源并生成内存分配指令,并根据内存分配指令和设备信息将目标内存资源分配至目标主机。
第二方面,本申请实施例提供了一种内存管理装置,包括:
表构建单元,配置为根据OS层的至少一个OS管理模块反馈的设备信息和CXLSwitch层的至少一个CXL管理模块反馈的内存资源信息,构建配置信息对应表;
内存分配单元,配置为响应于目标主机发送的内存分配请求,根据配置信息对应表在内存资源信息中进行筛选,确定内存资源池中的目标内存资源并生成内存分配指令,并根据内存分配指令和设备信息将目标内存资源分配至目标主机。
第三方面,本申请实施例提供一种内存管理系统,包括内存资源池、如第二方面所述的内存管理装置、至少一个CXL交换机和至少一个主机,至少一个CXL交换机分别与内存资源池、内存管理装置和对应的主机通信连接,内存管理装置与至少一个主机通信连接,其中:
内存资源池,用于提供内存资源;
至少一个CXL交换机包括CXL Switch层,CXL Switch层上设置了至少一个CXL管理模块,CXL管理模块用于向内存管理装置反馈内存资源信息;
至少一个主机,包括OS层,OS层上设置了至少一个OS管理模块,用于向内存管理装置反馈设备信息;
内存管理装置,用于根据设备信息和内存资源信息,构建配置信息对应表,以及响应于目标主机发送的内存分配请求,根据配置信息对应表在内存资源信息中进行筛选,确定内存资源池中的目标内存资源并生成内存分配指令,并根据内存分配指令和设备信息将目标内存资源分配至目标主机。
本申请提供了一种内存管理方法、装置及系统,内存管理装置根据OS管理模块反馈的设备信息、CXL管理模块反馈的内存资源信息,构建配置信息对应表,结合该表和自定义调度规则,实现了内存资源的统一管理配置。从而在CXL FM和OS FM的上层实现内存资源的统一精细化管理,提高内存资源的利用率,进而提升内存管理的效率。
附图说明
图1为本申请实施例提供的一种内存管理系统的组成结构示意图一;
图2为本申请实施例提供的一种内存管理系统的组成结构示意图二;
图3为本申请实施例提供的一种内存资源池化过程示意图;
图4为本申请实施例提供的一种内存管理方法的步骤流程示意图一;
图5为本申请实施例提供的一种内存管理方法的步骤流程示意图二;
图6为本申请实施例提供的一种内存管理方法的步骤流程示意图三;
图7为本申请实施例提供的一种内存管理装置的组成结构示意图。
具体实施方式
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
还需要指出,本申请实施例所涉及的术语“第一\第二\第三”仅是用于区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
随着服务器规模的增加,对于超大规模的云服务提供商和云建设者来说,动态分配资源是主要的问题。由于不同服务器的工作负载不是静态的,一刀切的内存资源配置无法满足不同服务器的需求,最终会不可避免的造成内存资源的浪费。
另一方面,由于当前主流计算系统一般采取高速缓存(SRAM)、主存(DRAM)、外部存储(NAND Flash)的三级存储结构,每当服务器开始工作时,数据在这三级存储间传输,越靠近处理器的存储器速度越快,这样,后级的响应时间影响整体性能,形成“存储墙”;以及,在数据量过大时,需借助外部存储器来存储,使处理器需要通过输入/输出(Input/Output,IO)访问方式来获取数据,IO访问方式相对于内存访问的访问速度下降了几个数量级,严重影响整理性能,形成“IO墙”。
为了解决上述制约计算系统性能的因素,CXL技术应运而生。CXL是一个全新的得到业界认同的互联网技术标准,可以有效地解决内存墙和IO墙的瓶颈。CXL通过内存共享和内存访问,在硬件上实现了多机共同访问同样内存地址的能力。
CXL池化后,不同的主机可以根据CXL标准对池化内存进行管理和访问。相关技术中,已有的管理方案主要包括2种:第一种,依赖于CXL交换机提供的CXL FM来管理内存池;第二种,在主机上设置OS层,依赖于OS层上的FM来管理内存池。其中,CXL FM是负责系统组合和资源分配的应用程序逻辑,FM通过使用组件命令接口(Component CommandInterface,CCI)将一个(逻辑)设备分配给主机。它可以采取任何形式,包括但不限于在主机上运行的软件、在基板管理控制器(Board Management Controller,BMC)上运行的嵌入式软件、在另一个CXL设备或CXL交换机上运行的嵌入式固件,或者在CXL设备本身内运行的状态机。
虽然上述管理方案能够实现对内存资源池的管理,但因为FM是一个开放的逻辑,不同的OS厂商、不同的CXL交换机厂商都有自己不同的实现方案,很难形成一个统一的配置逻辑。而且,目前提供的CXL FM、OS FM也缺乏精细的应用端对CXL池化内存的管理策略。
基于上述技术问题,本申请实施例提供一种内存管理方法、装置及系统,内存管理装置根据OS管理模块反馈的设备信息、CXL管理模块反馈的内存资源信息,构建配置信息对应表,结合该表和自定义调度规则,实现了内存资源的统一管理配置。能够在CXL FM和OSFM的上层实现内存资源的统一精细化管理,提高内存资源的利用率,提升内存管理的效率。
下面通过附图及具体实施例对本申请做进一步的详细说明。
图1为本申请实施例提供的一种内存管理系统的组成结构示意图一。如图1所示,内存管理系统10可以包括:包括内存资源池103、内存管理装置104、至少一个CXL交换机和至少一个主机(Host),至少一个CXL交换机(CXL Switch)分别与内存资源池103、内存管理装置104和对应的主机通信连接,内存管理装置104与至少一个主机通信连接。
图2为本申请实施例提供的一种内存管理系统的组成结构示意图二。如图2所示,内存管理系统10包括主机集群101、CXL交换机、以及内存资源池103。其中,主机集群101可以包括H1主机1011、H2主机1012、H3主机1013、H4主机1014、……、Hn主机1015等,与CXL交换机集群102连接。交换机集群102可以包括第一CXL交换机1021、……、第MCXL交换机1022。内存资源池103包括上述主机集群101提供的不同内存,以及外接的内存资源,均通过CXL交换机连接到上层的主机集群101。
需要说明的是,本申请实施例以CXL交换机包括M个CXL交换机和n个主机为例进行说明,在实施过程中,CXL交换机的数量和主机的数量可根据需要具体设置。
其中,内存资源池103,用于提供内存资源。
在本申请实施例中,内存资源池103可以是包含很多内存资源的设备,其中,不同的内存资源可以包括由不同的主机提供的各种类型的内存介质,根据CXL内存协议对所有的内存介质进行池化,通过统一编址便于至少一个CXL交换机、至少一个主机、内存管理装置104等设备访问内存资源。
CXL包括三个子协议:CXL.io子协议,使CXL可运行在高速串行计算机扩展总线标准(peripheral component interconnect express,PCIe)物理层之上;CXL.cache允许CXL设备缓存主机端的内存;CXL.mem允许主机使用Load/Store语义像访问本地内存一样访问设备端的内存。
图3为本申请实施例提供的一种内存资源池化过程示意图。如图3所示,主机的系统总线包括一个或多个CXL根端口(root ports,RPs),RPs将一个或多个主机的存储介质,也可称为CXL设备,作为端点(endpoint,EP)连接起来。在进行池化时,主机首先执行步骤①查询,主机或CXL交换机通过FlexBus总线传输PCIe协议查询端点中内存资源的情况,接下来在步骤②,基址寄存器(base address register,BAR)和其内部存储器(其被称为host-managed device memory,HDM)返回其大小来枚举内存资源。最后,执行步骤③,主机或CXL交换机根据BAR和HDM的大小和基址(base),将BAR和HDM映射到主机或CXL交换机的内存空间中,并向端点返回基址,以使端点确定其映射位置。当主机处理器通过访问指令,即Load/Store指令访问端点中的内存请求对象,即Mem.req.时,请求被传递到RP,再由RP传输至流量控制单元,即CXL flit,最后传输至端点中进行处理,并在端点中进行地址转换后,返回对应的内存请求对象至主机处理器。
至少一个CXL交换机包括CXL Switch层,CXL Switch层上设置了至少一个CXL管理模块,CXL管理模块用于向内存管理装置104反馈内存资源信息。
在本申请实施例中,图3中所示的CXL RPs与CXL交换机的上游端口连接,CXL交换机的下游端口与其他CXL交换机或内存资源池103连接,CXL管理模块,也可称为CXL FM,可以用于据此管理池化后的内存资源。示例性地,CXL交换机设置了内部路由表,当主机通过Load/Store命令访问内存资源池103时,CXL管理模块根据主机的OS层-CXL交换机的CXLSwitch层-内存资源池103的三层虚拟层次结构,来管理内存资源并将其基址(base)和大小(size)暴露在应用程序的内存空间中,以使运行在主机上的应用程序可以通过应用HDM的内存空间,直接访问内存资源池103中的内存资源。
需要说明的是,CXL管理模块设置于CXL Switch层上,不同的CXL交换机上设置的CXL管理模块虽然属于同一层,但其实现逻辑可能不相同。例如,在图2所示的第一CXL交换机1021和第MCXL交换机1022的型号不同的情况下,第一CXL交换机1021的CXL管理模块可能与第MCXL交换机1022的CXL管理模块并不兼容,此时,不同CXL交换机上的CXL管理模块分别与其上层,即下述OS层实现带外通信,将内存资源信息反馈至对应的OS管理模块。
其中,内存资源信息可以包括CXL内存对应的非一致性内存访问架构(NonUniform Memory Access,NUMA)信息,内存资源的分配情况、HDM基地址和内存大小,地址转换后的相关信息等。
在本申请实施例中,主机只能访问与其具有绑定关系的内存资源,该绑定关系可由CXL管理模块获取。如图2所示,内存资源池103中的内存介质的标记与主机集群101中的具有相同标记的主机相对应,具有同一标记的主机与内存资源具有绑定关系,示例性地,H1主机1011可以访问带有斜纹标记的内存资源,H2主机1012可以访问带有点状标记的内存资源。另外,带有纯黑色标记的内存资源为共享内存资源(SHARED),可供所有主机访问。
至少一个主机,包括OS层,OS层上设置了至少一个OS管理模块,用于向内存管理装置104反馈设备信息。
在本申请实施例中,如图2所示,主机集群101中可以包括至少一个主机,每一个主机上均设置了OS层,可以理解的是,不同主机的OS层为同一层。
需要说明的是,在虚拟层级结构中,OS层为CXL Switch层的上一层,OS层上设置OS管理模块,用于管理CXL交换机相关的驱动和设备枚举。
在主机访问内存资源时,OS管理模块根据其存储的设备信息,确定对应的CXL管理模块,进一步由CXL管理模块确定需访问的内存资源。
其中,设备信息可以包括CXL交换机ID、虚拟桥ID、物理端口ID和逻辑设备ID等,还可以包括图3中所示的内存资源的基址(base)和大小(size)等信息,这些信息可由OS管理模块向CXL管理模块获取。
内存管理装置104,用于根据设备信息和内存资源信息,构建配置信息对应表,以及响应于目标主机发送的内存分配请求,根据配置信息对应表在内存资源信息中进行筛选,确定内存资源池103中的目标内存资源并生成内存分配指令,并根据内存分配指令和设备信息将目标内存资源分配至目标主机。
相比于现有技术中仅设置CXL Switch层或仅设置OS层的方案,在本申请实施例中,在虚拟结构层次中,在CXL管理模块所在的CXL Switch层和OS管理模块所在的OS层的上层,新增设置了应用软件层,如此,使该层上的内存管理装置104能够对异构的CXL管理模块和OS管理模块进行统一管理,进而实现内存资源的统一精细化管理。
在本申请实施例中,内存管理装置104可以是设置于软件层上的软件程序,软件层在虚拟层次结构中位于前述OS层的上层。在图2所示的主机集群101中仅包括一个主机的情况下,内存管理装置104也可以设置于该主机上;若图2所示的主机集群101中包括至少一个主机,内存管理装置104可以设置于其中一个主机上,该主机可与其他主机通讯,也可以设置于一个管理所有主机的服务器上。
内存管理装置104根据前述OS层反馈的设备信息和CXL Switch层反馈的内存资源信息,将内存资源、CXL交换机、主机之间的物理设备和逻辑设备的绑定关系进行汇总,构建配置信息对应表。根据该表可以建立内存管理装置104-OS层的OS管理模块-CXL Switch层的CXL管理模块-内存资源的虚拟层级结构来进行内存资源的调度。其中,在一些实施例中,OS层的OS管理模块和CXL Switch层的CXL管理模块可以是并列层级关系,均可与内存管理装104置直接通信。
在本申请实施例中,如前述,与内存管理装置104通信的OS管理模块、CXL管理模块均可能设置至少一个,且互不兼容,即处于同一层的管理模块不具有相互通信的接口,这使得不同的OS管理模块都难以获知全部内存资源的分配情况。在这种情况下,内存管理装置104在收到主机集群101中一个主机发送的内存分配请求后,可根据配置信息对应表,根据内存资源信息反映的内存分配情况,确定目标未分配给其他主机的内存资源,也就是内存资源池103中可访问的内存资源,还可以根据用户需要对可访问的内存资源进行进一步的筛选,确定目标内存资源,以生成正确的内存分配指令。然后,根据设备信息,确定目标内存资源由哪一CXL管理模块管理后,将该内存分配指令由内存管理装置104通过OS管理软件传输至管理目标内存资源的CXL管理模块,或由内存管理装置104直接将访问指令传输至管理目标内存资源的CXL管理模块,以使该CXL管理模块将目标内存资源分配至对应的主机。
还需要说明的是,在将目标内存资源分配至对应的主机后,CXL管理模块可将修改后的绑定关系反馈至内存管理装置104,由内存管理装置104更新配置信息对应表中的绑定关系。
本申请实施例提供了一种内存管理系统,通过在CXL FM和OS FM的上层设置内存管理装置,实现内存资源的统一精细化管理,提高内存资源的利用率,提升内存管理的效率。
在本申请的再一实施例中,上述至少一个主机还包括统一的可扩展固件接口(Unified Extensible Firmware Interface,UEFI)层,也可称为UEFI层,其中:
UEFI层,用于根据内存资源池103中每一个内存资源的属性,将内存资源池103中每一个内存资源的类型标记为通用类型或特定类型。
其中,通用类型的内存资源可供每一个OS管理模块调用,特定类型的内存资源可供其指定的OS管理模块调用。
需要说明的是,UEFI层也设置于主机上,且在虚拟层次结构中位于OS层的下层,CXL Switch层的上层。
在内存管理系统10上电初始化的过程中,执行上述内存池化的步骤后,UEFI层除了常规内存资源初始化和CXL设备初始化,对内存资源池103中的内存资源进行统一编址外,还需要将内存资源池103中的内存资源配置为通用内存(General-purpose memory)或特定用途内存(specific purpose memory),其中,通用内存为通用类型的内存,特定用途内存为特定类型的内存。
在本申请实施例中,如前述图3所示,内存资源池103中包括很多内存资源,其中,带有纯黑色标记的是通用类型的内存,可供任一OS层上的OS管理模块访问;带有其他标记的是特定用途内存,仅可供具有同一标记的主机上的OS管理模块访问。
还需要说明的是,UEFI层在内存资源初始化和CXL设备初始化完成后,可将相关的初始化信息反馈至OS层对应的OS管理模块。
在一些实施例中,OS管理模块,还用于根据UEFI层反馈的初始化信息,配置对应的资源关联表和内存属性表,其中,资源关联表用于表征每一个主机每一个主机与CXLSwitch交换机,以及每一个主机与内存资源池103中内存资源之间的对应关系;内存属性表用于表征内存资源池103中每一个内存资源的属性。
OS管理模块根据UEFI层反馈的初始化信息,配置ACPI_OSC(Operating SystemCapabilities)对象(object),并构建资源关联表,也可称为系统资源关联表(SystemResource Affinity Table,SRAT)、也可称为内存属性表(Heterogeneous MemoryAttribute Table,HMAT)。
在本申请实施例中,OS层可基于资源关联表和内存属性表管理CXL交换机相关的设备驱动和设备枚举。
其中,SRAT用于提供关于内存管理系统10中内存资源与至少一个主机、与至少一个CXL交换机之间绑定关系的信息,还可以用于提供CXL交换机与主机之间绑定关系的信息。HMAT描述了内存属性的相关信息,如存储介质类型,还可以用于提供内存资源的其他相关性能信息,如带宽、延迟等。
在本申请实施例中,OS管理模块构建上述SRAT、HMAT后,可通过与内存管理模块之间的带内或带外通信,将上述表中的信息作为设备信息反馈至内存管理装置104,以供内存管理装置104构建配置信息对应表。
CXL管理模块,用于确定CXL Switch交换机与内存资源池103中内存资源之间的对应关系。
需要说明的是,CXL管理模块可将其管理的内存资源的相关信息,如内存资源对应的非一致性内存访问架构(Non Uniform Memory Access,NUMA)信息,HDM基地址和内存大小,地址转换后的信息等,作为内存资源信息反馈至内存管理装置104,以供内存管理装置104构建配置信息对应表。
在一些实施例中,CXL管理模块,还用于根据资源关联表,建立每一个主机与CXLSwitch交换机的物理端口的绑定关系。
在本申请实施例中,在内存管理系统10上电初始化的过程中,执行上述构建SRAT、HMAT的步骤后,CXL管理模块根据资源关联表,通过bind/unbind命令将CXL交换机分配给对应的主机。该命令需要四个参数:CXL交换机(switch)ID、虚拟网桥(virtual bridge)ID、物理端口ID和逻辑设备ID。CXL管理模块将此命令发送至指定的CXL交换机,CXL管理模块将此命令发送至指定的CXL交换机,CXL交换机会检查该物理端口当前是否未与主机绑定。如果未绑定,则交换机更新其内部状态以执行绑定。然后,CXL交换机会向主机发送热添加提示,最后通知CXL管理模块绑定成功。
需要说明的是,CXL管理模块还支持内存资源池103中存储介质的热插拔,通过引入相关设备属性表(Coherent Device Attribute Table,CDAT),在存储介质在运行时被热插拔时,主机会读取相关的CDAT,根据CDAT中反馈的内部NUMA域、内存范围、带宽和延迟等信息,在空闲的数字范围内为插入的存储介质建立内存映射关系。
上述步骤说明了内存管理系统10在上电后,各层执行的初始化相关步骤。在初始化完成后,最上层的内存管理装置104可与异构的至少一个OS管理模块、异构的至少一个CXL管理模块进行带内或带外通信,对至少一个OS管理模块、至少一个CXL管理模块和内存资源池103进行统一管理。具体地:
在一些实施例中,内存管理装置104,用于根据设备信息确定对应的OS管理模块和对应的CXL管理模块;将内存分配指令通过对应的OS管理模块发送至对应的CXL管理模块,以使对应的CXL管理模块根据内存分配指令,将目标内存资源分配至目标主机。
在一些实施例中,内存管理装置104,还用于根据配置信息对应表在内存资源信息中进行筛选,确定初始内存资源;根据自定义调度规则在初始内存资源中进行筛选,确定目标内存资源,目标内存资源与根据对应的OS管理模块的资源分配策略确定的OS目标内存资源、根据对应的CXL管理模块的资源分配策略确定的CXL目标内存资源一致。
在一些实施例中,内存管理装置104,还用于根据配置信息对应表和自定义调度规则,确定的目标内存资源,与根据对应的OS管理模块的资源分配策略确定的OS目标内存资源、根据对应的CXL管理模块的资源分配策略确定的CXL目标内存资源不一致时,向目标内存资源发送状态变更命令,状态变更命令用于建立目标内存资源与目标主机的对应关系。
在一些实施例中,上述自定义调度规则包括如下至少一种:
安全访问规则,用于确定内存管理装置104在内存资源池103中可访问的内存资源;
分级访问规则,用于确定内存管理装置104在内存资源池中103访问内存资源的顺序;
性能保障规则,用于根据历史资源访问记录,确定内存管理装置104在内存资源池103中调度速度最快的内存资源;
RAS规则,用于对内存资源池103进行故障检测和告警。
本申请实施例提供了一种内存管理系统,通过使用不同OS管理模块、不同CXL管理模块初始化时的公共流程部分,对内存管理系统进行初始化,便于内存管理装置对差异化的OS管理模块和CXL管理模块进行统一管理,提升内存资源池的利用率。
上述实施例说明了内存管理系统上电后的初始化过程,下面,对内存管理装置进行内存管理的相关功能进行详细说明。
在本申请的再一实施例中,图4为本申请实施例提供的一种内存管理方法的步骤流程示意图一。如图4所示,该方法可以包括如下步骤:
S301,根据OS层的至少一个OS管理模块反馈的设备信息和CXL Switch层的至少一个CXL管理模块反馈的内存资源信息,构建配置信息对应表。
在本申请实施例中,内存管理模块与OS层的至少一个OS管理模块、CXL Switch层的至少一个CXL管理模块建立通信连接,其中,至少一个OS管理模块可以包括多个不同实现策略的OS管理模块,至少一个CXL管理模块可以包括多个不同实现策略的CXL管理模块。
如前述实施例,设备信息可以包括SRAT、HMAT中存储的CXL交换机ID、虚拟桥ID、物理端口ID和逻辑设备ID等,还可以包括图3中所示的内存资源的基址(base)和大小(size)等信息;内存资源信息可以包括其管理的内存资源的相关信息,如内存资源对应的NUMA信息,HDM基地址和内存大小,地址转换后的信息等。
在本申请实施例中,内存管理装置获取上述设备信息、内存资源信息后,将不同的OS管理模块管理的CXL交换机的相关信息、不同的CXL管理模块获取的内存资源的相关信息与主机一一对应,从而建立完善的数据库信息,构建物理设备和逻辑设备对应关系的配置信息对应表,用以明确内存管理装置-主机OS层的OS管理模块-CXL交换机CXL Switch层的CXL管理模块-内存资源的虚拟层次结构之间,相邻层之间的设备绑定关系。
需要说明的是,在一些可选的实施例中,CXL管理模块可直接与内存管理装置进行带外通信,在这种情况下,OS层、CXL Switch层可位于虚拟层次结构中的同一层。
S302,响应于目标主机发送的内存分配请求,根据配置信息对应表在内存资源信息中进行筛选,确定内存资源池中的目标内存资源并生成内存分配指令,并根据内存分配指令和设备信息将目标内存资源分配至目标主机。
在本申请实施例中,目标主机可以是至少一个主机中的任一主机。目标主机在内存需求发生变化时,可以向内存管理装置发送内存分配请求。其中,示例性地,内存分配请求中可以包括需要增加的内存大小,还可以包括内存类型、带宽等相关信息。
内存管理装置收到内存分配请求后,可以结合配置信息对应表,根据内存资源信息,确定当前未分配至其他主机的的内存资源并基于用户的需求进行进一步的筛选,确定适合的目标内存资源,生成内存分配指令。进一步地,根据设备信息确定管理目标内存资源的CXL管理模块,并将内存分配指令发送至该CXL管理模块,使其根据内存分配指令将目标内存资源分配至目标主机,即建立目标内存资源与目标主机的绑定关系,并更新配置信息对应表。
还需要说明的是,若内存管理装置分配内存失败,未筛选出目标内存资源,则向目标主机返回分配失败的信息。
本申请实施例提供了一种内存管理方法,内存管理装置根据OS管理模块反馈的设备信息、CXL管理模块反馈的内存资源信息,构建配置信息对应表,结合该表和自定义调度规则,实现了内存资源的统一管理配置。从而在CXL FM和OS FM的上层实现内存资源的统一精细化管理,提高内存资源的利用率,提升内存管理的效率。
在本申请的再一实施例中,图5为本申请实施例提供的一种内存管理方法的步骤流程示意图二。如图5所示,上述根据内存分配指令和设备信息将目标内存资源分配至目标主机,可以包括如下步骤:
S401,根据设备信息确定对应的OS管理模块和对应的CXL管理模块。
在本申请实施例中,内存管理装置收到目标主机发送的内存分配指令后,由于内存管理装置在虚拟层次结构的最上层,且内存管理装置中存储了用于表征各设备之间管理关系的设备信息,因此内存管理装置可首先根据设备信息,确定目标内存资源由哪一CXL管理模块管理,以及该CXL管理模块由哪一OS管理模块管理,即内存分配指令的发送路径。
S402,将内存分配指令通过对应的OS管理模块发送至对应的CXL管理模块,以使对应的CXL管理模块根据内存分配指令,将目标内存资源分配至目标主机。
在确定了内存分配指令的发送路径后,内存管理装置将内存分配指令发送至对应的OS管理模块,再由OS管理模块发送至对应的CXL管理模块。最后,由CXL管理模块建立目标内存资源与目标主机的绑定关系,将目标内存资源分配至目标主机。
需要说明的是,在内存管理装置将内存分配指令下发的过程中,各层在下发时也会结合自己的功能判断对内存分配指令中的目标内存资源再次进行判断,确定是否可将目标内存资源分配至目标主机。在判断过程中,若目标内存资源不属于OS管理模块通过判断规则确定的OS目标内存资源中,则OS管理模块可能会将内存分配指令中的目标内存资源修改为OS目标内存资源。相应地,若内存分配指令由OS管理模块下发至CXL管理模块后,CXL管理模块确定OS目标内存资源与CXL管理模块通过判断规则确定的CXL目标内存资源不一致,则将内存分配指令中的OS目标内存资源修改为CXL目标内存资源,最后建立CXL目标内存资源与目标主机之间的绑定关系。
在一些实施例中,图6为本申请实施例提供的一种内存管理方法的步骤流程示意图三。如图6所示,上述根据配置信息对应表在内存资源信息中进行筛选,确定内存资源池中的目标内存资源,可以包括如下步骤:
S501,根据配置信息对应表在内存资源信息中进行筛选,确定初始内存资源。
在本申请实施例中,初始内存资源可以是指根据内存资源信息,筛选出内存资源池中未分配给其他主机的内存资源。
S502,根据自定义调度规则在初始内存资源中进行筛选,确定目标内存资源。
其中,目标内存资源与根据对应的OS管理模块的资源分配策略确定的OS目标内存资源、根据对应的CXL管理模块的资源分配策略确定的CXL目标内存资源一致。
进一步地,内存管理装置基于用户设置的自定义调度规则,对初始内存资源再次进行筛选。在本申请实施例中,为了避免上述内存指令下发过程中被修改的情况,内存管理装置可在确定目标内存资源的过程中,将下层OS层上对应的OS管理模块的资源分配策略、下层CXL层上对应的CXL管理模块的资源分配规则均纳入判断,以使通过上述步骤确定的初始内存资源能够与内存分配指令中确定的目标内存资源一致,能够在经过对应的OS管理模块下发至对应的CXL管理模块时,不会被修改。
也就是说,内存分配指令中的目标内存资源,包含于OS管理模块通过其资源分配策略确定的OS目标内存资源中,也包含于CXL管理模块通过其资源分配策略确定的CXL目标内存资源中。
在一些实施例中,上述生成内存分配指令之前,该方法还可以包括:根据配置信息对应表和自定义调度规则,确定的目标内存资源,与根据对应的OS管理模块的资源分配策略确定的OS目标内存资源、根据对应的CXL管理模块的资源分配策略确定的CXL目标内存资源不一致时,向目标内存资源发送状态变更命令,状态变更命令用于建立目标内存资源与目标主机的对应关系。
如前述实施例,内存管理装置可在确定目标内存资源后,可先根据OS管理模块的资源分配策略、CXL管理模块的内存分配策略,对目标内存资源进行判定,若判定一致再生成内存分配指令进行下发。
在本申请实施例中,为确保内存管理装置确定的目标内存资源在下发过程中不被修改,内存管理装置可以在确定目标内存资源后,向对应的CXL交换机发送状态变更命令,以使CXL交换机预先建立目标内存资源与目标主机的绑定关系。这样,在下发过程中,OS管理模块、CXL管理模块在判断时,确定该目标内存资源已分配给目标主机,就不再会对内存分配指令进行修改。
其中,上述状态变更命令可以是独占式CCI的命令,用于强制性取消目标内存资源与当前主机的绑定关系,并将目标内存资源以独占式的方式分配给目标主机。
本申请实施例提供了一种内存管理方法,最上层的内存管理装置可以不受不同实现策略的OS管理模块、CXL管理模块的影响,建立包含异构的OS管理模块、异构的CXL管理模块的虚拟层级结构,通过状态变更命令使内存管理模块实现对下层的统一管理,提高了内存管理系统的效率。
在本申请的再一实施例中,上述自定义调度规则包括如下至少一种:
安全访问规则,用于确定内存管理装置在内存资源池中可访问的内存资源。
在本申请实施例中,安全访问规则可以用于阻止异常内存访问和恶意代码执行等攻击行为,为内存管理系统构建一个安全的内存环境。示例性地,内存管理装置可以通过设置拒绝访问规则,控制某些主机不能访问某些内存资源,防止恶意程序获取到这些内存资源中的敏感数据;内存管理装置还可以设置安全验证规则,使验证通过的主机才能访问某些内存资源,提高内存资源的存储安全性。
需要说明的是,OS管理模块中也可以设置OS的安全访问规则,内存管理装置中的安全访问规则可以是在OS的安全访问规则基础上继续设置更多的规则来加强内存管理的安全性。
分级访问规则,用于确定内存管理装置在内存资源池中访问内存资源的顺序。
如前述实施例,内存资源池中的内存资源可能包括主机提供的内存资源,还可能包括一些外接的扩展内存资源。在接收到目标主机发送的内存分配请求时,内存管理模块可以根据分级访问规则,确定对于目标主机来说,访问内存资源的优先级情况。
示例性地,内存管理装置中可以通过设置一些优先规则,如本地优先规则,使内存管理模块优先将目标主机提供的内存资源作为目标内存资源分配至目标主机;或者,内存管理装置中还可以设置业务优先规则,保证运行关键业务的主机的内存分配请求可以无需排队,优先处理。
性能保障规则,用于根据历史资源访问记录,确定内存管理装置在内存资源池中调度速度最快的内存资源。
在本申请实施例中,历史资源访问记录可以存储在内存管理装置中,用于记录最近的预设时间段内,每一个主机访问内存资源池中内存资源的延迟时间。这样,在接收到目标主机发送的内存分配请求后,内存管理装置可以通过查询历史资源记录,建立最佳调度关系,确定目标主机在历史资源记录中访问时间最短的内存资源作为目标内存资源,以使内存管理装置访问目标内存资源的速度最快。
RAS规则,用于对内存资源池进行故障检测和告警。
RAS是指系统的可靠性(Reliability)、可用性(Availability)和可服务性(Serviceability)。RAS规则的目标是使系统尽可能的长期可靠运行而不停机,减少系统突然关机的情况发生。
RAS规则提供定期检测功能,在检测到系统发生硬件故障后,内存管理装置可以通过RAS规则提供的错误恢复机制,尽可能纠正硬件错误,维持系统可靠的运行。若不能恢复,内存管理装置还可以根据RAS规则触发中断或异常,在硬件错误引起系统宕机之前,向操作人员告警,提醒操作人员及时更换硬件。
还需要说明的是,上述规则为自定义调度规则的举例而已,自定义调度规则还可能包括其他规则,实施情况下自定义调度规则包含的内容、各规则之间判断的先后顺序,可根据用户的选择确定。
本申请实施例提供了一种内存管理方法,通过在内存管理模块中设置安全验证、管理分级等,实现了对内存资源的精细化管理,提高了内存管理的灵活性和安全性。
在本申请的再一实施例中,基于前述实施例,对内存管理系统的初始化流程及内存管理装置的功能进行详细描述。
在本申请实施例中,对内存管理系统的虚拟层次结构,以及内存管理系统上电后CXL池化内存管理方案的执行流程进行说明:
CXL内存协议使设备能够公开主机管理的设备内存HDM,它允许主机管理和访问该内存,类似于连接到主机的本机双数据率同步(Double Data Rate,DDR)存储器。
在初始化过程中,可以将设备集成到系统内存,图3可用于描述CXL设备,即内存资源的内存如何映射到主机的内存空间。
内存管理系统的虚拟层次结构由上至下可以包括:
管理软件层:建立一个统一的池化内存管理方法。
OS层:配置ACPI_OSC object,系统资源关联表(SRAT)和异构内存属性表(HMAT)。管理CXL相关设备的驱动和设备枚举。
UEFI层:除了常规内存初始化和CXL设备初始化,还要配置CXL内存的类型为通用内存或特定用途内存,并报告给HMAT不同引用字段。
CXL Switch层:主机的设备分配/解绑由CXL Switch上的FM通过bind/unbind命令完成,该命令接收四个参数:CXL交换机(switch)ID、虚拟网桥(virtual bridge)ID、物理端口ID和逻辑设备ID。FM发送这个命令到指定的交换机,检查该物理端口当前是否未绑定。如果未绑定,则交换机更新执行绑定的内部状态。然后,它向主机发送一个热添加指示,最后通知FM成功绑定。虚拟网桥和关联的设备现在出现在主机的虚拟层次结构中。FM还管理CXL设备的热插拔。
在内存管理系统配置完成后,在虚拟层次结构最上层,管理软件层上的内存管理装置可以实现如下功能:
首先,管理软件的功能,即内存管理装置和OS,CXL Switch上的管理模块(FM)之间实现带内或带外通信。管理软件收集每台HOST CXL池化内存的资源信息,例如CXL内存对应的NUMA信息,HDM基地址和内存大小,地址转换后的相关信息。将不同主机(Host)的OS端获取本机管理的CXL设备内存(HDM)的地址信息和Host一一对应。绑定Host CXL交换机ID、虚拟桥ID、物理端口ID和逻辑设备ID等。建立完善的数据库信息来满足物理设备和逻辑设备的配置信息对应表。
其次,建立可以自定义配置的调用关系规则的功能,包括:
安全访问规则,如建立拒绝访问规则,安全验证规则。安全性认证可以通过OS执行的安全策略来加强。
访问权限分级,如优先规则:如本地优先,优先使用本地的CXL内存区域;如业务优先,保证关键业务的最优内存分配。
性能保障和RAS功能,管理软件通过分析已有访问性能记录来智能建立最佳调度关系,同时对RAS有风险预警或者出现故障的CXL池化内存模块进行热备份或者移除。
最后,管理软件有在Host OS或者应用对池化内存模块提出访问请求之后先加入判断的功能,可以根据建立的调用规则,和已知的池化内存资源信息对应,生成适当的调度方案,再由CXL Switch FM结合它自己的功能判断,生成正确的访问命令,比如bind和unbind某逻辑设备。这一步的关键在于管理软件要预先给出合理的CXL池化模块的状态,比如以独占式CCI的命令先改变设备状态。使得CXL Switch FM不会擅自改变已被操作的逻辑模块。
本申请实施例提供一种内存管理方法、内存管理系统,在软件管理层设定一个统一的池化内存管理方法,能在上层控制OS应用或者CXL switch上的FM,实现对CXL池化内存的访问和调用,不受不同CXL Switch FM和不同OS制定策略的影响。还能以用户可配置的规则生成不同等级的访问权限,配置一系列的安全分配策略并和OS/CXL Switch上的FM互通来加强池化内存的配置管理。增加对CXL池化内存的调度的安全认证,以及实现对CXL池化内存的管理分级。从而从系统层面更好的获取需求关系来管理CXL池化内存,提升CXL池化内存利用率。
在本申请的再一实施例中,图7为本申请实施例提供的一种内存管理装置的组成结构示意图。如图7所示,内存管理装置104可以包括:
表构建单元1041,配置为根据OS层的至少一个OS管理模块反馈的设备信息和CXLSwitch层的至少一个CXL管理模块反馈的内存资源信息,构建配置信息对应表;
内存分配单元1042,配置为响应于目标主机发送的内存分配请求,根据配置信息对应表在内存资源信息中进行筛选,确定内存资源池中的目标内存资源并生成内存分配指令,并根据内存分配指令和设备信息将目标内存资源分配至目标主机。
在一些实施例中,内存分配单元1042,还配置为根据设备信息确定对应的OS管理模块和对应的CXL管理模块;将内存分配指令通过对应的OS管理模块发送至对应的CXL管理模块,以使对应的CXL管理模块根据内存分配指令,将目标内存资源分配至目标主机。
在一些实施例中,内存分配单元1042,还配置为根据配置信息对应表在内存资源信息中进行筛选,确定初始内存资源;根据自定义调度规则在初始内存资源中进行筛选,确定目标内存资源,目标内存资源与根据对应的OS管理模块的资源分配策略确定的OS目标内存资源、根据对应的CXL管理模块的资源分配策略确定的CXL目标内存资源一致。
在一些实施例中,内存分配单元1042,还配置为根据配置信息对应表和自定义调度规则,确定的目标内存资源,与根据对应的OS管理模块的资源分配策略确定的OS目标内存资源、根据对应的CXL管理模块的资源分配策略确定的CXL目标内存资源不一致时,向目标内存资源发送状态变更命令,状态变更命令用于建立目标内存资源与目标主机的对应关系。
在一些实施例中,内存分配单元1042,还配置为安全访问规则,用于确定内存管理装置在内存资源池中可访问的内存资源;
分级访问规则,用于确定内存管理装置在内存资源池中访问内存资源的顺序;
性能保障规则,用于根据历史资源访问记录,确定内存管理装置在内存资源池中调度速度最快的内存资源;
RAS规则,用于对内存资源池进行故障检测和告警。
可以理解地,在本实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”或“一些实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”或“在一些实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
还需要说明的是,在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围,凡在本申请的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种内存管理方法,包括:
根据OS层的至少一个OS管理模块反馈的设备信息和CXL Switch层的至少一个CXL管理模块反馈的内存资源信息,构建配置信息对应表;
响应于目标主机发送的内存分配请求,根据所述配置信息对应表在所述内存资源信息中进行筛选,确定内存资源池中的目标内存资源并生成内存分配指令,并根据所述内存分配指令和所述设备信息将所述目标内存资源分配至所述目标主机。
2.根据权利要求1所述的方法,所述根据所述内存分配指令和所述设备信息将所述目标内存资源分配至目标主机,包括:
根据所述设备信息确定对应的OS管理模块和对应的CXL管理模块;
将所述内存分配指令通过所述对应的OS管理模块发送至所述对应的CXL管理模块,以使所述对应的CXL管理模块根据所述内存分配指令,将所述目标内存资源分配至所述目标主机。
3.根据权利要求1所述的方法,所述根据所述配置信息对应表在所述内存资源信息中进行筛选,确定内存资源池中的目标内存资源,包括:
根据所述配置信息对应表在所述内存资源信息中进行筛选,确定初始内存资源;
根据自定义调度规则在所述初始内存资源中进行筛选,确定所述目标内存资源,所述目标内存资源与根据对应的OS管理模块的资源分配策略确定的OS目标内存资源、根据对应的CXL管理模块的资源分配策略确定的CXL目标内存资源一致。
4.根据权利要求3所述的方法,所述生成内存分配指令之前,所述方法还包括:
根据所述配置信息对应表和所述自定义调度规则,确定的所述目标内存资源,与根据对应的OS管理模块的资源分配策略确定的OS目标内存资源、根据对应的CXL管理模块的资源分配策略确定的CXL目标内存资源不一致时,向所述目标内存资源发送状态变更命令,所述状态变更命令用于建立所述目标内存资源与所述目标主机的对应关系。
5.根据权利要求1所述的方法,所述自定义调度规则包括如下至少一种:
安全访问规则,用于确定内存管理装置在内存资源池中可访问的内存资源;
分级访问规则,用于确定所述内存管理装置在所述内存资源池中访问内存资源的顺序;
性能保障规则,用于根据历史资源访问记录,确定所述内存管理装置在所述内存资源池中调度速度最快的内存资源;
RAS规则,用于对所述内存资源池进行故障检测和告警。
6.一种内存管理装置,包括:
表构建单元,配置为根据OS层的至少一个OS管理模块反馈的设备信息和CXL Switch层的至少一个CXL管理模块反馈的内存资源信息,构建配置信息对应表;
内存分配单元,配置为响应于目标主机发送的内存分配请求,根据所述配置信息对应表在所述内存资源信息中进行筛选,确定内存资源池中的目标内存资源并生成内存分配指令,并根据所述内存分配指令和所述设备信息将所述目标内存资源分配至所述目标主机。
7.一种内存管理系统,包括内存资源池、如权利要求6所述的内存管理装置、至少一个CXL交换机和至少一个主机,所述至少一个CXL交换机分别与所述内存资源池、所述内存管理装置和对应的主机通信连接,所述内存管理装置与所述至少一个主机通信连接,其中:
所述内存资源池,用于提供内存资源;
所述至少一个CXL交换机包括所述CXL Switch层,所述CXL Switch层上设置了至少一个CXL管理模块,所述CXL管理模块用于向所述内存管理装置反馈内存资源信息;
所述至少一个主机,包括OS层,所述OS层上设置了至少一个OS管理模块,用于向所述内存管理装置反馈设备信息;
所述内存管理装置,用于根据所述设备信息和所述内存资源信息,构建配置信息对应表,以及响应于目标主机发送的内存分配请求,根据所述配置信息对应表在所述内存资源信息中进行筛选,确定所述内存资源池中的目标内存资源并生成内存分配指令,并根据所述内存分配指令和所述设备信息将所述目标内存资源分配至目标主机。
8.根据权利要求7所述的系统,所述至少一个主机还包括UEFI层,其中:
所述UEFI层,用于根据所述内存资源池中每一个所述内存资源的属性,将所述内存资源池中所述每一个内存资源的类型标记为通用类型或特定类型;
其中,所述通用类型的内存资源可供每一个OS管理模块调用,所述特定类型的内存资源可供其指定的OS管理模块调用。
9.根据权利要求7所述的系统,
所述OS管理模块,还用于根据所述UEFI层反馈的初始化信息,配置对应的资源关联表和内存属性表,其中,所述资源关联表用于表征每一个所述主机每一个所述主机与所述CXLSwitch交换机,以及每一个所述主机与内存资源池中内存资源之间的对应关系;所述内存属性表用于表征所述内存资源池中每一个所述内存资源的属性;
所述CXL管理模块,用于确定所述CXL Switch交换机与所述内存资源池中内存资源之间的对应关系。
10.根据权利要求7所述的系统,
所述CXL管理模块,还用于根据所述资源关联表,建立每一个所述主机与所述CXLSwitch交换机的物理端口的绑定关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410123466.4A CN118210620A (zh) | 2024-01-29 | 2024-01-29 | 内存管理方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410123466.4A CN118210620A (zh) | 2024-01-29 | 2024-01-29 | 内存管理方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118210620A true CN118210620A (zh) | 2024-06-18 |
Family
ID=91451243
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410123466.4A Pending CN118210620A (zh) | 2024-01-29 | 2024-01-29 | 内存管理方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118210620A (zh) |
-
2024
- 2024-01-29 CN CN202410123466.4A patent/CN118210620A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8359415B2 (en) | Multi-root I/O virtualization using separate management facilities of multiple logical partitions | |
EP1636696B1 (en) | Os agnostic resource sharing across multiple computing platforms | |
US7395367B2 (en) | Method using a master node to control I/O fabric configuration in a multi-host environment | |
US7707465B2 (en) | Routing of shared I/O fabric error messages in a multi-host environment to a master control root node | |
US8225005B2 (en) | Use of peripheral component interconnect input/output virtualization devices to create high-speed, low-latency interconnect | |
US7007192B2 (en) | Information processing system, and method and program for controlling the same | |
US20170242771A1 (en) | Storage controller failover system | |
CN101765225A (zh) | 一种虚拟化的集群管理方法和集群节点 | |
WO2009109478A1 (en) | Virtual-to-physical network mapping in a parallel computing system with multiple networks | |
WO2008142137A1 (en) | Defragmenting blocks in a clustered or distributed computing system | |
US9131031B2 (en) | Virtual computer system, virtual computer management program, and MAC address management method | |
JP2005275629A (ja) | マルチプロセッサシステム、及び、メモリアクセス方法 | |
US7076570B2 (en) | Method and apparatus for managing service indicator lights in a logically partitioned computer system | |
US20060010133A1 (en) | Management of a scalable computer system | |
EP2040176B1 (en) | Dynamic Resource Allocation | |
US7266631B2 (en) | Isolation of input/output adapter traffic class/virtual channel and input/output ordering domains | |
US10474605B2 (en) | Server system and data access method using the same | |
US9727390B1 (en) | Invoking a firmware function | |
CN114356725A (zh) | 机箱管理系统 | |
US8782779B2 (en) | System and method for achieving protected region within computer system | |
EP3959620B1 (en) | Processor/endpoint communication coupling configuration system | |
CN118210620A (zh) | 内存管理方法、装置及系统 | |
CN115102851B (zh) | 一种面向hpc与ai融合计算的融合平台及其资源管理方法 | |
CN118394533B (zh) | 资源调度方法、计算机设备、存储介质及程序产品 | |
CN118034917A (zh) | 一种PCIe资源分配方法、装置、电子设备及存储介质 |
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 |