CN112953977A - 系统数据发送方法、系统 - Google Patents
系统数据发送方法、系统 Download PDFInfo
- Publication number
- CN112953977A CN112953977A CN202110519858.9A CN202110519858A CN112953977A CN 112953977 A CN112953977 A CN 112953977A CN 202110519858 A CN202110519858 A CN 202110519858A CN 112953977 A CN112953977 A CN 112953977A
- Authority
- CN
- China
- Prior art keywords
- programmable chip
- host
- slave
- system data
- host end
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请涉及一种系统数据发送方法、系统。所述方法包括:主机端的处理器将系统数据发送至所述主机端的可编程芯片,以使所述主机端的可编程芯片根据数据传输协议对所述系统数据进行封装;所述主机端的可编程芯片将封装后的系统数据发送至从机端的可编程芯片;所述从机端的可编程芯片对所述封装后的系统数据进行解封装,并对解封装后的系统数据进行校验,根据校验所得的结果判断所述解封装后的系统数据是否发生变化;若否,所述从机端的可编程芯片将所述解封装后的系统数据传递至所述从机端的处理器。采用本方法能够缩短数据发送时间。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种系统数据发送方法、系统。
背景技术
随着计算机技术的发展,出现了分布式系统,对于进行金融业务、商品交易业务等的分布式系统,对可用性的要求较高,也即,要求分布式系统作为一个整体,能够正常的对外部客户端提供服务的概率或者时间占有率期望值较高。所以,分布式系统基于包括Paxos协议、ZAB(Zookeeper Atomic Broadcast,原子消息广播)协议和Raft协议等共识协议在各个主机端和从机端间同步系统数据和状态,在分布式系统中的主机端发生故障时,使从机端能够随时代替主机端进行业务处理。
传统方法中,主机端通过处理器将系统数据发送至从机端,由于发送过程需要占用处理器大量的资源,而处理器不仅要处理数据发送任务,还要完成其他大量的逻辑处理任务,从而导致处理器资源不足,发送过程具有较大的时延。
发明内容
基于此,有必要针对上述技术问题,提供一种能够降低发送时延的系统数据发送方法、系统。
一种系统数据发送方法,所述方法包括:
主机端的处理器将系统数据发送至所述主机端的可编程芯片,以使所述主机端的可编程芯片根据数据传输协议对所述系统数据进行封装;
所述主机端的可编程芯片将封装后的系统数据发送至从机端的可编程芯片;
所述从机端的可编程芯片对所述封装后的系统数据进行解封装,并对解封装后的系统数据进行校验,根据校验所得的结果判断所述解封装后的系统数据是否发生变化;
若否,所述从机端的可编程芯片将所述解封装后的系统数据传递至所述从机端的处理器。
在一个实施例中,所述对解封装后的系统数据进行校验之后,所述方法还包括:
所述从机端的可编程芯片根据校验所得的结果生成响应报文,并将所述响应报文发送至所述主机端的可编程芯片;所述响应报文包括反馈所述解封装后的系统数据未发生变化的第一响应报文,以及反馈所述解封装后的系统数据发生了变化的第二响应报文;
若所述主机端的可编程芯片收到所述第二响应报文,则重新向所述从机端的可编程芯片发送所述封装后的系统数据。
在一个实施例中,所述方法还包括:
若所述主机端的可编程芯片收到所述第一响应报文,则向所述主机端的处理器以及所述从机端的可编程芯片发送确认消息;
所述从机端的可编程芯片将所述确认消息转发至所述从机端的处理器。
在一个实施例中,所述方法还包括:
所述主机端的处理器对所述主机端的可编程芯片进行复位,并清除连接所述主机端的处理器与所述主机端的复位后可编程芯片间的通信通道中的无效数据;
所述主机端的处理器生成配置指令,并通过清除了无效数据的通信通道将所述配置指令发送至所述主机端的复位后可编程芯片,以使所述主机端的复位后可编程芯片从所述配置指令中提取所述从机端的网络地址和端口号;
所述主机端的处理器初始化所述主机端的复位后可编程芯片;
所述主机端的可编程芯片将封装后的系统数据发送至从机端的可编程芯片包括:
所述主机端的初始化后可编程芯片根据所述从机端的网络地址和端口号将所述封装后的系统数据发送至所述从机端的可编程芯片。
在一个实施例中,所述主机端和所述从机端部署于第一分布式集群或者第二分布式集群;所述主机端的可编程芯片中部署了第一主机代理和第二主机代理,所述从机端的可编程芯片中部署了第一从机代理和第二从机代理;所述主机端的可编程芯片将封装后的系统数据发送至从机端的可编程芯片包括:
当所述主机端和所述从机端部署于第一分布式集群时,所述主机端的可编程芯片通过所述第一主机代理将所述封装后的系统数据发送至所述第一从机代理;
当所述主机端和所述从机端部署于第二分布式集群时,所述主机端的可编程芯片通过所述第二主机代理将所述封装后的系统数据发送至所述从机端的第二从机代理。
在一个实施例中,所述数据传输协议包括:TCP协议、UDP协议。
一种系统数据发送系统,所述系统包括:主机端和从机端;所述主机端和从机端均内嵌处理器和可编程芯片;
主机端的处理器,用于将系统数据发送至所述主机端的可编程芯片,以使所述主机端的可编程芯片根据数据传输协议对所述系统数据进行封装;
所述主机端的可编程芯片,用于将封装后的系统数据发送至从机端的可编程芯片;
所述从机端的可编程芯片,用于对所述封装后的系统数据进行解封装,并对解封装后的系统数据进行校验,根据校验所得的结果判断所述解封装后的系统数据是否发生变化;
若否,所述从机端的可编程芯片,还用于将所述解封装后的系统数据传递至所述从机端的处理器。
在一个实施例中,所述系统还包括:
所述从机端的可编程芯片,还用于根据校验所得的结果生成响应报文,并将所述响应报文发送至所述主机端的可编程芯片;所述响应报文包括反馈所述解封装后的系统数据未发生变化的第一响应报文,以及反馈所述解封装后的系统数据发生了变化的第二响应报文;
所述主机端的可编程芯片,还用于若收到所述第二响应报文,则重新向所述从机端的可编程芯片发送所述封装后的系统数据。
在一个实施例中,所述系统还包括:
所述主机端的可编程芯片,还用于若收到所述第一响应报文,则向所述主机端的处理器以及所述从机端的可编程芯片发送确认消息;
所述从机端的可编程芯片,还用于将所述确认消息转发至所述从机端的处理器。
在一个实施例中,所述系统还包括:
所述主机端的处理器,还用于对所述主机端的可编程芯片进行复位,并清除连接所述主机端的处理器与所述主机端复位后的可编程芯片间的通信通道中的无效数据;
所述主机端的处理器,还用于生成配置指令,并通过清除了无效数据的通信通道将所述配置指令发送至所述主机端复位后的可编程芯片,以使所述主机端复位后的可编程芯片从所述配置指令中提取所述从机端的网络地址和端口号;
所述主机端的处理器,还用于初始化所述主机端复位后的可编程芯片,以使所述主机端初始化后的可编程芯片根据所述从机端的网络地址和端口号将所述封装后的系统数据发送至所述从机端的可编程芯片。
在一个实施例中,所述主机端和所述从机端部署于第一分布式集群或者第二分布式集群;所述主机端的可编程芯片中部署了第一主机代理和第二主机代理,所述从机端的可编程芯片中部署了第一从机代理和第二从机代理;所述主机端的可编程芯片,还用于:
当所述主机端和所述从机端部署于第一分布式集群时,通过所述第一主机代理将所述封装后的系统数据发送至所述第一从机代理;
当所述主机端和所述从机端部署于第二分布式集群时,通过所述第二主机代理将所述封装后的系统数据发送至所述从机端的第二从机代理。
在一个实施例中,所述数据传输协议包括:TCP协议、UDP协议。
上述实施例中,主机端的处理器将系统数据发送至主机端的可编程芯片,以使主机端的可编程芯片根据数据传输协议对系统数据进行封装;并将封装后的系统数据发送至从机端的可编程芯片。从机端的可编程芯片对封装后的系统数据进行解封装,并对解封装后的系统数据进行校验,根据校验所得的结果判断解封装后的系统数据是否发生变化。若否,从机端的可编程芯片将解封装后的系统数据传递至从机端的处理器。主机端和从机端通过可编程芯片传输系统数据,不需要等待处理器有空闲时即可进行数据发送,降低了数据发送的延时并且,可编程芯片可以并行的执行数据发送任务,进一步缩短了数据发送的时间。
附图说明
图1为一个实施例中系统数据发送方法的应用环境图;
图2为一个实施例中系统数据发送方法的流程示意图;
图3为一个实施例中系统数据发送过程的示意图;
图4为一个实施例中不同分布式集群中系统数据发送方法的示意图;
图5为另一个实施例中系统数据发送方法的流程示意图;
图6为一个实施例中系统数据发送系统的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的系统数据发送方法,可以应用于如图1所示的应用环境中。其中,主机端102通过网络与从机端104进行通信。主机端102的处理器将系统数据发送至主机端102的可编程芯片,以使主机端102的可编程芯片根据数据传输协议对系统数据进行封装;主机端102的可编程芯片将封装后的系统数据发送至从机端104的可编程芯片;从机端104的可编程芯片对封装后的系统数据进行解封装,并对解封装后的系统数据进行校验,根据校验所得的结果判断解封装后的系统数据是否发生变化;若否,从机端104的可编程芯片将解封装后的系统数据传递至从机端104的处理器。其中,主机端102和从机端104可以是终端,也可以是服务器,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种系统数据发送方法,以该方法应用于图1中的主机端和从机端为例进行说明,包括以下步骤:
S202,主机端的处理器将系统数据发送至主机端的可编程芯片,以使主机端的可编程芯片根据数据传输协议对系统数据进行封装。
其中,处理器是计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元,用于解释计算机指令以及处理计算机软件中的数据。处理器主要包括控制器和运算器两个部分,还包括高速缓冲存储器及实现它们之间联系的数据总线和控制总线。处理器例如可以是CPU(Central Processing Unit,中央处理器)。
其中,可编程芯片是专用集成电路中的一种半定制电路,是可编程的逻辑列阵,基本结构包括可编程输入输出单元,可配置逻辑块,数字时钟管理模块,嵌入式块RAM(RandomAccess Memory,随机存储内存),布线资源,内嵌专用硬核,底层内嵌功能单元等。可编程芯片例如可以是FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)。
其中,数据传输协议是在通过网络传输系统数据之前,对系统数据进行封装的协议。主机端根据数据传输协议对系统数据进行封装时,首先对系统数据进行分段,并在每段数据前后添加包头和包尾,将系统数据打包成一个个数据包在网络中传输。数据传输协议可以是面向连接的协议,也可以是非面向连接的协议,也可以是其他自定义的协议。面向连接的协议例如可以是TCP(Transmission Control Protocol,传输控制协议)协议,非面向连接的协议例如可以是UDP(User Datagram Protocol,用户数据报)协议。
数据在传输的过程中,可能会受到脉冲干扰、随机噪声干扰和人为干扰等,这些干扰会使数据发生变化,例如产生差错或丢失。所以,主机端的可编程芯片在对系统数据进行封装时,在系统数据后添加用于校验的校验信息,通过校验信息可以校验封装后的系统数据在传输过程中是否发生了变化。例如,在系统数据后添加奇偶校验位,通过奇偶校验位校验封装后的系统数据在传输过程中是否发生了变化。
其中,系统数据可以是主机端的应用程序产生或从客户端获取的数据。为使分布式系统具有高可用性,主机端将系统数据复制到各个从机端,以使从机端能够和主机端保持数据和状态的同步,也即使主机端和各从机端获取相同的系统数据,并且在对相同的系统数据进行业务处理后,能够使主机端和从机端进行业务处理所依赖的数据发生相同的改变,并且产生相同的业务处理结果。
其中,主机端的处理器可以通过数据通道和主机端的可编程芯片进行通信,与主机端的可编程芯片交互数据或者指令。数据通道例如可以是PCI-E(Peripheral ComponentInterconnect-Express,外设部件互联标准)总线。
S204,主机端的可编程芯片将封装后的系统数据发送至从机端的可编程芯片。
其中,主机端可以与从机端直连或通过以太网连接。当主机端以直连方式和从机端连接时,主机端的可编程芯片通过直连的数据线直接将封装后的系统数据发送至从机端的可编程芯片;当主机端通过以太网和从机端连接时,主机端的可编程芯片通过以太网将封装后的系统数据发送至从机端的可编程芯片。
S206,从机端的可编程芯片对封装后的系统数据进行解封装,并对解封装后的系统数据进行校验,根据校验所得的结果判断解封装后的系统数据是否发生变化。
其中,解封装是与封装相反的过程,从机端的可编程芯片收到封装后的系统数据时,根据封装后的数据包中的包头信息取出系统数据以及校验信息。其中,对解封装后的系统数据进行校验是验证解封装后的系统数据相对于发送前的系统数据是否发生了变化,例如,解封装后的系统数据相对于发送前的系统数据是否出现了数据丢失,或者由于信道中的干扰而产生错误。从机端的可编程芯片对系统数据进行校验的方法包括循环冗余校验、奇偶校验等。
从机端的可编程芯片对系统数据进行校验,按照校验规则计算出校验结果。例如,校验方法为循环冗余校验,从机端的可编程芯片按照循环冗余多项式对解封装出的系统数据进行计算,得到校验码。在一个实施例中,校验方法为循环冗余校验,主机端的可编程芯片在对系统数据进行封装时,通过循环冗余多项式计算出校验码,并将校验码添加在系统数据之后,封装在数据包中。从机端的可编程芯片解封装出系统数据和校验码,并按照与主机端相同的循环冗余多项式对解封装得到的系统数据进行计算,并将计算得到的校验码与从数据包中解封装得到的校验码进行比较,如果二者一致,说明解封装后的系统数据在传输过程中没有发生变化。
S208,若否,从机端的可编程芯片将解封装后的系统数据传递至从机端的处理器。
如果解封装后的系统数据没有发生变化,也即解封装后的系统数据在传输过程中没有发生错误或者数据丢失,则从机端的可编程芯片将解封装后的系统数据传递至从机端的处理器。
上述实施例中,主机端的处理器将系统数据发送至主机端的可编程芯片,以使主机端的可编程芯片根据数据传输协议对系统数据进行封装,并将封装后的系统数据发送至从机端的可编程芯片。从机端的可编程芯片对封装后的系统数据进行解封装,并对解封装后的系统数据进行校验,根据校验所得的结果判断解封装后的系统数据是否发生变化。若否,从机端的可编程芯片将解封装后的系统数据传递至从机端的处理器。主机端和从机端通过可编程芯片传输系统数据,不需要等待处理器有空闲时即可进行数据发送,降低了数据发送的延时并且,可编程芯片可以并行的执行数据发送任务,进一步缩短了数据发送的时间。
在一个实施例中,对解封装后的系统数据进行校验之后,数据发送方法还包括:从机端的可编程芯片根据校验所得的结果生成响应报文,并将响应报文发送至主机端的可编程芯片;响应报文包括反馈解封装后的系统数据未发生变化的第一响应报文,以及反馈解封装后的系统数据发生了变化的第二响应报文;若主机端的可编程芯片收到第二响应报文,则重新向从机端的可编程芯片发送封装后的系统数据。
其中,当从机端的可编程芯片根据校验所得的结果确定解封装后的系统数据未发生变化时,生成第一响应报文,第一响应报文例如可以是ACK报文;当从机端的可编程芯片根据校验所得的结果确定解封装后的系统数据发生了变化时,生成第二响应报文,第二响应报文例如可以是NCK报文。第一响应报文和第二响应报文可以具有不同的数字序号,例如第一响应报文的序号是001,第二响应报文的序号是002。
若主机端的可编程芯片收到第二响应报文,则说明解封装后的系统数据发生了变化,系统数据在传输过程中由于受到干扰而发生了错误或者数据丢失,则为了保证系统数据的可靠传输,主机端的可编程芯片重新向从机端的可编程芯片发送封装后的系统数据。
上述实施例中,从机端的可编程芯片对解封装后的系统数据进行校验,并在根据校验所得的结果确定解封装后的系统数据发生了变化时,向主机端的可编程芯片反馈第二响应报文,使主机端的可编程芯片重新向从机端发送系统数据,保证了从机端收到的解封装后的系统数据是可靠的,也即保证了从机端收到的解封装后的系统数据相对于主机端发送的系统数据未发生变化。
在一个实施例中,系统数据发送方法还包括:若主机端的可编程芯片收到第一响应报文,则向主机端的处理器以及从机端的可编程芯片发送确认消息;从机端的可编程芯片将确认消息转发至从机端的处理器。
若主机端的可编程芯片收到第一响应报文,则说明解封装后的系统数据未发生变化,则主机端的可编程芯片向主机端的处理器发送确认消息,以通知主机端的处理器系统数据已经可靠的传输至从机端,从机端已经与主机端保持了数据的同步,从而在主机端发生故障时,可以使从机端代替主机端进行业务处理。从机端的可编程芯片将确认消息转发至从机端的处理器,以通知从机端的处理器系统数据已经被可靠的传输至从机端。
上述实施例中,当主机端的可编程芯片收到第一响应报文时,向主机端的处理器和从机端的处理器发送确认消息,使主机端和从机端端的处理器能够对数据已经被可靠复制的状态进行确认,保证了主机端和从机端间的同步,使分布式系统具有高可用性。
在一个实施例中,系统数据发送方法还包括:主机端的处理器对主机端的可编程芯片进行复位,并清除连接主机端的处理器与主机端的复位后可编程芯片间的通信通道中的无效数据;主机端的处理器生成配置指令,并通过清除了无效数据的通信通道将配置指令发送至主机端的复位后可编程芯片,以使主机端的复位后可编程芯片从配置指令中提取从机端的网络地址和端口号;主机端的处理器初始化主机端的复位后可编程芯片;主机端的可编程芯片将封装后的系统数据发送至从机端的可编程芯片包括:主机端的初始化后可编程芯片根据从机端的网络地址和端口号将封装后的系统数据发送至从机端的可编程芯片。
其中,主机端的处理器对主机端的可编程芯片进行复位的方式可以是软复位,也即主机端的处理器通过PCI-E总线通道重写主机端的可编程芯片内部的寄存器,使可编程芯片内部的寄存器回到初始状态。
其中,通信通道可以是PCI-E总线通道。主机端的处理器在清除了连接主机端的处理器与主机端的复位后可编程芯片间的通信通道中的无效数据后,通过配置指令将从机端的网络地址和端口号发送至主机端的可编程芯片。主机端的处理器初始化主机端的复位后可编程芯片是指主机端的处理器按照需求将主机端的复位后可编程芯片的寄存器置为预设值。
在一个实施例中,如图3所示,在一个分布式集群被创建后,分布式集群中的主机端和从机端分别对部署于主机端和从机端上的可编程芯片进行软复位。在主机端和从机端执行软复位步骤后,执行同步集群的步骤,也即主机端的处理器清除连接主机端和处理器和主机端的可编程芯片间的无效数据,以及从机端的处理器清除连接从机端和处理器和从机端的可编程芯片间的无效数据。然后,主机端和从机端分别执行配置集群的步骤,也即主机端的处理器将从机端的网络地址和端口号发送至主机端的可编程芯片,从机端的处理器将主机端的网络地址和端口号发送至从机端的可编程芯片,以使主机端的可编程芯片可通过从机端的网络地址和端口号向从机端发送系统数据,从机端的可编程芯片可通过主机端的网络地址和端口号向主机端反馈响应报文。在完成配置集群的步骤后,主机端和从机端的处理器分别向主机端和从机端的可编程芯片发送启动指令,主机端和从机端的可编程芯片接收到启动指令后完成初始化,也即,可编程芯片根据启动指令将芯片中的寄存器置为预设值。
其中,分布式集群是由相互独立的、通过高速网络互联的主机端和从机端组成的系统。在分布式集群完成业务处理后,可以正常停止,或者当主机端或者从机端发生异常时,可以使分布式集群停止业务处理。
上述实施例中,主机端通过处理器完成对可编程芯片的复位,配置从机端的网络地址和端口号,以及初始化可编程芯片,充分利用了主机端处理器处理复杂逻辑计算的能力。在主机端完成初始化之后,由于系统数据的复制过程不需要处理大量的逻辑计算,所以通过主机端的可编程芯片将系统数据复制到从机端。分布式集群中的系统数据发送过程即利用了主机端和从机端的处理器处理复杂逻辑计算的能力,又利用了可编程芯片的并行处理能力,即保证了分布式系统具有高可用性,又可以降低数据发送的延时。
在一个实施例中,主机端和从机端部署于第一分布式集群或者第二分布式集群;主机端的可编程芯片中部署了第一主机代理和第二主机代理,从机端的可编程芯片中部署了第一从机代理和第二从机代理;主机端的可编程芯片将封装后的系统数据发送至从机端的可编程芯片包括:当主机端和从机端部署于第一分布式集群时,主机端的可编程芯片通过第一主机代理将封装后的系统数据发送至第一从机代理;当主机端和从机端部署于第二分布式集群时,主机端的可编程芯片通过第二主机代理将封装后的系统数据发送至从机端的第二从机代理。
其中,第一主机代理和第二主机代理是部署于主机端的可编程芯片中的应用程序。第一从机代理和第二从机代理是部署于从机端的可编程芯片中的应用程序。主机端和从机端还可以部署其他多个主机代理和从机代理。其中,主机端和从机端可以设置每个代理对应于一个分布式集群,也即,主机端和从机端可以分别加入多个分布式集群,使一个代理用于完成一个对应的分布式集群中的数据发送任务。
在一个实施例中,主机端和从机端可以对部署于可编程芯片中的代理所对应的分布式集群进行配置。例如,主机端配置主机代理1代理分布式集群1中的数据发送任务,也即通过主机代理1向部署于分布式集群1中的从机端发送封装后的系统数据。主机端和从机端可以动态的加入或退出分布式集群,当加入或退出分布式集群时,可以重新对可编程芯片中部署的代理所对应的分布式集群进行配置。例如,在初始时,主机端加入了分布式集群1,并配置主机代理1代理分布式集群1对应的数据发送任务。当主机端退出了分布式集群1并加入了分布式集群3时,可以配置主机代理1代理分布式集群3对应的数据发送任务。
主机端和从机端的可编程芯片中均部署多个主机代理和从机代理,可以使多个主机代理和从机代理并行的执行数据发送任务,提高了数据发送的效率,降低了数据发送的时延。并且,主机端和从机端可以对代理所对应的分布式集群进行动态的配置,充分利用了可编程芯片的可编程能力,提高了数据发送的效率。
在一个实施例中,主机端和从机端均部署了多个可编程芯片(FPGA),每个可编程芯片上部署了多个代理。例如,如图4所示,假设主机端和从机端1组成了分布式集群1,主机端和从机端1以及从机端2组成了分布式集群2。主机端的可编程芯片1通过主机代理1代理主机端加入的分布式集群1中的数据发送任务,通过主机代理2代理主机端加入的分布式集群2中的数据发送任务。同理,从机端1的可编程芯片1通过从机代理1代理从机端加入的分布式集群1中的数据发送任务,通过从机代理2代理从机端加入的分布式集群2中的数据发送任务。从机端2的可编程芯片1通过从机代理2代理从机端加入的分布式集群2中的数据发送任务。主机端和从机端中其他的可编程芯片也可以通过部署于其中的代理完成数据发送任务。
主机端和从机端中均部署多个可编程芯片,每个可编程芯片中均部署多个代理,使多个可编程芯片以及多个代理可以并行的进行数据发送,提高了数据发送的效率,降低了数据发送的时延。并且,主机端和从机端可以同时通过多个可编程芯片参与多个分布式集群间的数据发送,不必等一个分布式集群的数据发送完成后再进行另一个分布式集群的数据发送,降低了数据发送的延时。
在一个实施例中,主机端的处理器和主机端的可编程芯片间,以及从机端的处理器和从机端的可编程芯片间通过PCI-E数据通道传输封装后的系统数据和指令。所传输的指令包括处理器向可编程芯片发送的Command指示指令,以及可编程芯片向处理器发送的Commit确认指令。其中,Command指示指令包括用于配置网络地址和端口号的配置指令,以及用于初始化可编程芯片的初始化指令。Commit确认指令包括用于确认解封装后的系统数据未发生变化的确认消息。
在一个实施例中,如图5所示,系统数据发送方法包括如下步骤:
S502,主机端的处理器将系统数据发送至主机端的可编程芯片,以使主机端的可编程芯片根据数据传输协议对系统数据进行封装。
S504,主机端的可编程芯片将封装后的系统数据发送至从机端的可编程芯片。
S506,从机端的可编程芯片对封装后的系统数据进行解封装,并对解封装后的系统数据进行校验,根据校验所得的结果判断解封装后的系统数据是否发生变化。若解封装后的系统数据未发生变化,则执行S508,若解封装后的系统数据发生了变化,则执行S510。
S508,从机端的可编程芯片将解封装后的系统数据传递至从机端的处理器,并将生成的第一响应报文发送至主机端的可编程芯片。
S510,从机端的可编程芯片将生成的第二响应报文发送至主机端的可编程芯片。
S512,若主机端的可编程芯片收到第二响应报文,则重新向从机端的可编程芯片发送封装后的系统数据
S514,若主机端的可编程芯片收到第一响应报文,则向主机端的处理器以及从机端的可编程芯片发送确认消息。
S516,从机端的可编程芯片将确认消息转发至从机端的处理器。
S502至S516的具体内容可以参考上文所述的具体实现过程。
应该理解的是,虽然图2、5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、5中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种系统数据发送系统,包括:主机端602和从机端604;主机端602和从机端604均内嵌处理器和可编程芯片;其中:
主机端602的处理器,用于将系统数据发送至主机端的可编程芯片,以使主机端的可编程芯片根据数据传输协议对系统数据进行封装;
主机端602的可编程芯片,用于将封装后的系统数据发送至从机端的可编程芯片;
从机端604的可编程芯片,用于对封装后的系统数据进行解封装,并对解封装后的系统数据进行校验,根据校验所得的结果判断解封装后的系统数据是否发生变化;
若否,从机端604的可编程芯片,还用于将解封装后的系统数据传递至从机端的处理器。
上述实施例中,主机端的处理器将系统数据发送至主机端的可编程芯片,以使主机端的可编程芯片根据数据传输协议对系统数据进行封装;并将封装后的系统数据发送至从机端的可编程芯片。从机端的可编程芯片对封装后的系统数据进行解封装,并对解封装后的系统数据进行校验,根据校验所得的结果判断解封装后的系统数据是否发生变化。若否,从机端的可编程芯片将解封装后的系统数据传递至从机端的处理器。主机端和从机端通过可编程芯片传输系统数据,不需要等待处理器有空闲时即可进行数据发送,降低了数据发送的延时并且,可编程芯片可以并行的执行数据发送任务,进一步缩短了数据发送的时间。
在一个实施例中,系统还包括:
从机端604的可编程芯片,还用于根据校验所得的结果生成响应报文,并将响应报文发送至主机端的可编程芯片;响应报文包括反馈解封装后的系统数据未发生变化的第一响应报文,以及反馈解封装后的系统数据发生了变化的第二响应报文;
主机端602的可编程芯片,还用于若收到第二响应报文,则重新向从机端的可编程芯片发送封装后的系统数据。
在一个实施例中,系统还包括:
主机端602的可编程芯片,还用于若收到第一响应报文,则向主机端的处理器以及从机端的可编程芯片发送确认消息;
从机端604的可编程芯片,还用于将确认消息转发至从机端的处理器。
在一个实施例中,系统还包括:
主机端602的处理器,还用于对主机端的可编程芯片进行复位,并清除连接主机端的处理器与主机端复位后的可编程芯片间的通信通道中的无效数据;
主机端602的处理器,还用于生成配置指令,并通过清除了无效数据的通信通道将配置指令发送至主机端复位后的可编程芯片,以使主机端复位后的可编程芯片从配置指令中提取从机端的网络地址和端口号;
主机端602的处理器,还用于初始化主机端复位后的可编程芯片,以使主机端初始化后的可编程芯片根据从机端的网络地址和端口号将封装后的系统数据发送至从机端的可编程芯片。
在一个实施例中,主机端602和从机端604部署于第一分布式集群或者第二分布式集群;主机端602的可编程芯片中部署了第一主机代理和第二主机代理,从机端604的可编程芯片中部署了第一从机代理和第二从机代理;主机端602的可编程芯片,还用于:
当主机端602和从机端604部署于第一分布式集群时,通过第一主机代理将封装后的系统数据发送至第一从机代理;
当主机端602和从机端604部署于第二分布式集群时,通过第二主机代理将封装后的系统数据发送至从机端的第二从机代理。
在一个实施例中,数据传输协议包括:TCP协议、UDP协议。
关于数据发送系统的具体限定可以参见上文中对于系统数据发送方法的限定,在此不再赘述。上述系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种系统数据发送方法,其特征在于,所述方法包括:
主机端的处理器将系统数据发送至所述主机端的可编程芯片,以使所述主机端的可编程芯片根据数据传输协议对所述系统数据进行封装;
所述主机端的可编程芯片将封装后的系统数据发送至从机端的可编程芯片;
所述从机端的可编程芯片对所述封装后的系统数据进行解封装,并对解封装后的系统数据进行校验,根据校验所得的结果判断所述解封装后的系统数据是否发生变化;
若否,所述从机端的可编程芯片将所述解封装后的系统数据传递至所述从机端的处理器。
2.根据权利要求1所述的方法,其特征在于,所述对解封装后的系统数据进行校验之后,所述方法还包括:
所述从机端的可编程芯片根据校验所得的结果生成响应报文,并将所述响应报文发送至所述主机端的可编程芯片;所述响应报文包括反馈所述解封装后的系统数据未发生变化的第一响应报文,以及反馈所述解封装后的系统数据发生了变化的第二响应报文;
若所述主机端的可编程芯片收到所述第二响应报文,则重新向所述从机端的可编程芯片发送所述封装后的系统数据。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述主机端的可编程芯片收到所述第一响应报文,则向所述主机端的处理器以及所述从机端的可编程芯片发送确认消息;
所述从机端的可编程芯片将所述确认消息转发至所述从机端的处理器。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述主机端的处理器对所述主机端的可编程芯片进行复位,并清除连接所述主机端的处理器与所述主机端的复位后可编程芯片间的通信通道中的无效数据;
所述主机端的处理器生成配置指令,并通过清除了无效数据的通信通道将所述配置指令发送至所述主机端的复位后可编程芯片,以使所述主机端的复位后可编程芯片从所述配置指令中提取所述从机端的网络地址和端口号;
所述主机端的处理器初始化所述主机端的复位后可编程芯片;
所述主机端的可编程芯片将封装后的系统数据发送至从机端的可编程芯片包括:
所述主机端的初始化后可编程芯片根据所述从机端的网络地址和端口号将所述封装后的系统数据发送至所述从机端的可编程芯片。
5.根据权利要求1所述的方法,其特征在于,所述主机端和所述从机端部署于第一分布式集群或者第二分布式集群;所述主机端的可编程芯片中部署了第一主机代理和第二主机代理,所述从机端的可编程芯片中部署了第一从机代理和第二从机代理;所述主机端的可编程芯片将封装后的系统数据发送至从机端的可编程芯片包括:
当所述主机端和所述从机端部署于第一分布式集群时,所述主机端的可编程芯片通过所述第一主机代理将所述封装后的系统数据发送至所述第一从机代理;
当所述主机端和所述从机端部署于第二分布式集群时,所述主机端的可编程芯片通过所述第二主机代理将所述封装后的系统数据发送至所述从机端的第二从机代理。
6.根据权利要求1所述的方法,其特征在于,所述数据传输协议包括:TCP协议、UDP协议。
7.一种系统数据发送系统,其特征在于,所述系统包括:主机端和从机端;所述主机端和从机端均内嵌处理器和可编程芯片;
主机端的处理器,用于将系统数据发送至所述主机端的可编程芯片,以使所述主机端的可编程芯片根据数据传输协议对所述系统数据进行封装;
所述主机端的可编程芯片,用于将封装后的系统数据发送至从机端的可编程芯片;
所述从机端的可编程芯片,用于对所述封装后的系统数据进行解封装,并对解封装后的系统数据进行校验,根据校验所得的结果判断所述解封装后的系统数据是否发生变化;
若否,所述从机端的可编程芯片,还用于将所述解封装后的系统数据传递至所述从机端的处理器。
8.根据权利要求7所述的系统,其特征在于,所述系统还包括:
所述从机端的可编程芯片,还用于根据校验所得的结果生成响应报文,并将所述响应报文发送至所述主机端的可编程芯片;所述响应报文包括反馈所述解封装后的系统数据未发生变化的第一响应报文,以及反馈所述解封装后的系统数据发生了变化的第二响应报文;
所述主机端的可编程芯片,还用于若收到所述第二响应报文,则重新向所述从机端的可编程芯片发送所述封装后的系统数据。
9.根据权利要求8所述的系统,其特征在于,所述系统还包括:
所述主机端的可编程芯片,还用于若收到所述第一响应报文,则向所述主机端的处理器以及所述从机端的可编程芯片发送确认消息;
所述从机端的可编程芯片,还用于将所述确认消息转发至所述从机端的处理器。
10.根据权利要求7所述的系统,其特征在于,所述系统还包括:
所述主机端的处理器,还用于对所述主机端的可编程芯片进行复位,并清除连接所述主机端的处理器与所述主机端复位后的可编程芯片间的通信通道中的无效数据;
所述主机端的处理器,还用于生成配置指令,并通过清除了无效数据的通信通道将所述配置指令发送至所述主机端复位后的可编程芯片,以使所述主机端复位后的可编程芯片从所述配置指令中提取所述从机端的网络地址和端口号;
所述主机端的处理器,还用于初始化所述主机端复位后的可编程芯片,以使所述主机端初始化后的可编程芯片根据所述从机端的网络地址和端口号将所述封装后的系统数据发送至所述从机端的可编程芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110519858.9A CN112953977B (zh) | 2021-05-13 | 2021-05-13 | 系统数据发送方法、系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110519858.9A CN112953977B (zh) | 2021-05-13 | 2021-05-13 | 系统数据发送方法、系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112953977A true CN112953977A (zh) | 2021-06-11 |
CN112953977B CN112953977B (zh) | 2021-11-02 |
Family
ID=76233792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110519858.9A Active CN112953977B (zh) | 2021-05-13 | 2021-05-13 | 系统数据发送方法、系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112953977B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013108100A1 (en) * | 2012-01-18 | 2013-07-25 | International Business Machines Corporation | External auxiliary execution unit interface to off-chip auxiliary execution unit |
CN107528923A (zh) * | 2017-09-30 | 2017-12-29 | 江苏农林职业技术学院 | 一种网络适配器的数据传输方法及网络适配器 |
CN107769936A (zh) * | 2017-11-02 | 2018-03-06 | 北京飞利信电子技术有限公司 | 一种多通道并发通信系统及方法 |
CN109840240A (zh) * | 2018-12-31 | 2019-06-04 | 武汉芯动科技有限公司 | 芯片、分布式计算装置及方法 |
CN110825342A (zh) * | 2018-08-10 | 2020-02-21 | 北京百度网讯科技有限公司 | 存储调度器件和用于处理信息的系统、方法及装置 |
-
2021
- 2021-05-13 CN CN202110519858.9A patent/CN112953977B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013108100A1 (en) * | 2012-01-18 | 2013-07-25 | International Business Machines Corporation | External auxiliary execution unit interface to off-chip auxiliary execution unit |
CN107528923A (zh) * | 2017-09-30 | 2017-12-29 | 江苏农林职业技术学院 | 一种网络适配器的数据传输方法及网络适配器 |
CN107769936A (zh) * | 2017-11-02 | 2018-03-06 | 北京飞利信电子技术有限公司 | 一种多通道并发通信系统及方法 |
CN110825342A (zh) * | 2018-08-10 | 2020-02-21 | 北京百度网讯科技有限公司 | 存储调度器件和用于处理信息的系统、方法及装置 |
CN109840240A (zh) * | 2018-12-31 | 2019-06-04 | 武汉芯动科技有限公司 | 芯片、分布式计算装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112953977B (zh) | 2021-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10848442B2 (en) | Heterogeneous packet-based transport | |
RU2540815C2 (ru) | Прерывание, по меньшей мере частичное, передачи кадра | |
US11563832B2 (en) | Data sending method and device, data receiving method and device, and system | |
CN100583819C (zh) | 用于分组交换控制的集成电路和方法 | |
JP5331898B2 (ja) | 並列計算用の通信方法、情報処理装置およびプログラム | |
CN100571108C (zh) | 用于在计算节点之间进行数据通信的系统和方法 | |
WO2015058696A1 (zh) | 一种数据传输方法及装置 | |
CN112953977B (zh) | 系统数据发送方法、系统 | |
CN117453609B (zh) | 多芯粒的软件程序配置方法、装置、电子设备及存储介质 | |
US6208645B1 (en) | Time multiplexing of cyclic redundancy functions in point-to-point ringlet-based computer systems | |
US20230388251A1 (en) | Tightly-Coupled, Loosely Connected Heterogeneous Packet Based Transport | |
US20080181242A1 (en) | Communications gateway between two entities | |
WO2007120789A2 (en) | Method and apparatus for processing data at physical layer | |
WO2021036189A1 (zh) | Rdma数据发送及接收方法、电子设备及可读存储介质 | |
WO2022227472A1 (zh) | 基于双通道和rssp-i的通信方法、装置、电子设备及存储介质 | |
CN112882989B (zh) | 协议处理系统和协议数据处理方法 | |
US7962656B1 (en) | Command encoding of data to enable high-level functions in computer networks | |
Biagioni et al. | The Distributed Network Processor: a novel off-chip and on-chip interconnection network architecture | |
JP4809679B2 (ja) | ストリームデータ通信方法及びストリームデータ通信装置 | |
US20220405223A1 (en) | Method and system for data transactions on a communications interface | |
WO2024183524A1 (zh) | 基于移动终端的统一通信方法、电子设备及介质 | |
EP3065351B1 (en) | Method and device for issuing flow entry | |
CN114443206A (zh) | 通信方法及装置 | |
CN117544705A (zh) | 一种基于硬件加速的终端处理方法及装置 | |
CN116647306A (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 | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100032 521c, 5th floor, 31 Fuchengmenwai street, Xicheng District, Beijing Patentee after: Huarui distributed (Beijing) Technology Co.,Ltd. Patentee after: Shenzhen Huarui Distributed Technology Co., Ltd Address before: 100032 521c, 5th floor, 31 Fuchengmenwai street, Xicheng District, Beijing Patentee before: Huarui distributed (Beijing) Technology Co.,Ltd. Patentee before: Shenzhen Huarui Financial Technology Co., Ltd |