CN115982091B - 基于rdma引擎的数据处理方法与系统、介质、设备 - Google Patents
基于rdma引擎的数据处理方法与系统、介质、设备 Download PDFInfo
- Publication number
- CN115982091B CN115982091B CN202310274803.5A CN202310274803A CN115982091B CN 115982091 B CN115982091 B CN 115982091B CN 202310274803 A CN202310274803 A CN 202310274803A CN 115982091 B CN115982091 B CN 115982091B
- Authority
- CN
- China
- Prior art keywords
- cache
- function
- queue pair
- pipeline
- pair number
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请涉及基于RDMA引擎的数据处理方法与系统、介质、设备,包括:输入模块接收操作命令,获取QPN和Functionid,根据QPN和Functionid生成预取命令,并将预取命令发送至所述Cache模块;L2‑Cache查询L2‑Cache的信息存储结构中是否存在与QPN和Functionid绑定的流水线号,若存在,则L2‑Cache将与QPN和Functionid绑定的流水线号返回给输入模块,若不存在,则L2‑Cache将当前负载最小的一个L1‑Cache的流水线号返回给输入模块,并在L2‑Cache的信息存储结构中记录所述一个L1‑Cache的流水线号与QPN和Functionid之间的绑定关系;输入模块接收Cache模块返回的流水线号,将操作命令送入与该流水线号对应的流水线进行处理。通过本申请,能够解决RDMA引擎的各流水线之间负载不均衡的问题。
Description
技术领域
本申请涉及RDMA(RemoteDirect Memory Access)技术领域,具体涉及一种基于RDMA引擎的数据处理方法及其系统、计算机可读存储介质、电子设备。
背景技术
RDMA(RemoteDirect Memory Access)的中文全称为远程直接内存访问,其能够让计算机可以直接存取其他计算机的内存,而不需要经过处理器的处理,减少处理器的开销。
在RDMA引擎中,通常采用流水线的方式去处理RDMA引擎业务,比如,第一级流水P1去访问QPC(英文全称为Queue-pair-context,中文全称为队列管理上下文信息)并且读WQE(英文全称为Work-queue-element,中文全称为工作队列单元)进行处理,第二级流水P2去读SGE(英文全称为Scatter-Gather-Element,中文全称为散列聚合单元)并处理,第三级流水P3去读MPT(英文全称为Memory-Protection-Translation,中文全称为内存保护转换表)并处理,第四级流水P4去读PBL并处理。其中,RDMA引擎通常是通过实现多条流水线去提高RDMA引擎的包率,每一条流水线中会多次访问QPC,通常将QPC放到Cache里面以减少对DDR(英文全称为DoubleData Rate,中文全称为双倍速率同步动态随机存储器)的访问;进一步地,为了减少单个Cache的访问带宽,通常需要多级Cache,以两级Cache为例,同一条业务流的发送侧数据和接收侧数据会送入同一组流水线处理,这一组流水线包含一条发送流水线和一条接收流水线,所述一条发送流水线和一条接收流水线共享同一个L1-Cache,而多个L1-Cache共享一个L2-Cache。而RDMA引擎的业务流在选择流水线进行处理时,通常是通过对{QPN,Functionid}进行哈希计算而得到一个流水线号。
由于RDMA引擎业务的QPN是随机的,当一条RDMA引擎的业务流创建后,绑定了一个特定的{QPN,Functionid},那么这条RDMA引擎的业务流选择的RDMA引擎的流水线也就固定了,这样可能造成RDMA引擎的各流水线之间负载不均衡,比如可能业务都集中在某些流水线上,而另外一些流水线则处在空闲之中,最终造成RDMA引擎的整体业务包率下降,同时在删除和新建业务流时也可能出现包率不平稳的情况,因为删除的业务流和新建的业务流所在的流水线的负载可能是不同的。
发明内容
本申请的目的在于提出一种基于RDMA引擎的数据处理方法及其系统、计算机可读存储介质、电子设备,以解决RDMA引擎的各流水线之间负载不均衡的问题。
本申请实施例提供一种基于RDMA引擎的数据处理方法,所述RDMA引擎包括输入模块和Cache模块,所述Cache模块包括多个L1-Cache以及1个L2-Cache;
所述方法包括:
所述输入模块接收操作命令,根据所述操作命令获取队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id生成预取命令,并将所述预取命令发送至所述Cache模块;
所述L2-Cache接收所述预取命令,获得所述队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id查询所述L2-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,若存在,则所述L2-Cache将与所述队列对编号和PCIE设备的功能id绑定的流水线号返回给所述输入模块,若不存在,则所述L2-Cache将当前负载最小的一个L1-Cache的流水线号返回给所述输入模块,并在所述L2-Cache的信息存储结构中,记录所述一个L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系;
所述输入模块接收所述Cache模块返回的流水线号,将所述操作命令送入与所述Cache模块返回的流水线号对应的流水线进行处理。
本申请实施例还提供一种基于RDMA引擎的数据处理方法,所述RDMA引擎包括输入模块和Cache模块,所述Cache模块包括多个L1-Cache、多个L2-Cache以及1个L3-Cache;
所述方法包括:
所述输入模块接收操作命令,根据所述操作命令获取队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id生成预取命令,并将所述预取命令发送至所述Cache模块;
所述L3-Cache接收所述预取命令,根据所述预取命令中的队列对编号和PCIE设备的功能id查询所述L3-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,若存在,则所述L3-Cache将所述预取命令发送给与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,若不存在,则所述L3-Cache将所述预取命令发送给当前负载最小的一个L2-Cache,并在所述L3-Cache的信息存储结构中,记录所述队列对编号和PCIE设备的功能id与所述一个L2-Cache的关联关系;
所述L2-Cache接收所述预取命令,获得所述队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id查询所述L2-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,若存在,则所述L2-Cache将与所述队列对编号和PCIE设备的功能id绑定的流水线号返回给所述输入模块,若不存在,则所述L2-Cache将当前负载最小的一个L1-Cache的流水线号返回给所述输入模块,并在所述L2-Cache的信息存储结构中,记录所述一个L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系;
所述输入模块接收所述Cache模块返回的流水线号,将所述操作命令送入与所述Cache模块返回的流水线号对应的流水线进行处理。
本申请实施例还提供一种基于RDMA引擎的数据处理方法,所述RDMA引擎包括输入模块和Cache模块,所述Cache模块包括多个L1Cache、多个L2-Cache、多个L3-Cache以及1个L4-Cache;
所述输入模块接收操作命令,根据所述操作命令获取队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id生成预取命令,并将所述预取命令发送至所述Cache模块;
所述L4-Cache接收所述预取命令,根据所述预取命令中的队列对编号和PCIE设备的功能id查询所述L4-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的L3-Cache,若存在,则所述L4-Cache将所述预取命令发送给与所述队列对编号和PCIE设备的功能id绑定的L3-Cache,若不存在,则所述L4-Cache将所述预取命令发送给当前负载最小的一个L3-Cache,并在所述L4-Cache的信息存储结构中,记录所述队列对编号和PCIE设备的功能id与所述一个L3-Cache的关联关系;
所述L3-Cache接收所述预取命令,根据所述预取命令中的队列对编号和PCIE设备的功能id查询所述L3-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,若存在,则所述L3-Cache将所述预取命令发送给与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,若不存在,则所述L3-Cache将所述预取命令发送给当前负载最小的一个L2-Cache,并在所述L3-Cache的信息存储结构中,记录所述队列对编号和PCIE设备的功能id与所述一个L2-Cache的关联关系;
所述L2-Cache接收所述预取命令,获得所述队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id查询所述L2-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,若存在,则所述L2-Cache将与所述队列对编号和PCIE设备的功能id绑定的流水线号返回给所述输入模块,若不存在,则所述L2-Cache将当前负载最小的一个L1-Cache的流水线号返回给所述输入模块,并在所述L2-Cache的信息存储结构中,记录所述一个L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系;
所述输入模块接收所述Cache模块返回的流水线号,将所述操作命令送入与所述Cache模块返回的流水线号对应的流水线进行处理;
本申请实施例还提供一种基于RDMA引擎的数据处理系统,包括输入模块和Cache模块,所述Cache模块包括多个L1-Cache以及1个L2-Cache;
所述输入模块,用于接收操作命令,根据所述操作命令获取队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id生成预取命令,并将所述预取命令发送至所述Cache模块;
所述L2-Cache,用于接收所述预取命令,根据所述预取命令包含的所述队列对编号和PCIE设备的功能id查询所述L2-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,当存在时,将与所述队列对编号和PCIE设备的功能id绑定的流水线号发送给所述输入模块,当不存在时,将当前负载最小的一个L1-Cache的流水线号发送给所述输入模块,并在所述L2-Cache的信息存储结构中,记录所述一个L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系;
所述输入模块,还用于接收所述Cache模块返回的流水线号,将所述操作命令送入与所述Cache模块返回的流水线号对应的流水线进行处理。
本申请实施例还提供一种基于RDMA引擎的数据处理系统,包括输入模块和Cache模块,所述Cache模块至少包括多个L2-Cache以及1个L3-Cache;
所述输入模块,用于接收操作命令,根据所述操作命令获取队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id生成预取命令,并将所述预取命令发送至所述Cache模块;
所述L3-Cache,用于接收所述预取命令,根据所述预取命令中的队列对编号和PCIE设备的功能id查询所述L3-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,当存在时,将所述预取命令发送给与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,当不存在时,将所述预取命令发送给当前负载最小的一个L2-Cache,并在所述L3-Cache的信息存储结构中,记录所述队列对编号和PCIE设备的功能id与所述一个L2-Cache的关联关系;
所述L2-Cache,用于接收所述预取命令,获得所述队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id查询所述L2-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,若存在,则所述L2-Cache将与所述队列对编号和PCIE设备的功能id绑定的流水线号返回给所述输入模块,若不存在,则所述L2-Cache将当前负载最小的一个L1-Cache的流水线号返回给所述输入模块,并在所述L2-Cache的信息存储结构中,记录所述一个L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系;
所述输入模块,用于接收所述Cache模块返回的流水线号,将所述操作命令送入与所述Cache模块返回的流水线号对应的流水线进行处理。
本申请实施例还提供一种基于RDMA引擎的数据处理系统,其特征在于,包括输入模块和Cache模块,所述Cache模块包括多个L1Cache、多个L2-Cache、多个L3-Cache以及1个L4-Cache;
所述输入模块,用于接收操作命令,根据所述操作命令获取队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id生成预取命令,并将所述预取命令发送至所述Cache模块;
所述L4-Cache,用于接收所述预取命令,根据所述预取命令中的队列对编号和PCIE设备的功能id查询所述L4-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的L3-Cache,当存在时,将所述预取命令发送给与所述队列对编号和PCIE设备的功能id绑定的L3-Cache,当不存在时,将所述预取命令发送给当前负载最小的一个L3-Cache,并在所述L4-Cache的信息存储结构中,记录所述队列对编号和PCIE设备的功能id与所述一个L3-Cache的关联关系;
所述L3-Cache,用于接收所述预取命令,根据所述预取命令中的队列对编号和PCIE设备的功能id查询所述L3-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,当存在时,将所述预取命令发送给与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,当不存在时,将所述预取命令发送给当前负载最小的一个L2-Cache,并在所述L3-Cache的信息存储结构中,记录所述队列对编号和PCIE设备的功能id与所述一个L2-Cache的关联关系;
所述L2-Cache,用于接收所述预取命令,获得所述队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id查询所述L2-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,若存在,则所述L2-Cache将与所述队列对编号和PCIE设备的功能id绑定的流水线号返回给所述输入模块,若不存在,则所述L2-Cache将当前负载最小的一个L1-Cache的流水线号返回给所述输入模块,并在所述L2-Cache的信息存储结构中,记录所述一个L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系;
所述输入模块,用于接收所述Cache模块返回的流水线号,将所述操作命令送入与所述Cache模块返回的流水线号对应的流水线进行处理。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现根据本申请实施例所述的基于RDMA引擎的数据处理方法。
本申请实施例还提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现根据本申请实施例所述的基于RDMA引擎的数据处理方法。
以上描述的本申请实施例至少具有以下有益效果:
通过在多流水线的RDMA引擎中,将正在处理的各业务流和流水线之间的绑定关系记录下来,保证同一时刻同一条业务流的命令不会进入不同的流水线进行处理,并且,当一条新的业务流进入流水线处理时选择负载最小的一条流水线进行处理,从而实现RDMA引擎中各流水线之间的负载均衡,使RDMA引擎的业务能够充分利用各个流水线的处理能力,从而使RDMA引擎的业务带宽更高且更平稳。
本申请实施例的其它特征和优点将在随后的说明书中阐述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请的实施例一中的一种基于RDMA引擎的数据处理方法的流程图。
图2为本申请的实施例一中Cache模块的结构示意图。
图3为本申请的实施例一中为2级Cache的RDMA引擎流水线的示意图。
图4为本申请的实施例二中Cache模块的结构示意图。
图5为本申请的实施例二中为3级Cache的RDMA引擎流水线的示意图。
图6为本申请的实施例三中Cache模块的结构示意图。
具体实施方式
附图的详细说明意在作为本申请的当前优选实施例的说明,而非意在代表本申请能够得以实现的仅有形式。应理解的是,相同或等同的功能可以由意在包含于本申请的范围之内的不同实施例完成。
实施例一
如图1所示,本申请实施例一提供一种基于RDMA引擎的数据处理方法,所述RDMA引擎包括输入模块和Cache模块,如图2所示,所述Cache模块包括多个L1-Cache以及1个L2-Cache,多个L1-Cache共享1个L2-Cache;
参阅图1,本实施例的方法包括以下的步骤:
步骤S11、所述输入模块接收操作命令,根据所述操作命令获取队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id生成预取命令,并将所述预取命令发送至所述Cache模块;
具体而言,所述输入模块接收门铃doorbell发送的操作命令,所述操作命令包含队列对编号(QPN,Queuepairnumber)和PCIE设备的功能id(Functionid),也可以包含其它参数;所述预取命令用于访问所述Cache模块以预先获取队列管理上下文信息(QPC,Queuepaircontext),以减少所述Cache模块发生miss时给流水线带来的影响;
步骤S12、所述L2-Cache接收所述预取命令,获得所述队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id查询所述L2-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,若存在,则所述L2-Cache将与所述队列对编号和PCIE设备的功能id绑定的流水线号返回给所述输入模块,若不存在,则所述L2-Cache将当前负载最小的一个L1-Cache的流水线号返回给所述输入模块,并在所述L2-Cache的信息存储结构中,记录所述一个L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系;
具体而言,图3为2级Cache的RDMA引擎流水线的示意图,图3的RDMA引擎包括2组流水线,每组流水线包含一条发送侧流水线和一条接收侧流水线,以图3为例介绍本实施例方法的步骤S12,如图3所示,步骤S11中的所述输入模块可以是发送侧的输入模块TX_INPUT或接收侧的输入模块RX_INPUT,发送侧的输入模块TX_INPUT或接收侧的输入模块RX_INPUT将其生成的所述预取命令发送给Cache模块,Cache模块的L2-Cache为最大一级Cache,直接对所述预取命令进行处理,提取所述预取命令中的队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id查询所述L2-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,所述L2-Cache中设置有信息存储结构,所述L2-Cache的信息存储结构可以但不限于是数据表格的形式,其用于记录与所述L2-Cache对应的多个L1-Cache的流水线号与{队列对编号和PCIE设备的功能id}之间的绑定关系;
如果所述L2-Cache的信息存储结构中存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,则说明对应的队列管理上下文信息已经被分配到某个L1-Cache里面,则将与所述队列对编号和PCIE设备的功能id绑定的流水线号发送给发送侧的输入模块TX_INPUT或接收侧的输入模块RX_INPUT,但需理解的是,此时队列管理上下文信息可能在也可能不在这个L1-Cache里面,因为可能有其他的命令将队列管理上下文信息从该某个L1-Cache中取出,所述队列管理上下文信息是根据队列处理情况实时更新的,流水线在处理完命令后会将更新后的队列管理上下文信息回写到L1-Cache中,流水线在处理下一个命令时会继续从L1-Cache中获取队列管理上下文信息;
如果所述L2-Cache的信息存储结构中不存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,则说明对应的队列管理上下文信息不在任何一个L1-Cache里面,此时,所述L2-Cache获取与其对应的多个L1-Cache的流水线的当前负载,将当前负载最小的一个L1-Cache的流水线号返回给发送侧的输入模块TX_INPUT或接收侧的输入模块RX_INPUT,并在所述L2-Cache的信息存储结构中记录当前负载最小的一个L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系;
其中,流水线号例如是图3中的TXP0、RXP0;
步骤S13、所述输入模块接收所述Cache模块返回的流水线号,将所述操作命令送入与所述Cache模块返回的流水线号对应的流水线进行处理。
本实施例的基于RDMA引擎的数据处理方法,通过在多流水线的RDMA引擎中,将正在处理的各业务流和流水线之间的绑定关系记录下来,保证同一时刻同一条业务流的命令不会进入不同的流水线进行处理,并且,当一条新的业务流进入流水线处理时选择负载最小的一条流水线进行处理,从而实现RDMA引擎中各流水线之间的负载均衡,使RDMA引擎的业务能够充分利用各个流水线的处理能力,从而使RDMA引擎的业务带宽更高且更平稳。
可选的,在一些实施例中,所述L2-Cache的信息存储结构,用于记录共享所述L2-Cache的多个L1-Cache的流水线号与各个队列对编号和PCIE设备的功能id之间的绑定关系,以及记录共享所述L2-Cache的多个L1-Cache的流水线的当前负载。
具体而言,共享所述L2-Cache的多个L1-Cache的流水线的当前负载可以通过累计L1-Cache的命令处理数量来表征,当记录一个待处理命令时,流水线对应的命令个数计数器计数加1,当完成一个待处理命令的处理后,流水线对应的命令个数计数器计数减1。
可选的,在一些实施例中,所述方法还包括:
当所述队列管理上下文信息被与其对应的L1-Cache踢出至所述L2-Cache,且对应的流水线上没有与所述队列对编号和PCIE设备的功能id所对应的操作命令时,所述L2-Cache将所述L2-Cache的信息存储结构中的该L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系删除。
具体而言,每当任一个队列管理上下文信息被对应的L1-Cache踢出到L2-Cache时(即队列管理上下文信息从L1Cache中搬移至L2-Cache中),或者流水线处理完一个命令去减绑定信息表的命令个数计数器时,L2-Cache检查并判断对应的{队列对编号和PCIE设备的功能id}和流水线号的绑定信息表的命令个数计数器是否为0,如果为0并且对应的队列管理上下文信息已经被该L1-Cache踢出,则说明该流水线上已经没有对应的{队列对编号和PCIE设备的功能id}所对应的业务,此时,将所述L2-Cache记录的{队列对编号和PCIE设备的功能id}清除,以便于下次相同{队列对编号和PCIE设备的功能id}再次进来处理时,能够根据流水线的负载重新选择一个流水线,而不是总是到固定的流水线。
可选的,在一些实施例中,所述方法还包括:
若所述L2-Cache的信息存储结构中不存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,则所述L2-Cache访问内存以获取队列管理上下文信息,并将所述队列管理上下文信息发送至所述当前负载最小的一个L1-Cache。
具体而言,若所述L2-Cache的信息存储结构中不存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,也即队列管理上下文信息不在L1-Cache或L2-Cache中,需要访问内存以获取对应的队列管理上下文信息。
可选的,在一些实施例中,所述操作命令为接收命令或发送命令,所述接收命令用于接收待处理数据,所述发送命令用于发送待处理数据。
实施例二
本申请的实施例二提供一种基于RDMA引擎的数据处理方法,所述RDMA引擎包括输入模块和Cache模块,如图4所示,所述Cache模块包括多个L1-Cache、多个L2-Cache以及1个L3-Cache;
所述方法包括:
步骤S21、所述输入模块接收操作命令,根据所述操作命令获取队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id生成预取命令,并将所述预取命令发送至所述Cache模块;
具体而言,所述输入模块接收门铃doorbell发送的操作命令,所述操作命令包含队列对编号(QPN,Queuepairnumber)和PCIE设备的功能id(Functionid),也可以包含其它参数;所述预取命令用于访问所述Cache模块以预先获取队列管理上下文信息(QPC,Queuepaircontext),以减少所述Cache模块发生miss时给流水线带来的影响;
步骤S22、所述L3-Cache接收所述预取命令,根据所述预取命令中的队列对编号和PCIE设备的功能id查询所述L3-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,若存在,则所述L3-Cache将所述预取命令发送给与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,若不存在,则所述L3-Cache将所述预取命令发送给当前负载最小的一个L2-Cache,并在所述L3-Cache的信息存储结构中记录所述队列对编号和PCIE设备的功能id与所述当前负载最小的一个L2-Cache的关联关系。
具体而言,图5为3级Cache的RDMA引擎流水线的示意图,图5的RDMA引擎包括4组流水线,每组流水线包含一条发送侧流水线和一条接收侧流水线,以图5为例介绍本实施例方法的步骤S12;在图5中,L2Cache接收所述预取命令由L3-Cache发送的,发送侧的输入模块TX_INPUT或接收侧的输入模块RX_INPUT将其生成的所述预取命令发送给Cache模块,Cache模块的L3-Cache为最大一级Cache,直接对所述预取命令进行处理,提取所述预取命令中的队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id查询所述L3-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,所述L3-Cache中设置有信息存储结构,所述L3-Cache的信息存储结构可以但不限于是数据表格的形式,其用于记录与所述L3-Cache对应的多个L2-Cache与{队列对编号和PCIE设备的功能id}之间的绑定关系;
如果所述L3-Cache的信息存储结构中存在与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,则说明对应的队列管理上下文信息已经被分配到某个L2-Cache里面,则所述L3-Cache将所述预取命令发送给与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,之后所述L2-Cache接收所述预取命令;
如果所述L3-Cache的信息存储结构中不存在与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,则说明对应的队列管理上下文信息不在任何一个L2-Cache里面,此时,所述L3-Cache获取与其对应的多个L2-Cache的当前负载,将当前负载最小的一个L2Cache的流水线号发送给发送侧的输入模块TX_INPUT或接收侧的输入模块RX_INPUT,并在所述L3-Cache的信息存储结构中记录当前负载最小的一个L2Cache与所述队列对编号和PCIE设备的功能id之间的绑定关系;
步骤S23、所述L2-Cache接收所述预取命令,获得所述队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id查询所述L2-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,若存在,则所述L2-Cache将与所述队列对编号和PCIE设备的功能id绑定的流水线号返回给所述输入模块,若不存在,则所述L2-Cache将当前负载最小的一个L1-Cache的流水线号返回给所述输入模块,并在所述L2-Cache的信息存储结构中,记录所述一个L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系;
具体而言,Cache模块的L2-Cache对所述预取命令进行处理,提取所述预取命令中的队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id查询所述L2-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,所述L2-Cache中设置有信息存储结构,所述L2-Cache的信息存储结构可以但不限于是数据表格的形式,其用于记录与所述L2-Cache对应的多个L1-Cache的流水线号与{队列对编号和PCIE设备的功能id}之间的绑定关系;
如果所述L2-Cache的信息存储结构中存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,则说明对应的队列管理上下文信息已经被分配到某个L1-Cache里面,则将与所述队列对编号和PCIE设备的功能id绑定的流水线号发送给发送侧的输入模块TX_INPUT或接收侧的输入模块RX_INPUT,但需理解的是,此时队列管理上下文信息可能在也可能不在这个L1-Cache里面,因为可能有其他的命令将队列管理上下文信息从该某个L1-Cache中取出,所述队列管理上下文信息是根据队列处理情况实时更新的,流水线在处理完命令后会将更新后的队列管理上下文信息回写到L1-Cache中,流水线在处理下一个命令时会继续从L1-Cache中获取队列管理上下文信息;
如果所述L2-Cache的信息存储结构中不存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,则说明对应的队列管理上下文信息不在任何一个L1-Cache里面,此时,所述L2-Cache获取与其对应的多个L1-Cache的流水线的当前负载,将当前负载最小的一个L1-Cache的流水线号返回给发送侧的输入模块TX_INPUT或接收侧的输入模块RX_INPUT,并在所述L2-Cache的信息存储结构中记录当前负载最小的一个L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系;
步骤S24、所述输入模块接收所述Cache模块返回的流水线号,将所述操作命令送入与所述Cache模块返回的流水线号对应的流水线进行处理。
可选的,在一些实施例中,所述L3-Cache的信息存储结构,用于记录共享所述L3-Cache的多个L2-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系,以及,记录共享所述L3-Cache的多个L2-Cache的当前负载;L2-Cache的当前负载由与其对应的多个L1-Cache的当前负载来体现。
可选的,在一些实施例中,所述方法还包括:
若所述L3-Cache的信息存储结构中不存在与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,则所述L3-Cache访问内存以获取队列管理上下文信息,并将所述队列管理上下文信息发送至所述当前负载最小的一个L2-Cache。
具体而言,若所述L3-Cache的信息存储结构中不存在与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,也即队列管理上下文信息不在L1-Cache或L2-Cache或L3-Cache中,需要访问内存以获取对应的队列管理上下文信息。
可选的,在一些实施例中,所述方法还包括:
当所述队列管理上下文信息被与其对应的L1-Cache踢出至所述L2-Cache,且对应的流水线上没有与所述队列对编号和PCIE设备的功能id所对应的操作命令时,所述L2-Cache将所述L2-Cache的信息存储结构中的该L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系删除;
当所述队列管理上下文信息被与其对应的L2-Cache踢出至所述L3-Cache,且对应的流水线上没有与所述队列对编号和PCIE设备的功能id所对应的操作命令时,所述L3-Cache将所述L3-Cache的信息存储结构中的该L2-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系删除。
具体而言,每当任一个队列管理上下文信息被对应的L1-Cache踢出到L2-Cache时(即队列管理上下文信息从L1Cache中搬移至L2-Cache中),或者流水线处理完一个命令去减绑定信息表的命令个数计数器时,L2-Cache检查并判断对应的{队列对编号和PCIE设备的功能id}和流水线号的绑定信息表的命令个数计数器是否为0,如果为0并且对应的队列管理上下文信息已经被该L1-Cache踢出,则说明该流水线上已经没有对应的{队列对编号和PCIE设备的功能id}所对应的业务,此时,将所述L2-Cache记录的{队列对编号和PCIE设备的功能id}清除;
每当任一个队列管理上下文信息被对应的L2Cache踢出到L3Cache时(即队列管理上下文信息从L2Cache中搬移至L3-Cache中),或者流水线处理完一个命令去减绑定信息表的命令个数计数器时,L3Cache检查并判断对应的{队列对编号和PCIE设备的功能id}和流水线号的绑定信息表的命令个数计数器是否为0,如果为0并且对应的队列管理上下文信息已经被该L2Cache踢出,则说明该流水线上已经没有对应的{队列对编号和PCIE设备的功能id}所对应的业务,此时,将所述L3Cache记录的{队列对编号和PCIE设备的功能id}清除,以便于下次相同{队列对编号和PCIE设备的功能id}再次进来处理时,能够根据流水线的负载重新选择一个流水线,而不是总是到固定的流水线。
可选的,在一些实施例中,所述操作命令为接收命令或发送命令,所述接收命令用于接收待处理数据,所述发送命令用于发送待处理数据。
实施例三
本申请的实施例三提供一种基于RDMA引擎的数据处理方法,所述RDMA引擎包括输入模块和Cache模块,如图6所示,所述Cache模块包括多个L1Cache、多个L2-Cache、多个L3-Cache以及1个L4-Cache;
步骤S31、所述输入模块接收操作命令,根据所述操作命令获取队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id生成预取命令,并将所述预取命令发送至所述Cache模块;
具体而言,所述输入模块接收门铃doorbell发送的操作命令,所述操作命令包含队列对编号(QPN,Queuepairnumber)和PCIE设备的功能id(Functionid),也可以包含其它参数;所述预取命令用于访问所述Cache模块以预先获取队列管理上下文信息(QPC,Queuepaircontext),以减少所述Cache模块发生miss时给流水线带来的影响;
步骤S32、所述L4-Cache接收所述预取命令,根据所述预取命令中的队列对编号和PCIE设备的功能id查询所述L4-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的L3-Cache,若存在,则所述L4-Cache将所述预取命令发送给与所述队列对编号和PCIE设备的功能id绑定的L3-Cache,若不存在,则所述L4-Cache将所述预取命令发送给当前负载最小的一个L3-Cache,并在所述L4-Cache的信息存储结构中记录所述队列对编号和PCIE设备的功能id与所述当前负载最小的一个L3-Cache的关联关系。
具体而言,当RDMA引擎包括4级Cache时,L3-Cache接收的所述预取命令由L4-Cache发送的,发送侧的输入模块TX_INPUT或接收侧的输入模块RX_INPUT将其生成的所述预取命令发送给Cache模块,Cache模块的L4-Cache为最大一级Cache,直接对所述预取命令进行处理,提取所述预取命令中的队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id查询所述L4-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,所述L4-Cache中设置有信息存储结构,所述L4-Cache的信息存储结构可以但不限于是数据表格的形式,其用于记录与所述L4-Cache对应的多个L3-Cache与{队列对编号和PCIE设备的功能id}之间的绑定关系;
如果所述L4-Cache的信息存储结构中存在与所述队列对编号和PCIE设备的功能id绑定的L3-Cache,则说明对应的队列管理上下文信息已经被分配到某个L3-Cache里面,则所述L4-Cache将所述预取命令发送给与所述队列对编号和PCIE设备的功能id绑定的L3-Cache,之后所述L3-Cache接收所述预取命令;
如果所述L4-Cache的信息存储结构中不存在与所述队列对编号和PCIE设备的功能id绑定的L3-Cache,则说明对应的队列管理上下文信息不在任何一个L3-Cache里面,此时,所述L4-Cache获取与其对应的多个L3-Cache的当前负载,将当前负载最小的一个L3-Cache的流水线号发送给发送侧的输入模块TX_INPUT或接收侧的输入模块RX_INPUT,并在所述L4-Cache的信息存储结构中记录当前负载最小的一个L3-Cache与所述队列对编号和PCIE设备的功能id之间的绑定关系。
步骤S33、所述L3-Cache接收所述预取命令,根据所述预取命令中的队列对编号和PCIE设备的功能id查询所述L3-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,若存在,则所述L3-Cache将所述预取命令发送给与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,若不存在,则所述L3-Cache将所述预取命令发送给当前负载最小的一个L2-Cache,并在所述L3-Cache的信息存储结构中记录所述队列对编号和PCIE设备的功能id与所述当前负载最小的一个L2-Cache的关联关系。
具体而言,Cache模块的L3-Cache对所述预取命令进行处理,提取所述预取命令中的队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id查询所述L3-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,所述L3-Cache中设置有信息存储结构,所述L3-Cache的信息存储结构可以但不限于是数据表格的形式,其用于记录与所述L3-Cache对应的多个L2-Cache与{队列对编号和PCIE设备的功能id}之间的绑定关系;
如果所述L3-Cache的信息存储结构中存在与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,则说明对应的队列管理上下文信息已经被分配到某个L2-Cache里面,则所述L3-Cache将所述预取命令发送给与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,之后所述L2-Cache接收所述预取命令;
如果所述L3-Cache的信息存储结构中不存在与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,则说明对应的队列管理上下文信息不在任何一个L2-Cache里面,此时,所述L3-Cache获取与其对应的多个L2-Cache的当前负载,将当前负载最小的一个L2Cache的流水线号发送给发送侧的输入模块TX_INPUT或接收侧的输入模块RX_INPUT,并在所述L3-Cache的信息存储结构中记录当前负载最小的一个L2Cache与所述队列对编号和PCIE设备的功能id之间的绑定关系;
步骤S34、所述L2-Cache接收所述预取命令,获得所述队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id查询所述L2-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,若存在,则所述L2-Cache将与所述队列对编号和PCIE设备的功能id绑定的流水线号返回给所述输入模块,若不存在,则所述L2-Cache将当前负载最小的一个L1-Cache的流水线号返回给所述输入模块,并在所述L2-Cache的信息存储结构中,记录所述一个L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系;
具体而言,Cache模块的L2-Cache对所述预取命令进行处理,提取所述预取命令中的队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id查询所述L2-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,所述L2-Cache中设置有信息存储结构,所述L2-Cache的信息存储结构可以但不限于是数据表格的形式,其用于记录与所述L2-Cache对应的多个L1-Cache的流水线号与{队列对编号和PCIE设备的功能id}之间的绑定关系;
如果所述L2-Cache的信息存储结构中存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,则说明对应的队列管理上下文信息已经被分配到某个L1-Cache里面,则将与所述队列对编号和PCIE设备的功能id绑定的流水线号发送给发送侧的输入模块TX_INPUT或接收侧的输入模块RX_INPUT,但需理解的是,此时队列管理上下文信息可能在也可能不在这个L1-Cache里面,因为可能有其他的命令将队列管理上下文信息从该某个L1-Cache中取出,所述队列管理上下文信息是根据队列处理情况实时更新的,流水线在处理完命令后会将更新后的队列管理上下文信息回写到L1-Cache中,流水线在处理下一个命令时会继续从L1-Cache中获取队列管理上下文信息;
如果所述L2-Cache的信息存储结构中不存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,则说明对应的队列管理上下文信息不在任何一个L1-Cache里面,此时,所述L2-Cache获取与其对应的多个L1-Cache的流水线的当前负载,将当前负载最小的一个L1-Cache的流水线号返回给发送侧的输入模块TX_INPUT或接收侧的输入模块RX_INPUT,并在所述L2-Cache的信息存储结构中记录当前负载最小的一个L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系;
步骤S35、所述输入模块接收所述Cache模块返回的流水线号,将所述操作命令送入与所述Cache模块返回的流水线号对应的流水线进行处理。
可选的,在一些实施例中,所述L4-Cache的信息存储结构,用于记录共享所述L4-Cache的多个L3-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系,以及,记录共享所述L4-Cache的多个L3-Cache的当前负载;其中,L3-Cache的当前负载由与其对应的多个L2Cache的当前负载来体现。
可选的,在一些实施例中,所述方法还包括:
若所述L4-Cache的信息存储结构中不存在与所述队列对编号和PCIE设备的功能id绑定的L3-Cache,则所述L4-Cache访问内存以获取队列管理上下文信息,并将所述队列管理上下文信息发送至所述当前负载最小的一个L3-Cache。
可选的,在一些实施例中,所述方法还包括:
当所述队列管理上下文信息被与其对应的L1-Cache踢出至所述L2-Cache,且对应的流水线上没有与所述队列对编号和PCIE设备的功能id所对应的操作命令时,所述L2-Cache将所述L2-Cache的信息存储结构中的该L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系删除;
当所述队列管理上下文信息被与其对应的L2-Cache踢出至所述L3-Cache,且对应的流水线上没有与所述队列对编号和PCIE设备的功能id所对应的操作命令时,所述L3-Cache将所述L3-Cache的信息存储结构中的该L2-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系删除。
具体而言,每当任一个队列管理上下文信息被对应的L1-Cache踢出到L2-Cache时(即队列管理上下文信息从L1Cache中搬移至L2-Cache中),或者流水线处理完一个命令去减绑定信息表的命令个数计数器时,L2-Cache检查并判断对应的{队列对编号和PCIE设备的功能id}和流水线号的绑定信息表的命令个数计数器是否为0,如果为0并且对应的队列管理上下文信息已经被该L1-Cache踢出,则说明该流水线上已经没有对应的{队列对编号和PCIE设备的功能id}所对应的业务,此时,将所述L2-Cache记录的{队列对编号和PCIE设备的功能id}清除;
每当任一个队列管理上下文信息被对应的L2Cache踢出到L3Cache时(即队列管理上下文信息从L2Cache中搬移至L3-Cache中),或者流水线处理完一个命令去减绑定信息表的命令个数计数器时,L3Cache检查并判断对应的{队列对编号和PCIE设备的功能id}和流水线号的绑定信息表的命令个数计数器是否为0,如果为0并且对应的队列管理上下文信息已经被该L2Cache踢出,则说明该流水线上已经没有对应的{队列对编号和PCIE设备的功能id}所对应的业务,此时,将所述L3Cache记录的{队列对编号和PCIE设备的功能id}清除;
每当任一个队列管理上下文信息被对应的L3Cache踢出到L4Cache时(即队列管理上下文信息从L3Cache中搬移至L4-Cache中),或者流水线处理完一个命令去减绑定信息表的命令个数计数器时,L4Cache检查并判断对应的{队列对编号和PCIE设备的功能id}和流水线号的绑定信息表的命令个数计数器是否为0,如果为0并且对应的队列管理上下文信息已经被该L3Cache踢出,则说明该流水线上已经没有对应的{队列对编号和PCIE设备的功能id}所对应的业务,此时,将所述L4Cache记录的{队列对编号和PCIE设备的功能id}清除;以便于下次相同{队列对编号和PCIE设备的功能id}再次进来处理时,能够根据流水线的负载重新选择一个流水线,而不是总是到固定的流水线。
可选的,在一些实施例中,所述操作命令为接收命令或发送命令,所述接收命令用于接收待处理数据,所述发送命令用于发送待处理数据。
实施例四
与上述实施例一的方法对应,本申请的实施例四提出一种基于RDMA引擎的数据处理系统,包括输入模块和Cache模块,所述Cache模块至少包括多个L1-Cache以及1个L2-Cache,多个L1-Cache共享1个L2-Cache;
所述输入模块,用于接收操作命令,根据所述操作命令获取队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id生成预取命令,并将所述预取命令发送至所述Cache模块;
所述L2-Cache,用于接收所述预取命令,根据所述预取命令包含的所述队列对编号和PCIE设备的功能id查询所述L2-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,当存在时,将与所述队列对编号和PCIE设备的功能id绑定的流水线号发送给所述输入模块,当不存在时,将当前负载最小的一个L1-Cache的流水线号发送给所述输入模块,并在所述L2-Cache的信息存储结构中记录当前负载最小的一个L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系;
所述输入模块,还用于接收所述Cache模块返回的流水线号,将所述操作命令送入与所述Cache模块返回的流水线号对应的流水线进行处理。
可选的,在一些实施例中,所述L2-Cache的信息存储结构记录共享所述L2-Cache的多个L1-Cache的流水线号与队列对编号和PCIE设备的功能id之间的绑定关系,以及记录共享所述L2-Cache的多个L1-Cache的流水线的当前负载。
可选的,在一些实施例中,所述L2-Cache,还用于当所述队列管理上下文信息被与其对应的L1-Cache踢出至所述L2-Cache,且对应的流水线上没有与所述队列对编号和PCIE设备的功能id所对应的操作命令时,所述L2-Cache将所述L2-Cache的信息存储结构中的该L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系删除。
可选的,在一些实施例中,所述L2-Cache,还用于当所述L2-Cache的信息存储结构中存在与所述队列对编号和PCIE设备的功能id绑定的流水线号时,访问内存以获取队列管理上下文信息,并将所述队列管理上下文信息发送至所述当前负载最小的一个L1-Cache。本实施例的系统与上述实施例的方法对应,因此,本实施例为详述的内容可以参阅上述实施例一的系统的内容得到,故此处不进行赘述。
实施例五
与上述实施例二的方法对应,本申请的实施例五提供一种基于RDMA引擎的数据处理系统,包括输入模块和Cache模块,所述Cache模块至少包括多个L2-Cache以及1个L3-Cache;
所述输入模块,用于接收操作命令,根据所述操作命令获取队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id生成预取命令,并将所述预取命令发送至所述Cache模块;
所述L3-Cache,用于接收所述预取命令,根据所述预取命令中的队列对编号和PCIE设备的功能id查询所述L3-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,当存在时,将所述预取命令发送给与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,当不存在时,将所述预取命令发送给当前负载最小的一个L2-Cache,并在所述L3-Cache的信息存储结构中,记录所述队列对编号和PCIE设备的功能id与所述一个L2-Cache的关联关系;
所述L2-Cache,用于接收所述预取命令,获得所述队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id查询所述L2-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,若存在,则所述L2-Cache将与所述队列对编号和PCIE设备的功能id绑定的流水线号返回给所述输入模块,若不存在,则所述L2-Cache将当前负载最小的一个L1-Cache的流水线号返回给所述输入模块,并在所述L2-Cache的信息存储结构中,记录所述一个L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系;
所述输入模块,用于接收所述Cache模块返回的流水线号,将所述操作命令送入与所述Cache模块返回的流水线号对应的流水线进行处理。
可选的,在一些实施例中,所述L3-Cache的信息存储结构记录共享所述L3-Cache的多个L2-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系,以及记录共享所述L3-Cache的多个L2-Cache的当前负载。
可选的,在一些实施例中,所述L3-Cache,还用于当所述L3-Cache的信息存储结构中存在与所述队列对编号和PCIE设备的功能id绑定的流水线号时,访问内存以获取队列管理上下文信息,并将所述队列管理上下文信息发送至所述当前负载最小的一个L2-Cache。
本实施例的系统与上述实施例的方法对应,因此,本实施例为详述的内容可以参阅上述实施例二的系统的内容得到,故此处不进行赘述。
实施例六
与上述实施例六的方法对应,本申请的实施例六提供一种基于RDMA引擎的数据处理系统,其特征在于,包括输入模块和Cache模块,所述Cache模块包括多个L1Cache、多个L2-Cache、多个L3-Cache以及1个L4-Cache;
所述输入模块,用于接收操作命令,根据所述操作命令获取队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id生成预取命令,并将所述预取命令发送至所述Cache模块;
所述L4-Cache,用于接收所述预取命令,根据所述预取命令中的队列对编号和PCIE设备的功能id查询所述L4-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的L3-Cache,当存在时,将所述预取命令发送给与所述队列对编号和PCIE设备的功能id绑定的L3-Cache,当不存在时,将所述预取命令发送给当前负载最小的一个L3-Cache,并在所述L4-Cache的信息存储结构中,记录所述队列对编号和PCIE设备的功能id与所述一个L3-Cache的关联关系;
所述L3-Cache,用于接收所述预取命令,根据所述预取命令中的队列对编号和PCIE设备的功能id查询所述L3-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,当存在时,将所述预取命令发送给与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,当不存在时,将所述预取命令发送给当前负载最小的一个L2-Cache,并在所述L3-Cache的信息存储结构中,记录所述队列对编号和PCIE设备的功能id与所述一个L2-Cache的关联关系;
所述L2-Cache,用于接收所述预取命令,获得所述队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id查询所述L2-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,若存在,则所述L2-Cache将与所述队列对编号和PCIE设备的功能id绑定的流水线号返回给所述输入模块,若不存在,则所述L2-Cache将当前负载最小的一个L1-Cache的流水线号返回给所述输入模块,并在所述L2-Cache的信息存储结构中,记录所述一个L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系;
所述输入模块,用于接收所述Cache模块返回的流水线号,将所述操作命令送入与所述Cache模块返回的流水线号对应的流水线进行处理。
可选的,在一些实施例中,所述L4-Cache的信息存储结构记录共享所述L4-Cache的多个L3-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系,以及记录共享所述L4-Cache的多个L3-Cache的当前负载。
可选的,在一些实施例中,所述L4-Cache,还用于当所述L4-Cache的信息存储结构中存在与所述队列对编号和PCIE设备的功能id绑定的流水线号时,访问内存以获取队列管理上下文信息,并将所述队列管理上下文信息发送至所述当前负载最小的一个L3-Cache。
可选的,在一些实施例中,所述操作命令为接收命令或发送命令,所述接收命令用于接收待处理数据,所述发送命令用于发送待处理数据。
本实施例的系统与上述实施例的方法对应,因此,本实施例为详述的内容可以参阅上述实施例三的系统的内容得到,故此处不进行赘述。
实施例七
本申请的实施例七提出一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现如上述实施例一、二、三所述的基于RDMA引擎的数据处理方法。
具体而言,所述计算机可读存储介质可以包括:能够携带所述计算机程序指令的任何实体或记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。
实施例八
本申请的实施例八提出一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述实施例一、二、三所述的基于RDMA引擎的数据处理方法。
其中,电子设备还可以包括连接不同组件(包括存储器和处理器)的总线。存储器可以包括易失性存储器形式的计算机可读介质,例如随机存取存储器(RAM)和/或高速缓存存储器。存储器也可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。电子设备也可以与一个或多个外部设备(例如键盘、指向设备、显示器等)通信,还可与一个或者多个使得用户能与该电子设备交互的设备通信,和/或与使得该电子设备能与一个或多个其他计算设备进行通信的任何设备(例如网卡)通信,这种通信可以通过输入/输出(I/O)接口进行,并且,电子设备还可以通过网络适配器与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多更新和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (16)
1.一种基于RDMA引擎的数据处理方法,其特征在于,所述RDMA引擎包括输入模块和Cache模块,所述Cache模块包括多个L1-Cache以及1个L2-Cache;
所述方法包括:
所述输入模块接收操作命令,根据所述操作命令获取队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id生成预取命令,并将所述预取命令发送至所述Cache模块;
所述L2-Cache接收所述预取命令,获得所述队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id查询所述L2-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,若存在,则所述L2-Cache将与所述队列对编号和PCIE设备的功能id绑定的流水线号返回给所述输入模块,若不存在,则所述L2-Cache将当前负载最小的一个L1-Cache的流水线号返回给所述输入模块,并在所述L2-Cache的信息存储结构中,记录所述一个L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系;所述L2-Cache的信息存储结构用于记录所述多个L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系,以及记录所述多个L1-Cache的流水线的当前负载;
所述输入模块接收所述Cache模块返回的流水线号,将所述操作命令送入与所述Cache模块返回的流水线号对应的流水线进行处理。
2.根据权利要求1所述的基于RDMA引擎的数据处理方法,其特征在于,所述方法还包括:
当队列管理上下文信息被与其对应的L1-Cache踢出至所述L2-Cache,且对应的流水线上没有与所述队列对编号和PCIE设备的功能id所对应的操作命令时,所述L2-Cache将所述L2-Cache的信息存储结构中的该L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系删除。
3.根据权利要求1所述的基于RDMA引擎的数据处理方法,其特征在于,所述方法还包括:
若所述L2-Cache的信息存储结构中不存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,则所述L2-Cache访问内存以获取队列管理上下文信息,并将所述队列管理上下文信息发送至所述当前负载最小的一个L1-Cache。
4.一种基于RDMA引擎的数据处理方法,其特征在于,所述RDMA引擎包括输入模块和Cache模块,所述Cache模块包括多个L1-Cache、多个L2-Cache以及1个L3-Cache;
所述方法包括:
所述输入模块接收操作命令,根据所述操作命令获取队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id生成预取命令,并将所述预取命令发送至所述Cache模块;
所述L3-Cache接收所述预取命令,根据所述预取命令中的队列对编号和PCIE设备的功能id查询所述L3-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,若存在,则所述L3-Cache将所述预取命令发送给与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,若不存在,则所述L3-Cache将所述预取命令发送给当前负载最小的一个L2-Cache,并在所述L3-Cache的信息存储结构中,记录所述队列对编号和PCIE设备的功能id与所述一个L2-Cache的关联关系;所述L3-Cache的信息存储结构,用于记录多个L2-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系,以及,记录所述多个L2-Cache的当前负载;
所述L2-Cache接收所述预取命令,获得所述队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id查询所述L2-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,若存在,则所述L2-Cache将与所述队列对编号和PCIE设备的功能id绑定的流水线号返回给所述输入模块,若不存在,则所述L2-Cache将当前负载最小的一个L1-Cache的流水线号返回给所述输入模块,并在所述L2-Cache的信息存储结构中,记录所述一个L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系;所述L2-Cache的信息存储结构用于记录所述多个L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系,以及记录所述多个L1-Cache的流水线的当前负载;
所述输入模块接收所述Cache模块返回的流水线号,将所述操作命令送入与所述Cache模块返回的流水线号对应的流水线进行处理。
5.根据权利要求4所述的基于RDMA引擎的数据处理方法,其特征在于,所述方法还包括:
若所述L3-Cache的信息存储结构中不存在与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,则所述L3-Cache访问内存以获取队列管理上下文信息,并将所述队列管理上下文信息发送至所述当前负载最小的一个L2-Cache。
6.一种基于RDMA引擎的数据处理方法,其特征在于,所述RDMA引擎包括输入模块和Cache模块,所述Cache模块包括多个L1-Cache、多个L2-Cache、多个L3-Cache以及1个L4-Cache;
所述输入模块接收操作命令,根据所述操作命令获取队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id生成预取命令,并将所述预取命令发送至所述Cache模块;
所述L4-Cache接收所述预取命令,根据所述预取命令中的队列对编号和PCIE设备的功能id查询所述L4-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的L3-Cache,若存在,则所述L4-Cache将所述预取命令发送给与所述队列对编号和PCIE设备的功能id绑定的L3-Cache,若不存在,则所述L4-Cache将所述预取命令发送给当前负载最小的一个L3-Cache,并在所述L4-Cache的信息存储结构中,记录所述队列对编号和PCIE设备的功能id与所述一个L3-Cache的关联关系;所述L4-Cache的信息存储结构,用于记录所述多个L3-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系,以及,记录所述多个L3-Cache的当前负载;
所述L3-Cache接收所述预取命令,根据所述预取命令中的队列对编号和PCIE设备的功能id查询所述L3-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,若存在,则所述L3-Cache将所述预取命令发送给与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,若不存在,则所述L3-Cache将所述预取命令发送给当前负载最小的一个L2-Cache,并在所述L3-Cache的信息存储结构中,记录所述队列对编号和PCIE设备的功能id与所述一个L2-Cache的关联关系;所述L3-Cache的信息存储结构,用于记录多个L2-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系,以及,记录所述多个L2-Cache的当前负载;
所述L2-Cache接收所述预取命令,获得所述队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id查询所述L2-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,若存在,则所述L2-Cache将与所述队列对编号和PCIE设备的功能id绑定的流水线号返回给所述输入模块,若不存在,则所述L2-Cache将当前负载最小的一个L1-Cache的流水线号返回给所述输入模块,并在所述L2-Cache的信息存储结构中,记录所述一个L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系;所述L2-Cache的信息存储结构用于记录所述多个L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系,以及记录所述多个L1-Cache的流水线的当前负载;
所述输入模块接收所述Cache模块返回的流水线号,将所述操作命令送入与所述Cache模块返回的流水线号对应的流水线进行处理。
7.根据权利要求6所述的基于RDMA引擎的数据处理方法,其特征在于,所述方法还包括:
若所述L4-Cache的信息存储结构中不存在与所述队列对编号和PCIE设备的功能id绑定的L3-Cache,则所述L4-Cache访问内存以获取队列管理上下文信息,并将所述队列管理上下文信息发送至所述当前负载最小的一个L3-Cache。
8.一种基于RDMA引擎的数据处理系统,其特征在于,包括输入模块和Cache模块,所述Cache模块包括多个L1-Cache以及1个L2-Cache;
所述输入模块,用于接收操作命令,根据所述操作命令获取队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id生成预取命令,并将所述预取命令发送至所述Cache模块;
所述L2-Cache,用于接收所述预取命令,根据所述预取命令包含的所述队列对编号和PCIE设备的功能id查询所述L2-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,当存在时,将与所述队列对编号和PCIE设备的功能id绑定的流水线号发送给所述输入模块,当不存在时,将当前负载最小的一个L1-Cache的流水线号发送给所述输入模块,并在所述L2-Cache的信息存储结构中,记录所述一个L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系;所述L2-Cache的信息存储结构用于记录所述多个L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系,以及记录所述多个L1-Cache的流水线的当前负载;
所述输入模块,还用于接收所述Cache模块返回的流水线号,将所述操作命令送入与所述Cache模块返回的流水线号对应的流水线进行处理。
9.根据权利要求8所述的基于RDMA引擎的数据处理系统,其特征在于,所述L2-Cache,还用于当队列管理上下文信息被与其对应的L1-Cache踢出至所述L2-Cache,且对应的流水线上没有与所述队列对编号和PCIE设备的功能id所对应的操作命令时,所述L2-Cache将所述L2-Cache的信息存储结构中的该L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系删除。
10.根据权利要求8所述的基于RDMA引擎的数据处理系统,其特征在于,所述L2-Cache,还用于当所述L2-Cache的信息存储结构中不存在与所述队列对编号和PCIE设备的功能id绑定的流水线号时,访问内存以获取队列管理上下文信息,并将所述队列管理上下文信息发送至所述当前负载最小的一个L1-Cache。
11.一种基于RDMA引擎的数据处理系统,其特征在于,包括输入模块和Cache模块,所述Cache模块包括多个L1-Cache、多个L2-Cache以及1个L3-Cache;
所述输入模块,用于接收操作命令,根据所述操作命令获取队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id生成预取命令,并将所述预取命令发送至所述Cache模块;
所述L3-Cache,用于接收所述预取命令,根据所述预取命令中的队列对编号和PCIE设备的功能id查询所述L3-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,当存在时,将所述预取命令发送给与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,当不存在时,将所述预取命令发送给当前负载最小的一个L2-Cache,并在所述L3-Cache的信息存储结构中,记录所述队列对编号和PCIE设备的功能id与所述一个L2-Cache的关联关系;
所述L2-Cache,用于接收所述预取命令,获得所述队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id查询所述L2-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,若存在,则所述L2-Cache将与所述队列对编号和PCIE设备的功能id绑定的流水线号返回给所述输入模块,若不存在,则所述L2-Cache将当前负载最小的一个L1-Cache的流水线号返回给所述输入模块,并在所述L2-Cache的信息存储结构中,记录所述一个L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系;所述L2-Cache的信息存储结构用于记录所述多个L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系,以及记录所述多个L1-Cache的流水线的当前负载;
所述输入模块,用于接收所述Cache模块返回的流水线号,将所述操作命令送入与所述Cache模块返回的流水线号对应的流水线进行处理。
12.根据权利要求11所述的基于RDMA引擎的数据处理系统,其特征在于,所述L3-Cache,还用于当所述L3-Cache的信息存储结构中不存在与所述队列对编号和PCIE设备的功能id绑定的流水线号时,访问内存以获取队列管理上下文信息,并将所述队列管理上下文信息发送至所述当前负载最小的一个L2-Cache。
13.一种基于RDMA引擎的数据处理系统,其特征在于,包括输入模块和Cache模块,所述Cache模块包括多个L1-Cache、多个L2-Cache、多个L3-Cache以及1个L4-Cache;
所述输入模块,用于接收操作命令,根据所述操作命令获取队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id生成预取命令,并将所述预取命令发送至所述Cache模块;
所述L4-Cache,用于接收所述预取命令,根据所述预取命令中的队列对编号和PCIE设备的功能id查询所述L4-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的L3-Cache,当存在时,将所述预取命令发送给与所述队列对编号和PCIE设备的功能id绑定的L3-Cache,当不存在时,将所述预取命令发送给当前负载最小的一个L3-Cache,并在所述L4-Cache的信息存储结构中,记录所述队列对编号和PCIE设备的功能id与所述一个L3-Cache的关联关系;所述L4-Cache的信息存储结构,用于记录所述多个L3-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系,以及,记录所述多个L3-Cache的当前负载;
所述L3-Cache,用于接收所述预取命令,根据所述预取命令中的队列对编号和PCIE设备的功能id查询所述L3-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,当存在时,将所述预取命令发送给与所述队列对编号和PCIE设备的功能id绑定的L2-Cache,当不存在时,将所述预取命令发送给当前负载最小的一个L2-Cache,并在所述L3-Cache的信息存储结构中,记录所述队列对编号和PCIE设备的功能id与所述一个L2-Cache的关联关系;所述L3-Cache的信息存储结构,用于记录多个L2-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系,以及,记录所述多个L2-Cache的当前负载;
所述L2-Cache,用于接收所述预取命令,获得所述队列对编号和PCIE设备的功能id,根据所述队列对编号和PCIE设备的功能id查询所述L2-Cache的信息存储结构中是否存在与所述队列对编号和PCIE设备的功能id绑定的流水线号,若存在,则所述L2-Cache将与所述队列对编号和PCIE设备的功能id绑定的流水线号返回给所述输入模块,若不存在,则所述L2-Cache将当前负载最小的一个L1-Cache的流水线号返回给所述输入模块,并在所述L2-Cache的信息存储结构中,记录所述一个L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系;所述L2-Cache的信息存储结构用于记录所述多个L1-Cache的流水线号与所述队列对编号和PCIE设备的功能id之间的绑定关系,以及记录所述多个L1-Cache的流水线的当前负载;
所述输入模块,用于接收所述Cache模块返回的流水线号,将所述操作命令送入与所述Cache模块返回的流水线号对应的流水线进行处理。
14.根据权利要求13所述的基于RDMA引擎的数据处理系统,其特征在于,所述L4-Cache,还用于当所述L4-Cache的信息存储结构中不存在与所述队列对编号和PCIE设备的功能id绑定的流水线号时,访问内存以获取队列管理上下文信息,并将所述队列管理上下文信息发送至所述当前负载最小的一个L3-Cache。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1~7中任一项所述的基于RDMA引擎的数据处理方法。
16.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述权利要求1~7中任一项所述的基于RDMA引擎的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310274803.5A CN115982091B (zh) | 2023-03-21 | 2023-03-21 | 基于rdma引擎的数据处理方法与系统、介质、设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310274803.5A CN115982091B (zh) | 2023-03-21 | 2023-03-21 | 基于rdma引擎的数据处理方法与系统、介质、设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115982091A CN115982091A (zh) | 2023-04-18 |
CN115982091B true CN115982091B (zh) | 2023-06-23 |
Family
ID=85959943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310274803.5A Active CN115982091B (zh) | 2023-03-21 | 2023-03-21 | 基于rdma引擎的数据处理方法与系统、介质、设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115982091B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116303173B (zh) * | 2023-05-19 | 2023-08-08 | 深圳云豹智能有限公司 | 减少rdma引擎片上缓存的方法、装置、系统及芯片 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110121698A (zh) * | 2016-12-31 | 2019-08-13 | 英特尔公司 | 用于异构计算的系统、方法和装置 |
CN111736900A (zh) * | 2020-08-17 | 2020-10-02 | 广东省新一代通信与网络创新研究院 | 一种并行双通道的cache设计方法和装置 |
CN113778694A (zh) * | 2021-11-12 | 2021-12-10 | 苏州浪潮智能科技有限公司 | 一种任务处理方法、装置、设备及介质 |
CN114217861A (zh) * | 2021-12-06 | 2022-03-22 | 海光信息技术股份有限公司 | 数据处理方法及装置、电子装置和存储介质 |
CN115421899A (zh) * | 2022-06-23 | 2022-12-02 | 清华大学 | 可重构处理器多端口可配缓存访问方法及装置 |
CN115437795A (zh) * | 2022-11-07 | 2022-12-06 | 东南大学 | 一种异构gpu集群负载感知的显存重计算优化方法及系统 |
CN115470156A (zh) * | 2022-09-13 | 2022-12-13 | 深圳云豹智能有限公司 | 基于rdma的内存使用方法、系统、电子设备和存储介质 |
CN115630109A (zh) * | 2022-11-02 | 2023-01-20 | 浪潮云信息技术股份公司 | 一种同步Jenkins流水线运行状态的方法、系统及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050228794A1 (en) * | 2004-03-30 | 2005-10-13 | Navas Julio C | Method and apparatus for virtual content access systems built on a content routing network |
US9384072B2 (en) * | 2012-12-20 | 2016-07-05 | Oracle International Corporation | Distributed queue pair state on a host channel adapter |
US10521880B2 (en) * | 2017-04-17 | 2019-12-31 | Intel Corporation | Adaptive compute size per workload |
US20230062889A1 (en) * | 2021-09-01 | 2023-03-02 | Google Llc | Off-Chip Memory Backed Reliable Transport Connection Cache Hardware Architecture |
-
2023
- 2023-03-21 CN CN202310274803.5A patent/CN115982091B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110121698A (zh) * | 2016-12-31 | 2019-08-13 | 英特尔公司 | 用于异构计算的系统、方法和装置 |
CN111736900A (zh) * | 2020-08-17 | 2020-10-02 | 广东省新一代通信与网络创新研究院 | 一种并行双通道的cache设计方法和装置 |
CN113778694A (zh) * | 2021-11-12 | 2021-12-10 | 苏州浪潮智能科技有限公司 | 一种任务处理方法、装置、设备及介质 |
CN114217861A (zh) * | 2021-12-06 | 2022-03-22 | 海光信息技术股份有限公司 | 数据处理方法及装置、电子装置和存储介质 |
CN115421899A (zh) * | 2022-06-23 | 2022-12-02 | 清华大学 | 可重构处理器多端口可配缓存访问方法及装置 |
CN115470156A (zh) * | 2022-09-13 | 2022-12-13 | 深圳云豹智能有限公司 | 基于rdma的内存使用方法、系统、电子设备和存储介质 |
CN115630109A (zh) * | 2022-11-02 | 2023-01-20 | 浪潮云信息技术股份公司 | 一种同步Jenkins流水线运行状态的方法、系统及装置 |
CN115437795A (zh) * | 2022-11-07 | 2022-12-06 | 东南大学 | 一种异构gpu集群负载感知的显存重计算优化方法及系统 |
Non-Patent Citations (4)
Title |
---|
Exploring manycore architectures for next-generation HPC systems through the MANGO approach;Jose Flich等;《Microprocessors and Microsystems》;第61卷;154-170 * |
RGraph:基于RDMA的高效分布式图数据处理系统;崔鹏杰等;《软件学报》;第33卷(第03期);1018-1042 * |
面向申威众核架构的GROMACS并行实现与性能优化;余洋;《中国优秀硕士学位论文全文数据库 信息科技辑 》(第01期);I137-73 * |
龙芯GS464E处理器核架构设计;吴瑞阳等;《中国科学:信息科学》;第45卷(第04期);480-500 * |
Also Published As
Publication number | Publication date |
---|---|
CN115982091A (zh) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20160132541A1 (en) | Efficient implementations for mapreduce systems | |
CN101789976B (zh) | 嵌入式网络存储系统及其方法 | |
CN107493329A (zh) | 一种分布式内存文件系统的远程文件访问方法 | |
CN115982091B (zh) | 基于rdma引擎的数据处理方法与系统、介质、设备 | |
CN101237331B (zh) | 话单文件的生成方法、传输方法、系统和装置 | |
CN107147590A (zh) | 一种基于rdma协议消息通信的方法及系统 | |
US20230359628A1 (en) | Blockchain-based data processing method and apparatus, device, and storage medium | |
CN105988941A (zh) | 缓存数据处理方法和装置 | |
US20230336368A1 (en) | Block chain-based data processing method and related apparatus | |
CN108287793A (zh) | 响应消息的缓冲方法及服务器 | |
CN112307058A (zh) | 短链接的处理方法、装置、存储介质及计算机设备 | |
CN109862069B (zh) | 消息处理方法和装置 | |
CN106294539A (zh) | 混合云环境下的数据索引列表存储策略 | |
CN108717420B (zh) | 一种分布式文件系统中提高小文件读取效率的方法 | |
CN107977381B (zh) | 数据配置方法、索引管理方法、相关装置以及计算设备 | |
US20170364293A1 (en) | Method and apparatus for data processing | |
CN108536854A (zh) | 数据交互的方法、装置及计算机可读存储介质 | |
JPH08147201A (ja) | トラヒックデータキャッシュ方法 | |
CN113419792A (zh) | 一种事件处理方法、装置、终端设备和存储介质 | |
CN112559574B (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN114040346B (zh) | 一种基于5g网络的档案数字化信息管理系统与管理方法 | |
US20230153306A1 (en) | Offloading data interfacing method between dbms storage engine and computational storage device | |
WO2022028165A1 (zh) | 缓存管理方法、终端以及存储介质 | |
CN108111560B (zh) | 一种线速存储网络分组的系统及方法 | |
CN117349232A (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 |