一种基于网络设备的数据处理方法及网络设备技术

技术编号:38897106 阅读:23 留言:0更新日期:2023-09-22 14:18
本申请公开了一种基于网络设备的数据处理方法及网络设备,可应用于内存访问领域,包括:第一计算机设备的控制单元(如CPU)基于应用产生的请求的运行逻辑创建编排算子,第一计算机设备只需通过控制单元向第一网络设备发送一次编排算子即可,第一网络设备会基于编排算子解析成对应的内存访问操作(如远端内存访问或本地内存访问),等所有的内存访问操作都完成后,第一网络设备再上报一个完成指令给控制单元。本申请通过构建的编排算子执行用户可编程的逻辑,可减少第一计算机设备与第一网络设备之间的交互次数,若内存访问操作是远端内存访问操作,还可减少分布式请求的网络往返次数,避免控制单元被响应结果反复打断,实现了计算和通信的并行。计算和通信的并行。计算和通信的并行。

【技术实现步骤摘要】
一种基于网络设备的数据处理方法及网络设备


[0001]本申请涉及内存访问领域,尤其涉及一种基于网络设备的数据处理方法及网络设备。

技术介绍

[0002]在内存访问
中,存在双边操作(two

sided)以及单边操作(one

sided)。例如, 传统的传输控制协议(transmission control protocol,TCP)套接字(socket)、远程直接数 据存取(remote direct memory access,RDMA)中的send/receive操作属于双边操作,即必 须要远端的应用感知参与才能完成双边操作,本质上属于两个进程之间的通信,需要本地 设备的中央处理器(central processing unit,CPU)以及远端设备的CPU的参与,会消耗本 远端设备的CPU资源。而RDMA中的read/write操作则属于单边操作,单边操作传输方 式是RDMA与传统网络传输的最大不同,其只需要提供远程访问的虚拟地址,无须远端 的应用参与其中,相当于本地内存和远端内存之间的内存拷本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于网络设备的数据处理方法,其特征在于,包括:第一网络设备获取第一编排算子,所述第一编排算子为第一计算机设备的控制单元基于第一请求生成的编排命令的有序集合,用于表征所述第一请求的运行逻辑,所述第一请求为所述第一计算机设备上运行的第一应用产生的请求,所述第一编排算子包括内存访问命令,所述内存访问命令用于表征进行内存访问的操作类型;所述第一网络设备根据所述第一编排算子执行多个内存访问操作,并获取每个所述内存访问操作的响应结果;所述第一网络设备在获取到每个所述内存访问操作的响应结果之后,生成第一完成指令,所述第一完成指令用于表征所述第一编排算子执行完毕。2.根据权利要求1所述的方法,其特征在于,在所述第一网络设备根据所述第一编排算子执行多个内存访问操作之前,所述方法还包括:所述第一网络设备生成与所述第一编排算子对应的第一编排上下文,所述第一编排上下文用于存储所述内存访问操作的执行状态。3.根据权利要求2所述的方法,其特征在于,所述第一编排上下文至少包括如下任意一种:所述第一编排算子的调用者、当前执行的编排命令的指针、异步执行的编排命令计数器、所述第一编排算子中最后一条编排命令的位置、循环计数器、循环跳转位置、所述内存访问操作执行过程中的中间变量。4.根据权利要求1

3中任一项所述的方法,其特征在于,所述内存访问操作包括远端内存访问操作,所述第一网络设备根据所述第一编排算子执行多个内存访问操作,并获取每个所述内存访问操作的响应结果包括:所述第一网络设备解析所述第一编排算子中的编排命令,得到多个所述远端内存访问操作;所述第一网络设备向至少一个第二网络设备发送与至少一个所述远端内存访问操作对应的网络报文,以使得所述第二网络设备基于所述网络报文访问与所述第二网络设备对应的内存,并使得所述第二网络设备在访问完成后生成响应结果,一个远端内存访问操作对应一个响应结果;所述第一网络设备接收由所述第二网络设备发送的所述响应结果。5.根据权利要求1

3中任一项所述的方法,其特征在于,所述内存访问操作包括本地内存访问操作,所述第一网络设备根据所述第一编排算子执行多个内存访问操作,并获取每个所述内存访问操作的响应结果包括:所述第一网络设备解析所述第一编排算子中的编排命令,得到多个所述本地内存访问操作;所述第一网络设备基于所述第一编排算子访问本地内存,得到每个所述本地内存访问操作的响应结果。6.根据权利要求1

5中任一项所述的方法,其特征在于,所述第一网络设备获取第一编排算子包括:所述第一网络设备从所述第一计算机设备获取第一执行指令,所述第一执行指令用于指示所述第一网络设备从第一存储区域读取第一编排算子。
7.根据权利要求1

5中任一项所述的方法,其特征在于,所述第一网络设备获取第一编排算子包括:所述第一网络设备接收由所述第一计算机设备发送的第一编排算子。8.根据权利要求1

7中任一项所述的方法,其特征在于,所述第一编排算子至少还包括如下任意一种类型的编排命令:控制命令、计算命令,其中,所述控制命令用于控制所述第一网络设备,所述计算命令用于对至少一个操作数进行算术和/或逻辑运算。9.根据权利要求8所述的方法,其特征在于,所述控制命令的类型至少包括如下任意一种:条件跳转命令、循环命令、等待命令、本地编排算子调用命令、远端编排算子调用命令、结束编排命令;所述条件跳转命令,用于根据至少一个可变参数,跳转到至少一个第一目标编排命令,所述可变参数为编排命令在运行时才能确定具体取值的参数;所述循环命令,用于循环执行至少一个第二目标编排命令m次,m≥1;所述等待命令,用于等待至少一个第三目标编排命令执行完成;所述本地编排算子调用命令,用于异步调用本地的编排算子;所述远端编排算子调用命令,用于异步调用远端的编排算子;所述结束编排命令,用于结束编排上下文的执行。10.根据权利要求8

9中任一项所述的方法,其特征在于,所述计算命令的类型至少包括如下任意一种:双目算术逻辑计算命令、位宽转换计算命令;所述双目算术逻辑计算命令,用于根据两个操作数获得第一计算结果;所述位宽转换计算命令,用于转换一个操作数的位宽,获得第二计算结果。11.根据权利要求1

10中任一项所述的方法,其特征在于,所述内存访问命令的类型至少包括如下任意一种:加载命令、存储命令、内存拷贝命令、比较命令、收发命令、原子比较并交换命令、原子加命令、独占命令;所述加载命令,用于从本地内存地址中取出预设数量字节的第一数据,或,用于从远端内存地址中取出预设数量字节的第二数据;所述存储命令,用于向所述本地内存地址中写入预设数量字节的第三数据,或,用于向所述远端内存地址中写入预设数量字节的第四数据;所述内存拷贝命令,用于执行不同计算机设备之间的数据拷贝;所述比较命令,用于执行不同计算机设备之间的数据比较;所述收发命令,用于执行双边消息的收发;所述原子写命令,用于执行预设数量字节的第五数据带比较条件和掩码的原子交换;所述原子加命令,用于执行预设数量字节的第六数据带比较条件的原子加操作;所述独占命令,用于通过缓存一致性协议获取一个本地或远端内存地址的独占访问权限。12.一种基于网络设备的数据处理方法,其特征在于,包括:
第一网络设备从第一计算机设备获取目标执行指令,所述目标执行指令用于指示第二网络设备从第二存储区域读取第二编排算子,所述第二编排算子为所述第二计算机设备的控制单元基于第二请求生成的编排命令的有序集合,用于表征所述第二请求的运行逻辑,所述第二请求为所述第二计算机设备上运行的第二应用产生的请求,所述第二编排算子包括内存访问命令,所述内存访问命令用于表征进行内存访问的操作类型;所述第一网络设备基于所述目标执行指令生成目标网络报文,并将所述目标网络报文向所述第二网络设备发送,以使得所述第二网络设备基于所述目标网络报文从所述第二存储区域读取所述第二编排算子,并使得所述第二网络设备根据所述第二编排算子执行多个内存访问操作,并使得所述第二网络设备获取每个所述内存访问操作的响应结果并生成所述目标网络报文的目标响应;所述第一网络设备在接收到所述第二网络设备发送的所述目标响应之后,生成第二完成指令,所述第二完成指令用于表征所述第二编排算子执行完毕。13.根据权利要求12所述的方法,其特征在于,所述第二编排算子至少还包括如下任意一种类型的编排命令:控制命令、计算命令,其中,所述控制命令用于控制所述第二网络设备,所述计算命令用于对至少一个操作数进行算术和/或逻辑运算。14.根据权利要求13所述的方法,其特征在于,所述控制命令的类型至少包括如下任意一种:条件跳转命令、循环命令、等待命令、本地编排算子调用命令、远端编排算子调用命令、结束编排命令;所述条件跳转命令,用于根据至少一个可变参数,跳转到至少一个第一目标编排命令,所述可变参数为编排命令在运行时才能确定具体取值的参数;所述循环命令,用于循环执行至少一个第二目标编排命令m次,m≥1;所述等待命令,用于等待至少一个第三目标编排命令执行完成;所述本地编排算子调用命令,用于异步调用本地的编排算子;所述远端编排算子调用命令,用于异步调用远端的编排算子;所述结束编排命令,用于结束编排上下文的执行,所述编排上下文用于存储所述内存访问操作的执行状态。15.根据权利要求13

14中任一项所述的方法,其特征在于,所述计算命令的类型至少包括如下任意一种:双目算术逻辑计算命令、位宽转换计算命令;所述双目算术逻辑计算命令,用于根据两个操作数获得第一计算结果;所述位宽转换计算命令,用于转换一个操作数的位宽,获得第二计算结果。16.根据权利要求12

15中任一项所述的方法,其特征在于,所述内存访问命令的类型至少包括如下任意一种:加载命令、存储命令、内存拷贝命令、比较命令、收发命令、原子比较并交换命令、原子加命令、独占命令;所述加载命令,用于从本地内存地址中取出预设数量字节的第一数据,或,用于从远端内存地址中取出预设数量字节的第二数据;
所述存储命令,用于向所述本地内存地址中写入预设数量字节的第三数据,或,用于向所述远端内存地址中写入预设数量字节的第四数据;所述内存拷贝命令,用于执行本地或远端的数据拷贝;所述比较命令,用于执行本地或远端的数据比较;所述收发命令,用于执行双边消息的收发;所述原子比较并交换命令,用于执行预设数量字节的第五数据带比较条件和掩码的原子交换;所述原子加命令,用于执行预设数量字节的第六数据带比较条件的原子加操作;所述独占命令,用于通过缓存一致性协议获取一个本地或远端内存地址的独占访问权限。17.一种基于网络设备的数据处理方法,其特征在于,包括:第二网络设备接收由第一网络设备发送的目标网络报文,所述目标网络报文由所述第一网络设备基于目标执行指令生成,所述目标执行指令用于指示所述第二网络设备从第二存储区域读取第二编排算子,所述第二编排算子为所述第二计算机设备的控制单元基于第二请求生成的编排命令的有序集合,用于表征所述第二请求的运行逻辑,所述第二请求为所述第二计算机设备上运行的第二应用产生的请求,所述第二编排算子包括内存访问命令,所述内存访问命令用于表征进行内存访问的操作类型;所述第二网络设备根据所述目标网络报文从所述第二存储区域读取所述第二编排算子;所述第二网络设备根据所述第二编排算子执行多个内存访问操作,并获取每个所述内存访问操作的响应结果;所述第二网络设备在获取到每个所述内存访问操作的响应结果之后,生成所述目标网络报文的目标响应,并将所述目标响应向所述第一网络设备发送,以使得所述第一网络设备基于所述目标响应生成第二完成指令,所述第二完成指令用于表征所述第二编排算子执行完毕。18.根据权利要求17所述的方法,其特征在于,在所述第二网络设备根据所述第二编排算子执行多个内存访问操作之前,所述方法还包括:所述第二网络设备生成与所述第二编排算子对应的第二编排上下文,所述第二编排上下文用于存储所述内存访问操作的执行状态。19.根据权利要求18所述的方法,其特征在于,所述第二编排上下文至少包括如下任意一种:所述第二编排算子的调用者、当前执行的编排命令的指针、异步执行的编排命令计数器、所述第二编排算子中最后一条编排命令的位置、循环计数器、循环跳转位置、所述内存访问操作执行过程中的中间变量。20.根据权利要求17

19中任一项所述的方法,其特征在于,所述内存访问操作包括远端内存访问操作,所述第二网络设备根据所述第二编排算子执行多个内存访问操作,并获取每个所述内存访问操作的响应结果包括:所述第二网络设备解析所述第二编排算子中的编排命令,得到多个所述远端内存访问操作;
所述第二网络设备向至少一个第三网络设备发送与至少一个所述远端内存访问操作对应的网络报文,以使得所述第三网络设备基于所述网络报文访问与所述第三网络设备对应的内存,并使得所述第三网络设备在访问完成后生成响应结果,一个远端内存访问操作对应一个响应结果;所述第二网络设备接收由所述第三网络设备发送的所述响应结果。21.根据权利要求20所述的方法,其特征在于,所述第三网络设备包括:所述第一网络设备,或,与所述第一网络设备不同的网络设备。22.根据权利要求17

19中任一项所述的方法,其特征在于,所述内存访问操作包括本地内存访问操作,所述第二网络设备根据所述第二编排算子执行多个内存访问操作,并获取每个所述内存访问操作的响应结果包括:所述第二网络设备解析所述第二编排算子中的编排命令,得到多个所述本地内存访问操作;所述第二网络设备基于所述第二编排算子访问本地内存,得到每个所述本地内存访问操作的响应结果。23.根据权利要求17

22中任一项所述的方法,其特征在于,所述第二编排算子至少还包括如下任意一种类型的编排命令:控制命令、计算命令,其中,所述控制命令用于控制所述第二网络设备,所述计算命令用于对至少一个操作数进行算术和/或逻辑运算。24.根据权利要求23所述的方法,其特征在于,所述控制命令的类型至少包括如下任意一种:条件跳转命令、循环命令、等待命令、本地编排算子调用命令、远端编排算子调用命令、结束编排命令;所述条件跳转命令,用于根据至少一个可变参数,跳转到至少一个第一目标编排命令,所述可变参数为编排命令在运行时才能确定具体取值的参数;所述循环命令,用于循环执行至少一个第二目标编排命令m次,m≥1;所述等待命令,用于等待至少一个第三目标编排命令执行完成;所述本地编排算子调用命令,用于异步调用本地的编排算子;所述远端编排算子调用命令,用于异步调用远端的编排算子;所述结束编排命令,用于结束编排上下文的执行。25.根据权利要求23

24中任一项所述的方法,其特征在于,所述计算命令的类型至少包括如下任意一种:双目算术逻辑计算命令、位宽转换计算命令;所述双目算术逻辑计算命令,用于根据两个操作数获得第一计算结果;所述位宽转换计算命令,用于转换一个操作数的位宽,获得第二计算结果。26.根据权利要求17

25中任一项所述的方法,其特征在于,所述内存访问命令的类型至少包括如下任意一种:加载命令、存储命令、内存拷贝命令、比较命令、收发命令、原子比较并交换命令、原子加命令、独占命令;所述加载命令,用于从本地内存地址中取出预设数量字节的第一数据,或,用于从远端
内存地址中取出预设数量字节的第二数据;所述存储命令,用于向所述本地内存地址中写入预设数量字节的第三数据,或,用于向所述远端内存地址中写入预设数量字节的第四数据;所述内存拷贝命令,用于执行本地或远端的数据拷贝;所述比较命令,用于执行本地或远端的数据比较;所述收发命令,用于执行双边消息的收发;所述原子比较并交换命令,用于执行预设数量字节的第五数据带比较条件和掩码的原子交换;所述原子加命令,用于执行预设数量字节的第六数据带比较条件的原子加操作;所述独占命令,用于通过缓存一致性协议获取一个本地或远端内存地址的独占访问权限。27.一种网络设备,所述网络设备作为第一网络设备,其特征在于,包括:获取模块,用于获取第一编排算子,所述第一编排算子为第一计算机设备的控制单元基于第一请求生成的编排命令的有序集合,用于表征所述第一请求的运行逻辑,...

【专利技术属性】
技术研发人员:李博杰周磊
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1