CN111064680B - 一种通信装置及数据处理方法 - Google Patents
一种通信装置及数据处理方法 Download PDFInfo
- Publication number
- CN111064680B CN111064680B CN201911159613.9A CN201911159613A CN111064680B CN 111064680 B CN111064680 B CN 111064680B CN 201911159613 A CN201911159613 A CN 201911159613A CN 111064680 B CN111064680 B CN 111064680B
- Authority
- CN
- China
- Prior art keywords
- data
- queue
- identifier
- completion queue
- event
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
- H04L49/9068—Intermediate storage in different physical parts of a node or terminal in the network interface card
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种通信装置及数据处理方法,涉及通信领域,解决了在服务器共用一个QP和CQ进行读操作和写操作时,无法获取到事件数据的问题。具体方案为:通过在通信装置中新增设置用于存储事件数据的CQ,将业务数据与事件数据分离存储,从而,使得处理器可以获取到对应线程的事件数据。
Description
技术领域
本申请涉及通信领域,尤其涉及一种通信装置及数据处理方法。
背景技术
对于基于远程直接内存访问(Remote Direct Memory Access,RDMA)协议进行通信的服务器,本端服务器可以根据对端服务器的接收缓存的大小(buffer size)向对端服务器发送业务数据,即对对端服务器进行写操作。对端服务器读取接收缓存中的业务数据后,可以将更新的接收缓存的大小通知给本端服务器,以便于本端服务器根据更新的接收缓存的大小向对端服务器发送业务数据。更新的接收缓存的大小可以是事件数据。
在一些场景下,本端服务器支持运行的应用进程可能会启动多个线程(如:读线程和写线程)。所谓读线程可以理解为本端服务器对对端服务器进行读操作。例如,本端服务器的处理器根据队列对(queue pair,QP)中的传输指令(命令)条目(work request entry,WQE)接收对端服务器发送的业务数据和/或事件数据。所谓写线程可以理解为本端服务器对对端服务器进行写操作。例如,本端服务器的处理器根据QP中的WQE向对端服务器发送业务数据和/或事件数据。由于本端服务器的处理器通过一个接口与QP连接,QP与一个完成队列(complete queue,CQ)连接,本端服务器的处理器无法区别业务数据和事件数据,因此,本端服务器运行的读线程读取业务数据时,也可能读取了与写线程相关的事件数据,导致本端服务器运行的写线程无法读取到事件数据,写操作失败。
发明内容
本申请提供一种通信装置及数据处理方法,解决了在服务器共用一个QP和CQ进行读操作和写操作时,无法获取到事件数据的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请提供了一种通信装置,所述通信装置包括接口、处理单元和第一类完成队列,第一类完成队列包括至少一个完成队列,第一类完成队列中的每个完成队列用于存储一种事件类型的事件数据,接口与处理单元连接,处理单元与第一类完成队列连接。其中,接口用于接收第一报文,第一报文包括第一标识和第一数据,第一标识用于指示第一事件所属的事件类型,第一数据为与第一事件相关的数据;处理单元,于根据第一标识确定第一完成队列,并将第一数据存储到第一完成队列,第一完成队列属于第一类完成队列,第一完成队列用于存储第一事件的数据。
本申请提供的通信装置,通过在该通信装置中新增设置用于存储事件数据的CQ,从而,将与业务相关的数据和与事件相关的数据分别存储到不同的CQ中,避免由于与业务相关的数据和与事件相关的数据存储到一个CQ中发生抢占数据的情况,使得服务器的处理器可以获取到对应线程的与事件相关的数据。
在一种可能的实现方式中,处理单元,用于:根据第一标识和第一关联关系确定第一完成队列的物理标识,第一关联关系用于指示事件类型的标识与完成队列的物理标识的关联关系,第一完成队列的物理标识用于指示第一完成队列;将第一数据存储到第一完成队列的物理标识指示的第一完成队列。从而,以便于处理单元根据第一关联关系确定存储与事件相关的数据的完成队列。
在另一种可能的实现方式中,通信装置还包括寄存器,处理单元,还用于将第一关联关系写入寄存器。
在另一种可能的实现方式中,第一标识和第一数据位于第一报文的报文头中。
在另一种可能的实现方式中,处理单元,还用于发送第一信号,第一信号用于指示第一数据存储完成。从而,以便于通知服务器的处理器有更新的与事件相关的数据。
在另一种可能的实现方式中,通信装置还包括队列对,队列对与处理单元连接,队列对包括接收队列,接收队列用于存储至少一个接收队列条目,第一报文还包括第二数据,第二数据为与第一业务相关的数据,处理单元,还用于从接收队列中获取第一接收队列条目,并将第二数据存储到第一接收队列条目指示的位置。
在另一种可能的实现方式中,通信装置还包括第二类完成队列,第二类完成队列用于存储与业务相关的数据的存储位置信息,处理单元,还用于将第二数据的存储位置信息存储到第二类完成队列。从而,以便于服务器的处理器从第二类完成队列获取第二数据。
在另一种可能的实现方式中,队列对还包括发送队列,发送队列用于存储至少一个发送队列条目,处理单元,还用于接收来自第一服务器的处理器的第二标识和第三数据,第二标识用于指示第二事件所属的事件类型,第三数据为与第二事件相关的数据;处理单元,还用于从发送队列中获取第一发送队列条目,并将第二标识和第三数据存储到第一发送队列条目;处理单元,还用于从第一发送队列条目中获取第二标识和第三数据,生成第二报文,第二报文包括第二标识和第三数据;接口,还用于向第二服务器发送第二报文。从而,使第二服务器接收到与第二事件相关的数据。
在另一种可能的实现方式中,第一发送队列条目还包括存储第四数据的位置信息,第四数据为与第二业务相关的数据,处理单元,还用于根据存储第四数据的位置信息获取第四数据,第二报文还包括第四数据。
第二方面,本申请提供了一种网卡,包括如上述第一方面所述的通信装置。可选的,网卡还可以包括存储器等。
第三方面,本申请提供了一种第一服务器,第一服务器包括如上述第二方面所述的网卡和处理器。其中,所述处理器,用于根据第一标识确定网卡中的第一完成队列,并从第一完成队列获取第一数据,第一标识用于指示第一事件所属的事件类型,第一完成队列属于第一类完成队列,第一完成队列用于存储第一事件的数据,第一数据为与第一事件相关的数据。由于通信装置中新增设置用于存储事件数据的第一类完成队列,从而,将与业务相关的数据和与事件相关的数据分别存储到不同的完成队列中,使得第一服务器的处理器可以获取到对应线程的与事件相关的数据。
在一种可能的实现方式中,处理器,用于根据第一标识和第二关联关系确定第一完成队列的虚拟标识,第二关联关系用于指示事件类型的标识与第一类完成队列的虚拟标识的关联关系,第一完成队列的虚拟标识用于指示第一完成队列;从第一完成队列的虚拟标识指示的第一完成队列获取第一数据。从而,以便于第一服务器的处理器根据第二关联关系确定存储与事件相关的数据的完成队列,获取与事件相关的数据。
在另一种可能的实现方式中,处理器,还用于向网卡发送第二标识和第三数据,第二标识用于指示第二事件所属的事件类型,第三数据为与第二事件相关的数据。从而,以便于网卡发送与第二事件相关的数据。
第四方面,本申请提供了一种数据处理方法,该方法可应用于网卡,或者该方法可应用于可以支持网卡实现该方法的通信装置,例如该通信装置包括芯片系统。例如,该方法应用于通信装置,该通信装置包括接口、处理单元和第一类完成队列,第一类完成队列包括至少一个完成队列,第一类完成队列中的每个完成队列用于存储一种事件类型的事件数据,接口与处理单元连接,处理单元与第一类完成队列连接,其中,接口接收到第一报文,处理单元根据第一标识确定第一完成队列,并将第一数据存储到第一完成队列,第一完成队列属于第一类完成队列,第一完成队列用于存储第一事件的数据。第一报文包括第一标识和第一数据,第一标识用于指示第一事件所属的事件类型,第一数据为与第一事件相关的数据。
在一种可能的实现方式中,处理单元根据第一标识确定第一完成队列,并将第一数据存储到第一完成队列,包括:根据第一标识和第一关联关系确定第一完成队列的物理标识,并将第一数据存储到第一完成队列的物理标识指示的第一完成队列。第一关联关系用于指示事件类型的标识与完成队列的物理标识的关联关系,第一完成队列的物理标识用于指示第一完成队列。
在另一种可能的实现方式中,通信装置还包括寄存器,方法还包括:处理单元将第一关联关系写入寄存器。
在另一种可能的实现方式中,第一标识和第一数据位于第一报文的报文头中。
在另一种可能的实现方式中,方法还包括:处理单元发送第一信号,第一信号用于指示第一数据存储完成。
在另一种可能的实现方式中,通信装置还包括队列对,队列对与处理单元连接,队列对包括接收队列,接收队列用于存储至少一个接收队列条目,第一报文还包括第二数据,第二数据为与第一业务相关的数据,方法还包括:处理单元从接收队列中获取第一接收队列条目,并将第二数据存储到第一接收队列条目指示的位置。
在另一种可能的实现方式中,通信装置还包括第二类完成队列,第二类完成队列用于存储与业务相关的数据的存储位置信息,方法还包括:处理单元将第二数据的存储位置信息存储到第二类完成队列。
在另一种可能的实现方式中,队列对还包括发送队列,发送队列用于存储至少一个发送队列条目,方法还包括:处理单元接收到来自第一服务器的第二标识和第三数据,从发送队列中获取第一发送队列条目,并将第二标识和第三数据存储到第一发送队列条目。在处理单元从第一发送队列条目中获取第二标识和第三数据,生成第二报文,通过接口向第二服务器发送第二报文。其中,第二报文包括第二标识和第三数据。第二标识用于指示第二事件所属的事件类型,第三数据为与第二事件相关的数据。
在另一种可能的实现方式中,第一发送队列条目还包括存储第四数据的位置信息,第四数据为与第二业务相关的数据,方法还包括:处理单元根据存储第四数据的位置信息获取第四数据,第二报文还包括第四数据。
有益效果可以参见第一方面的描述此处不再赘述。
第五方面,本申请提供了一种数据处理方法,该方法可应用于第一服务器,或者该方法可应用于可以支持第一服务器实现该方法的通信装置,例如该通信装置包括芯片系统。例如,该方法应用于第一服务器,该第一服务器包括上述第二方面所述的网卡和处理器。其中,所述处理器根据第一标识确定网卡中的第一完成队列,并从第一完成队列获取第一数据,第一标识用于指示第一事件所属的事件类型,第一完成队列属于第一类完成队列,第一完成队列用于存储第一事件的数据,第一数据为与第一事件相关的数据。
在一种可能的实现方式中,处理器根据第一标识确定网卡中的第一完成队列,并从第一完成队列获取第一数据,包括:根据第一标识和第二关联关系确定第一完成队列的虚拟标识,并从第一完成队列的虚拟标识指示的第一完成队列获取第一数据。第二关联关系用于指示事件类型的标识与第一类完成队列的虚拟标识的关联关系,第一完成队列的虚拟标识用于指示第一完成队列。
在另一种可能的实现方式中,方法还包括:处理器向网卡发送第二标识和第三数据,第二标识用于指示第二事件所属的事件类型,第三数据为与第二事件相关的数据。
有益效果可以参见第二方面的描述此处不再赘述。
第六方面,本申请提供了一种芯片系统,该芯片系统包括通信装置,用于实现上述各方面的方法中网卡的功能。在一种可能的设计中,所述芯片系统还包括存储器,用于保存程序指令和/或数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
本申请中,通信装置、网卡和服务器的名字对设备本身不构成限定,在实际实现中,这些设备可以以其他名称出现。只要各个设备的功能和本申请类似,属于本申请权利要求及其等同技术的范围之内。
附图说明
图1为一实施例提供的一种通信系统的结构示例图;
图2为一实施例提供的一种通信装置的组成示意图;
图3为一实施例提供的RoCE的报文结构示意图;
图4为一实施例提供的另一种通信系统的组成示意图;
图5为一实施例提供的一种处理数据的逻辑示意图;
图6为一实施例提供的一种数据处理方法的流程图。
具体实施方式
本申请说明书和权利要求书及上述附图中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于限定特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
为了更好理解本申请提供的技术方案,下面对本申请涉及的术语和技术概念进行简单说明。
RDMA是一种远程的DMA技术,为了解决网络传输中服务器端数据处理的延迟而产生的。RDMA允许用户态的应用程序读取或写入远程内存,无需内核(kernel)干预和内存拷贝,因此,具有低时延、高带宽、低处理器占用率的优势。内核是操作系统最基本的部分,是一个操作系统的核心。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件。内核负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着操作系统的性能和稳定性。内核的分类可分为单内核、双内核和微内核。
图1为本申请提供的一种通信系统的结构示例图。如图1所示,通信系统包括服务器100和服务器200。服务器100和服务器200之间可以通过网络300进行消息通信。发送数据的服务器可以称为发送端服务器,接收数据的服务器可以称为接收端服务器。对于一个服务器来说,当该服务器用于发送数据时,该服务器可以被称为发送端服务器,当该服务器用于接收数据时,该服务器可以被称为接收端服务器。网络300可以是以太网,也就是说服务器之间可以使用传输控制协议/互连的协议(Transmission Control Protocol/internetprotocol,TCP/IP)协议进行通信;网络300也可以是基于RDMA技术的网络。服务器可以根据RDMA技术通过服务器的网卡将数据从一个系统快速移动到远程系统存储器中,而不需要服务器中处理器的参与,由此减少服务器的处理器的负载,提升服务器之间数据传输效率。例如,基于RDMA技术的网络可以是无线宽带(InfiniBand,IB)网络、通过以太网使用远程直接内存访问(RDMA over Converged Ethernet,RoCE)网络、iWapp网络等,本申请对此不作限定。
服务器100和服务器200中的每个服务器均包括硬件层和软件层,图1中仅示意出了服务器100的结构。其中,服务器100的硬件层包括网卡110、处理器120和存储器130等。
所述处理器120可以是中央处理器(central processing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
值得说明的是,图1中仅以服务器硬件层中网卡、存储器和处理器的数量均为1为例,本申请实施例对于同一服务器中网卡、存储器和处理器的数量并不构成对本申请实施例的限定。
网卡110可以是支持RDMA技术的网络接口卡,也可以是主机通道适配器(hostchannel adapter,HCA),其主要功能是将多个服务器连接至网络,使得服务器之间能够通过支持RDMA技术的网络互相通信。网卡可以通过外接光纤、电缆等连接到网络中。网卡可以插于计算机的PCIe插槽上,并通过PCIe与服务器连接。或者网卡可以通过某种特定的(或私有的)总线与服务器连接,本申请实施例对此不进行限定。可以理解的是,在物理实现上,网卡可以作为服务器的一部分,也可以是独立于服务器的一个器件/设备。为了便于描述,下文中均将网卡描述为服务器的网卡。网卡可以包括一个或多个接口,具体是指用于接收数据的接口。网卡还可以包括处理单元、缓存、内存和寄存器。网卡内的内存或缓存可以利用随机存取存储器(random access memory,RAM)类型的存储介质实现。
处理器、存储器和桥片等芯片可以安装在服务器的底板上,用于对其他扩展卡进行控制,实现处理器的功能。处理器上运行有操作系统和应用APP等软件。例如,RDMA网卡作为扩展卡,通过PCIe总线与底板连接,进而与处理器进行交互。RDMA网卡包括对RDMA协议进行卸载的芯片和存放数据的内存等,通过光模块连接光纤与其他RDMA网卡进行通信。两个RDMA网卡之间可以直接通过光纤进行连接,也可以途经交换网络(交换机等等),本申请对此不作限定。
软件层是运行在硬件层上的程序代码。具体地,软件层又可以分成若干个层,层与层之间通过软件接口通信。软件层包括应用层、驱动层和操作系统层。其中,应用层包括一系列运行应用程序的程序代码。驱动层用于实现硬件层和软件层之间消息交互。驱动层包含用户态网卡驱动层和内核态网卡驱动层等。操作系统层包括操作系统程序代码和协议栈。操作系统可以是Linux或Windows等。协议栈是指按照通信协议所涉及的不同层级划分,并处理对应层级数据处理的程序代码的集合。
在一种可能的实现方式中,例如,在IB网络架构中,协议栈可以包括应用层、传输层、网络层、链路层和物理层。应用层的功能可以在软件层实现。传输层、网络层、链路层和物理层的功能可以在网卡中实现。
在服务器传输数据之前,可以为服务器预先配置多个队列对(queue pair,QP),每个QP可以包括发送队列(send queue,SQ)和接收队列(receive queue,RQ)。每个SQ用于存储至少一个SQE。每个RQ用于存储至少一个接收队列条目(receive queue entry,RQE)。SQE和RQE可以统称为传输指令(命令)条目(work request entry,WQE)。
可以理解的是,所谓SQE为服务器的网卡从内存中获取数据所需的指令信息。所谓RQE为服务器接收到数据之后存储数据所需的指令信息。
在一些实施例中,接收端服务器或发送端服务器可以根据SQE或RQE中指令信息从其他存储介质(例如,内存)中获取数据,该数据可以是与业务相关的数据。
接收端服务器和发送端服务器基于QP进行通信,每个服务器中包括一个或多个QP,不同服务器中QP的数量可以相同,也可以不同。示例地,以图1所述通信系统为例,当服务器100作为发送端服务器,服务器200作为接收端服务器时,服务器100中建立一个QP11,QP11中包括SQ11和RQ11,服务器200中建立有一个QP21,QP21中包括SQ21和RQ21。服务器100和服务器200通信过程中,预先建立QP11和QP21的对应关系,相应地,发送端服务器可以基于SQ11中的SQE从内存中获取数据,接收端服务器可以基于RQ11中的RQE存储接收到的所述数据。
服务器还可以为每个QP配置完成队列(complete queue,CQ),CQ用于存储完成队列条目(complete queue entry,CQE)。在服务器的网卡从内存中读取完成数据或向内存写入完成数据之后,网卡可以向处理器发送CQE。所述CQE用于指示数据处理完成。在一些实施例中,CQE包括与业务相关的数据的存储位置信息。
为了解决服务器共用一个QP和CQ进行读操作和写操作时,无法获取到事件数据的问题,本申请实施例提供一种通信装置,通过在该通信装置中新增设置用于存储事件数据的CQ,从而,将与业务相关的数据和与事件相关的数据分别存储到不同的CQ中,避免由于与业务相关的数据和与事件相关的数据存储到一个CQ中发生抢占数据的情况,使得处理器可以获取到对应线程的与事件相关的数据。
接下来,结合附图对本申请实施例的实施方式进行详细描述。
图2是本申请的实施例提供的一种通信装置的示意图。在这里假设通信装置为图1所示的服务器100中网卡110中的装置。如图2所示,该通信装置包括接口111、处理单元112和第一类完成队列113。第一类完成队列包括至少一个完成队列。其中,接口111与处理单元112连接。处理单元112与第一类完成队列113连接。
需要说明的是,第一类完成队列包括的每个完成队列用于存储一种事件类型的事件数据。第一类完成队列中的任意两个完成队列对应的事件类型不同。
可选的,第一类完成队列中的完成队列可以称为事件完成队列。事件可以理解为支持传输与业务相关的数据的服务。例如,本端服务器运行的写线程可以根据对端服务器的接收缓存对对端服务器进行写操作,则事件可以是接收缓存事件。与业务相关的数据可以是指应用程序产生的数据。可选的,与业务相关的数据通常位于报文的载荷中。
在一些实施例中,用户可以自定义事件类型,预先设置事件类型与事件完成队列的对应关系。每种事件类型包括至少一个事件。一个事件完成队列对应一种事件类型,不同的事件完成队列对应的事件类型不同。
在一种可能的设计中,第一类完成队列包括的每个完成队列可以基于RDMA硬件设计实现。例如,完成队列可以是一个先进先出(First Input First Output,FIFO)的逻辑电路。可理解的,第一类完成队列包括的至少一个完成队列之间是物理隔离,从而,基于完成队列之间的物理隔离,实现不同事件类型的事件间的物理隔离。
在另一种可能的设计中,接口111可以是网卡110的接口,接口111用于接收与事件相关的数据和与业务相关的数据。例如,接口111可以是连接光纤的端口,或者,接口111可以是连接电缆的端口,不予限定。处理单元112可以是网卡110中一部分逻辑电路,该部分逻辑电路用于实现处理单元112的功能。
在一些实施例中,接口111,用于接收第一报文,第一报文包括第一标识和第一数据。其中,第一标识用于指示第一事件所属的事件类型,第一数据为与第一事件相关的数据。示例的,接口111接收第一报文。例如,接口111接收来自服务器200的第一报文。
在一种可能的设计中,第一标识和第一数据可以设置于报文的头部。例如,如图3中的(a)所示,提供了一种RoCE的报文结构示意图。该RoCE的报文可以是运行在层2(如:以太链路层(Ehternet Link Layer))。RoCE的报文包括以太网头(ethernet header)字段、以太类型(ethernet type)字段、无线宽带全局路由头(InfiniBand global routingheader,IB GRH)字段、无线宽带基本传输头(InfiniBand basic transmission,IB BTH)字段、无线宽带载荷(InfiniBand payload,IB payload)字段、接口循环冗余校验(interfacecyclic redundancy check,ICRC)字段和帧校验序列(frame check sequence,FCS)字段。以太类型的取值可以是0x8915。第一标识和第一数据可以设置于报文的头部的IB BTH字段中。
如图3中的(b)所示,提供了一种RoCE的报文结构示意图。该RoCE的报文可以是运行在层3(用户数据协议(User Data Protocol,UDP)/IPv4或UDP/IPv6之上)。由于该RoCE报文可以在层3之上进行路由,所以RoCE报文又可以称为Routable RoCE(简称RRoCE)。RoCE的报文包括ethernet header字段、ethernet type字段、UDP header字段、IB GRH字段、IBBTH字段、IB payload字段、ICRC字段和FCS字段。第一标识和第一数据可以设置于报文的头部的IB BTH字段中。可选的,由于事件数据的数据量较小,可以以ROCE inline发送模式将事件数据放在IB BTH中。
在另一种可能的设计中,事件数据的数据量较大的情况下,事件数据也可以设置于载荷中。例如,图3中的(a)或图3中的(b)所示的IB payload中。
处理单元112,用于根据第一标识确定第一完成队列,并将第一数据存储到第一完成队列。
第一完成队列属于第一类完成队列。第一完成队列用于存储第一事件的数据。
在一些实施例中,处理单元112可以根据第一标识和第一关联关系确定第一完成队列的物理标识,并将第一数据存储到第一完成队列的物理标识指示的第一完成队列。第一完成队列的物理标识用于指示第一完成队列。第一完成队列的物理标识为硬件设备可以识别的标识。例如,该通信装置可以是网卡中的一部分,第一完成队列的物理标识可以是网卡中的处理单元识别第一完成队列的标识。第一关联关系用于指示事件类型的标识与完成队列的物理标识的关联关系。
第一关联关系可以以表格的形式呈现,即表1呈现了第一关联关系。示例的,如表1所示。
表1
事件类型的标识 | 完成队列的物理标识 |
E1 | ECQ1 |
E2 | ECQ2 |
E3 | ECQ3 |
由表1可知,E1是指示事件类型1。E2指示事件类型2。E3指示事件类型3。ECQ1指示事件完成队列1。ECQ2指示事件完成队列2。ECQ3指示事件完成队列3。事件类型1与事件完成队列1关联,事件完成队列1用于存储事件类型1的事件数据。事件类型2与事件完成队列2关联,事件完成队列2用于存储事件类型2的事件数据。事件类型3与事件完成队列3关联,事件完成队列3用于存储事件类型3的事件数据。
例如,当第一标识为E1时,可以根据E1确定与E1关联的ECQ1,并将第一数据存储到ECQ1指示的事件完成队列1。第一数据为事件1的数据。
又例如,当第一标识为E2时,可以根据E2确定与E1关联的ECQ2,并将第一数据存储到ECQ2指示的事件完成队列2。第一数据为事件2的数据。
又例如,当第一标识为E3时,可以根据E3确定与E3关联的ECQ3,并将第一数据存储到ECQ3指示的事件完成队列3。第一数据为事件3的数据。
可选的,存储到第一完成队列的第一数据可以是事件完成队列条目(eventcomplete queue entry,ECQE)。
需要说明的是,表1只是以表格的形式示意第一关联关系在存储设备中的存储形式,并不是对第一关联关系在存储设备中的存储形式的限定,当然,第一关联关系在存储设备中的存储形式还可以以其他的形式存储,本申请实施例对此不做限定。
如图2所示,所述通信装置还包括寄存器114。处理单元112与寄存器114连接。处理单元112,还用于将第一关联关系写入寄存器。以便于处理单元从寄存器114获取第一关联关系,根据事件类型的标识查询完成队列的物理标识,将与事件相关的数据存储到完成队列的物理标识指示的完成队列。
可选的,该通信装置可以是网卡中的一部分。示例的,如图4所示,该通信装置可以是图1中所示的网卡110中的一部分。处理单元112,还用于发送第一信号,第一信号用于指示第一数据存储完成。例如,网卡110向服务器100的处理器120发送第一信号,以便于处理器120从第一完成队列中获取第一数据。
如图2所示,所述通信装置还可以包括第二类完成队列115、SQ116和RQ117。SQ116和RQ117组成QP。处理单元112分别与第二类完成队列115、SQ116和RQ117连接。
第二类完成队列115用于存储与业务相关的数据的存储位置信息。第二类完成队列115可以称为业务完成队列。第二类完成队列115可以基于RDMA硬件设计实现。例如,第二类完成队列115可以是一个FIFO的逻辑电路。可理解的,第二类完成队列115与第一类完成队列包括的至少一个完成队列之间是物理隔离,从而,基于完成队列之间的物理隔离,实现物理隔离与业务相关的数据和与事件相关的数据。
接收队列用于存储至少一个RQE。发送队列用于存储至少一个SQE。
可选的,SQ116和RQ117组成的QP用于发送端服务器和接收端服务器建立的一个会话,第一类完成队列和第二类完成队列115可以与SQ116和RQ117逻辑上绑定的,以便于发送端服务器和接收端服务器接收数据和发送数据。
可选的,发送端服务器和接收端服务器建立的每个会话是由一个QP、第一类完成队列和第二类完成队列支持的,因此,通信装置可以包含多个QP、多个第二类完成队列和多个第一类完成队列,每个QP与一个第二类完成队列和第一类完成队列关联。
可选的,发送端服务器和接收端服务器可以根据多个QP建立一个会话。
在另一些实施例中,第一报文还包括第二数据,第二数据为与第一业务相关的数据。处理单元112,还用于从接收队列中获取第一接收队列条目,并将第二数据存储到第一接收队列条目指示的位置。同时,处理单元将第二数据的存储位置信息存储到第二类完成队列。存储到第二类完成队列的第二数据的存储位置信息可以是CQE,从而,以便于服务器中的处理器根据该CQE获取第二数据。
如图5所示,一实施例提供的一种处理单元处理数据的逻辑示意图。在接口111接收到第一报文后,缓存第一报文包括的第一标识、第一数据和第二数据,等待到可以处理第一报文时,处理单元112解析QP中的WQE(如:RQ116中的RQE),将第二数据存储到解析的结果指示的缓存中。例如,该缓存可以是服务器中的内存。与该QP绑定的第二类完成队列115生成CQE,CQE中存储第二数据的存储位置信息。处理单元根据第一标识查询第一关联关系,确定第一标识对应的第一完成队列的物理标识,将第一数据存储到第一完成队列的物理标识指示的第一完成队列。
在将第一数据存储到第一完成队列后,第一服务器中的处理器可以从第一完成队列中获取第一数据。在本文中,第一服务器可以是指服务器100。
在一些实施例中,第一服务器中的处理器用于通过RDMA verbs POLL_CQ接口函数周期性地轮询第一完成队列,在第一完成队列存储有第一数据的情况下,从第一完成队列中获取第一数据。
在另一些实施例中,第一服务器中的处理器用于根据第一标识确定第一完成队列,并从第一完成队列获取第一数据。可选的,处理器根据第一标识和第二关联关系确定第一完成队列的虚拟标识,并从第一完成队列的虚拟标识指示的第一完成队列获取第一数据。第二关联关系用于指示事件类型的标识与第一类完成队列的虚拟标识的关联关系,第一完成队列的虚拟标识用于指示第一完成队列。第一完成队列的虚拟标识为处理器运行的应用程序可以识别的标识。例如,第一完成队列的虚拟标识可以是第一服务器中的处理器运行的应用程序识别第一完成队列的标识。
在另一些实施例中,第一服务器中的处理器可以通过RDMA verbs POLL_CQ接口函数从对应的第二类完成队列中获取CQE,根据CQE的指示的位置获取第二数据。例如,CQE的指示的内存的虚拟地址,处理器根据内存的虚拟地址从内存中获取第二数据。
可选的,第一服务器中的处理器可以运行多个进程,每个进程包括多个线程。可以预先设置每个线程对应的事件完成队列,以便于每个线程可以获取到所需的事件的数据。线程可以是读线程或写线程。
可以理解的是,本申请的实施例中的处理器可以是中央处理单元(CentralProcessing Unit,CPU),还可以是其它通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其它可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
在另一些实施例中,接口111还可以用于发送与事件相关的数据和与业务相关的数据。例如,处理单元112可以接收来自第一服务器的处理器的第二标识和第三数据后,从发送队列中获取第一SQE,并将第二标识和第三数据存储到第一SQE。等待可以发送时机到达后,处理单元112从第一SQE中获取第二标识和第三数据,生成第二报文,通过接口111向第二服务器发送第二报文。第二报文包括第二标识和第三数据。第二标识用于指示第二事件所属的事件类型,第三数据为与第二事件相关的数据。在本文中,第二服务器可以是指服务器200。
可选的,第一SQE还包括存储第四数据的位置信息,第四数据为与第二业务相关的数据。处理单元还可以根据存储第四数据的位置信息获取第四数据,发第四数据。例如,第二报文还包括第四数据。
可选的,可以通过RDMA verbs应用程序接口(Application Program Interface,API)发送与事件相关的数据和与业务相关的数据。
示例的,假设事件类型为接收缓存,第一完成队列存储服务器100的接收缓存的大小。服务器100的处理器120可以利用RDMA verbs POLL_CQ接口函数从对应的第一完成队列中获取服务器100的接收缓存的大小,服务器100的处理器120向处理单元112发送报文发送指令,报文发送指令可以包括接收缓存的类型和接收缓存的大小,处理单元112接收到报文发送指令后,可以先将接收缓存的类型和接收缓存的大小缓存到第一SQE。等待可以发送时机到达后,从第一SQE中获取接收缓存的类型和接收缓存的大小,并发送接收缓存的类型和接收缓存的大小。
服务器200内网卡的结构可以参考上述服务器100中的网卡120的阐述,不予赘述。
图6是本申请的实施例提供的一种数据处理方法的流程图。在这里以第一服务器向第二服务器发送与事件相关的数据和与业务相关的数据为例进行说明。第一服务器包括第一处理器和第一网卡,第一网卡包括第一接口和第一处理单元。第二服务器包括第二处理器和第二网卡,第二网卡包括第二接口和第二处理单元。第一网卡和第二网卡的结构可以如图2所示的通信装置。如图6所示,所述方法还包括以下步骤。
S601、第一处理器向第一网卡发送第一标识和第一数据。
其中,第一标识用于指示第一事件所属的事件类型,第一数据为与第一事件相关的数据。
S602、第一网卡接收来自第一处理器的第一标识和第一数据。
S603、第一网卡将第一标识和第一数据存储到第一SQE。
在一些实施例中,第一网卡中的第一处理器获取第一SQE,并将第一标识和第一数据存储到第一SQE。等待可以发送时机到达后,执行S604。
S604、第一网卡从第一SQE中获取第一标识和第一数据。
S605、第一网卡根据第一SQE包含的第二数据的位置信息获取第二数据。
第二数据为与第一业务相关的数据。
S606、第一网卡生成第一报文,第一报文包括第一标识、第一数据和第二数据。
S607、第一网卡向第二服务器发送第一报文。
在一些实施例中,第一网卡通过第一接口向第二服务器的第二网卡发送第一报文。
S608、第二网卡接收来自第一网卡的第一报文。
S609、第二网卡根据第一标识确定第一完成队列,并将第一数据存储到第一完成队列。
在一些实施例中,第二网卡的第二处理单元可以根据第一标识和第一关联关系确定第一完成队列的物理标识,并将第一数据存储到第一完成队列的物理标识指示的第一完成队列。第一完成队列属于第一类完成队列。第一完成队列的物理标识用于指示第一完成队列。第一关联关系用于指示事件类型的标识与完成队列的物理标识的关联关系。具体解释可以参考上述阐述,不予赘述。
S610、第二网卡获取第一接收队列条目,并将第二数据存储到第一接收队列条目指示的位置。
S611、第二网卡将第二数据的存储位置信息存储到第二类完成队列。
S612、第二处理器根据第一标识确定第一完成队列,并从第一完成队列获取第一数据。
在一些实施例中,根据第一标识和第二关联关系确定第一完成队列的虚拟标识,并从第一完成队列的虚拟标识指示的第一完成队列获取第一数据。第二关联关系用于指示事件类型的标识与第一类完成队列的虚拟标识的关联关系,第一完成队列的虚拟标识用于指示第一完成队列。具体的可以参考上述阐述,不予赘述。
本申请的实施例提供的一种数据处理方法,通过将与事件相关的数据存储到第一类完成队列中获取,将与业务相关的数据存储到第二类完成队列,从不同的完成队列中获取不同的数,从而,使得处理器运行的不同的线程能够获取到相应的数据。
在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中,A和B可以是单数或者复数。在本申请的文字描述中,字符“/”,一般表示前后关联对象是一种“或”的关系;在本申请的公式中,字符“/”,表示前后关联对象是一种“相除”的关系。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (23)
1.一种通信装置,其特征在于,所述通信装置包括接口、处理单元、第一类完成队列和第二类完成队列,所述第二类完成队列用于存储与业务相关的数据的存储位置信息,所述第一类完成队列包括至少一个完成队列,所述第一类完成队列中的每个完成队列用于存储一种事件类型的事件数据,所述接口与所述处理单元连接,所述处理单元与所述第一类完成队列连接,其中,
所述接口,用于接收第一报文,所述第一报文包括第一标识和第一数据,所述第一标识用于指示第一事件所属的事件类型,所述第一数据为与所述第一事件相关的数据;
所述处理单元,用于根据所述第一标识确定第一完成队列,并将所述第一数据存储到所述第一完成队列,所述第一完成队列属于所述第一类完成队列,所述第一完成队列用于存储所述第一事件的数据;
所述通信装置还包括队列对QP,所述队列对与所述处理单元连接,所述队列对包括接收队列RQ,所述接收队列用于存储至少一个接收队列条目RQE,所述第一报文还包括第二数据,所述第二数据为与第一业务相关的数据;
所述处理单元,还用于从所述接收队列中获取第一接收队列条目,并将所述第二数据存储到所述第一接收队列条目指示的位置。
2.根据权利要求1所述的装置,其特征在于,所述处理单元,用于:
根据所述第一标识和第一关联关系确定所述第一完成队列的物理标识,所述第一关联关系用于指示事件类型的标识与完成队列的物理标识的关联关系,所述第一完成队列的物理标识用于指示所述第一完成队列;
将所述第一数据存储到所述第一完成队列的物理标识指示的所述第一完成队列。
3.根据权利要求2所述的装置,其特征在于,所述通信装置还包括寄存器,
所述处理单元,还用于将所述第一关联关系写入所述寄存器。
4.根据权利要求1-3中任一项所述的装置,其特征在于,所述第一标识和所述第一数据位于所述第一报文的报文头中。
5.根据权利要求1-3中任一项所述的装置,其特征在于,
所述处理单元,还用于发送第一信号,所述第一信号用于指示所述第一数据存储完成。
6.根据权利要求1所述的装置,其特征在于,所述处理单元,还用于将所述第二数据的存储位置信息存储到所述第二类完成队列。
7.根据权利要求1或6所述的装置,其特征在于,所述队列对还包括发送队列SQ,所述发送队列用于存储至少一个发送队列条目SQE,
所述处理单元,还用于接收来自第一服务器的处理器的第二标识和第三数据,所述第二标识用于指示第二事件所属的事件类型,所述第三数据为与所述第二事件相关的数据;
所述处理单元,还用于从所述发送队列中获取第一发送队列条目,并将所述第二标识和所述第三数据存储到第一发送队列条目;
所述处理单元,还用于从所述第一发送队列条目中获取所述第二标识和所述第三数据,生成第二报文,所述第二报文包括所述第二标识和所述第三数据;
所述接口,还用于向第二服务器发送所述第二报文。
8.根据权利要求7所述的装置,其特征在于,所述第一发送队列条目还包括存储第四数据的位置信息,所述第四数据为与第二业务相关的数据,
所述处理单元,还用于根据所述存储第四数据的位置信息获取所述第四数据,所述第二报文还包括所述第四数据。
9.一种网卡,其特征在于,包括如权利要求1至8中任一项所述的通信装置。
10.一种第一服务器,其特征在于,所述第一服务器包括如权利要求9所述的网卡和处理器,
处理器,用于根据所述第一标识确定所述网卡中的第一完成队列,并从所述第一完成队列获取第一数据,所述第一标识用于指示第一事件所属的事件类型,所述第一完成队列属于第一类完成队列,所述第一完成队列用于存储所述第一事件的数据,所述第一数据为与所述第一事件相关的数据。
11.根据权利要求10所述的第一服务器,其特征在于,所述处理器,用于:
根据所述第一标识和第二关联关系确定所述第一完成队列的虚拟标识,所述第二关联关系用于指示事件类型的标识与第一类完成队列的虚拟标识的关联关系,所述第一完成队列的虚拟标识用于指示所述第一完成队列;
从所述第一完成队列的虚拟标识指示的所述第一完成队列获取所述第一数据。
12.根据权利要求10所述的第一服务器,其特征在于,
所述处理器,还用于向所述网卡发送第二标识和第三数据,所述第二标识用于指示第二事件所属的事件类型,所述第三数据为与所述第二事件相关的数据。
13.一种数据处理方法,其特征在于,应用于通信装置,所述通信装置包括接口、处理单元、第一类完成队列和第二类完成队列,所述第二类完成队列用于存储与业务相关的数据的存储位置信息,所述第一类完成队列包括至少一个完成队列,所述第一类完成队列中的每个完成队列用于存储一种事件类型的事件数据,所述接口与所述处理单元连接,所述处理单元与所述第一类完成队列连接,其中,
所述接口接收第一报文,所述第一报文包括第一标识和第一数据,所述第一标识用于指示第一事件所属的事件类型,所述第一数据为与所述第一事件相关的数据;
所述处理单元根据所述第一标识确定第一完成队列,并将所述第一数据存储到所述第一完成队列,所述第一完成队列属于所述第一类完成队列,所述第一完成队列用于存储所述第一事件的数据;
所述通信装置还包括队列对QP,所述队列对与所述处理单元连接,所述队列对包括接收队列RQ,所述接收队列用于存储至少一个接收队列条目RQE,所述第一报文还包括第二数据,所述第二数据为与第一业务相关的数据,所述方法还包括:
所述处理单元从所述接收队列中获取第一接收队列条目,并将所述第二数据存储到所述第一接收队列条目指示的位置。
14.根据权利要求13所述的方法,其特征在于,所述处理单元根据所述第一标识确定第一完成队列,并将所述第一数据存储到所述第一完成队列,包括:
根据所述第一标识和第一关联关系确定所述第一完成队列的物理标识,所述第一关联关系用于指示事件类型的标识与完成队列的物理标识的关联关系,所述第一完成队列的物理标识用于指示所述第一完成队列;
将所述第一数据存储到所述第一完成队列的物理标识指示的所述第一完成队列。
15.根据权利要求14所述的方法,其特征在于,所述通信装置还包括寄存器,所述方法还包括:
所述处理单元将所述第一关联关系写入所述寄存器。
16.根据权利要求13-15中任一项所述的方法,其特征在于,所述第一标识和所述第一数据位于所述第一报文的报文头中。
17.根据权利要求13-15中任一项所述的方法,其特征在于,所述方法还包括:
所述处理单元发送第一信号,所述第一信号用于指示所述第一数据存储完成。
18.根据权利要求13所述的方法,其特征在于,所述方法还包括:
所述处理单元将所述第二数据的存储位置信息存储到所述第二类完成队列。
19.根据权利要求13或18所述的方法,其特征在于,所述队列对还包括发送队列SQ,所述发送队列用于存储至少一个发送队列条目SQE,所述方法还包括:
所述处理单元接收来自第一服务器的第二标识和第三数据,所述第二标识用于指示第二事件所属的事件类型,所述第三数据为与所述第二事件相关的数据;
所述处理单元从所述发送队列中获取第一发送队列条目,并将所述第二标识和所述第三数据存储到第一发送队列条目;
所述处理单元从所述第一发送队列条目中获取所述第二标识和所述第三数据,生成第二报文,所述第二报文包括所述第二标识和所述第三数据;
所述接口向第二服务器发送所述第二报文。
20.根据权利要求19所述的方法,其特征在于,所述第一发送队列条目还包括存储第四数据的位置信息,所述第四数据为与第二业务相关的数据,所述方法还包括:
所述处理单元根据所述存储第四数据的位置信息获取所述第四数据,所述第二报文还包括所述第四数据。
21.一种数据处理方法,其特征在于,应用于第一服务器,所述第一服务器包括如权利要求9所述的网卡和处理器,
所述处理器根据第一标识确定所述网卡中的第一完成队列,并从所述第一完成队列获取第一数据,所述第一标识用于指示第一事件所属的事件类型,所述第一完成队列属于第一类完成队列,所述第一完成队列用于存储所述第一事件的数据,所述第一数据为与所述第一事件相关的数据。
22.根据权利要求21所述的方法,其特征在于,所述处理器根据所述第一标识确定所述网卡中的第一完成队列,并从所述第一完成队列获取第一数据,包括:
根据所述第一标识和第二关联关系确定所述第一完成队列的虚拟标识,所述第二关联关系用于指示事件类型的标识与第一类完成队列的虚拟标识的关联关系,所述第一完成队列的虚拟标识用于指示所述第一完成队列;
从所述第一完成队列的虚拟标识指示的所述第一完成队列获取所述第一数据。
23.根据权利要求21所述的方法,其特征在于,所述方法还包括:
所述处理器向所述网卡发送第二标识和第三数据,所述第二标识用于指示第二事件所属的事件类型,所述第三数据为与所述第二事件相关的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911159613.9A CN111064680B (zh) | 2019-11-22 | 2019-11-22 | 一种通信装置及数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911159613.9A CN111064680B (zh) | 2019-11-22 | 2019-11-22 | 一种通信装置及数据处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111064680A CN111064680A (zh) | 2020-04-24 |
CN111064680B true CN111064680B (zh) | 2022-05-17 |
Family
ID=70298128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911159613.9A Active CN111064680B (zh) | 2019-11-22 | 2019-11-22 | 一种通信装置及数据处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111064680B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114490462A (zh) * | 2020-10-28 | 2022-05-13 | 华为技术有限公司 | 网络接口卡、控制器、存储装置和报文发送方法 |
CN114691382A (zh) * | 2020-12-31 | 2022-07-01 | 中兴通讯股份有限公司 | 基于rdma的通信方法、节点、系统及介质 |
CN116257471A (zh) * | 2021-12-10 | 2023-06-13 | 华为技术有限公司 | 一种业务处理方法及装置 |
CN116302618B (zh) * | 2023-05-17 | 2023-09-12 | 上海云脉芯联科技有限公司 | 一种会话信息处理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102185833A (zh) * | 2011-03-30 | 2011-09-14 | 无锡众志和达存储技术有限公司 | 一种基于fpga的fc i/o并行处理方法 |
CN107728936A (zh) * | 2017-09-05 | 2018-02-23 | 华为技术有限公司 | 用于传输数据处理请求的方法和装置 |
CN109491809A (zh) * | 2018-11-12 | 2019-03-19 | 西安微电子技术研究所 | 一种降低高速总线延迟的通信方法 |
CN109840232A (zh) * | 2017-11-28 | 2019-06-04 | 华为技术有限公司 | 存储设备及存储设备的元件管理方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040049603A1 (en) * | 2002-09-05 | 2004-03-11 | International Business Machines Corporation | iSCSI driver to adapter interface protocol |
US7441006B2 (en) * | 2003-12-11 | 2008-10-21 | International Business Machines Corporation | Reducing number of write operations relative to delivery of out-of-order RDMA send messages by managing reference counter |
US10061743B2 (en) * | 2015-01-27 | 2018-08-28 | International Business Machines Corporation | Host based non-volatile memory clustering using network mapped storage |
US9842083B2 (en) * | 2015-05-18 | 2017-12-12 | Red Hat Israel, Ltd. | Using completion queues for RDMA event detection |
-
2019
- 2019-11-22 CN CN201911159613.9A patent/CN111064680B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102185833A (zh) * | 2011-03-30 | 2011-09-14 | 无锡众志和达存储技术有限公司 | 一种基于fpga的fc i/o并行处理方法 |
CN107728936A (zh) * | 2017-09-05 | 2018-02-23 | 华为技术有限公司 | 用于传输数据处理请求的方法和装置 |
CN109840232A (zh) * | 2017-11-28 | 2019-06-04 | 华为技术有限公司 | 存储设备及存储设备的元件管理方法 |
CN109491809A (zh) * | 2018-11-12 | 2019-03-19 | 西安微电子技术研究所 | 一种降低高速总线延迟的通信方法 |
Non-Patent Citations (1)
Title |
---|
一种改进的高性能远程内存直接访问(RDMA)的实现;徐志斌;《计算机应用与软件》;20080131;第25卷(第1期);第264-266页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111064680A (zh) | 2020-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111064680B (zh) | 一种通信装置及数据处理方法 | |
US20240171507A1 (en) | System and method for facilitating efficient utilization of an output buffer in a network interface controller (nic) | |
CN110888827B (zh) | 数据传输方法、装置、设备及存储介质 | |
US11036669B2 (en) | Scalable direct inter-node communication over peripheral component interconnect-express (PCIe) | |
TWI458307B (zh) | 管理網路資訊處理的系統和方法 | |
US10592464B2 (en) | Methods for enabling direct memory access (DMA) capable devices for remote DMA (RDMA) usage and devices thereof | |
EP1421739B1 (en) | Transmitting multicast data packets | |
US9495324B2 (en) | Efficient distribution of subnet administration data over an RDMA network | |
JP5490336B2 (ja) | Pciエクスプレス・マルチプル・ルートi/o仮想化環境における低待ち時間の優先順位付け | |
US20040017819A1 (en) | Receive queue descriptor pool | |
US20070288938A1 (en) | Sharing data between partitions in a partitionable system | |
CN110661725A (zh) | 用于对出口上的网络分组进行重排序的技术 | |
CN111641566B (zh) | 数据处理的方法、网卡和服务器 | |
WO2021063160A1 (zh) | 访问固态硬盘的方法及存储设备 | |
EP4357901A1 (en) | Data writing method and apparatus, data reading method and apparatus, and device, system and medium | |
US20200293318A1 (en) | Buffer Allocation with Memory-based Configuration | |
WO2018019009A1 (zh) | 一种数据处理方法和系统,外围组件快速互连设备及主机 | |
US6816889B1 (en) | Assignment of dual port memory banks for a CPU and a host channel adapter in an InfiniBand computing node | |
JP2016535483A (ja) | ネットワークインターフェイス | |
US8799519B2 (en) | Network-to-network bridge | |
US20050149623A1 (en) | Application and verb resource management | |
US7366802B2 (en) | Method in a frame based system for reserving a plurality of buffers based on a selected communication protocol | |
US8069273B2 (en) | Processing module | |
CN113132273B (zh) | 一种数据转发方法及装置 | |
WO2013147829A1 (en) | Efficient distribution of subnet administration data over an rdma network |
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 |