CN117873931B - 一种数据处理系统、方法及介质 - Google Patents
一种数据处理系统、方法及介质 Download PDFInfo
- Publication number
- CN117873931B CN117873931B CN202410270572.5A CN202410270572A CN117873931B CN 117873931 B CN117873931 B CN 117873931B CN 202410270572 A CN202410270572 A CN 202410270572A CN 117873931 B CN117873931 B CN 117873931B
- Authority
- CN
- China
- Prior art keywords
- memory
- cache
- host
- data
- access request
- 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.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims abstract description 43
- 238000000034 method Methods 0.000 title claims abstract description 28
- 230000015654 memory Effects 0.000 claims abstract description 309
- 230000006854 communication Effects 0.000 claims description 30
- 238000004891 communication Methods 0.000 claims description 29
- 238000011144 upstream manufacturing Methods 0.000 claims description 21
- 230000005540 biological transmission Effects 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 14
- 238000001514 detection method Methods 0.000 claims description 12
- 238000003672 processing method Methods 0.000 claims description 9
- 238000003066 decision tree Methods 0.000 claims description 6
- 230000001133 acceleration Effects 0.000 description 18
- 238000013403 standard screening design Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 230000001934 delay Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000002441 reversible effect Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 6
- 238000012549 training Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 239000007787 solid Substances 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请公开了计算机技术领域内的一种数据处理系统、方法及介质。在本申请中,数据处理系统包括多个内存器件和至少一个主机;主机接收到访问请求后,若确定自身缓存组件中未存储访问请求要访问的目标数据,则当前主机将访问请求传输至多个内存器件,以使多个内存器件响应访问请求,并利用缓存预取决策器确定预缓存数据,将预缓存数据传输至当前主机中的缓存组件进行存储,由此将缓存预取决策器由主机端转移至内存端,降低主机负载,提高主机处理访问请求的效率;并且,内存端可以将预缓存数据直接传输至当前主机中的缓存组件进行存储,而无需主机向内存端请求预缓存数据,可以提高预缓存效率。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种数据处理系统、方法及介质。
背景技术
目前,主机在读后端存储设备时可以额外预读取更多数据,并将预读取的数据存入主机缓存,此实现过程需在主机端确定预读取数据,在主机端确定预读取数据会占用主机资源,影响主机对前端读写请求的处理效率。
因此,如何降低主机负载,提高主机处理读写请求的效率,是本领域技术人员需要解决的问题。
发明内容
有鉴于此,本申请的目的在于提供一种数据处理系统、方法及介质,以降低主机负载,提高主机处理读写请求的效率。其具体方案如下:
一方面,本申请提供了一种数据处理系统,包括:多个内存器件和至少一个主机;所述多个内存器件和所述至少一个主机连接;
所述至少一个主机包括:缓存组件;
所述多个内存器件中的至少一个内存器件中存储有缓存预取决策器;
所述至少一个主机用于:接收到访问请求后,若确定自身缓存组件中未存储所述访问请求要访问的目标数据,则当前主机将所述访问请求传输至所述多个内存器件,以使所述多个内存器件响应所述访问请求,并利用所述缓存预取决策器确定预缓存数据,将所述预缓存数据传输至当前主机中的缓存组件进行存储。
另一方面,所述至少一个内存器件用于:利用所述缓存预取决策器确定所述预缓存数据之后,将所述预缓存数据强制存入当前主机中的缓存组件。
另一方面,所述至少一个内存器件用于:利用所述缓存预取决策器确定所述预缓存数据之后,将所述预缓存数据发送至当前主机,以使当前主机将所述预缓存数据存入当前主机中的缓存组件。
另一方面,所述多个内存器件和所述至少一个主机通过多层级互连的CXL交换设备通信。
另一方面,所述至少一个主机用于:识别所述多个内存器件和当前主机连接的CXL交换设备,并确定所述多个内存器件的设备号以及当前主机连接的CXL交换设备的设备号。
另一方面,任意CXL交换设备的单一上游物理端口被虚拟化为多个上游虚拟端口,一个上游虚拟端口连接一个主机或其他CXL交换设备的下游物理端口。
另一方面,所述多个内存器件形成内存池,所述内存池还包括:内存控制器;所述内存控制器用于:对所述多个内存器件统一编址,并存储编址得到的编址表。
另一方面,所述内存控制器用于:将所述编址表同步给所述至少一个主机。
另一方面,所述内存控制器用于:将所述内存池中的单一内存器件的内存区划分为多个内存片。
另一方面,所述内存控制器用于:按照预设的应用层操作大小将所述内存池中的单一内存器件的内存区划分为多个内存片。
另一方面,所述内存控制器用于:接收不同主机发送的多个绑定请求,根据所述多个绑定请求将划分单一内存器件的内存区得到的不同内存片绑定于不同主机。
另一方面,所述内存控制器用于:接收任意主机发送的单一绑定请求,根据所述单一绑定请求将所述内存池中的单一内存器件的内存区绑定于当前主机。
另一方面,所述至少一个主机用于:基于所述访问请求生成操作命令,通过当前主机连接的CXL交换设备将所述操作命令发送至所述多个内存器件形成的内存池中的内存控制器,以使所述内存控制器在所述内存池中确定目标内存器件,并对所述目标内存器件执行所述操作命令。
另一方面,所述至少一个主机用于:若确定自身缓存组件中存储所述目标数据,则当前主机基于自身缓存组件中的所述目标数据响应所述访问请求。
另一方面,所述至少一个主机还包括:缓存控制器;所述缓存控制器用于:检测当前主机中的缓存组件中是否存储有所述目标数据。
另一方面,所述至少一个内存器件用于:将所述访问请求和各内存器件的物理地址输入所述缓存预取决策器,以使所述缓存预取决策器输出预测物理地址,将所述预测物理地址中存储的数据确定为所述预缓存数据。
另一方面,所述至少一个内存器件用于:确定所述预测物理地址对应的延迟时间和历史读取时间均值,根据所述延迟时间和所述历史读取时间均值确定所述预缓存数据的传输时序。
另一方面,所述至少一个内存器件用于:确定所述预测物理地址所属内存器件与接收所述访问请求的主机之间的通信链路,统计所述通信链路的链路层级延迟和链路带宽延迟;和/或确定所述预测物理地址所属内存器件的器件性能延迟;和/或确定所述预测物理地址在所属内存器件中的区域性能延迟;综合链路层级延迟、链路带宽延迟、器件性能延迟和/或区域性能延迟,得到所述预测物理地址对应的延迟时间。
另一方面,所述至少一个内存器件用于:检测所述预缓存数据的命中率和/或所述缓存预取决策器输出的预测物理地址是否正确,并根据相应检测结果确定所述缓存预取决策器的准确度;若所述准确度低于预设阈值,则根据所述检测结果优化所述缓存预取决策器。
另一方面,所述至少一个内存器件用于:利用决策树分类器检测所述预缓存数据的命中率和/或所述缓存预取决策器输出的预测物理地址是否正确。
另一方面,本申请提供了一种数据处理方法,应用于至少一个主机,所述至少一个主机和多个内存器件连接;所述至少一个主机包括:缓存组件;所述多个内存器件中的至少一个内存器件中存储有缓存预取决策器;
所述至少一个主机接收到访问请求后,若确定自身缓存组件中未存储所述访问请求要访问的目标数据,则当前主机将所述访问请求传输至所述多个内存器件,以使所述多个内存器件响应所述访问请求,并利用所述缓存预取决策器确定预缓存数据,将所述预缓存数据传输至当前主机中的缓存组件进行存储。
另一方面,本申请还提供了一种数据处理方法,包括:
至少一个主机接收到访问请求后,若确定自身缓存组件中未存储所述访问请求要访问的目标数据,则当前主机将所述访问请求传输至多个内存器件;
所述多个内存器件响应所述访问请求,并利用所述多个内存器件中的至少一个内存器件中存储的缓存预取决策器确定预缓存数据,将所述预缓存数据传输至当前主机中的缓存组件进行存储;
其中,所述至少一个主机和所述多个内存器件连接;所述至少一个主机包括:缓存组件;所述多个内存器件中的至少一个内存器件中存储有缓存预取决策器。
另一方面,本申请提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述任一项所述的方法。
通过以上方案可知,本申请提供了一种数据处理系统,包括:多个内存器件和至少一个主机;所述多个内存器件和所述至少一个主机连接;所述至少一个主机包括:缓存组件;所述多个内存器件中的至少一个内存器件中存储有缓存预取决策器;所述至少一个主机用于:接收到访问请求后,若确定自身缓存组件中未存储所述访问请求要访问的目标数据,则当前主机将所述访问请求传输至所述多个内存器件,以使所述多个内存器件响应所述访问请求,并利用所述缓存预取决策器确定预缓存数据,将所述预缓存数据传输至当前主机中的缓存组件进行存储。
本申请的有益效果为:数据处理系统包括多个内存器件和至少一个主机;主机接收到访问请求后,若确定自身缓存组件中未存储访问请求要访问的目标数据,则当前主机将访问请求传输至多个内存器件,以使多个内存器件响应访问请求,并利用缓存预取决策器确定预缓存数据,将预缓存数据传输至当前主机中的缓存组件进行存储,由此将缓存预取决策器由主机端转移至内存端,降低主机负载,提高主机处理访问请求(包括读请求和写请求)的效率;并且,内存端可以将预缓存数据直接传输至当前主机中的缓存组件进行存储,而无需主机向内存端请求预缓存数据,相比于相关方案中内存端仅检测主机缓存的变化,可以提高预缓存效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种数据处理系统示意图;
图2为本申请公开的单个交换机构成的内存互连架构系统示意图;
图3为本申请公开的多层级互连架构系统示意图;
图4为本申请公开的内存虚拟划分架构系统示意图;
图5为本申请公开的一种内存映射示意图;
图6为本申请公开的主机缓存组件和缓存预取决策器的布局及功能示意图;
图7为本申请公开的一种通信过程示意图;
图8为本申请提供的一种服务器结构图;
图9为本申请提供的一种终端结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实例,都属于本申请保护的范围。
目前,主机在读后端存储设备时可以额外预读取更多数据,并将预读取的数据存入主机缓存,此实现过程需在主机端确定预读取数据,在主机端确定预读取数据会占用主机资源,影响主机对前端读写请求的处理效率。为此,本申请提供了一种数据处理系统、方法及介质,能够降低主机负载,提高主机处理读写请求的效率。
参见图1所示,本申请实施例公开了一种数据处理系统,包括:多个内存器件和至少一个主机;多个内存器件和至少一个主机连接;所述至少一个主机包括:缓存组件;多个内存器件中的至少一个内存器件中存储有缓存预取决策器。主机可以是服务器等设备。缓存预取决策器为能够预测预缓存数据的任意模型,如:神经网络模型、机器学习模型等。
其中,所述至少一个主机用于:接收到访问请求后,若确定自身缓存组件中未存储访问请求要访问的目标数据,则当前主机将访问请求传输至多个内存器件,以使多个内存器件响应访问请求,并利用缓存预取决策器确定预缓存数据,将预缓存数据传输至当前主机中的缓存组件进行存储。其中,多个内存器件构成内存池,内存池监测主机中的缓存组件中存储的数据的变化状态,并且能够基于监测到的变化状态将预缓存数据主动写入主机中的缓存组件。
在一种示例中,至少一个内存器件用于:利用缓存预取决策器确定预缓存数据之后,将预缓存数据强制存入当前主机中的缓存组件。或利用缓存预取决策器确定预缓存数据之后,将预缓存数据发送至当前主机,以使当前主机将预缓存数据存入当前主机中的缓存组件。
在一种示例中,多个内存器件和至少一个主机通过多层级互连的CXL(ComputeExpress Link,开放性互联协议)交换设备通信。相应地,所述至少一个主机用于:识别多个内存器件和当前主机连接的CXL交换设备,并确定内存池的设备号以及当前主机连接的CXL交换设备的设备号。CXL交换设备通过CXL与其他端通信的交换机等设备。
在一种示例中,任意CXL交换设备的单一上游物理端口被虚拟化为多个上游虚拟端口,一个上游虚拟端口连接一个主机或其他CXL交换设备的下游物理端口。
在一种示例中,内存池还包括:内存控制器;内存控制器用于:对内存池统一编址,并存储编址得到的编址表。相应地,内存控制器用于:将编址表同步给至少一个主机。相应地,内存控制器用于:将内存池中的单一内存器件的内存区划分为多个内存片。相应地,内存控制器用于:按照预设的应用层操作大小将内存池中的单一内存器件的内存区划分为多个内存片。相应地,内存控制器用于:接收不同主机发送的多个绑定请求,根据多个绑定请求将划分单一内存器件的内存区得到的不同内存片绑定于不同主机。相应地,内存控制器用于:接收任意主机发送的单一绑定请求,根据单一绑定请求将内存池中的单一内存器件的内存区绑定于当前主机。
在一种示例中,所述至少一个主机用于:基于访问请求生成操作命令,通过当前主机连接的CXL交换设备将操作命令发送至内存池中的内存控制器,以使内存控制器在内存池中确定目标内存器件,并对目标内存器件执行操作命令。
在一种示例中,所述至少一个主机用于:若确定自身缓存组件中存储目标数据,则当前主机基于自身缓存组件中的目标数据响应访问请求。所述至少一个主机还包括:缓存控制器;缓存控制器用于:检测当前主机中的缓存组件中是否存储有目标数据。
在一种示例中,至少一个内存器件用于:将访问请求和内存池中各内存器件的物理地址输入缓存预取决策器,以使缓存预取决策器输出预测物理地址,将预测物理地址中存储的数据确定为预缓存数据。在一种示例中,缓存预取决策器是多模态模型,其输入数据和输出数据的形态可以不同,输入数据包括:程序计数器(即访问请求)和所有内存的物理地址(即内存池中各内存器件的物理地址);输出数据包括:要预读的内存物理地址。具体的,缓存预取决策器可使用Transformer架构实现,输入是程序计数器指令,输出是要预读的内存物理地址。由于程序计数器与要预读的内存物理地址是不同的形态,所以称为多模态模型。程序计数器通过编码操作,将其变换为多模态模型可以识别的数据,输入到多模态模型中,多模态模型输出结果经过解码操作变换为预测的内存物理地址。多模态模型是人工智能模型,可以准确理解程序计数器的读写行为,可以大幅度提高预缓存的准确性,使访问速度大幅提升。当然,缓存预取决策器需要占用较大空间,难以放置在主机端。
在一种示例中,至少一个内存器件用于:确定预测物理地址对应的延迟时间和历史读取时间均值,根据延迟时间和历史读取时间均值确定预缓存数据的传输时序。相应地,至少一个内存器件用于:确定预测物理地址所属内存器件与接收访问请求的主机之间的通信链路,统计通信链路的链路层级延迟和链路带宽延迟;和/或确定预测物理地址所属内存器件的器件性能延迟;和/或确定预测物理地址在所属内存器件中的区域性能延迟;综合链路层级延迟、链路带宽延迟、器件性能延迟和/或区域性能延迟,得到预测物理地址对应的延迟时间。
其中,链路层级延迟基于内存器件与接收访问请求的主机之间的通信链路的长短确定,链路带宽延迟是该通信链路上的带宽总延迟。器件性能延迟是内存器件本身的特性决定的。区域性能延迟取决于预测物理地址在内存器件的位置,位置如图4所示的区域1:MLD1、区域2:MLD2、区域3:MLD3、区域4:MLD4,不同区域对应的区域性能延迟不同。
在一种示例中,通过时序预测器可以实现:根据延迟时间和历史读取时间均值确定预缓存数据的传输时序。该时序预测器实现简单,基于规则的时序预测器采用检测表来检测工作负载中的时序访问模式,该检测表记录有预测物理地址对应的延迟时间和历史读取时间均值。如果同时存在多个预缓存数据,那么按照相应的传输时序的先后顺序来将各个预缓存数据传输至主机。时序预测器可以设于缓存预取决策器中。
在一种示例中,至少一个内存器件用于:检测预缓存数据的命中率和/或缓存预取决策器输出的预测物理地址是否正确,并根据相应检测结果确定缓存预取决策器的准确度;若准确度低于预设阈值,则根据检测结果优化缓存预取决策器。相应地,至少一个内存器件用于:利用决策树分类器检测预缓存数据的命中率和/或缓存预取决策器输出的预测物理地址是否正确。
在本实施例中,数据处理系统包括内存池和至少一个主机;主机接收到访问请求后,若确定自身缓存组件中未存储访问请求要访问的目标数据,则当前主机将访问请求传输至多个内存器件,以使多个内存器件响应访问请求,并利用缓存预取决策器确定预缓存数据,将预缓存数据传输至当前主机中的缓存组件进行存储,由此将缓存预取决策器由主机端转移至内存池,降低主机负载,提高主机处理访问请求(包括读请求和写请求)的效率;并且,内存池可以将预缓存数据直接传输至当前主机中的缓存组件进行存储,而无需主机向内存池请求预缓存数据,相比于相关方案中内存端仅检测主机缓存的变化,可以提高预缓存效率。
在单一一个主机中,可以包括至少一个支持CXL协议的switch设备,该switch设备的上游端口用于连接主机,下游端口用于连接其他switch设备、多个加速设备和内存池。其中,switch设备的下游端口完成配置空间的配置以及BAR(Base Address Register,基地址寄存器)总线基地址的分配后,下游各设备可以周期性通过PCIE(Peripheral ComponentInterconnect Express,一种高速串行计算机扩展总线标准)接口广播自己的空闲内存信息至对方,由此实现下游各设备间的直接PCIE通信。switch设备可以很好地实现主机与其下游设备的通信互联。PCIE属于高速串行点对点双通道高带宽传输,所连接的设备分配独享通道带宽。PCIExpress也有多种规格,从PCIExpress x1到PCI Express x32,能满足将来一定时间内出现的低速设备和高速设备的需求。PCI-Express的接口是PCIE 3.0接口,其比特率为8Gbps,约为上一代产品带宽的两倍,并且包含发射器和接收器均衡以及时钟数据恢复等一系列重要功能,用以改善数据传输和数据保护性能。PCI Express总线链路支持任何两个端点之间的全双工通信。通道由两个差分信号对组成,一对用于接收数据,另一对用于发送数据,还有一对差分的参考时钟。因此,每个通道由四条线数据线组成。在概念上,每条通道用作全双工字节流,在链路端点之间的两个方向同时传输8位字节格式的数据包。物理PCI Express链路可能包含1个到32个通道。
CXL协议与PCIE标准兼容,能够解决异构设备的缓存和内存访问的一致性问题,让加速设备的内存、内存池和主机缓存在全局上可以被所有支持CXL协议的设备快速访问到。CXL技术在CPU内存空间和连接设备上的内存之间保持内存一致性,能支持资源共享(或内存池)以获得更高的性能,降低软件堆栈的复杂性,并降低整体系统成本。因此,通过CXL接口可使主机CPU与GPU加速设备、FPGA加速设备等进行通信,带来更高的数据访问效率和更低的局部数据访问延时。CXL由单个链路上的三个动态多路复用子协议组成,包括类似于PCIE的IO协议(即CXL.io)、缓存协议(即CXL.cach)和内存访问协议(即CXL.memory)。根据特定的加速设备使用模式,可以启用所有子协议或仅启用一个子协议。对于发现和枚举、错误报告和主机物理地址查找等操作,需要启用CXL.io协议。CXL的一个主要优势是它为加速设备访问系统提供了一个低延迟、高带宽的路径。CXL的内存缓存一致性允许在主机CPU和加速设备之间共享内存资源。
在一种示例中,一个主机中的switch设备的下游各加速设备间可以以DMA方法直接通信,而不用经过主机。若任意加速设备需传输数据,则根据内存空闲容量和加速卡功能确定用于处理该数据的当前主机中的其他加速设备,并在自身中查询其他加速设备的内存空闲信息;之后利用自身中的存储器直接访问控制器和内存空闲信息将当前需传输数据以存储器直接访问方式写入其他加速设备的内存。switch设备为多网口设备,主要功能是将数据在不同端口之间转发,也会留有数据接口以便和其他设备对接。
在一种示例中,主机还包括数据传输装置。数据传输装置用于:根据至少一个远端设备的内存申请直连相应远端设备的一段内存地址,使得主机借助数据传输装置直接访问远端设备中存储的模型训练任务及其相关数据。其中,数据传输装置包括:地址解析模块和多个内存访问模块;每一内存访问模块用于根据至少一个远端设备的内存申请直连相应远端设备的一段内存地址,并支持其所连的不同远端设备的分时复用,被每一内存访问模块直接访问的各远端设备共享控制主机的处理器及加速设备。内存访问模块包括(RemoteDirect Memory Access,远程直接数据存取)单元。
本实施例提供的另一种数据处理系统,包括多个主机,任意主机包括:多个加速设备和一个内存池。加速设备如FPGA加速卡、GPU加速卡等。其中,多个主机中包括控制主机,控制主机将同一模型训练任务划分为多个子任务,并分发多个子任务至多个主机。多个主机并行利用自身中的多个加速设备执行接收到的子任务,利用自身中的内存池存储相应子任务对应的训练数据、中间结果和权重数据。控制主机利用自身中的内存池收集并处理多个主机中的内存池存储的权重数据,将处理得到的最新权重数据写回多个主机中的内存池。内存池可以为基于FPGA实现的内存扩展卡。
在本实施例中,模型训练任务用于实现各种智能模型的训练,智能模型可以是任意结构,可以用于实现数据加密任务、数据解密任务、图像识别任务和图像分类任务等。各主机可实现资源共享,能加快计算速度。本实施例将一个模型训练任务划分为若干个并行运行的子任务,且把这些子任务分散到不同的主机节点上,使它们同时在这些主机节点上运行,从而加快计算速度。如果某个主机节点上的负载太重,则可把其中一些作业移到其他主机节点去执行,从而减轻前一主机节点的负载。这种作业迁移称为负载平衡。如果其中某个节点失效了,则其余的节点可以继续操作,整个系统不会因为一个或少数几个节点的故障而全体崩溃。因此,系统有很好的容错性能。系统还能够检测节点的故障,采取适当的手段,使它从故障中恢复过来。系统确定故障所在的节点后,就不再利用它来提供服务,直至其恢复正常工作。失效节点的功能可由其他节点完成,当失效节点被恢复或者修复时,系统可以把它平滑地集成到系统中。
在一种实施方式中,主机的处理器用于:根据任意远端设备发送的内存申请请求在数据传输装置中查询空闲的内存访问模块;若查询到空闲的内存访问模块,则针对空闲的内存访问模块生成地址配置操作,发送地址配置操作至空闲的内存访问模块;相应地,空闲的内存访问模块用于:根据地址配置操作,在自身中配置地址配置操作携带的与任意远端设备对应的内存地址范围,并与当前远端设备建立远程内存访问连接;相应地,地址解析模块用于:记录内存地址范围、当前远端设备和配置有内存地址范围的内存访问模块之间的映射关系。处理器用于:根据任意远端设备发送的内存申请请求,针对所述数据传输装置中的空闲的内存访问模块生成地址配置操作,发送所述地址配置操作至所述数据传输装置;相应地,所述数据传输装置用于:使空闲的内存访问模块根据所述地址配置操作,在自身中配置所述地址配置操作携带的与任意远端设备对应的内存地址范围,并与当前远端设备建立远程内存访问连接;
在一种实施方式中,主机的处理器用于:若未查询到空闲的内存访问模块,则返回申请失败消息至相应远端设备。在一种实施方式中,主机的处理器用于:根据任意远端设备发送的内存申请请求检测内存地址范围的内存空间大小;确定与内存空间大小匹配的内存模式;按照内存模式管理相应内存空间。在一种实施方式中,主机的处理器用于:为所述数据传输装置中的每一内存访问模块设定可配置的地址范围大小。
CXL是缓存一致性互联协议,能够将内存与计算分离,构建大规模的扩展内存。持久性内存相较于动态随机存取存储器具有成本低,容量大的优势,所以可以使用CXL协议和持久性内存的字节寻址固态硬盘作为扩展内存。例如:可以将CXL集成到支持Optane(一种超高速内存技术)的固态硬盘中,以实现分层内存扩展,Optane还可以替换为Z-NAND或XLFlash。Z-NAND和XLFlash也都是一种内存技术。
可见,CXL与固态硬盘结合,可允许扩展访问大容量内存,但速度较动态随机存取存储器慢。由此,还可以用固态硬盘的DRAM(Dynamic Random Access Memory,动态随机存取存储器)作为缓存,这类似于具有更大DRAM的高性能NVMe(Non-Volatile Memoryexpress,非易失性内存主机控制器接口规范)盘存储,如此可以有效降低写入延迟。
但需要说明的是,当支持CXL的SSD(Solid State Drives,固态硬盘)被作为主机的内存时,存在如下问题:主机CPU(Central Processing Unit,中央处理器)对融合CXL和SSD的内存架构缓存命中率低下;位于CXL交换网络内不同位置的不同CXL-SSD(支持CXL的SSD)的延迟不同。为此,可以引入预缓存技术来提高缓存命中率,降低延迟。预缓存技术可以基于空间预取法和/或时间预取法实现,一般基于预缓存技术将数据预先缓存在主机CPU的最后一级缓存(LLC,Last Level Cache)中。
基于CXL的内存分离中使用的互连网络拓扑结构,能够以可扩展的方式增加内存容量,CXL引入了一个多级交换体系结构,调整内存器件在网络中的位置可使内存器件的延迟不同,这是因为不同层级的CXL交换机所需的处理时间不同。
CXL包括三个子协议:CXL.io、CXL.cache和CXL.mem。由于CXL建立在现有的PCIe物理层之上,所以CXL.io在功能上等效于PCIe协议。CXL.cache能够实现高效访问主机内存的功能。CXL.mem使主机能够在相应的CXL网络中的任何位置访问连接的内存器件。因此,CXL.io和CXL.mem被用于连接多个内存器件并创建大规模的内存池,也就是使用CXL.io和CXL.mem两个子协议进行内存池构建。
具体的,内存池为多层级内存池,内存池中的多个CXL内存器件可以通过一个或多个CXL交换机(即CXL交换设备)相互连接。一个CXL交换机包括若干上游物理端口和下游物理端口,至少一个上游物理端口、至少一个下游物理端口和管理器构成一个组,每个组都能够连接主机和CXL内存器件。可见,一个面向结构的管理器可以配置CXL交换机的上游物理端口和下游物理端口,使每个主机通过一个称为虚拟层次结构的独特数据路径访问自己的CXL内存器件。基于虚拟层次结构可以将一个物理上游端口被虚拟为多个虚拟上游端口。CXL还支持多层级互连,使得CXL交换机的上游物理端口或下游物理端口可以连接到其他CXL交换机,显著增加了每个虚拟层次结构中的内存设备数量,可大幅提升资源分离的可扩展性。
在一些示例中,具体可以有三种不同层次的内存互连架构,分别是单个交换机、多层级互连和内存虚拟划分。
请参见图2,单个交换机构成的内存互连架构系统可以包括:一个主机,该主机连接交换机设备的上游物理端口,交换机设备的下游物理端口各连接一个内存器件。主机、交换机设备和各内存器件基于CXL实现通信。
请参见图3,多层级互连架构系统可以包括:一个主机,三个交换机设备,其中一个交换机设备位于第一层级,另外两个交换机设备位于第二层级,第二层级的两个交换机设备的下游物理端口各连接一个内存器件。主机、交换机设备和各内存器件基于CXL实现通信。
请参见图4,内存虚拟划分架构系统可以包括:两个主机,一个交换机设备,两个主机连接该交换机设备的同一上游物理端口虚拟化得到的两个上游虚拟端口,该交换机设备的三个下游物理端口各连接一个内存器件。其中,内存器件1的内存区被划分为四个区域,分别为区域1:MLD1、区域2:MLD2、区域3:MLD3、区域4:MLD4,这四个区域能够被主机1和主机2看到,不同区域给不同处理器用,不能共用。
下一步实现内存池逻辑映射,具体实现的是内存物理地址到CXL内存池逻辑地址的映射。
首先识别CXL交换机层次。主机缓存组件是一个包括硬件和软件的模块,硬件包括主机缓存,软件包括缓存策略,主机缓存组件在PCIe枚举过程中有效地识别了各个内存器件的PCIe交换机级别,以确定主机到内存器件之间有几个CXL交换机。主机使用CXL.io访问所有连接设备(包括内存器件、CXL交换机)的配置空间,并组织它们在其CXL网络中的系统总线。
值得注意的是,在PCIe枚举期间,每识别一个新设备确定一个设备编号和对应的总线,并为该总线分配一个唯一的编号。CXL交换机作为一个带有自己总线编号的PCIe桥接设备运行,由此可以确定主机CPU与目标内存器件之间的交换机数量。主机缓存组件在其RC(Root Complex,根复合体)端可以包含芯片,RC端位于在CPU和CXL交换机之间,能够存储上述枚举过程获得的所有信息,这些信息用于更准确地估计预取时序性。
主机启动时枚举所有内存器件,并初始化映射BAR、SSD、DRAM内存段到主机上,BAR与SSD对应不同的内存段;同时CXL内存控制器也保存映射信息。主机可以通过内存器件的内存信息和配置信息段来更新相应的内存段映射。所有内存器件统一编地址,在主机中某一程序需要用内存时,分配相应的内存地址段。请参见图5,RC将内存池端的物理内存(包括DRAM和SSD)、BAR(Base Address Register,基地址寄存器)、内存容量及配置信息映射并存储在RP(Root Point,交换设备中的硬件)中,内存控制器也保存这些信息。
CXL内存池建立后,主机通过CXL.mem和CXL.io传输load/store读写指令,通过数据流控制单元(如flit软件)生成的CXL消息数据包访问内存。基于flit的这种通信方式使得各种内存和存储介质能够集成到内存池。CXL结合flit的通信方式有效地将内存资源与主机进行分离。并且,基于CXL可以引入反向失效(Back Invalide,BI),内存池通过CXL.mem对主机的缓存区进行反监听,可使内存端自主地使主机的缓存区的数据失效;当然,使用CXL.cache也可以使内存端自主地使主机的缓存区的数据失效。
请参见图6,主机缓存组件和缓存预取决策器构成缓存预取器。主机缓存组件设于主机端,包括主机端的RC和缓存控制器(含缓存软件策略),缓存预取决策器设于内存池中的容量大于固定值的一个内存器件中。主机缓存组件能够为缓存预取决策器提供决策所需的关键信息,包括程序计数器(即操作指令)和内存器件所在的交换机深度,并中继由缓存预取决策器确定的缓存预取结果。为了实现这一点,主机缓存组件使用一个小型缓冲区(从主机第三级缓存L3划分出来的,可设为16KB),记录缓存预取决策器预取的缓存行更新状态,还能确保CXL网络内每个主机的缓存控制器首先检查主机缓存组件的缓存区。如果RC中已经存在请求所需数据,则缓存控制器直接从RC中的缓存区提供数据并完成响应处理过程,无需遍历整个内存池。
请参见图6,缓存预取决策器可以基于空间预取法和时间预取法实现。空间预取法通过对当前访问的地址添加偏移量来预测要读的内存地址。在运行时,这个偏移量被优化以最小化缓存未命中率。时间预取法能够记录缓存未命中序列,并从缓存未命中序列中可能再次发生的位置提供数据到主机缓存行。
为满足准确性要求,可以使用深度学习技术增强缓存预取决策器的性能。预取本质上涉及预测,因此深度学习技术实现缓存预取决策器的性能表现更好,但在主机内中部署缓存预取决策器有难度,这是因为在主机端进行模型计算和元数据管理需要大量的存储空间,会降低主机负载。
本实施例将缓存预取决策器从主机卸载到内存池,可以实现复杂的预取策略。在一种示例中,缓存预取决策器可以采用异构形式,缓存预取决策器以随机模式进行不规则的内存访问,缓存预取决策器确定预取位置(要读的内存地址)后,然后将数据此位置传输到主机缓存组件的缓冲区。缓存预取决策器还提供历次预测的内存地址的记录功能,以此可进行缓存预取决策器的在线微调。具体通过决策树分类器监视应用程序的缓存命中行为,并且根据地址预取准确率反馈给缓存预取决策器,当准确度降低时,缓存预取决策器自身会进行参数微调,以进行模型优化,提升内存地址预测的准确率。
缓存预取决策器中的时序预测器通过对过去到达时间进行平均来确定单一内存地址对应的历史读取时间的长短,用以估计该地址中未来数据的读取时间。为了预测下一个到达时间,其历史窗口中的所有过去到达时间需要记录在缓冲区中。
如果访问请求由主机响应,主机缓存组件通过CXL.io向缓存预取决策器传递缓存命中事件,同时可以记录此次响应时长,使得时序预测器能够据此计算单一内存地址的过去读取时间的平均值。
需要说明的是,过早预取数据可能会污染主机缓存,降低其命中率,而过晚预取可能会过度延迟执行。因此,准确定位确切的预缓存数据的预取时序是至关重要的。实际的预取时序可以考虑:内存器件的数据对象交换能力(即器件性能延迟)、链路层级延迟、链路带宽延迟和/或区域性能延迟来综合确定,也即:据此计算RC和目标内存器件之间产生的延迟开销。主机缓存组件将这个延迟开销存储在相应内存器件的配置空间中。
请参见图7,读写指令从主机端传输至内存池端的过程包括:主机对内存器件进行load/store操作时,CXL RP生成CXL操作信息传输包,通过CXL.mem传递给内存器件;内存控制器解析CXL操作信息传输包,得到command命令操作符、要读取的内存地址等;内存控制器与存储固件交互,执行对应命令操作。依附于CXL.mem,为了准确预测地址,及时传输访问请求,主机基于CXL.mem到从内存的事务数据包括:没有数据的请求、带数据的请求和反向失效响应。没有数据的请求主要用于没有有效负载的内存读操作码,而带数据的请求携带内存写操作码。带数据的请求允许CXL规定的13个自定义操作码,其中包括一个用于携带指令的内存读取操作码。反向失效响应是对内存器件的反向失效嗅探命令的响应。
当到达预取的时间时,缓存预取决策器预测内存地址,并将该内存地址中的数据更新至主机缓存组件缓冲区。其中,使用CXL.mem从内存池到主机的事务消息与CXL.mem的没数据的请求类似,是一条无有效负载的消息,用于只监听主机缓存状态。主机缓存状态包括:M(Modified)状态,表示数据只存在于当前缓存,并且该缓存上的数据与下一级存储单元中的数据不同。换言之,最新的数据位于当前缓存,其他缓存中没有备份,缓存行中的内容与主存中的不一致。O(Owned)状态,描述一个缓存行为脏,并且可能存在于多个缓存中(不止一个)。一个Owned状态的缓存行保存着最新的而且正确的数据。只有一个核的缓存可以将数据保存为Owned状态,其他和为Shared状态。E(Exclusive)状态,表示数据只存在于当前缓存行中,并且为干净的。缓存中缓存行中的数据与主存中的一致,并且其他核中的缓存没有该地址的数据备份,只存在一个缓存中。S(Shared)状态,表示缓存行中的数据不一定与主存中的一致,与Owned状态的缓存行相对应,将Owned状态的数据复制到Shared的缓存行中,因此Shared状态的数据也是最新的。I(Invalid)状态表示无效的数据。
本实施例还引入了一个新的BI操作码,称为BISnoopData,允许使用10个自定义操作码。使用BISnoopData,缓存预取决策器生成一个伴随此消息的有效负载,其中包含用于更新主机缓存的数据。或者,当主机缓存组件检测到BISnoopData时,它等待相应的有效负载,并将等待得到的数据插入其缓冲区,使缓存控制器能够获取数据以进行执行。在一种示例中,主机读内存池中的数据1时,数据1被返回到主机且被主机缓存,在下一个请求到来之前,根据缓存预取决策器预测地址预取数据2、3到主机缓存。
可见,本实施例提供了一种融合CXL-SSD与DRAM的内存架构,将最后一级缓存(LLC,Last Level Cache)的预缓存从主机CPU卸载到内存池端。使用缓存预取决策器进行数据预缓存,并通过CXL.mem BI反向失效主机端的内存行,确保数据一致性。并且,还能进行预取时效的准确估计,减少了主机到CXL-SSD的缓存预取时间,并使主机缓存可以直接访问大多数融合DRAM与CXL-SSD的内存架构中的数据。由于缓存预取决策过程发生在CXL-SSD端,存储能力和计算能力更强,可以实现复杂的预取策略,提升主机端对CXL-SSD的缓存命中率。
本实施例还能跨越多个内存器件进行数据预取,缓存预取主机逻辑确保CXL-SSD保持对主机CPU执行语义的感知,而其CXL-SSD端逻辑通过CXL.mem的反向失效机制在主机换成和CXL-SSD之间维护数据一致性。这种双向协同的方法允许用户应用直接在主机上访问大多数内存数据,从而显著减少对CXL-SSD的依赖。另一方面,为了全面了解不同CXL-SSD的预取延迟,在PCIe枚举和设备发现期间识别底层CXL网络拓扑和设备延迟,利用这些信息计算每个网络中的CXL-SSD的更精确的端到端延迟,并通过将该值写入每个设备的PCIe配置空间进行通信,如此可以确定数据从内存池到主机缓存的最佳时机,从而有效减少CXL-SSD后端引入的长延迟。
下面对本申请实施例提供的一种数据处理方法进行介绍,下文描述的一种数据处理方法与本文描述的其他实施例可以相互参照。
本申请实施例公开了一种数据处理方法,应用于数据处理系统中的主机,该方法包括:接收到访问请求后,若确定自身缓存组件中未存储访问请求要访问的目标数据,则当前主机将访问请求传输至多个内存器件,以使多个内存器件响应访问请求,并利用缓存预取决策器确定预缓存数据,将预缓存数据传输至当前主机中的缓存组件进行存储。
数据处理系统包括:内存池和至少一个主机;内存池和至少一个主机连接;任意主机包括:缓存组件;内存池包括:多个内存器件;至少一个内存器件中存储有缓存预取决策器。
另一方面,内存池和至少一个主机通过多层级互连的CXL交换设备通信。
另一方面,所述至少一个主机用于:识别内存池和当前主机连接的CXL交换设备,并确定内存池的设备号以及当前主机连接的CXL交换设备的设备号。
另一方面,任意CXL交换设备的单一上游物理端口被虚拟化为多个上游虚拟端口,一个上游虚拟端口连接一个主机或其他CXL交换设备的下游物理端口。
另一方面,内存池还包括:内存控制器;内存控制器用于:对内存池统一编址,并存储编址得到的编址表。
另一方面,内存控制器用于:将编址表同步给至少一个主机。
另一方面,内存控制器用于:将内存池中的单一内存器件的内存区划分为多个内存片。
另一方面,内存控制器用于:按照预设的应用层操作大小将内存池中的单一内存器件的内存区划分为多个内存片。
另一方面,内存控制器用于:接收不同主机发送的多个绑定请求,根据多个绑定请求将划分单一内存器件的内存区得到的不同内存片绑定于不同主机。
另一方面,内存控制器用于:接收任意主机发送的单一绑定请求,根据单一绑定请求将内存池中的单一内存器件的内存区绑定于当前主机。
另一方面,所述至少一个主机用于:基于访问请求生成操作命令,通过当前主机连接的CXL交换设备将操作命令发送至内存池中的内存控制器,以使内存控制器在内存池中确定目标内存器件,并对目标内存器件执行操作命令。
另一方面,所述至少一个主机用于:若确定自身缓存组件中存储目标数据,则当前主机基于自身缓存组件中的目标数据响应访问请求。
另一方面,所述至少一个主机还包括:缓存控制器;缓存控制器用于:检测当前主机中的缓存组件中是否存储有目标数据。
另一方面,内存池中可实现如下功能:将访问请求和内存池中各内存器件的物理地址输入缓存预取决策器,以使缓存预取决策器输出预测物理地址,将预测物理地址中存储的数据确定为预缓存数据。确定预测物理地址对应的延迟时间和历史读取时间均值,根据延迟时间和历史读取时间均值确定预缓存数据的传输时序。确定预测物理地址所属内存器件与接收访问请求的主机之间的通信链路,统计通信链路的链路层级延迟和链路带宽延迟;和/或确定预测物理地址所属内存器件的器件性能延迟;和/或确定预测物理地址在所属内存器件中的区域性能延迟;综合链路层级延迟、链路带宽延迟、器件性能延迟和/或区域性能延迟,得到预测物理地址对应的延迟时间。检测预缓存数据的命中率和/或缓存预取决策器输出的预测物理地址是否正确,并根据相应检测结果确定缓存预取决策器的准确度;若准确度低于预设阈值,则根据检测结果优化缓存预取决策器。利用决策树分类器检测预缓存数据的命中率和/或缓存预取决策器输出的预测物理地址是否正确。
本申请实施例还公开了另一种数据处理方法,应用于至少一个主机,至少一个主机和多个内存器件连接;至少一个主机包括:缓存组件;多个内存器件中的至少一个内存器件中存储有缓存预取决策器。该方法包括:至少一个主机接收到访问请求后,若确定自身缓存组件中未存储访问请求要访问的目标数据,则当前主机将访问请求传输至多个内存器件,以使多个内存器件响应访问请求,并利用缓存预取决策器确定预缓存数据,将预缓存数据传输至当前主机中的缓存组件进行存储。
进一步地,本申请实施例还公开了又一种数据处理方法,应用于数据处理系统,包括:至少一个主机接收到访问请求后,若确定自身缓存组件中未存储访问请求要访问的目标数据,则当前主机将访问请求传输至多个内存器件;多个内存器件响应访问请求,并利用多个内存器件中的至少一个内存器件中存储的缓存预取决策器确定预缓存数据,将预缓存数据传输至当前主机中的缓存组件进行存储。其中,至少一个主机和多个内存器件连接,共同构成数据处理系统;至少一个主机包括:缓存组件;多个内存器件中的至少一个内存器件中存储有缓存预取决策器。
下面对本申请实施例提供的一种电子设备进行介绍,下文描述的一种电子设备与本文描述的其他实施例可以相互参照。本实施例提供的电子设备可以是其他实施例中的任意器件或任意设备,如:内存池、内存器件、主机、内存控制器和缓存控制器等。
本实施例提供的电子设备用于:接收到访问请求后,若确定自身缓存组件中未存储访问请求要访问的目标数据,则当前电子设备将访问请求传输至多个内存器件,以使多个内存器件响应访问请求,并利用缓存预取决策器确定预缓存数据,将预缓存数据传输至当前电子设备中的缓存组件进行存储。
本实施例提供的电子设备用于:利用缓存预取决策器确定预缓存数据之后,将预缓存数据强制存入当前电子设备中的缓存组件。或利用缓存预取决策器确定预缓存数据之后,将预缓存数据发送至当前电子设备,以使当前电子设备将预缓存数据存入当前电子设备中的缓存组件。
本实施例提供的电子设备用于:识别内存池中的多个内存器件和当前电子设备连接的CXL交换设备,并确定内存池中的各个内存器件的设备号以及当前电子设备连接的CXL交换设备的设备号。CXL交换设备通过CXL与其他端通信的交换机等设备。
本实施例提供的电子设备用于:对内存池中的多个内存器件统一编址,并存储编址得到的编址表。相应地,还用于:将编址表同步给至少一个电子设备。相应地,还用于:将内存池中的单一内存器件的内存区划分为多个内存片。相应地,还用于:按照预设的应用层操作大小将内存池中的单一内存器件的内存区划分为多个内存片。相应地,还用于:接收不同电子设备发送的多个绑定请求,根据多个绑定请求将划分单一内存器件的内存区得到的不同内存片绑定于不同电子设备。相应地,本实施例提供的电子设备用于:接收任意电子设备发送的单一绑定请求,根据单一绑定请求将内存池中的单一内存器件的内存区绑定于当前电子设备。
本实施例提供的电子设备用于:基于访问请求生成操作命令,通过当前电子设备连接的CXL交换设备将操作命令发送至内存池中的内存控制器,以使内存控制器在内存池中确定目标内存器件,并对目标内存器件执行操作命令。
本实施例提供的电子设备用于:若确定自身缓存组件中存储目标数据,则当前电子设备基于自身缓存组件中的目标数据响应访问请求。任意电子设备还包括:缓存控制器;缓存控制器用于:检测当前电子设备中的缓存组件中是否存储有目标数据。
本实施例提供的电子设备用于:将访问请求和内存池中各内存器件的物理地址输入缓存预取决策器,以使缓存预取决策器输出预测物理地址,将预测物理地址中存储的数据确定为预缓存数据。缓存预取决策器是多模态模型,其输入数据和输出数据的形态可以不同,输入数据包括:程序计数器(即访问请求)和所有内存的物理地址(即内存池中各内存器件的物理地址);输出数据包括:要预读的内存物理地址。具体的,缓存预取决策器可使用Transformer架构实现,输入是程序计数器指令,输出是要预读的内存物理地址。由于程序计数器与要预读的内存物理地址是不同的形态,所以称为多模态模型。程序计数器通过编码操作,将其变换为多模态模型可以识别的数据,输入到多模态模型中,多模态模型输出结果经过解码操作变换为预测的内存物理地址。多模态模型是人工智能模型,可以准确理解程序计数器的读写行为,可以大幅度提高预缓存的准确性,使访问速度大幅提升。当然,缓存预取决策器需要占用较大空间,难以放置在电子设备端。
本实施例提供的电子设备用于:确定预测物理地址对应的延迟时间和历史读取时间均值,根据延迟时间和历史读取时间均值确定预缓存数据的传输时序。相应地,内存池用于:确定预测物理地址所属内存器件与接收访问请求的电子设备之间的通信链路,统计通信链路的链路层级延迟和链路带宽延迟;和/或确定预测物理地址所属内存器件的器件性能延迟;和/或确定预测物理地址在所属内存器件中的区域性能延迟;综合链路层级延迟、链路带宽延迟、器件性能延迟和/或区域性能延迟,得到预测物理地址对应的延迟时间。
其中,链路层级延迟基于内存器件与接收访问请求的电子设备之间的通信链路的长短确定,链路带宽延迟是该通信链路上的带宽总延迟。器件性能延迟是内存器件本身的特性决定的。区域性能延迟取决于预测物理地址在内存器件的位置,位置如图4所示的区域1:MLD1、区域2:MLD2、区域3:MLD3、区域4:MLD4,不同区域对应的区域性能延迟不同。
本实施例提供的电子设备用于:检测预缓存数据的命中率和/或缓存预取决策器输出的预测物理地址是否正确,并根据相应检测结果确定缓存预取决策器的准确度;若准确度低于预设阈值,则根据检测结果优化缓存预取决策器。相应地,还用于:利用决策树分类器检测预缓存数据的命中率和/或缓存预取决策器输出的预测物理地址是否正确。
进一步的,本申请实施例还提供了一种电子设备。其中,上述电子设备既可以是如图8所示的服务器,也可以是如图9所示的终端。图8和图9均是根据一示例性实施例示出的电子设备结构图,图中的内容不能被认为是对本申请的使用范围的任何限制。
图8为本申请实施例提供的一种服务器的结构示意图。该服务器具体可以包括:至少一个处理器、至少一个存储器、电源、通信接口、输入输出接口和通信总线。其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行,以实现前述任一实施例公开的数据处理中的相关步骤。
本实施例中,电源用于为服务器上的各硬件设备提供工作电压;通信接口能够为服务器创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统、计算机程序及数据等,存储方式可以是短暂存储或者永久存储。
其中,操作系统用于管理与控制服务器上的各硬件设备以及计算机程序,以实现处理器对存储器中数据的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序除了包括能够用于完成前述任一实施例的相关步骤的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据除了可以包括应用程序的更新信息等数据外,还可以包括应用程序的开发商信息等数据。
图9为本申请实施例提供的一种终端的结构示意图,该终端具体可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
通常,本实施例中的终端包括有:处理器和存储器。
其中,处理器可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器还可以包括AI(ArtificialIntelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器至少用于存储以下计算机程序,其中,该计算机程序被处理器加载并执行之后,能够实现前述任一实施例公开的由终端侧执行的相关步骤。另外,存储器所存储的资源还可以包括操作系统和数据等,存储方式可以是短暂存储或者永久存储。其中,操作系统可以包括Windows、Unix、Linux等。数据可以包括但不限于应用程序的更新信息。
在一些实施例中,终端还可包括有显示屏、输入输出接口、通信接口、传感器、电源以及通信总线。
本领域技术人员可以理解,图9中示出的结构并不构成对终端的限定,可以包括比图示更多或更少的组件。
下面对本申请实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与本文描述的其他实施例可以相互参照。一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述任一实施例所述的方法。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (20)
1.一种数据处理系统,其特征在于,包括:多个内存器件和至少一个主机;所述多个内存器件和所述至少一个主机连接;
所述至少一个主机包括:缓存组件;
所述多个内存器件中的至少一个内存器件中存储有缓存预取决策器;
所述至少一个主机用于:接收到访问请求后,若确定自身缓存组件中未存储所述访问请求要访问的目标数据,则当前主机将所述访问请求传输至所述多个内存器件,以使所述多个内存器件响应所述访问请求,并利用所述缓存预取决策器确定预缓存数据,将所述预缓存数据传输至当前主机中的缓存组件进行存储;
其中,所述至少一个内存器件用于:将所述访问请求和各内存器件的物理地址输入所述缓存预取决策器,以使所述缓存预取决策器输出预测物理地址,将所述预测物理地址中存储的数据确定为所述预缓存数据;
其中,所述至少一个内存器件用于:确定所述预测物理地址对应的延迟时间和历史读取时间均值,根据所述延迟时间和所述历史读取时间均值确定所述预缓存数据的传输时序。
2.根据权利要求1所述的系统,其特征在于,所述至少一个内存器件用于:利用所述缓存预取决策器确定所述预缓存数据之后,将所述预缓存数据强制存入当前主机中的缓存组件。
3.根据权利要求1所述的系统,其特征在于,所述至少一个内存器件用于:利用所述缓存预取决策器确定所述预缓存数据之后,将所述预缓存数据发送至当前主机,以使当前主机将所述预缓存数据存入当前主机中的缓存组件。
4.根据权利要求1所述的系统,其特征在于,所述多个内存器件和所述至少一个主机通过多层级互连的CXL交换设备通信。
5.根据权利要求4所述的系统,其特征在于,所述至少一个主机用于:识别所述多个内存器件和当前主机连接的CXL交换设备,并确定所述多个内存器件的设备号以及当前主机连接的CXL交换设备的设备号。
6.根据权利要求4所述的系统,其特征在于,任意CXL交换设备的单一上游物理端口被虚拟化为多个上游虚拟端口,一个上游虚拟端口连接一个主机或其他CXL交换设备的下游物理端口。
7.根据权利要求4所述的系统,其特征在于,所述多个内存器件形成内存池,所述内存池还包括:内存控制器;所述内存控制器用于:对所述多个内存器件统一编址,并存储编址得到的编址表。
8.根据权利要求7所述的系统,其特征在于,所述内存控制器用于:将所述编址表同步给所述至少一个主机。
9.根据权利要求7所述的系统,其特征在于,所述内存控制器用于:将所述内存池中的单一内存器件的内存区划分为多个内存片。
10.根据权利要求9所述的系统,其特征在于,所述内存控制器用于:按照预设的应用层操作大小将所述内存池中的单一内存器件的内存区划分为多个内存片。
11.根据权利要求9所述的系统,其特征在于,所述内存控制器用于:接收不同主机发送的多个绑定请求,根据所述多个绑定请求将划分单一内存器件的内存区得到的不同内存片绑定于不同主机。
12.根据权利要求9所述的系统,其特征在于,所述内存控制器用于:接收任意主机发送的单一绑定请求,根据所述单一绑定请求将所述内存池中的单一内存器件的内存区绑定于当前主机。
13.根据权利要求4所述的系统,其特征在于,所述至少一个主机用于:基于所述访问请求生成操作命令,通过当前主机连接的CXL交换设备将所述操作命令发送至所述多个内存器件形成的内存池中的内存控制器,以使所述内存控制器在所述内存池中确定目标内存器件,并对所述目标内存器件执行所述操作命令。
14.根据权利要求1所述的系统,其特征在于,所述至少一个主机用于:若确定自身缓存组件中存储所述目标数据,则当前主机基于自身缓存组件中的所述目标数据响应所述访问请求。
15.根据权利要求1所述的系统,其特征在于,所述至少一个主机还包括:缓存控制器;所述缓存控制器用于:检测当前主机中的缓存组件中是否存储有所述目标数据。
16.根据权利要求1至15任一项所述的系统,其特征在于,所述至少一个内存器件用于:确定所述预测物理地址所属内存器件与接收所述访问请求的主机之间的通信链路,统计所述通信链路的链路层级延迟和链路带宽延迟;和/或确定所述预测物理地址所属内存器件的器件性能延迟;和/或确定所述预测物理地址在所属内存器件中的区域性能延迟;综合链路层级延迟、链路带宽延迟、器件性能延迟和/或区域性能延迟,得到所述预测物理地址对应的延迟时间。
17.根据权利要求1至15任一项所述的系统,其特征在于,所述至少一个内存器件用于:检测所述预缓存数据的命中率和/或所述缓存预取决策器输出的预测物理地址是否正确,并根据相应检测结果确定所述缓存预取决策器的准确度;若所述准确度低于预设阈值,则根据所述检测结果优化所述缓存预取决策器。
18.根据权利要求17所述的系统,其特征在于,所述至少一个内存器件用于:利用决策树分类器检测所述预缓存数据的命中率和/或所述缓存预取决策器输出的预测物理地址是否正确。
19.一种数据处理方法,其特征在于,应用于至少一个主机,所述至少一个主机和多个内存器件连接;所述至少一个主机包括:缓存组件;所述多个内存器件中的至少一个内存器件中存储有缓存预取决策器;
所述至少一个主机接收到访问请求后,若确定自身缓存组件中未存储所述访问请求要访问的目标数据,则当前主机将所述访问请求传输至所述多个内存器件,以使所述多个内存器件响应所述访问请求,并利用所述缓存预取决策器确定预缓存数据,将所述预缓存数据传输至当前主机中的缓存组件进行存储;
其中,所述至少一个内存器件用于:将所述访问请求和各内存器件的物理地址输入所述缓存预取决策器,以使所述缓存预取决策器输出预测物理地址,将所述预测物理地址中存储的数据确定为所述预缓存数据;
其中,所述至少一个内存器件用于:确定所述预测物理地址对应的延迟时间和历史读取时间均值,根据所述延迟时间和所述历史读取时间均值确定所述预缓存数据的传输时序。
20.一种可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求19所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410270572.5A CN117873931B (zh) | 2024-03-11 | 2024-03-11 | 一种数据处理系统、方法及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410270572.5A CN117873931B (zh) | 2024-03-11 | 2024-03-11 | 一种数据处理系统、方法及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117873931A CN117873931A (zh) | 2024-04-12 |
CN117873931B true CN117873931B (zh) | 2024-06-07 |
Family
ID=90581581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410270572.5A Active CN117873931B (zh) | 2024-03-11 | 2024-03-11 | 一种数据处理系统、方法及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117873931B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118069231B (zh) * | 2024-04-17 | 2024-06-21 | 苏州元脑智能科技有限公司 | 多主机系统的主机开机处理方法、装置、电子设备及介质 |
CN118152141B (zh) * | 2024-05-07 | 2024-08-06 | 浪潮电子信息产业股份有限公司 | 一种基于内存扩展系统的高维向量检索方法、系统、装置 |
CN118409981B (zh) * | 2024-06-28 | 2024-09-13 | 北京开源芯片研究院 | 一种预取方法、装置、电子设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111143242A (zh) * | 2018-11-02 | 2020-05-12 | 华为技术有限公司 | 一种缓存预取方法和装置 |
CN116483742A (zh) * | 2022-01-14 | 2023-07-25 | 华为技术有限公司 | 预取地址生成方法及计算机设备 |
CN116680214A (zh) * | 2023-05-08 | 2023-09-01 | 阿里巴巴(中国)有限公司 | 一种数据访问方法、可读存储介质及电子设备 |
CN116708579A (zh) * | 2023-08-04 | 2023-09-05 | 浪潮电子信息产业股份有限公司 | 数据访问方法、装置、电子设备及计算机可读存储介质 |
CN117591450A (zh) * | 2024-01-17 | 2024-02-23 | 苏州元脑智能科技有限公司 | 一种数据处理系统、方法、设备及介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170214674A1 (en) * | 2016-01-25 | 2017-07-27 | Google Inc. | Reducing latency |
US20230153279A1 (en) * | 2021-11-18 | 2023-05-18 | VirtualZ Computing Corporation | System and method for selective migration of mainframe resources to a non-mainframe environment |
-
2024
- 2024-03-11 CN CN202410270572.5A patent/CN117873931B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111143242A (zh) * | 2018-11-02 | 2020-05-12 | 华为技术有限公司 | 一种缓存预取方法和装置 |
CN116483742A (zh) * | 2022-01-14 | 2023-07-25 | 华为技术有限公司 | 预取地址生成方法及计算机设备 |
CN116680214A (zh) * | 2023-05-08 | 2023-09-01 | 阿里巴巴(中国)有限公司 | 一种数据访问方法、可读存储介质及电子设备 |
CN116708579A (zh) * | 2023-08-04 | 2023-09-05 | 浪潮电子信息产业股份有限公司 | 数据访问方法、装置、电子设备及计算机可读存储介质 |
CN117591450A (zh) * | 2024-01-17 | 2024-02-23 | 苏州元脑智能科技有限公司 | 一种数据处理系统、方法、设备及介质 |
Non-Patent Citations (2)
Title |
---|
分离式数据中心的存储系统研究进展;舒继武等;中国科学;20230817;第53卷(第8期);1503-1528 * |
可配置及历史信息感知的多级缓存策略;祖文强;王芳;李焱;万进;;计算机研究与发展;20151215(S2);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117873931A (zh) | 2024-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN117873931B (zh) | 一种数据处理系统、方法及介质 | |
EP3916564B1 (en) | System with cache-coherent memory and server-linking switch | |
CN110008149B (zh) | 融合式存储器件及其操作方法 | |
US11966612B2 (en) | Solid-state disk (SSD) data migration | |
US8473667B2 (en) | Network on chip that maintains cache coherency with invalidation messages | |
KR101558427B1 (ko) | 가상화된 입/출력을 위한 프로세서 로컬 코히어런시를 갖는 컴퓨터 시스템 | |
US20110004729A1 (en) | Block Caching for Cache-Coherent Distributed Shared Memory | |
US9542320B2 (en) | Multi-node cache coherency with input output virtualization | |
CN102646446B (zh) | 硬件动态高速缓存电源管理 | |
US20110145452A1 (en) | Methods and apparatus for distribution of raid storage management over a sas domain | |
KR20050005553A (ko) | 내부 캐쉬 및/또는 메모리 액세스 예측을 지닌 메모리 허브 | |
US20110246720A1 (en) | Storage system with multiple controllers | |
CN114860329B (zh) | 动态一致性偏置配置引擎及方法 | |
CN106775504B (zh) | 双控磁盘阵列系统及其数据存取方法 | |
CN109582223A (zh) | 一种内存数据迁移的方法及装置 | |
JP2010049502A (ja) | ストレージサブシステム、及びこれを有するストレージシステム | |
US20040098475A1 (en) | Methods and apparatus for distributing system management signals | |
CN117806833B (zh) | 一种数据处理系统、方法及介质 | |
Sharma et al. | An introduction to the compute express link (cxl) interconnect | |
WO2014206078A1 (zh) | 内存访问方法、装置及系统 | |
CN103999063B (zh) | 处理器的存储器共享 | |
US20210294497A1 (en) | Storage system and method for analyzing storage system | |
EP4372563A1 (en) | Systems, methods, and apparatus for operating computational devices | |
EP4365747A1 (en) | Apparatus and method for dynamically reconfiguring memory region of memory device | |
WO2004070619A2 (en) | Methods and apparatus for distributing system management signals |
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 |