CN117785755A - Cxl内存模组及资源配置方法、控制芯片、介质和系统 - Google Patents
Cxl内存模组及资源配置方法、控制芯片、介质和系统 Download PDFInfo
- Publication number
- CN117785755A CN117785755A CN202410200363.3A CN202410200363A CN117785755A CN 117785755 A CN117785755 A CN 117785755A CN 202410200363 A CN202410200363 A CN 202410200363A CN 117785755 A CN117785755 A CN 117785755A
- Authority
- CN
- China
- Prior art keywords
- address
- memory
- meta
- accessed
- cxl
- 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
Links
- 238000000034 method Methods 0.000 title claims description 48
- 238000013468 resource allocation Methods 0.000 title claims description 17
- 230000004913 activation Effects 0.000 claims abstract description 76
- 239000002245 particle Substances 0.000 claims abstract description 27
- 239000008187 granular material Substances 0.000 claims description 48
- 238000013507 mapping Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 5
- 238000007726 management method Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 102100020800 DNA damage-regulated autophagy modulator protein 1 Human genes 0.000 description 1
- 102100040489 DNA damage-regulated autophagy modulator protein 2 Human genes 0.000 description 1
- 101000931929 Homo sapiens DNA damage-regulated autophagy modulator protein 1 Proteins 0.000 description 1
- 101000968012 Homo sapiens DNA damage-regulated autophagy modulator protein 2 Proteins 0.000 description 1
- 101100120298 Rattus norvegicus Flot1 gene Proteins 0.000 description 1
- 101100412403 Rattus norvegicus Reg3b gene Proteins 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Landscapes
- Memory System (AREA)
Abstract
一种CXL内存模组及资源配置方法、控制芯片、介质和系统,涉及CXL内存模组领域,其中,该CXL内存模组包括控制芯片和控制芯片管理的多个内存颗粒,多个内存颗粒被设置为多个逻辑设备,控制芯片设置有高速存储介质,高速存储介质的存储空间包括激活区域和备份区域,激活区域和备份区域均存储有每个逻辑设备对应的元信息,元信息包括内存颗粒中物理资源块的物理首地址;控制芯片被配置为:接收主机发送的内存访问指令,基于内存访问指令携带的地址信息和激活区域中的元信息,确定内存访问指令要访问的内存地址;以及,响应于外部节点发送的配置指令,基于配置指令携带的配置信息更新备份区域中的元信息,并在更新完成后,将激活区域和备份区域互换。
Description
技术领域
本公开实施例涉及CXL内存模组领域,尤指一种CXL内存模组及资源配置方法、控制芯片、介质和系统。
背景技术
CXL(Compute Express Link,计算快速链接)是一种新的基于PCIe(PeripheralComponent Interconnect Express,外围组件互联)物理层的内存接口协议,基于CXL协议,CXL内存模组可以对计算机的内存进行扩充。CXL内存模组通常包括CXL控制芯片及其管理的内存芯片。
根据CXL 2.0 协议, CXL 存储设备可以以多逻辑设备(Multiple LogicalDevice,MLD)的方式展示给主机(Host)。协议中还对CXL存储设备内部的容量、颗粒度大小以及配置管理接口进行了约束,外部管理节点(Fabric Manager)可以发送指令对CXL存储设备中的逻辑设备进行重新配置,例如可以改变某个逻辑设备(Logical Device,LD)的大小。目前,在配置逻辑设备时,需要暂时中止CXL存储设备的数据访问功能,以免配置管理过程与数据访问过程造成冲突。
发明内容
本公开实施例提供了一种CXL内存模组、控制芯片、方法、介质和系统。
第一方面,本公开实施例提供了一种CXL内存模组,该CXL内存模组包括控制芯片和控制芯片管理的多个内存颗粒,多个内存颗粒被设置为多个逻辑设备,控制芯片设置有高速存储介质,高速存储介质的存储空间包括激活区域和备份区域,激活区域和备份区域均存储有每个逻辑设备对应的元信息,元信息包括内存颗粒中物理资源块的物理首地址;控制芯片被配置为:接收主机发送的内存访问指令,基于内存访问指令携带的地址信息和激活区域中的元信息,确定内存访问指令要访问的内存地址;以及,响应于外部节点发送的配置指令,基于配置指令携带的配置信息更新备份区域中的元信息,并在更新完成后,将激活区域和备份区域互换。
第二方面,本公开实施例提供了一种CXL内存模组的资源配置方法,应用于上述实施例中的CXL内存模组,CXL内存模组包括控制芯片和控制芯片管理的多个内存颗粒,多个内存颗粒被设置为多个逻辑设备,控制芯片设置有高速存储介质,高速存储介质的存储空间包括激活区域和备份区域,激活区域和备份区域均存储有每个逻辑设备对应的元信息,元信息包括内存颗粒中物理资源块的物理首地址;方法包括:接收主机发送的内存访问指令,基于内存访问指令携带的地址信息和激活区域中的元信息,确定内存访问指令要访问的内存地址;以及,响应于外部节点发送的配置指令,基于配置指令携带的配置信息更新备份区域中的元信息,并在更新完成后,将激活区域和备份区域互换。
第三方面,本公开实施例提供了一种控制芯片,应用于上述实施例中的CXL内存模组,CXL内存模组还包括控制芯片管理的多个内存颗粒,多个内存颗粒被设置为多个逻辑设备,控制芯片包括高速存储介质和处理器,高速存储介质的存储空间包括激活区域和备份区域,激活区域和备份区域均存储有每个逻辑设备对应的元信息,元信息包括内存颗粒中物理资源块的物理首地址;处理器被配置为执行上述实施例中的CXL内存模组的资源配置方法。
第四方面,本公开实施例提供了一种非瞬态计算机存储介质,计算机存储介质存储有计算机程序,计算机程序被处理器执行时实现上述实施例中的CXL内存模组的资源配置方法。
第五方面,本公开实施例提供了一种计算机系统,包括主机和上述实施例中的CXL内存模组,主机通过CXL接口与CXL内存模组通信,实现对CXL内存模组的发现、配置和数据传输,CXL内存模组以多逻辑设备的方式与主机连接。
本公开实施例的CXL内存模组,利用高速存储介质中的激活区域和备份区域同时存储逻辑设备对应的元信息,当接收到数据访问指令时,可以利用激活区域中的元信息进行地址映射,以访问内存颗粒中的数据;当接收到配置指令时,可以将配置信息写入备份区域,以更新备份区域中的元信息,写入完成后再将激活区域作为新的备份区域,将备份区域作为新的激活区域,使得可以根据新的激活区域访问配置后的逻辑设备。在不影响其他逻辑设备的正常访问的情况下,可以对CXL内存模组中的逻辑设备进行配置管理,有助于提高CXL内存模组的配置管理和数据访问的效率。
本公开的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得更加清楚,或者通过实施本公开而了解。本公开的其他优点可通过在说明书以及附图中所描述的方案来实现和获得。
附图说明
附图用来提供对本公开技术方案的理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开的技术方案,并不构成对本公开技术方案的限制。
图1为本公开的CXL内存模组的一个实施例的结构示意图;
图2为本公开的CXL内存模组的一个实施例中第一寄存器与元信息的对应关系示意图;
图3为本公开的CXL内存模组的一个实施例中地址解析的原理示意图;
图4为本公开的CXL内存模组的资源配置方法的一个实施例的流程示意图;
图5为本公开的CXL内存模组的资源配置方法的一个实施例中地址解析的流程示意图;
图6为本公开的CXL内存模组的资源配置方法的一个实施例中地址解析的流程示意图;
图7为本公开的控制芯片的一个实施例的结构示意图;
图8为本公开的计算机系统的一个实施例的结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,下文中将结合附图对本公开的实施例进行详细说明。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互任意组合。
本公开的实施方式并不一定限定附图所示尺寸,附图中各部件的形状和大小不反映真实比例。此外,附图示意性地示出了理想的例子,本公开的实施方式不局限于附图所示的形状或数值。
本公开中的“第一”、“第二”等序数词是为了避免构成要素的混同而设置,并不表示任何顺序、数量或者重要性。
在本公开中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解。例如,可以是固定连接,或可拆卸连接,或一体地连接;可以是机械连接,或电连接;可以是直接相连,或通过中间件间接相连,或两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本公开中的具体含义。
通常,CXL内存模组中的控制芯片,也可称为CXL控制器,其上可以设置有基于CXL协议的CXL接口,以便主机CPU(Host CPU)通过CXL接口与控制芯片进行交互。例如基于CXL.io协议,主机CPU可以向控制芯片发送指令,例如内存访问指令,内存访问指令可以包括读数据指令和写数据指令,读数据指令用于读取内存芯片中的数据,写数据指令则表示向内存芯片中写入数据;基于CXL.mem协议,主机CPU可以从内存芯片中读取数据,以及,将外部数据写入内存芯片。控制芯片上还设置有内存控制器(Memory Control),例如可以是DDR(Double Data Rate,双数据率)控制器,以便控制芯片对内存芯片进行管理。
基于CXL2.0协议,CXL内存模组能够以多逻辑设备(MLD)的形式展示给主机,CXL内存模组中的多个内存颗粒被设置为多个逻辑设备(LD),即将多个内存颗粒的存储资源划分为多个逻辑设备,以便于主机CPU可以通过内存访问指令访问某个逻辑设备中的数据。此外,还可以通过配置指令对多个逻辑设备进行管理,例如更改逻辑设备的地址信息、标识、存储空间等等。
目前,为了避免逻辑设备的配置过程与数据的访问过程冲突,在对逻辑设备进行配置时,往往需要暂停逻辑设备的访问功能,可见逻辑设备的配置管理对数据的访问效率存在一定的不利影响。
为了提高CXL内存模组作为多逻辑设备(MLD)时的配置管理效率和数据访问效率,本公开实施例提供了一种CXL内存模组。如图1所示,该CXL内存模组包括控制芯片110和控制芯片110管理的多个内存颗粒120,内存颗粒例如可以是图中所示的DRAM(DynamicRandom Access Memory,动态随机存储器)颗粒,多个内存颗粒120被设置为多个逻辑设备。控制芯片110设置有高速存储介质,高速存储介质的存储空间包括激活区域111和备份区域112,激活区域111和备份区域112均存储有每个逻辑设备对应的元信息,元信息包括内存颗粒120中物理资源块的物理首地址。控制芯片110被配置为:接收主机发送的内存访问指令,基于内存访问指令携带的地址信息和激活区域111中的元信息,确定内存访问指令要访问的内存地址;以及,响应于外部节点发送的配置指令,基于配置指令携带的配置信息更新备份区域112中的元信息,并在更新完成后,将激活区域111和备份区域112互换。
其中,将激活区域111和备份区域112互换是指将激活区域111作为新的备份区域,将备份区域112作为新的激活区域。
在本实施例中,控制芯片110可以采用BRAM(Block Random Access Memory,随机块存储器)或SRAM(Static Random-Access Memory,静态随机存储器)作为高速存储介质。当多个内存颗粒120被设置为逻辑设备时,每个内存颗粒120中包括的物理资源块被划分至对应的逻辑设备,这样一来,每个逻辑设备可以对应一个或多个物理资源块,相应地,每个逻辑设备的元信息可以包括一个或多个物理资源块的物理首地址。配置信息可以包括逻辑设备对应的物理资源块的首地址。
激活区域111和备份区域112均为高速存储介质的子区域,均存储有全部逻辑设备的元信息,其中,激活区域111中存储的元信息用于数据访问,备份区域112中的元信息则用于逻辑设备的配置管理。
当CXL内存模组被初次配置为多逻辑设备时,两个子区域中的元信息是相同的,此时,可以任选其中一个子区域作为激活区域111,另一个子区域即为备份区域112。之后,可以根据配置信息的写入对象,交换两个子区域的功能,使得最后被写入配置信息的子区域作为激活区域,以确保能够根据最新的配置信息访问数据;另一个则作为备份区域,后续可以将其中的元信息更新至与激活区域一致,并等待下次配置信息的写入。
控制芯片110还构建有外部管理(Fabric Manager)接口,用于接收外部管理节点发送的配置指令,并根据配置指令对逻辑设备进行配置管理。外部管理节点可以是主机,也可以是独立于主机存在的逻辑实体,例如可以是服务器的BMC(Baseboard ManagementController,基板管理控制器)。
当控制芯片110接收到配置指令时,可以由处理器(CPU)将配置信息写入备份区域112,更新其中逻辑设备对应的元信息,以达到更改逻辑设备参数的效果,例如可以变更逻辑设备对应的物理资源块的首地址、逻辑设备的存储空间等等。在这个过程中,控制芯片110可以根据接收到的内存访问指令,基于地址信息和激活区域111中的元信息,确定内存访问指令要访问的内存地址,将该地址发送至内存管理器(DDR)即可访问对应的数据。配置信息写入完成后,处理器可以将激活区域111和备份区域112互换,从而完成逻辑设备的配置管理过程。
本公开实施例的CXL内存模组,利用高速存储介质中的激活区域和备份区域同时存储逻辑设备对应的元信息,当接收到内存访问指令时,可以利用激活区域中的元信息进行地址映射,以访问内存颗粒中的数据;当接收到配置指令时,可以将配置信息写入备份区域,以更新备份区域中的元信息,写入完成后再将激活区域作为新的备份区域,将备份区域作为新的激活区域,使得后续可以根据新的激活区域访问配置后的逻辑设备。可以同时对CXL内存模组进行资源配置和数据访问,有助于提高CXL内存模组的资源配置管理和数据访问的效率。
如图1所示,在一些实施例中,控制芯片110还可以包括硬件单元113;硬件单元113被配置为:解析内存访问指令得到地址信息,地址信息包括待访问的逻辑设备的标识和逻辑地址;基于待访问的逻辑设备的标识,在激活区域111中确定待访问的逻辑设备对应的元信息;基于逻辑地址与对应的元信息进行地址映射,以确定内存地址。
在本实施例中,逻辑地址表示待访问的数据在待访问的逻辑设备中的地址偏移量,该偏移量与待访问的物理地址(内存地址)的偏移量是一致的,结合逻辑地址与元信息中的物理资源块的首地址,可以确定待访问的内存地址。
作为示例,逻辑设备的标识可以是逻辑设备的编号。当CXL内存模组以多逻辑设备的方式与主机连接时,主机可以确定待访问的数据在逻辑设备中的地址(即逻辑地址),然后基于该逻辑设备的标识和逻辑地址生成内存访问指令并发送至控制芯片110。控制芯片110可以通过硬件单元113对内存访问指令进行解析,并结合激活区域111中的元信息确定待访问的数据在内存颗粒中的物理地址(即内存地址)。
在本实施例中,控制芯片可以通过硬件单元解析内存访问指令,并结合激活区域中的元信息确定内存访问指令要访问的内存地址,不会影响到处理器写入配置信息的过程,由此可以实现数据访问与资源配置的并行处理。
在一些实施例中,硬件单元包括第一寄存器组,第一寄存器组中的每个第一寄存器存储一个逻辑设备的元信息地址,该元信息地址为该逻辑设备对应的元信息在激活区域中的存储地址。硬件单元可以通过如下方式在激活区域中确定待访问的逻辑设备对应的元信息:根据待访问的逻辑设备的标识对应的第一寄存器中存储的元信息地址,在激活区域中确定待访问的逻辑设备对应的元信息。
结合图2进行示例性说明,如图2所示,控制芯片可以采用列表的形式在激活区域中存储每个逻辑设备对应的元信息。列表中的每个条目存储一个物理资源块(即PhysicalBlock)的首地址(即Physical Addr Val),每个逻辑设备可以对应多个物理资源块,则每个逻辑设备的元信息可以对应列表中多个连续的条目,第一寄存器中存储的元信息地址即为元信息中的首个条目的存储地址。首个条目中的地址为该逻辑设备在内存颗粒(例如可以是DRAM颗粒)中的起始地址(即图中的Start Addr)。
每个第一寄存器的编号与其对应的逻辑设备的标识是一致的,例如第一寄存器0存储的LD0(即标识为0的逻辑设备)的元信息在激活区域中的存储地址。通过第一寄存器中存储的元信息地址,硬件单元可以快速准确地在激活区域中确定出待访问的逻辑设备的元信息,即可得到待访问的逻辑设备对应的物理资源块的物理首地址。
本实施例中,利用第一寄存器包括逻辑设备的元信息在激活区域中的存储地址,可以更快速地在激活区域中确定待访问的逻辑设备对应的元信息,有助于提高地址解析的效率。
在本实施例的一些可选的实施方式中,控制芯片还被配置为:基于配置信息,将第一寄存器组中每个第一寄存器存储的元信息地址更新为该逻辑设备在新激活区域中的元信息的存储地址。
在本实施例中,当逻辑设备的配置过程完成后,第一寄存器中存储的元信息地址仍然指向原激活区域(即新的备份区域),此时,可以由控制芯片的处理器将第一寄存器中的元信息地址更新为逻辑设备在新激活区域中的元信息的存储地址,如此一来,第一寄存器中存储的元信息地址指向配置完成后的元信息,使得主机可以访问配置完成后的逻辑设备中的数据。
在一些实施例中,硬件单元被配置为基于逻辑地址与待访问的逻辑设备对应的元信息进行地址映射,以确定内存地址,包括:解析逻辑地址,得到逻辑地址对应的目标物理资源块在逻辑设备中的第一偏移量以及逻辑地址在目标物理资源块内部的第二偏移量;基于待访问的逻辑设备对应的元信息、第一偏移量和第二偏移量,确定内存地址。
在本实施例中,目标物理资源块表示待访问的地址所属的物理资源块。
结合图3进行实例性说明,如图3所示,内存颗粒可以是DRAM颗粒(即图3中的
DRAM0、DRAM1和DRAM2),主机发送的内存访问指令中携带的地址信息包括待访问的逻辑设
备的标识(LD-2)和逻辑地址(Addr)。硬件单元可以根据LD-2对应的第一寄存器Reg2在激活
区域中确定LD-2对应的元信息Meta2,由此得到LD-2的物理首地址(MetaAddr)。硬件单元还
可以从逻辑地址(Addr)字段中解析出目标物理资源块(即图中的Physical Block3)在逻辑
设备中的第一偏移量(LD Meta Offset)以及逻辑地址在目标物理资源块内部的第二偏移
量Phyblockoffset(即图3中的Internal Physical block offset)。之后,根据物理首地址
(MetaAddr)和第一偏移量(LD Meta Offset),可以确定目标物理资源块的首地址:
PhyBlockAddr =(MetaAddr + LD Meta Offset 8),然后再结合第二偏移量
Phyblockoffset(即图3中的Internal Physical block offset),即可确定待访问的内存
地址:Phybyteaddr = PhyBlockAddr + Phyblockoffset。
之后,硬件单元可以将内存地址(即DRAM地址)发送至内存控制器以访问Physicalblock3中对应的数据。
在本实施例中,基于高速存储介质中的元信息和第一寄存器中存储的元信息地址,控制芯片可以高效地解析内存访问指令,快速将待访问的外部地址转换为内存颗粒的物理地址,有助于提高数据访问效率。
在一些实施例中,控制芯片还可以采用交织访问的方式进行地址映射,此时,硬件单元被配置为:基于待访问的逻辑设备对应的元信息、第一偏移量和第二偏移量,确定物理资源地址;采用预设的交织访问策略对物理资源地址进行映射,确定内存地址。
继续结合图3进行示例性说明,当硬件单元确定出物理资源地址(Phybyteaddr)后,可以根据预设的交织访问策略将该地址映射至多个不同的存储单元,这些存储单元可以位于不同的内存颗粒或不同的物理资源块或不同的内存区(Bank),该物理资源地址可以作为映射后的首地址,通过交织访问策略中的地址转换策略可以根据映射后的首地址确定出这些存储单元在内存颗粒中的地址,该物理资源地址与这些存储单元在内存颗粒中的地址即为待访问的内存地址。
在本实施例中,通过交织访问策略进行地址映射,对实现CXL内存模组的资源进行动态配置,可以实现逻辑设备内部内存存储资源的交织访问,有助于提高系统带宽的利用率。
在本实施例的一些可选的实施方式中,交织访问的策略可以包括以下几种类型:基于内存颗粒的交织访问策略、基于内存颗粒内部物理资源块的交织访问策略、基于内存颗粒内部内存区的交织访问策略。
不同的交织访问策略对缓存行(cacheline)采取的条带化方式(即数据拆分方式)也不同,在本实施方式中,可以根据实际需求对交织访问策略进行配置,例如可以配置数据拆分的颗粒度和交织的颗粒度。
通常,一个缓存行包括64B的数据,控制芯片可以根据交织访问策略将数据拆分成多个数据块,例如,数据拆分的颗粒度为1B时,控制芯片可以将数据拆分成多个1B的数据块;当数据拆分的颗粒度为4B时,可以将数据拆分成多个4B的数据块。
作为示例,当采用基于内存颗粒的交织访问策略时,控制芯片将数据中的首个数据块写入内存颗粒之后,其他的数据块会被分别写入另外的内存颗粒,如此一来,数据被分散到多个内存颗粒中。
当采用基于内存颗粒内部物理资源块的交织访问策略时,控制芯片将数据中的首个数据块写入内存颗粒的某个物理资源块中后,其他数据块会被写入该内存颗粒中的其他物理资源块中,如此一来,数据被分散到同一个内存颗粒的多个物理资源块中。
当采用基于内存颗粒内部的内存区交织访问策略时,控制芯片将数据中的首个数据块写入内存颗粒的某个内存区后,其他数据块会被写入该内存颗粒中的其他内存区中,如此一来,数据被分散到同一个内存颗粒的多个内存区中。
在本实施方式中,控制芯片可以应用场景选择适配的交织访问策略,有助于提高数据访问的灵活度和效率。例如,对于性能要求较高的应用场景,可以选择粒度较细的基于内存颗粒内部物理资源块的交织访问策略;对于读写速度要求较高的应用场景,可以选择粒度较大的基于内存颗粒的交织访问策略;对于需要兼顾性能和读写速度的应用场景,可以选择基于内存颗粒内部物理资源块的交织访问策略。
在一些实施例中,硬件单元还包括第二寄存器和第三寄存器,其中,第二寄存器用于存储交织访问策略的类型标识;第三寄存器用于存储物理资源块的颗粒度。物理资源块的颗粒度标识物理资源地址块的大小,例如可以是256M、512M或其他。
作为示例,第二寄存器可以采用数值作为交织访问策略的类型标识,例如,0表示基于内存颗粒的交织访问策略;1表示基于内存颗粒内部物理资源块的交织访问策略;2表示基于内存颗粒内部的内存区交织访问策略。如此一来,只需更改第二寄存器中存储的数值即可指示控制芯片采用不同的交织访问策略。
在一些实施例中,控制芯片还包括处理器;处理器被配置为:设置第二寄存器中的类型标识;配置物理资源块的颗粒度,并将颗粒度存入第三寄存器;维护物理资源块的状态。
通常,当物理资源块的状态为闲时,表示该物理资源块在配置过程中可以被分配到一个逻辑设备;当物理资源块的状态为忙时,表示该物理资源块已经被某个逻辑设备占用,无法再参与分配。为了更便捷地辨别物理资源块的状态,处理器可以采用链表的形式维护物理资源块的状态。
本公开还提供了一种CXL内存模组的资源配置方法,应用于上述任一实施例中的CXL内存模组,CXL内存模组包括控制芯片和控制芯片管理的多个内存颗粒,多个内存颗粒被设置为多个逻辑设备。控制芯片设置有高速存储介质,高速存储介质的存储空间包括激活区域和备份区域,激活区域和备份区域均存储有每个逻辑设备对应的元信息,元信息包括内存颗粒中物理资源块的物理首地址。图4示出了本公开的CXL内存模组的资源配置方法的一个实施例的流程示意图,如图4所示,该流程包括以下步骤。
步骤410、接收主机发送的内存访问指令,基于内存访问指令携带的地址信息和激活区域中的元信息,确定内存访问指令要访问的内存地址。
步骤420、响应于外部节点发送的配置指令,基于配置指令携带的配置信息更新备份区域中的元信息,并在更新完成后,将激活区域和备份区域互换。
本实施例中的CXL内存模组的资源配置方法可以由CXL内存模组中的控制芯片执行。
需要说明的是,本实施例不限定步骤410与步骤420的先后顺序,两者也可以同时执行。
本实施例中的CXL内存模组的资源配置方法,利用高速存储介质中的激活区域和备份区域同时存储逻辑设备对应的元信息,当接收到内存访问指令时,可以利用激活区域中的元信息进行地址映射,以访问内存颗粒中的数据;当接收到配置指令时,可以将配置信息写入备份区域,以更新备份区域中的元信息,写入完成后再将激活区域作为新的备份区域,将备份区域作为新的激活区域,使得后续可以根据新的激活区域访问配置后的逻辑设备。可以同时对CXL内存模组进行资源配置和数据访问,有助于提高CXL内存模组的资源配置管理和数据访问的效率。
如图5所示,在一些实施例中,上述步骤410还可以包括以下步骤。
步骤510、解析内存访问指令得到地址信息。
其中,地址信息包括待访问的逻辑设备的标识和逻辑地址。
步骤520、基于待访问的逻辑设备的标识,在激活区域中确定待访问的逻辑设备对应的元信息。
步骤530、基于逻辑地址与待访问的逻辑设备对应的元信息进行地址映射,以确定内存地址。
本实施例的流程可以由控制芯片中的硬件单元执行。
图5所示的实施例,通过解析内存访问指令,并结合激活区域中的元信息确定内存访问指令要访问的内存地址,不会影响到逻辑设备的配置过程,由此可以实现数据访问与资源配置的并行处理。
在一些实施例中,硬件单元包括第一寄存器组,第一寄存器组中的每个第一寄存器存储一个逻辑设备的元信息地址,元信息地址为该逻辑设备对应的元信息在激活区域中的存储地址;上述步骤520可以包括:根据待访问的逻辑设备的标识对应的第一寄存器中存储的元信息地址,在激活区域中确定待访问的逻辑设备对应的元信息。
本实施例中,利用第一寄存器包括逻辑设备的元信息在激活区域中的存储地址,可以更快速地在激活区域中确定待访问的逻辑设备对应的元信息,有助于提高地址解析的效率。
在一些实施例中,该方法还包括:将配置信息写入第一寄存器组,以将第一寄存器组中每个第一寄存器存储的元信息地址更新为该逻辑设备在新激活区域中的元信息的存储地址。
在本实施例中,当逻辑设备的配置过程完成后,第一寄存器中存储的元信息地址仍然指向原激活区域(即新的备份区域),此时,可以将第一寄存器中的元信息地址更新为逻辑设备在逻辑设备在新激活区域中的元信息的存储地址,如此一来,第一寄存器中存储的元信息地址指向配置完成后的元信息,使得主机可以访问配置完成后的逻辑设备中的数据。
如图6所示,在一些实施例中,上述步骤530可以包括以下步骤。
步骤610、解析逻辑地址,得到逻辑地址对应的目标物理资源块在逻辑设备中的第一偏移量以及逻辑地址在目标物理资源块内部的第二偏移量。
步骤620、基于待访问的逻辑设备对应的元信息、第一偏移量和第二偏移量,确定内存地址。
在本实施例中,基于高速存储介质中的元信息和第一寄存器中存储元信息地址,可以高效地解析内存访问指令,快速将待访问的外部地址转换为内存颗粒的物理地址,有助于提高数据访问效率。
在一些实施例中,上述步骤620可以包括:基于待访问的逻辑设备对应的元信息、第一偏移量和第二偏移量,确定物理资源地址;采用预设的交织访问策略对物理资源地址进行映射,确定内存地址。
在本实施例中,通过交织访问策略进行地址映射,对实现CXL内存模组的资源进行动态配置,可以实现逻辑设备内部内存存储资源的交织访问,有助于提高系统带宽的利用率。
在本实施例的一些可选的实施方式中,交织访问的策略可以包括以下几种类型:基于内存颗粒的交织访问策略、基于内存颗粒内部物理资源块的交织访问策略、基于内存颗粒内部内存区的交织访问策略。
在本实施方式中,可以应用场景选择适配的交织访问策略,有助于提高数据访问的灵活度和效率。例如,对于性能要求较高的应用场景,可以选择粒度较细的基于内存颗粒内部物理资源块的交织访问策略;对于读写速度要求较高的应用场景,可以选择粒度较大的基于内存颗粒的交织访问策略;对于需要兼顾性能和读写速度的应用场景,可以选择基于内存颗粒内部物理资源块的交织访问策略。
在一些实施例中,硬件单元还包括第二寄存器和第三寄存器;该方法还包括:利用第二寄存器存储交织访问策略的类型标识;利用第三寄存器存储物理资源块的颗粒度。
在一些实施例中,该方法还包括:设置第二寄存器中的类型标识;配置物理资源块的颗粒度,并将颗粒度存入第三寄存器;维护物理资源块的状态。
接着参考图7,图7示出了本公开的控制芯片的一个实施例的结构示意图,该控制芯片应用于上述任一实施例中的CXL内存模组,如图7所示,该CXL内存模组还包括控制芯片管理的多个内存颗粒(例如可以是DRAM颗粒),多个内存颗粒被设置为多个逻辑设备,控制芯片包括高速存储介质710和处理器720,高速存储介质710的存储空间包括激活区域711和备份区域712,激活区域711和备份区域712均存储有每个逻辑设备对应的元信息,元信息包括内存颗粒中物理资源块的物理首地址;处理器720被配置为上述任一实施例中的CXL内存模组的资源配置方法。
本公开实施例还提供了一种非瞬态计算机存储介质,计算机可读存储介质存储有计算机程序,计算机程序时被处理器执行时实现上述实施例中的内存页交换的方法。
本公开实施例还提供一种计算机系统,如图8所示,该计算机系统包括主机810和上述任一实施例中CXL内存模组820,主机810通过CXL接口与CXL内存模组820通信,实现对CXL内存模组820的发现、配置和数据传输,CXL内存模组以多逻辑设备的方式与主机连接。
在本实施例中,主机810在访问CXL内存模组820中的各个逻辑设备中的数据时,CXL内存模组820还可以根据配置指令完成对逻辑设备的重配置。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于 RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
Claims (21)
1.一种CXL内存模组,所述CXL内存模组包括控制芯片和所述控制芯片管理的多个内存颗粒,所述多个内存颗粒被设置为多个逻辑设备,其特征在于,
所述控制芯片设置有高速存储介质,所述高速存储介质的存储空间包括激活区域和备份区域,所述激活区域和所述备份区域均存储有每个逻辑设备对应的元信息,元信息包括所述内存颗粒中物理资源块的物理首地址;
所述控制芯片被配置为:接收主机发送的内存访问指令,基于所述内存访问指令携带的地址信息和所述激活区域中的元信息,确定所述内存访问指令要访问的内存地址;以及,响应于外部节点发送的配置指令,基于所述配置指令携带的配置信息更新所述备份区域中的元信息,并在更新完成后,将所述激活区域和所述备份区域互换。
2.根据权利要求1所述的CXL内存模组,其特征在于,所述控制芯片还包括硬件单元;
所述硬件单元被配置为:解析所述内存访问指令得到所述地址信息,所述地址信息包括待访问的逻辑设备的标识和逻辑地址;基于所述待访问的逻辑设备的标识,在所述激活区域中确定所述待访问的逻辑设备对应的元信息;基于所述逻辑地址与所述待访问的逻辑设备对应的元信息进行地址映射,以确定所述内存地址。
3.根据权利要求2所述的CXL内存模组,其特征在于,所述硬件单元包括第一寄存器组,所述第一寄存器组中的每个第一寄存器存储一个逻辑设备的元信息地址,所述元信息地址为该逻辑设备对应的元信息在所述激活区域中的存储地址;
所述硬件单元被配置为基于所述待访问的逻辑设备的标识,在所述激活区域中确定所述待访问的逻辑设备对应的元信息,包括:根据所述待访问的逻辑设备的标识对应的第一寄存器中存储的元信息地址,在所述激活区域中确定所述待访问的逻辑设备对应的元信息。
4.根据权利要求3所述的CXL内存模组,其特征在于,所述控制芯片还被配置为:基于所述配置信息,将所述第一寄存器组中每个第一寄存器存储的元信息地址更新为该逻辑设备在新激活区域中的元信息的存储地址。
5.根据权利要求3所述的CXL内存模组,其特征在于,所述硬件单元被配置为基于所述逻辑地址与所述待访问的逻辑设备对应的元信息进行地址映射,以确定所述内存地址,包括:
解析所述逻辑地址,得到所述逻辑地址对应的目标物理资源块在所述逻辑设备中的第一偏移量以及所述逻辑地址在所述目标物理资源块内部的第二偏移量;
基于所述待访问的逻辑设备对应的元信息、所述第一偏移量和所述第二偏移量,确定所述内存地址。
6.根据权利要求5所述的CXL内存模组,其特征在于,所述硬件单元被配置为基于所述待访问的逻辑设备对应的元信息、所述第一偏移量和所述第二偏移量,确定所述内存地址,包括:
基于所述待访问的逻辑设备对应的元信息、所述第一偏移量和所述第二偏移量,确定物理资源地址;
采用预设的交织访问策略对所述物理资源地址进行映射,确定所述内存地址。
7.根据权利要求6所述的CXL内存模组,其特征在于,所述交织访问策略包括以下类型之一:
基于内存颗粒的交织访问策略、基于内存颗粒内部物理资源块的交织访问策略、基于内存颗粒内部内存区的交织访问策略。
8.根据权利要求7所述的CXL内存模组,其特征在于,所述硬件单元还包括第二寄存器和第三寄存器,其中,
所述第二寄存器用于存储所述交织访问策略的类型标识;
所述第三寄存器用于存储物理资源块的颗粒度。
9.根据权利要求8所述的CXL内存模组,其特征在于,所述控制芯片还包括处理器;
所述处理器被配置为:设置所述第二寄存器中的类型标识;配置物理资源块的颗粒度,并将颗粒度存入所述第三寄存器;维护物理资源块的状态。
10.一种CXL内存模组的资源配置方法,应用于权利要求1至9之一所述的CXL内存模组,所述CXL内存模组包括控制芯片和所述控制芯片管理的多个内存颗粒,所述多个内存颗粒被设置为多个逻辑设备,其特征在于,
所述控制芯片设置有高速存储介质,所述高速存储介质的存储空间包括激活区域和备份区域,所述激活区域和所述备份区域均存储有每个逻辑设备对应的元信息,元信息包括所述内存颗粒中物理资源块的物理首地址;
所述方法包括:接收主机发送的内存访问指令,基于所述内存访问指令携带的地址信息和所述激活区域中的元信息,确定所述内存访问指令要访问的内存地址;以及,响应于外部节点发送的配置指令,基于所述配置指令携带的配置信息更新所述备份区域中的元信息,并在更新完成后,将所述激活区域和所述备份区域互换。
11.根据权利要求10所述的方法,其特征在于,基于所述内存访问指令携带的地址信息和所述激活区域中的元信息,确定所述内存访问指令要访问的内存地址,包括:
解析所述内存访问指令得到所述地址信息,所述地址信息包括待访问的逻辑设备的标识和逻辑地址;
基于所述待访问的逻辑设备的标识,在所述激活区域中确定所述待访问的逻辑设备对应的元信息;
基于所述逻辑地址与所述待访问的逻辑设备对应的元信息进行地址映射,以确定所述内存地址。
12.根据权利要求11所述的方法,其特征在于,所述控制芯片还包括硬件单元,所述硬件单元包括第一寄存器组,所述第一寄存器组中的每个第一寄存器存储一个逻辑设备的元信息地址,所述元信息地址为该逻辑设备对应的元信息在所述激活区域中的存储地址;
基于所述待访问的逻辑设备的标识,在所述激活区域中确定所述待访问的逻辑设备对应的元信息,包括:根据所述待访问的逻辑设备的标识对应的第一寄存器中存储的元信息地址,在所述激活区域中确定所述待访问的逻辑设备对应的元信息。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:基于所述配置信息,将所述第一寄存器组中每个第一寄存器存储的元信息地址更新为该逻辑设备在新激活区域中的元信息的存储地址。
14.根据权利要求12所述的方法,其特征在于,基于所述逻辑地址与所述待访问的逻辑设备对应的元信息进行地址映射,以确定所述内存地址,包括:
解析所述逻辑地址,得到所述逻辑地址对应的目标物理资源块在所述逻辑设备中的第一偏移量以及所述逻辑地址在所述目标物理资源块内部的第二偏移量;
基于所述待访问的逻辑设备对应的元信息、所述第一偏移量和所述第二偏移量,确定所述内存地址。
15.根据权利要求14所述的方法,其特征在于,基于所述待访问的逻辑设备对应的元信息、所述第一偏移量和所述第二偏移量,确定所述内存地址,包括:
基于所述待访问的逻辑设备对应的元信息、所述第一偏移量和所述第二偏移量,确定物理资源地址;
采用预设的交织访问策略对所述物理资源地址进行映射,确定所述内存地址。
16.根据权利要求15所述的方法,其特征在于,所述交织访问策略包括以下类型之一:
基于内存颗粒的交织访问策略、基于内存颗粒内部物理资源块的交织访问策略、基于内存颗粒内部内存区的交织访问策略。
17.根据权利要求16所述的方法,其特征在于,所述硬件单元还包括第二寄存器和第三寄存器;
所述方法还包括:利用所述第二寄存器存储所述交织访问策略的类型标识;利用所述第三寄存器存储物理资源块的颗粒度。
18.根据权利要求17所述的方法,其特征在于,所述方法还包括:设置所述第二寄存器中的类型标识;配置物理资源块的颗粒度,并将颗粒度存入所述第三寄存器;维护物理资源块的状态。
19.一种控制芯片,应用于CXL内存模组,所述CXL内存模组还包括所述控制芯片管理的多个内存颗粒,所述多个内存颗粒被设置为多个逻辑设备,其特征在于,
所述控制芯片包括高速存储介质和处理器,所述高速存储介质的存储空间包括激活区域和备份区域,所述激活区域和所述备份区域均存储有每个逻辑设备对应的元信息,元信息包括所述内存颗粒中物理资源块的物理首地址;
所述处理器被配置为执行权利要求10至18之一所述的CXL内存模组的资源配置方法。
20.一种非瞬态计算机存储介质,所述计算机存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求10至18中任一所述的CXL内存模组的资源配置方法。
21.一种计算机系统,包括主机和权利要求1-9之一所述的CXL内存模组,所述主机通过CXL接口与所述CXL内存模组通信,实现对所述CXL内存模组的发现、配置和数据传输,其特征在于,所述CXL内存模组以多逻辑设备的方式与所述主机连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410200363.3A CN117785755B (zh) | 2024-02-23 | 2024-02-23 | Cxl内存模组及资源配置方法、控制芯片、介质和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410200363.3A CN117785755B (zh) | 2024-02-23 | 2024-02-23 | Cxl内存模组及资源配置方法、控制芯片、介质和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117785755A true CN117785755A (zh) | 2024-03-29 |
CN117785755B CN117785755B (zh) | 2024-05-28 |
Family
ID=90391283
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410200363.3A Active CN117785755B (zh) | 2024-02-23 | 2024-02-23 | Cxl内存模组及资源配置方法、控制芯片、介质和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117785755B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190179625A1 (en) * | 2017-12-12 | 2019-06-13 | Cypress Semiconductor Corporation | Memory devices, systems, and methods for updating firmware with single memory device |
US20200371700A1 (en) * | 2019-05-22 | 2020-11-26 | Kove Ip, Llc | Coordinated allocation of external memory |
US20220004488A1 (en) * | 2021-09-22 | 2022-01-06 | Intel Corporation | Software drive dynamic memory allocation and address mapping for disaggregated memory pool |
US20230086222A1 (en) * | 2021-09-17 | 2023-03-23 | Intel Corporation | Scalable address decoding scheme for cxl type-2 devices with programmable interleave granularity |
WO2023051000A1 (zh) * | 2021-09-30 | 2023-04-06 | 华为技术有限公司 | 内存管理方法、装置、处理器及计算设备 |
US20230315621A1 (en) * | 2022-03-29 | 2023-10-05 | Nvidia Corporation | Disaggregated hypervisor on multiple devices |
CN117555836A (zh) * | 2023-11-23 | 2024-02-13 | 浪潮(北京)电子信息产业有限公司 | 一种数据处理装置、系统及电子设备 |
-
2024
- 2024-02-23 CN CN202410200363.3A patent/CN117785755B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190179625A1 (en) * | 2017-12-12 | 2019-06-13 | Cypress Semiconductor Corporation | Memory devices, systems, and methods for updating firmware with single memory device |
US20200371700A1 (en) * | 2019-05-22 | 2020-11-26 | Kove Ip, Llc | Coordinated allocation of external memory |
US20230086222A1 (en) * | 2021-09-17 | 2023-03-23 | Intel Corporation | Scalable address decoding scheme for cxl type-2 devices with programmable interleave granularity |
US20220004488A1 (en) * | 2021-09-22 | 2022-01-06 | Intel Corporation | Software drive dynamic memory allocation and address mapping for disaggregated memory pool |
WO2023051000A1 (zh) * | 2021-09-30 | 2023-04-06 | 华为技术有限公司 | 内存管理方法、装置、处理器及计算设备 |
US20230315621A1 (en) * | 2022-03-29 | 2023-10-05 | Nvidia Corporation | Disaggregated hypervisor on multiple devices |
CN117555836A (zh) * | 2023-11-23 | 2024-02-13 | 浪潮(北京)电子信息产业有限公司 | 一种数据处理装置、系统及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN117785755B (zh) | 2024-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114185818B (zh) | 基于扩展页表的gpu访存自适应优化方法及装置 | |
JP6514329B2 (ja) | メモリアクセス方法、スイッチ、およびマルチプロセッサシステム | |
US20170364442A1 (en) | Method for accessing data visitor directory in multi-core system and device | |
CN116431530B (zh) | 一种cxl内存模组、内存的处理方法及计算机系统 | |
CN115904212A (zh) | 数据处理的方法、装置、处理器和混合内存系统 | |
US20240241826A1 (en) | Computing node cluster, data aggregation method, and related device | |
CN115357540A (zh) | 存储系统及其计算存储处理器、固体硬盘和数据读写方法 | |
TW202111541A (zh) | 裝置內標記資料移動系統 | |
CN115904688A (zh) | 内存管理方法、装置、处理器及计算设备 | |
US20210149804A1 (en) | Memory Interleaving Method and Apparatus | |
CN117785755B (zh) | Cxl内存模组及资源配置方法、控制芯片、介质和系统 | |
CN106155910A (zh) | 一种实现内存访问的方法、装置和系统 | |
US11431648B2 (en) | Technologies for providing adaptive utilization of different interconnects for workloads | |
CN107408071A (zh) | 一种内存访问方法、装置和系统 | |
CN115407839A (zh) | 服务器结构及服务器集群架构 | |
CN117785758B (zh) | Cxl模组、控制器、任务处理方法、介质和系统 | |
CN108153489B (zh) | 一种nand闪存控制器的虚拟数据缓存管理系统与方法 | |
CN117785757B (zh) | Cxl内存模组、内存页交换的方法、芯片、介质和系统 | |
CN114253733B (zh) | 一种内存管理方法、装置、计算机设备和存储介质 | |
CN115599556B (zh) | 用于管理存储空间的装置及方法、计算设备、芯片 | |
US20230132442A1 (en) | Method for processing data by using intermediate device, computer system, and intermediate device | |
US20240143498A1 (en) | Methods, devices, and systems for allocating memory space | |
CN113806061A (zh) | 一种内存分配方法、存储介质及嵌入设备 | |
CN118349399A (zh) | 一种数据迁移方法、控制器及扩展存储箱 | |
CN117389483A (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 |