掌桥专利:专业的专利平台
掌桥专利
首页

基于Hlink的设备缓存推送系统及方法

文献发布时间:2023-06-19 11:32:36


基于Hlink的设备缓存推送系统及方法

技术领域

本发明涉及多节点处理系统,具体涉及一种基于Hlink的设备缓存推送系统及方法。

背景技术

目前,数据处理节点之间通常是通过以太网交换机连接在一起的,受限于以太网的延迟和带宽,节点之间只能进行有限通信。难以在两个节点的加速器之间建立紧耦合的通信。即,现有的数据处理芯片通常只能单独工作,无法多芯片互联组成一套更大规模的处理系统。但是目前数据处理芯片的任务需求多种多样,单一的硬件结构很难高效率、低成本地满足负载多样性的需求。

而通过以太网交换机实现的节点的互联,例如,请参阅附图5,是节点2的加速器B读取节点1的加速器A中数据读取过程:1.节点1的加速器A将结果数据传输到内存控制器;2.节点1的加速器A通过中断通知CPU,数据已经传输就绪;3.节点1的CPU通知网卡将数据传输到节点2;4.节点1的网卡通过DMA把内存控制器里的数据拷贝到网卡的缓冲区;5.节点1的网卡通过以太网把数据发送到交换机;6.交换机将数据发送到节点2的网卡;7.节点2的网卡收到数据以后,通过DMA将数据拷贝到内存控制器;8.节点2的网卡通过中断通知CPU已经接收到数据;9.CPU解析出以太网报文中的数据,通知加速器B;10.节点2的加速器B通过DMA将数据从内存控制器传输到自己的缓冲区,至此完成数据读取。这种方式存在以下缺点:传输带宽低,延迟大;需要大量的数据拷贝操作,数据传输基于以太网协议,协议开销大,效率低。

发明内容

为了解决现有技术中的上述问题,即为了解决如何实现多节点之间大带宽、低延迟、高效通信的问题,本发明的一方面,提供一种基于Hlink的设备缓存推送系统,所述系统包括至少两个节点,

所述节点包括CPU、Hlink控制器和至少一个加速器;所述节点间通过Hlink控制器进行通讯连接;

所述Hlink控制器包括总线接口、对外接口、Hlink协议栈、控制寄存器、命令寄存器、路由表、数据校验和恢复单元以及地址映射表;

所述总线接口,用于Hlink控制器与本地节点内的模块进行通讯;

所述对外接口,用于与其余节点连接;

所述Hlink协议栈,用于报文的解析和传输;

所述控制寄存器,用于Hlink控制器的配置和初始化;

所述命令寄存器,用于Hlink控制器的命令操作;

所述路由表,用于指定远程数据访问的节点地址;

所述数据校验和恢复模块,用于Hlink控制器内部的数据校验和恢复;

所述地址映射表,用于配置本地节点的本地物理地址基址和远程物理地址基址的映射关系,以及验证远程节点访问的权限。

在一实施例中,所述地址映射表包含本地设备ID、本地物理地址基址、远程物理地址基址、地址大小标识、是否内部地址标识、是否支持推送标识以及有效位标识;

所述本地设备ID用于标识本地节点中具有远程访问权限的加速器;

所述本地物理地址基址用于标识本地节点的物理地址;

所述远程物理地址基址用于标识所述本地物理地址基址对应的远程物理地址;

所述地址大小标识用于标明可远程访问节点的地址区间;

所述是否内部地址标识用于标明所述远程物理地址基址是远程节点的内存空间地址,或是远程节点的加速器地址;

所述是否支持推送标识用于表明本地节点是否具有远程节点的加速器缓存权限;

所述有效位标识用于表明该有效位对应所述地址映射表中的表项是否有效。

在一实施例中,所述Hlink控制器具有用于数据缓存的缓存空间。

本发明的另一方面,还提供一种基于Hlink的设备缓存推送方法,应用于如上述的基于Hlink的设备缓存推送系统,所述方法包括:

配置每个节点的Hlink控制器的地址映射表和路由表;

配置需建立远程访问的第一、第二节点的节点地址和加速器地址并发送至第一、第二节点的Hlink控制器,并由第一、第二节点的Hlink控制器验证是否具有访问权限;

在具有访问权限时,由第一节点的控制寄存器启动远程数据传输;

第一节点的加速将数据传输至该节点的Hlink控制器缓存;

第一节点的控制寄存器发送一开始报文至第二节点的Hlink控制器,所述开始报文包含所传输数据的起始标志和数据大小;

第一节点的Hlink控制器件将缓存的数据发送至第二节点的Hlink控制器缓存,并在结束时发送一结束报文;

第二节点的Hlink控制器在接收到所述结束报文时,将缓存的数据直接传输至第二节点的加速器的缓冲区。

在一实施例中,在“第一节点的Hlink控制器件将缓存的数据发送至第二节点的Hlink控制器缓存,并在结束时发送一结束报文”之后,所述方法还包括:第一节点向第二节点的CPU发送远程中断信号。

在一实施例中,所述系统还包括应用层,在“第二节点的Hlink控制器在接收到所述结束报文时,将缓存的数据直接传输至第二节点的加速器的缓冲区”之后,所述方法还包括:所述应用层配置为删除第一、第二节点中地址映射表配置的内容。

本发明的优点在于:

本发明提供的基于Hlink的设备缓存推送系统及方法,能够实现节点间的高效通讯,CPU不参与数据传输过程,极大节省了CPU的资源。在数据传输过程中,减少了大量的数据拷贝操作,节约了内存带宽,降低通讯延迟。进一步地,Hlink控制器具有远程访问权限检查机制,保证来远程数据推送的安全性和准确性。

附图说明

图1是本发明的基于Hlink的设备缓存推送系统的主要结构。

图2是本发明的Hlink控制器的主要结构。

图3是本发明的地址映射表的主要内容。

图4为通过Hlink控制器实现节点互连的效果示意图。

图5是现有技术中通过以太网交换机实现的节点的互联的示意图。

具体实施方式

参阅附图1,图1示例性示出了基于Hlink的设备缓存推送系统的主要结构。如图1所示,本发明提供的基于Hlink的设备缓存推送系统包括至少两个节点。该节点包括CPU、Hlink控制器和至少一个加速器,节点间通过Hlink控制器进行通讯连接。另外,每一节点还可以包括内存控制器和网卡。需要说明的是,节点内的内存控制器和网卡不是必须项,节点可以不设置内存控制器和网卡。节点中加速器的数量可以是一个或多个,对其数量不作限制。本实施例中,每个节点的加速器数量为3个,分别为加速器A、加速器B和加速器C。

参阅附图2,图2示例性示出了Hlink控制器的主要结构。如图2所示,Hlink控制器包括总线接口、对外接口、Hlink协议栈、控制寄存器、命令寄存器、路由表、数据校验和恢复单元以及地址映射表。总线接口用于Hlink控制器与本地节点内的模块进行通讯。对外接口用于与其余节点连接。Hlink协议栈用于报文的解析和传输。控制寄存器用于Hlink控制器的配置和初始化。命令寄存器用于Hlink控制器的命令操作。路由表用于指定远程数据访问的节点地址。数据校验和恢复模块用于Hlink控制器内部的数据校验和恢复。地址映射表用于配置本地节点的本地物理地址基址和远程物理地址基址的映射关系,以及验证远程节点访问的权限。Hlink控制器具有用于数据缓存的缓存空间。

参阅附图3,图3示例性示出了地址映射表的主要内容。如图3所示,地址映射表包含本地设备ID、本地物理地址基址、远程物理地址基址、地址大小标识、是否内部地址标识、是否支持推送标识以及有效位标识。本地设备ID用于标识本地节点中具有远程访问权限的加速器,例如,用0x01表示本地节点的加速器A可访问远程节点的加速器的缓存。本地物理地址基址用于标识本地节点的物理地址,其为在远程节点访问本地节点时映射到本地节点的物理地址。例如,当远程节点的加速器A访问节点地址0x1000时,Hlink控制器会通过地址映射表翻译成地址0x12341000,远程节点将该地址发送给本地节点的Hlink控制器,通过该地址即可指向本地节点内部的某个加速器缓存。远程物理地址基址用于标识本地物理地址基址对应的远程物理地址。地址大小标识用于标明可远程访问节点的地址区间,其标明了远程节点加速器地址的结束位置,只有包含在上述基址和结束位置以内的地址区间才允许被访问。是否内部地址标识用于标明远程物理地址基址是远程节点的内存空间地址,或是远程节点的加速器地址。Hlink控制器可根据该是否内部地址标识确认是否需要验证“是否支持缓存推送”位。例如当访问远程节点的内存空间时,Hlink控制器会忽略“是否支持缓存推送”位;当访问远程节点的加速器地址时,Hlink控制器会检查“是否支持缓存推送”位是否为1,如果不为1,将禁止该数据访问。是否支持推送标识用于表明本地节点是否具有远程节点的加速器缓存权限。有效位标识用于表明该有效位对应地址映射表中的表项是否有效。例如,如果有效位为0,则该项地址映射无效,如果有效位为1,则该项地址映射有效。

本发明实施例还提供了一种基于Hlink的设备缓存推送方法,应用于如上述的基于Hlink的设备缓存推送系统。本发明提供的基于Hlink的设备缓存推送方法包括如下步骤。

步骤S1:配置每个节点的Hlink控制器的地址映射表和路由表。

具体地,通过API软件配置地址映射表中的本地设备ID、本地物理地址基址、远程物理地址基址、地址大小标识、是否内部地址标识、是否支持推送标识和有效位标识,以及根据每个节点的节点地址配置路由表。

步骤S2:配置需建立远程访问的第一、第二节点的节点地址和加速器地址并发送至第一、第二节点的Hlink控制器,并由第一、第二节点的Hlink控制器验证是否具有访问权限。

具体地,第一节点和第二节点为需要建立远程访问的节点。例如,在需要将第一节点的加速器A的缓存数据推送至第二节点的加速B的缓存时,则将第一节点和第二节点的节点地址和加速器地址并发送至第一节点和第二节点的Hlink控制器,第一节点和第二节点的Hlink控制器通过检查各自的地址映射表验证是否具有访问权限。

步骤S3:在具有访问权限时,由第一节点的控制寄存器启动远程数据传输。

步骤S4:第一节点的加速将数据传输至该节点的Hlink控制器缓存。

步骤S5:第一节点的控制寄存器发送一开始报文至第二节点的Hlink控制器。

具体地,开始报文包含所传输数据的起始标志和数据大小,如此,便于第二节点的Hlink控制器正确识别和接收所传输的数据,保证缓存数据不会出现溢出。

步骤S6:第一节点的Hlink控制器件将缓存的数据发送至第二节点的Hlink控制器缓存,并在结束时发送一结束报文。

具体地,该结束报文可以包含数据结束标志、数据校验位、中断使能位。即,Hlink控制器在将数据传输完成后,可以通过比对数据校验位以验证该数据是否正确。也可以通过配置中断使能位,在传输完成时由第一节点向第二节点的CPU发送远程中断信号。

步骤S7:第二节点的Hlink控制器在接收到结束报文时,将缓存的数据直接传输至第二节点的加速器的缓冲区。具体地,直接将数据传输至第二节点的加速器B。

进一步地,基于Hlink的设备缓存推送系统还包括应用层,用于监管节点间的数据传输过程。在步骤S7之后,应用层配置为删除第一节点和第二节点中地址映射表内配置的内容。

实际使用中,请参阅附图1,在数据传输过程中,仅用了3次数据拷贝,与现有技术相比减少了大量的数据拷贝操作。另外,节点间通过Hlink控制器互连,Hlink单lane带宽高达25Gb/s,延迟低至10ns。节点根据Hlink控制器里的地址映射表,可以把其它节点的多个加速器映射到自己的本地空间,使得自己的CPU可以直接访问和控制这些虚拟加速器,建立紧耦合连接,如图4所示,为通过Hlink控制器实现节点互连的效果示意图。

综上,本发明提供的基于Hlink的设备缓存推送系统及方法,能够实现节点间的高效通讯,CPU不参与数据传输过程,极大节省了CPU的资源。在数据传输过程中,减少了大量的数据拷贝操作,节约了内存带宽,降低通讯延迟。

在数据传输过程中,Hlink控制器和加速器之间不用保证缓存数据的一致性,可以由加速器的驱动保证缓存数据的一致性,从而降低了系统的设计复杂度。

Hlink控制器具有远程访问权限检查机制,保证来远程数据推送的安全性和准确性。

以上所述是本发明的较佳实施例及其所运用的技术原理,对于本领域的技术人员来说,在不背离本发明的精神和范围的情况下,任何基于本发明技术方案基础上的等效变换、简单替换等显而易见的改变,均属于本发明保护范围之内。

相关技术
  • 基于Hlink的设备缓存推送系统及方法
  • 一种基于VR设备的远程同步推送文件的缓存方法及系统
技术分类

06120112961819