CN117573602B - 用于远程直接内存访问报文发送的方法及计算机设备 - Google Patents
用于远程直接内存访问报文发送的方法及计算机设备 Download PDFInfo
- Publication number
- CN117573602B CN117573602B CN202410059515.2A CN202410059515A CN117573602B CN 117573602 B CN117573602 B CN 117573602B CN 202410059515 A CN202410059515 A CN 202410059515A CN 117573602 B CN117573602 B CN 117573602B
- Authority
- CN
- China
- Prior art keywords
- memory access
- direct memory
- remote direct
- work queue
- queue element
- 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
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000005540 biological transmission Effects 0.000 title abstract description 14
- 238000003860 storage Methods 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 14
- 230000002093 peripheral effect Effects 0.000 claims description 8
- 230000000903 blocking effect Effects 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请涉及计算机技术领域并提供一种用于远程直接内存访问报文发送的方法及计算机设备。方法包括:通过远程直接内存访问软件,选择性地按照第一下发模式或者第二下发模式来下发第一报文相关联的第一工作队列元素和与所述第一工作队列元素对应的第一载荷;通过远程直接内存访问硬件,获取所述第一工作队列元素和所述第一载荷,然后组装所述第一工作队列元素和所述第一载荷得到与所述第一报文对应的第一远程直接内存访问报文包。如此,有效地降低接口时延,有利于满足高速数据传输要求。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种用于远程直接内存访问报文发送的方法及计算机设备。
背景技术
远程直接内存访问是将数据从物理线路直接拷贝到应用程序,或者,从应用程序直接拷贝到物理线路,这样在两台主机之间进行数据传输且不经过***内核,节省了数据拷贝和内核切换。现有技术中,用于发送远程直接内存访问数据的硬件例如远程直接内存访问网卡一般通过插槽连接本地主机的主板,本地主机通过总线操作来实现与硬件的交互,因此导致操作时延高,难以满足高速数据传输的要求。
为此,本申请提供了一种用于远程直接内存访问报文发送的方法及计算机设备,用于应对现有技术的技术难题。
发明内容
第一方面,本申请提供了一种用于远程直接内存访问报文发送的方法。所述方法包括:通过远程直接内存访问软件,选择性地按照第一下发模式或者第二下发模式来下发第一报文相关联的第一工作队列元素和与所述第一工作队列元素对应的第一载荷;通过远程直接内存访问硬件,获取所述第一工作队列元素和所述第一载荷,然后组装所述第一工作队列元素和所述第一载荷得到与所述第一报文对应的第一远程直接内存访问报文包,其中,当所述远程直接内存访问软件按照所述第一下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问软件将所述第一工作队列元素和所述第一载荷存储于不在所述远程直接内存访问硬件上的第一缓存空间,当所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问软件将所述第一工作队列元素和所述第一载荷存储于在所述远程直接内存访问硬件上的第二缓存空间,当连接所述远程直接内存访问软件和所述远程直接内存访问硬件的第一接口的接口时延大于第一预设阈值时,所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷。
通过本申请的第一方面,通过比较连接远程直接内存访问软件和远程直接内存访问硬件的第一接口的接口时延与第一预设阈值,可以利用远程直接内存访问硬件提供远程直接内存访问逻辑的中断反馈,通过远程直接内存访问软件选择性地按照第一下发模式或者第二下发模式来下发第一工作队列元素和对应的第一载荷,有效地降低接口时延,有利于满足高速数据传输要求,同时还考虑到了远程直接内存访问硬件上的有限算力资源和有限存储资源。
在本申请的第一方面的一种可能的实现方式中,所述远程直接内存访问软件侧部署在第一主机,所述远程直接内存访问硬件通过所述第一接口连接所述第一主机,所述第一缓存空间是所述第一主机的内存,所述第二缓存空间是所述远程直接内存访问硬件的基地址寄存器空间。
在本申请的第一方面的一种可能的实现方式中,所述第一接口是快捷***组件互连接口、通用串行总线接口或者串行器解串器接口。
在本申请的第一方面的一种可能的实现方式中,当所述远程直接内存访问软件按照所述第一下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问硬件先通过所述第一接口访问所述第一缓存空间来获取所述第一工作队列元素再通过所述第一接口访问所述第一缓存空间来获取所述第一载荷;当所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问硬件利用对所述第二缓存空间的单次访问且不通过所述第一接口来获取所述第一工作队列元素和所述第一载荷。
在本申请的第一方面的一种可能的实现方式中,当所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问软件先将所述第一工作队列元素存储于所述第二缓存空间然后将所述第一载荷附加在位于所述第二缓存空间中的所述第一工作队列元素的尾部。
在本申请的第一方面的一种可能的实现方式中,当所述远程直接内存访问软件按照所述第一下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问硬件通过所述第一接口接收来自所述远程直接内存访问软件的门铃通知;当所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问硬件接收硬件门铃通知且不通过所述第一接口。
在本申请的第一方面的一种可能的实现方式中,所述方法还包括:通过所述远程直接内存访问软件,按照所述第二下发模式来下发多个工作队列元素和与所述多个工作队列元素一一对应的多个载荷,并且,所述远程直接内存访问软件通过写入组合操作将所述多个工作队列元素和所述多个载荷存储于所述第二缓存空间。
在本申请的第一方面的一种可能的实现方式中,当所述远程直接内存访问硬件检测到链路阻塞程度高于第二预设阈值时,所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷,并且,当所述远程直接内存访问硬件检测到所述远程直接内存访问硬件的基地址寄存器资源占用率高于第三预设阈值时,所述远程直接内存访问软件按照所述第一下发模式来下发所述第一工作队列元素和所述第一载荷。
在本申请的第一方面的一种可能的实现方式中,所述远程直接内存访问软件用于:基于先前多个批次下发的工作队列元素的数量和载荷的数据长度,选择性地按照所述第一下发模式或者所述第二下发模式来下发所述第一工作队列元素和所述第一载荷。
在本申请的第一方面的一种可能的实现方式中,当所述先前多个批次下发的工作队列元素的数量和载荷的数据长度各自的变化幅度小于第四预设阈值时,所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷。
在本申请的第一方面的一种可能的实现方式中,当所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷时,所述第一工作队列元素的长度相对于所述第二缓存空间中用于存储所述第一工作队列元素和所述第一载荷的物理页的比例是基于所述第一预设阈值确定。
在本申请的第一方面的一种可能的实现方式中,当所述第一报文相关联的应用场景被选择为工业自动化应用场景或者交通监控应用场景时,所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷。
第二方面,本申请实施例还提供了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现根据上述任一方面的任一种实现方式的方法。
第三方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机设备上运行时使得所述计算机设备执行根据上述任一方面的任一种实现方式的方法。
第四方面,本申请实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的指令,当所述指令在计算机设备上运行时使得所述计算机设备执行根据上述任一方面的任一种实现方式的方法。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种用于远程直接内存访问报文发送的方法的流程示意图;
图2为本申请实施例提供的一种远程直接内存访问报文发送的示意图;
图3为本申请实施例提供的一种计算设备的结构示意图。
具体实施方式
下面将结合附图对本申请实施例作进一步地详细描述。
应当理解的是,在本申请的描述中,“至少一个”指一个或一个以上,“多个”指两个或两个以上。另外,“第一”、“第二”等词汇,除非另有说明,否则仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
图1为本申请实施例提供的一种用于远程直接内存访问报文发送的方法的流程示意图。如图1所示,方法包括以下步骤。
步骤S110:通过远程直接内存访问软件,选择性地按照第一下发模式或者第二下发模式来下发第一报文相关联的第一工作队列元素和与所述第一工作队列元素对应的第一载荷。
步骤S120:通过远程直接内存访问硬件,获取所述第一工作队列元素和所述第一载荷,然后组装所述第一工作队列元素和所述第一载荷得到与所述第一报文对应的第一远程直接内存访问报文包。
其中,当所述远程直接内存访问软件按照所述第一下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问软件将所述第一工作队列元素和所述第一载荷存储于不在所述远程直接内存访问硬件上的第一缓存空间。当所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问软件将所述第一工作队列元素和所述第一载荷存储于在所述远程直接内存访问硬件上的第二缓存空间。当连接所述远程直接内存访问软件和所述远程直接内存访问硬件的第一接口的接口时延大于第一预设阈值时,所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷。
参阅图1,远程直接内存访问软件可以是部署在第一主机上的应用程序,用于基于远程直接内存访问技术进行数据传输,包括接收经过远程直接内存访问网络的来自远端主机的网络数据,以及经过远程直接内存访问网络向远端主机发送网络数据。远程直接内存访问硬件是与第一主机连接的专用硬件,用于与远程直接内存访问软件协作以实现第一主机与远端主机之间经过远程直接内存访问网络进行数据传输。远程直接内存访问软件可以被看作驱动侧,包括用于驱动硬件的驱动程序和用于管理基于远程直接内存访问技术的数据传输的应用程序。远程直接内存访问硬件可以被看作逻辑侧,用于提供报文转发处理等逻辑运算功能。一般地,远程直接内存访问硬件通过特定接口,例如通过第一接口,与第一主机连接。远程直接内存访问硬件可以是任意合适的硬件,例如网络适配器、智能网卡、数据处理器等。远程直接内存访问硬件可以被部署在第一主机的主板的插槽上,通过主板的总线与第一主机上的远程直接内存访问软件交互。工作队列元素是软件下发给硬件的任务,可以用于指示硬件去哪里读取多长的数据后发送到哪个目的地。这里,第一报文是要通过远程直接内存访问硬件发送出去的报文,也即经过远程直接内存访问网络向远端主机发送的网络数据。第一报文相关联的第一工作队列元素代表了远程直接内存访问软件要下发给远程直接内存访问硬件的用于发送第一报文的任务。第一工作队列元素包含了地址信息和长度信息,通过解析第一工作队列元素可以获悉地址信息和长度信息,进而基于地址信息和长度信息来获取与所述第一工作队列元素对应的第一载荷。第一载荷代表了要发送的第一报文的数据成分。通过将第一载荷按照合适的报文封装格式与报文头一起封装到报文包里,得到用于经过远程直接内存访问网络发送给远端主机的第一远程直接内存访问报文包。
继续参阅图1,在步骤S110,通过远程直接内存访问软件,选择性地按照第一下发模式或者第二下发模式来下发第一报文相关联的第一工作队列元素和与所述第一工作队列元素对应的第一载荷;然后,在步骤S120,通过远程直接内存访问硬件,获取所述第一工作队列元素和所述第一载荷,然后组装所述第一工作队列元素和所述第一载荷得到与所述第一报文对应的第一远程直接内存访问报文包。这里,第一下发模式意味着,所述远程直接内存访问软件将所述第一工作队列元素和所述第一载荷存储于不在所述远程直接内存访问硬件上的第一缓存空间,因此,远程直接内存访问硬件是通过访问第一缓存空间来获取所述第一工作队列元素和所述第一载荷。第二下发模式意味着,所述远程直接内存访问软件将所述第一工作队列元素和所述第一载荷存储于在所述远程直接内存访问硬件上的第二缓存空间,因此,远程直接内存访问硬件是通过访问第二缓存空间来获取所述第一工作队列元素和所述第一载荷。第一缓存空间不在所述远程直接内存访问硬件上,而第二缓存空间在所述远程直接内存访问硬件上。因此,所述远程直接内存访问硬件要访问第一缓存空间,必须借助远程直接内存访问软件,因此必然涉及与远程直接内存访问软件之间的交互,包括至少一次的上下行操作。而第一接口连接所述远程直接内存访问软件和所述远程直接内存访问硬件,因此所述远程直接内存访问硬件要访问第一缓存空间,必然通过第一接口才能与远程直接内存访问软件交互,从而访问不在所述远程直接内存访问硬件上的第一缓存空间,这样就造成了第一接口的接口时延。相对的,所述远程直接内存访问硬件要访问第二缓存空间,不需要借助远程直接内存访问软件,可以直接访问在所述远程直接内存访问硬件上的第二缓存空间,因此避免了第一接口的接口时延。考虑到所述远程直接内存访问硬件上的存储资源有限,并且所述远程直接内存访问硬件上的存储资源还要用于如硬件卸载、流表匹配、报文转发处理、端口监测等其它任务,因此一般提供有限的存储资源用于支持在所述远程直接内存访问硬件上的第二缓存空间存储工作队列元素和载荷。并且,报文相关的载荷部分,例如第一报文相关的第一载荷,可能具有各种数据长度,取决于具体的通信标准、网络协议、报文封装格式等。例如,在视频会议的应用场景中,通常一个报文包中包含一次会议的记录,而会议的持续时间可能从几十秒钟到几十分钟,这样可能导致相关会议报文的载荷的数据长度在较大的取值范围内变化。因此,需要利用所述远程直接内存访问硬件上的有限的存储资源来降低接口时延,同时要考虑到载荷的变化等因素,避免对所述远程直接内存访问硬件上的有限算力资源和有限存储资源造成过高的负面影响。因此,通过远程直接内存访问软件,选择性地按照第一下发模式或者第二下发模式来下发第一工作队列元素和第一载荷,有利于进行灵活的策略设计以达成整体***效率和接口时延的均衡优化效果。这里,当连接所述远程直接内存访问软件和所述远程直接内存访问硬件的第一接口的接口时延大于第一预设阈值时,所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷。如此,通过第一预设阈值的设定,可以在第一接口的接口时延超过了第一预设阈值时,也就是第一接口的接口时延过高的情况下,按照第二下发模式来下发所述第一工作队列元素和所述第一载荷,这样意味着所述远程直接内存访问硬件直接访问在所述远程直接内存访问硬件上的第二缓存空间,不需要借助远程直接内存访问软件,进而实现了降低接口时延。并且,可以记录下每一次所述远程直接内存访问硬件通过第一接口访问第一缓存空间的接口时延,这样当接口时延超过了第一预设阈值时,就可以上报中断给所述远程直接内存访问软件,这样所述远程直接内存访问软件就可以按照第二下发模式来下发后续的工作队列元素和相应的载荷,进而降低接口时延。因此,通过合理的设定第一预设阈值,可以利用远程直接内存访问硬件提供远程直接内存访问逻辑的中断反馈,有效地降低接口时延,有利于满足高速数据传输要求,同时还考虑到了远程直接内存访问硬件上的有限算力资源和有限存储资源。
总之,图1所示的用于远程直接内存访问报文发送的方法,通过比较连接远程直接内存访问软件和远程直接内存访问硬件的第一接口的接口时延与第一预设阈值,可以利用远程直接内存访问硬件提供远程直接内存访问逻辑的中断反馈,通过远程直接内存访问软件选择性地按照第一下发模式或者第二下发模式来下发第一工作队列元素和对应的第一载荷,有效地降低接口时延,有利于满足高速数据传输要求,同时还考虑到了远程直接内存访问硬件上的有限算力资源和有限存储资源。
在一种可能的实施方式中,所述远程直接内存访问软件侧部署在第一主机,所述远程直接内存访问硬件通过所述第一接口连接所述第一主机,所述第一缓存空间是所述第一主机的内存,所述第二缓存空间是所述远程直接内存访问硬件的基地址寄存器空间。在一些实施例中,所述第一接口是快捷***组件互连接口、通用串行总线接口或者串行器解串器接口。如此,通过比较连接远程直接内存访问软件和远程直接内存访问硬件的第一接口的接口时延与第一预设阈值,可以利用远程直接内存访问硬件提供远程直接内存访问逻辑的中断反馈,通过远程直接内存访问软件选择性地按照第一下发模式或者第二下发模式来下发第一工作队列元素和对应的第一载荷,有效地降低接口时延,有利于满足高速数据传输要求,同时还考虑到了远程直接内存访问硬件上的有限算力资源和有限存储资源。例如,当所述第一接口是快捷***组件互连接口时,每一次快捷***组件互连接口操作所造成的快捷***组件互连接口时延可以与第一预设阈值比较。可以设定第一预设阈值为20微秒,这样当快捷***组件互连接口时延超过了20微秒,就会触发远程直接内存访问逻辑的中断反馈。另外,第二缓存空间是所述远程直接内存访问硬件的基地址寄存器空间,这样有助于充分利用基地址寄存器空间的存储资源。
在一种可能的实施方式中,当所述远程直接内存访问软件按照所述第一下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问硬件先通过所述第一接口访问所述第一缓存空间来获取所述第一工作队列元素再通过所述第一接口访问所述第一缓存空间来获取所述第一载荷;当所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问硬件利用对所述第二缓存空间的单次访问且不通过所述第一接口来获取所述第一工作队列元素和所述第一载荷。如此,当远程直接内存访问软件按照所述第一下发模式来下发所述第一工作队列元素和所述第一载荷时,远程直接内存访问硬件需要经过先后两次第一接口的接口操作才能获取所述第一工作队列元素和所述第一载荷,因此导致两次的接口时延。而当远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷时,远程直接内存访问硬件只需要单次访问操作就可以获取所述第一工作队列元素和所述第一载荷并且不会导致接口时延。进一步地,在一些实施例中,当所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问软件先将所述第一工作队列元素存储于所述第二缓存空间然后将所述第一载荷附加在位于所述第二缓存空间中的所述第一工作队列元素的尾部。如此,远程直接内存访问软件通过将第一载荷附加在第一工作队列元素的尾部,使得后续远程直接内存访问硬件可以通过单次访问就能获取所述第一工作队列元素和所述第一载荷,有利于降低数据处理延时。进一步地,在一些实施例中,当所述远程直接内存访问软件按照所述第一下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问硬件通过所述第一接口接收来自所述远程直接内存访问软件的门铃通知;当所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问硬件接收硬件门铃通知且不通过所述第一接口。如此,硬件门铃通知的速度要快于远程直接内存访问软件的门铃通知,并且,硬件门铃通知不需要经过第一接口,有利于降低数据处理延时。
在一种可能的实施方式中,所述方法还包括:通过所述远程直接内存访问软件,按照所述第二下发模式来下发多个工作队列元素和与所述多个工作队列元素一一对应的多个载荷,并且,所述远程直接内存访问软件通过写入组合操作将所述多个工作队列元素和所述多个载荷存储于所述第二缓存空间。如此,通过写入组合操作,可以按批次来下发,例如一次性下发64个工作队列元素及对应的载荷,或者一次性下发8个工作队列元素及对应的载荷。可以结合能用于支持第二缓存空间的可用存储资源灵活调整,一般来说批量下发的工作队列元素数量较多时,工作队列元素携带的载荷信息较少,适合输入输出密集型的应用,例如统一使用64个字节大小的工作队列元素。批量下发的工作队列元素较少时,工作队列元素携带的载荷信息较多,例如统一使用512个字节大小的工作队列元素。
在一种可能的实施方式中,当所述远程直接内存访问硬件检测到链路阻塞程度高于第二预设阈值时,所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷,并且,当所述远程直接内存访问硬件检测到所述远程直接内存访问硬件的基地址寄存器资源占用率高于第三预设阈值时,所述远程直接内存访问软件按照所述第一下发模式来下发所述第一工作队列元素和所述第一载荷。远程直接内存访问硬件可以周期性的检测链路阻塞程度,评估链路阻塞状态,例如当网络时延较大时,又例如当需要频繁的重传远程直接内存访问报文时,可能意味着网络拥堵,这时候可以触发远程直接内存访问逻辑的中断反馈。另外,当远程直接内存访问硬件发现基地址寄存器资源占用率较高时,为了避免影响其它功能如硬件卸载等的正常运行,可以中断或者切换到按照所述第一下发模式来下发所述第一工作队列元素和所述第一载荷。例如,可以设定第三预设阈值是90%,也即当基地址寄存器资源占用率超过90%时,中断或者切换到按照所述第一下发模式来下发所述第一工作队列元素和所述第一载荷。如此,在上述的比较连接远程直接内存访问软件和远程直接内存访问硬件的第一接口的接口时延与第一预设阈值的基础上,还可以进一步地利用链路阻塞程度的检测和第二预设阈值,以及利用基地址寄存器资源占用率和第三预设阈值,建立了更全面的控制机制来控制远程直接内存访问软件按照第一下发模式或者第二下发模式来下发工作队列元素及对应载荷,有效地降低接口时延,有利于满足高速数据传输要求,同时还考虑到了远程直接内存访问硬件上的有限算力资源和有限存储资源。
在一种可能的实施方式中,所述远程直接内存访问软件用于:基于先前多个批次下发的工作队列元素的数量和载荷的数据长度,选择性地按照所述第一下发模式或者所述第二下发模式来下发所述第一工作队列元素和所述第一载荷。如此,远程直接内存访问软件也即远程直接内存访问驱动,采用按批次下发的方式,通过比较先前多个批次如前后两个批次的工作队列元素的数量和载荷的数据长度,可以判断出要发送的报文数据是否具有规律性,也就是在一定约束范围内变化。如此,利用远程直接内存访问软件,在上述的比较连接远程直接内存访问软件和远程直接内存访问硬件的第一接口的接口时延与第一预设阈值的基础上,可以建立起更全面的控制机制,可以约束:只有当先前多个批次下发的工作队列元素的数量和载荷的数据长度的变化幅度在一定范围内时,例如不超过10%或者15%,才会继续按照第二下发模式来下发工作队列元素及对应载荷。这样是考虑到了远程直接内存访问硬件上的有限算力资源和有限存储资源,当按批次下发的工作队列元素的数量和载荷的数据长度的变化比较剧烈,例如超出了设定的约束范围,也就是不具有规律性,这样可能给远程直接内存访问硬件带来较大的处理负担,从而在整体上造成的负面影响超出了正面收益。在一些实施例中,当所述先前多个批次下发的工作队列元素的数量和载荷的数据长度各自的变化幅度小于第四预设阈值时,所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷。如此,利用远程直接内存访问软件,在上述的比较连接远程直接内存访问软件和远程直接内存访问硬件的第一接口的接口时延与第一预设阈值的基础上,利用工作队列元素的数量和载荷的数据长度各自的变化幅度和第四预设阈值,建立起更全面的控制机制来控制远程直接内存访问软件按照第一下发模式或者第二下发模式来下发工作队列元素及对应载荷,有效地降低接口时延,有利于满足高速数据传输要求,同时还考虑到了远程直接内存访问硬件上的有限算力资源和有限存储资源。
在一种可能的实施方式中,当所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷时,所述第一工作队列元素的长度相对于所述第二缓存空间中用于存储所述第一工作队列元素和所述第一载荷的物理页的比例是基于所述第一预设阈值确定。这里,第一预设阈值代表了时延性要求,通过比较连接远程直接内存访问软件和远程直接内存访问硬件的第一接口的接口时延与第一预设阈值,可以基于时延性要求来建立控制机制来控制远程直接内存访问软件按照第一下发模式或者第二下发模式来下发工作队列元素及对应载荷。这里,第一工作队列元素的长度相对于物理页的比例,例如64个字节大小的工作队列元素相对于4千字节的物理页的比例大约是64分之一,该比例是可以结合用户需求和应用场景需求调整的。该比例设定的越高,则同一个物理页中容纳的工作队列元素越少,携带的载荷信息增加,这样可能造成处理时延增加;该比例设定的越低,则同一个物理页中容纳的工作队列元素越多,携带的载荷信息减少,这样可能造成处理时延减少。因此,可以在时延性要求高的场景,例如要求较快的响应速度的低时延应用场景,可以设定较低的比例,也就是可以基于所述第一预设阈值确定所述第一工作队列元素的长度相对于所述第二缓存空间中用于存储所述第一工作队列元素和所述第一载荷的物理页的比例,这样可以更好的适配用户需求和应用场景需求。
在一种可能的实施方式中,当所述第一报文相关联的应用场景被选择为工业自动化应用场景或者交通监控应用场景时,所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷。如此,可以通过用户介入或者其它方式,根据应用场景的需要来控制远程直接内存访问软件按照第一下发模式或者第二下发模式来下发工作队列元素及对应载荷。工业自动化应用场景或者交通监控应用场景,一般意味着,工作队列元素的数量和载荷的数据长度的变化比较有规律性,在这些应用场景下,数据发送方一般是按照固定时长来发送记录的视频数据流。
图2为本申请实施例提供的一种远程直接内存访问报文发送的示意图。如图2所示,通过远程直接内存访问软件210,选择性地按照第一下发模式或者第二下发模式来下发第一报文相关联的第一工作队列元素202和与所述第一工作队列元素202对应的第一载荷204。通过远程直接内存访问硬件220,获取所述第一工作队列元素202和所述第一载荷204,然后组装所述第一工作队列元素202和所述第一载荷204得到与所述第一报文对应的第一远程直接内存访问报文包206。图2中示出了,第一接口230连接所述远程直接内存访问软件210和所述远程直接内存访问硬件220。图2中还示出了,当所述远程直接内存访问软件210按照所述第二下发模式来下发所述第一工作队列元素202和所述第一载荷204时,所述远程直接内存访问软件210将所述第一工作队列元素202和所述第一载荷204存储于在所述远程直接内存访问硬件220上的第二缓存空间222。所述远程直接内存访问硬件220包括报文转发处理引擎224,报文转发处理引擎224从所述远程直接内存访问硬件220上的第二缓存空间222获取所述第一工作队列元素202和所述第一载荷204,并且对外发送第一远程直接内存访问报文包206。远程直接内存访问软件210还包括应用程序212,用于基于远程直接内存访问技术进行数据传输,包括接收经过远程直接内存访问网络的来自远端主机的网络数据,以及经过远程直接内存访问网络向远端主机发送网络数据。
结合图1所示的用于远程直接内存访问报文发送的方法和图2所示的远程直接内存访问报文发送,通过比较连接远程直接内存访问软件210和远程直接内存访问硬件220的第一接口230的接口时延与第一预设阈值,可以利用远程直接内存访问硬件220提供远程直接内存访问逻辑的中断反馈,通过远程直接内存访问软件210选择性地按照第一下发模式或者第二下发模式来下发第一工作队列元素202和对应的第一载荷204,有效地降低接口时延,有利于满足高速数据传输要求,同时还考虑到了远程直接内存访问硬件上的有限算力资源和有限存储资源。
图3是本申请实施例提供的一种计算设备的结构示意图,该计算设备300包括:一个或者多个处理器310、通信接口320以及存储器330。所述处理器310、通信接口320以及存储器330通过总线340相互连接。可选地,该计算设备300还可以包括输入/输出接口350,输入/输出接口350连接有输入/输出设备,用于接收用户设置的参数等。该计算设备300能够用于实现上述的本申请实施例中设备实施例或者***实施例的部分或者全部功能;处理器310还能够用于实现上述的本申请实施例中方法实施例的部分或者全部操作步骤。例如,该计算设备300执行各种操作的具体实现可参照上述实施例中的具体细节,如处理器310用于执行上述方法实施例中部分或者全部步骤或者上述方法实施例中的部分或者全部操作。再例如,本申请实施例中,计算设备300可用于实现上述装置实施例中一个或者多个部件的部分或者全部功能,此外通信接口320具体可用于为了实现这些装置、部件的功能所必须的通讯功能等,以及处理器310具体可用于为了实现这些装置、部件的功能所必须的处理功能等。
应当理解的是,图3的计算设备300可以包括一个或者多个处理器310,并且多个处理器310可以按照并行化连接方式、串行化连接方式、串并行连接方式或者任意连接方式来协同提供处理能力,或者多个处理器310可以构成处理器序列或者处理器阵列,或者多个处理器310之间可以分成主处理器和辅助处理器,或者多个处理器310之间可以具有不同的架构如采用异构计算架构。另外,图3所示的计算设备300,相关的结构性描述及功能性描述是示例性且非限制性的。在一些示例性实施例中,计算设备300可以包括比图3所示的更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者具有不同的部件布置。
处理器310可以有多种具体实现形式,例如处理器310可以包括中央处理器(central processing unit,CPU)、图形处理器(graphic processing unit,GPU)、神经网络处理器(neural-network processing unit,NPU)、张量处理器(tensor processingunit,TPU)或数据处理器(data processing unit,DPU)等一种或多种的组合,本申请实施例不做具体限定。处理器310还可以是单核处理器或多核处理器。处理器310可以由CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specific integratedcircuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。处理器310也可以单独采用内置处理逻辑的逻辑器件来实现,例如FPGA或数字信号处理器(digital signal processor,DSP)等。通信接口320可以为有线接口或无线接口,用于与其他模块或设备进行通信,有线接口可以是以太接口、局域互联网络(local interconnect network,LIN)等,无线接口可以是蜂窝网络接口或使用无线局域网接口等。
存储器330可以是非易失性存储器,例如,只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。存储器330也可以是易失性存储器,易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhancedSDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。存储器330也可用于存储程序代码和数据,以便于处理器310调用存储器330中存储的程序代码执行上述方法实施例中的部分或者全部操作步骤,或者执行上述设备实施例中的相应功能。此外,计算设备300可能包含相比于图3展示的更多或者更少的组件,或者有不同的组件配置方式。
总线340可以是快捷***部件互连标准(peripheral component interconnectexpress,PCIe)总线,或扩展工业标准结构(extended industry standard architecture,EISA)总线、统一总线(unified bus,Ubus或UB)、计算机快速链接(compute express link,CXL)、缓存一致互联协议(cache coherent interconnect for accelerators,CCIX)等。总线340可以分为地址总线、数据总线、控制总线等。总线340除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例提供的方法和设备是基于同一发明构思的,由于方法及设备解决问题的原理相似,因此方法与设备的实施例、实施方式、示例或实现方式可以相互参见,其中重复之处不再赘述。本申请实施例还提供一种***,该***包括多个计算设备,每个计算设备的结构可以参照上述所描述的计算设备的结构。该***可实现的功能或者操作可以参照上述方法实施例中的具体实现步骤和/或上述装置实施例中所描述的具体功能,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机指令,当所述计算机指令在计算机设备(如一个或者多个处理器)上运行时可以实现上述方法实施例中的方法步骤。所述计算机可读存储介质的处理器在执行上述方法步骤的具体实现可参照上述方法实施例中所描述的具体操作和/或上述装置实施例中所描述的具体功能,在此不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。本申请实施例可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(如软盘、硬盘、磁带)、光介质、或者半导体介质。半导体介质可以是固态硬盘,也可以是随机存取存储器,闪存,只读存储器,可擦可编程只读存储器,电可擦可编程只读存储器,寄存器或任何其他形式的合适存储介质。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述。可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并或删减;本申请实施例***中的模块可以根据实际需要进行划分、合并或删减。如果本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (12)
1.一种用于远程直接内存访问报文发送的方法,其特征在于,所述方法包括:
通过远程直接内存访问软件,选择性地按照第一下发模式或者第二下发模式来下发第一报文相关联的第一工作队列元素和与所述第一工作队列元素对应的第一载荷;
通过远程直接内存访问硬件,获取所述第一工作队列元素和所述第一载荷,然后组装所述第一工作队列元素和所述第一载荷得到与所述第一报文对应的第一远程直接内存访问报文包,
其中,当所述远程直接内存访问软件按照所述第一下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问软件将所述第一工作队列元素和所述第一载荷存储于不在所述远程直接内存访问硬件上的第一缓存空间,
当所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问软件将所述第一工作队列元素和所述第一载荷存储于在所述远程直接内存访问硬件上的第二缓存空间,
当连接所述远程直接内存访问软件和所述远程直接内存访问硬件的第一接口的接口时延大于第一预设阈值时,所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷,
所述远程直接内存访问软件侧部署在第一主机,所述远程直接内存访问硬件通过所述第一接口连接所述第一主机,所述第一缓存空间是所述第一主机的内存,所述第二缓存空间是所述远程直接内存访问硬件的基地址寄存器空间,
当所述远程直接内存访问硬件检测到链路阻塞程度高于第二预设阈值时,所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷,并且,当所述远程直接内存访问硬件检测到所述远程直接内存访问硬件的基地址寄存器资源占用率高于第三预设阈值时,所述远程直接内存访问软件按照所述第一下发模式来下发所述第一工作队列元素和所述第一载荷。
2.根据权利要求1所述的方法,其特征在于,所述第一接口是快捷***组件互连接口、通用串行总线接口或者串行器解串器接口。
3.根据权利要求1所述的方法,其特征在于,当所述远程直接内存访问软件按照所述第一下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问硬件先通过所述第一接口访问所述第一缓存空间来获取所述第一工作队列元素再通过所述第一接口访问所述第一缓存空间来获取所述第一载荷;当所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问硬件利用对所述第二缓存空间的单次访问且不通过所述第一接口来获取所述第一工作队列元素和所述第一载荷。
4.根据权利要求3所述的方法,其特征在于,当所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问软件先将所述第一工作队列元素存储于所述第二缓存空间然后将所述第一载荷附加在位于所述第二缓存空间中的所述第一工作队列元素的尾部。
5.根据权利要求3所述的方法,其特征在于,当所述远程直接内存访问软件按照所述第一下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问硬件通过所述第一接口接收来自所述远程直接内存访问软件的门铃通知;当所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问硬件接收硬件门铃通知且不通过所述第一接口。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过所述远程直接内存访问软件,按照所述第二下发模式来下发多个工作队列元素和与所述多个工作队列元素一一对应的多个载荷,并且,所述远程直接内存访问软件通过写入组合操作将所述多个工作队列元素和所述多个载荷存储于所述第二缓存空间。
7.根据权利要求1所述的方法,其特征在于,所述远程直接内存访问软件用于:基于先前多个批次下发的工作队列元素的数量和载荷的数据长度,选择性地按照所述第一下发模式或者所述第二下发模式来下发所述第一工作队列元素和所述第一载荷。
8.根据权利要求7所述的方法,其特征在于,当所述先前多个批次下发的工作队列元素的数量和载荷的数据长度各自的变化幅度小于第四预设阈值时,所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷。
9.根据权利要求1所述的方法,其特征在于,当所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷时,所述第一工作队列元素的长度相对于所述第二缓存空间中用于存储所述第一工作队列元素和所述第一载荷的物理页的比例是基于所述第一预设阈值确定。
10.根据权利要求1所述的方法,其特征在于,当所述第一报文相关联的应用场景被选择为工业自动化应用场景或者交通监控应用场景时,所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷。
11.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现根据权利要求1至10中任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机设备上运行时使得所述计算机设备执行根据权利要求1至10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410059515.2A CN117573602B (zh) | 2024-01-16 | 2024-01-16 | 用于远程直接内存访问报文发送的方法及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410059515.2A CN117573602B (zh) | 2024-01-16 | 2024-01-16 | 用于远程直接内存访问报文发送的方法及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117573602A CN117573602A (zh) | 2024-02-20 |
CN117573602B true CN117573602B (zh) | 2024-05-14 |
Family
ID=89864754
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410059515.2A Active CN117573602B (zh) | 2024-01-16 | 2024-01-16 | 用于远程直接内存访问报文发送的方法及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117573602B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118138558A (zh) * | 2024-05-08 | 2024-06-04 | 珠海星云智联科技有限公司 | 基于直接内存访问的报文发包方法、计算机设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110069431A (zh) * | 2018-01-24 | 2019-07-30 | 上海交通大学 | 基于RDMA和HTM的弹性Key-Value键值对数据存储方法 |
CN112463654A (zh) * | 2019-09-06 | 2021-03-09 | 华为技术有限公司 | 一种带预测机制的cache实现方法 |
CN115695458A (zh) * | 2022-10-28 | 2023-02-03 | 青岛民航凯亚***集成有限公司 | 弱网络环境下的bs端的数据存储方法 |
CN115934625A (zh) * | 2023-03-15 | 2023-04-07 | 珠海星云智联科技有限公司 | 一种用于远程直接内存访问的敲门铃方法、设备及介质 |
WO2023098050A1 (zh) * | 2021-11-30 | 2023-06-08 | 华为技术有限公司 | 远程数据访问方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9965441B2 (en) * | 2015-12-10 | 2018-05-08 | Cisco Technology, Inc. | Adaptive coalescing of remote direct memory access acknowledgements based on I/O characteristics |
-
2024
- 2024-01-16 CN CN202410059515.2A patent/CN117573602B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110069431A (zh) * | 2018-01-24 | 2019-07-30 | 上海交通大学 | 基于RDMA和HTM的弹性Key-Value键值对数据存储方法 |
CN112463654A (zh) * | 2019-09-06 | 2021-03-09 | 华为技术有限公司 | 一种带预测机制的cache实现方法 |
WO2023098050A1 (zh) * | 2021-11-30 | 2023-06-08 | 华为技术有限公司 | 远程数据访问方法及装置 |
CN115695458A (zh) * | 2022-10-28 | 2023-02-03 | 青岛民航凯亚***集成有限公司 | 弱网络环境下的bs端的数据存储方法 |
CN115934625A (zh) * | 2023-03-15 | 2023-04-07 | 珠海星云智联科技有限公司 | 一种用于远程直接内存访问的敲门铃方法、设备及介质 |
Non-Patent Citations (1)
Title |
---|
基于嵌入式MPMC接口的内存访问机制;常振超 等;《计算机工程》;20120731;第38卷(第13期);第231-233页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117573602A (zh) | 2024-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8694595B2 (en) | Low latency, high bandwidth data communications between compute nodes in a parallel computer | |
CN117573602B (zh) | 用于远程直接内存访问报文发送的方法及计算机设备 | |
US8018951B2 (en) | Pacing a data transfer operation between compute nodes on a parallel computer | |
US20080281998A1 (en) | Direct Memory Access Transfer Completion Notification | |
US7779173B2 (en) | Direct memory access transfer completion notification | |
US20100268852A1 (en) | Replenishing Data Descriptors in a DMA Injection FIFO Buffer | |
US20090031001A1 (en) | Repeating Direct Memory Access Data Transfer Operations for Compute Nodes in a Parallel Computer | |
US11868297B2 (en) | Far-end data migration device and method based on FPGA cloud platform | |
CN115934623B (zh) | 一种基于远程直接内存访问的数据处理方法、设备及介质 | |
CN115934625B (zh) | 一种用于远程直接内存访问的敲门铃方法、设备及介质 | |
US20090031002A1 (en) | Self-Pacing Direct Memory Access Data Transfer Operations for Compute Nodes in a Parallel Computer | |
CN114153778A (zh) | 跨网络桥接 | |
US20180181421A1 (en) | Transferring packets between virtual machines via a direct memory access device | |
EP4357901A1 (en) | Data writing method and apparatus, data reading method and apparatus, and device, system and medium | |
US6256660B1 (en) | Method and program product for allowing application programs to avoid unnecessary packet arrival interrupts | |
EP0871307A2 (en) | Apparatus for flexible control of interrupts in multiprocessor systems | |
US10305772B2 (en) | Using a single work item to send multiple messages | |
CN116991609B (zh) | 队列公平处理方法、设备以及可读存储介质 | |
US20230342086A1 (en) | Data processing apparatus and method, and related device | |
US11483209B2 (en) | Forward progress mechanisms for a communications network having multiple nodes | |
CN117573603B (zh) | 用于远程直接内存访问的数据处理方法及计算机设备 | |
CN116340246B (zh) | 用于直接内存访问读取操作的数据预读方法及介质 | |
WO2023040412A1 (zh) | 一种报文处理方法、网卡及服务器 | |
CN117527654B (zh) | 一种用于网络流量抓包分析的方法及*** | |
CN117687795B (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 |