首页 / 流表卸载系统、设备以及集群

流表卸载系统、设备以及集群实质审查 发明

技术领域

[0001] 本申请涉及通讯领域,尤其涉及一种流表卸载系统、设备以及集群。

相关背景技术

[0002] 随着云计算网络发展,其广泛的业务需求致使数据中心快速增长,数据流量剧增,通过主机的虚拟交换机实现数据转发的限制日益凸显,对日益增长的业务需求越来越显得力不从心。为了实现高性能业务转发需求,就需要专门的卸载硬件来承载数据转发业务。云计算网络中隧道报文比较多,所以,排查网络故障的隧道镜像报文的压入信息也越来越多,但是,隧道镜像报文的压入信息的存储规格是有限的,一旦超出了隧道镜像报文头的压入信息的64个规格,那只能等原有的隧道镜像报文头的压入信息被释放之后,才能继续存储镜像报文头的压入信息,大大浪费了时间。

具体实施方式

[0020] 下面结合本发明实施例中的附图对本发明实施例进行描述。本发明的实施方式部分使用的术语仅用于对本发明的具体实施例进行解释,而非旨在限定本发明。
[0021] 参见图1,图1是本申请提供的一种SDN的结构示意图。如图1所示,本申请的软件定义网络包括:SDN控制器110以及开放虚拟交换机(open vSwitch,OVS)120。
[0022] SDN控制器110是SDN架构中的核心组件,用于负责实现对整个网络的集中管理和控制。SDN控制器将网络的控制平面与数据平面分离,从而提供了更灵活、可编程和可扩展的网络管理方式。SDN控制器的主要功能包括:管理整个网络的控制平面,包括拓扑发现、路由计算、流表下发等。具体地,SDN控制器110通过与OVS120进行通信,收集网络的拓扑信息,并根据应用需求计算路由,然后将流表下发给OVS120。其次,SDN控制器110可以根据流量的特征和需求,动态地调整网络的路由选择和流量分配,从而实现流量的负载均衡、拥塞控制和服务质量保障;可以实施访问控制、流量过滤和入侵检测等安全措施,并及时响应网络安全事件,以保护网络免受恶意攻击和数据泄露的威胁等等。SDN控制器110可以是实体设备,也可以是虚拟设备。当SDN控制器110的数量为多个时,还可以是实体设备和虚拟设备混合使用。SDN控制器110可以运行在物理服务器、虚拟机、容器、云平台以及裸金属服务器中。
[0023] OVS120是一种开源的虚拟交换机软件,它实现了一个灵活、可编程和可扩展的交换机平台,用于通过与SDN控制器之间的开源流(OpenFlow)协议进行通信,接收SDN控制器110下发的流表,根据流表实现流量的转发和路由。OVS120支持在二层和三层网络中进行数据包交换和路由,所以,OVS120支持对以太网数据帧以及数据包的处理等等。OVS120可以运行在物理服务器、虚拟机、容器、云平台以及裸金属服务器中。OVS120还可以和物理交换机混合使用等等。
[0024] SDN控制器110和OVS120可以都设置于容器中,此时,SDN控制器110和OVS120可以集中在同一个容器中,也可以分布在不同的容器中。SDN控制器110和OVS120可以都设置于虚拟机中,此时,SDN控制器110和OVS120可以集中在同一个虚拟机中,也可以分布在不同的虚拟机中。SDN控制器110和OVS120可以都设置于服务器中,此时,SDN控制器110和OVS120可以集中在同一个服务器中,也可以分布在不同的服务器中。SDN控制器110和OVS120可以都设置于裸金属服务器中,此时,SDN控制器110和OVS120可以集中在同一个裸金属服务器中,也可以分布在不同的裸金属服务器中。又或者,SDN控制器110设置于容器中,OVS120设置于虚拟机、服务器、裸金属服务器中的任意一个中。SDN控制器110设置于虚拟机中,OVS120设置于容器、服务器、裸金属服务器中的任意一个中。SDN控制器110设置于服务器中,OVS120设置于容器、虚拟机、裸金属服务器中的任意一个中。SDN控制器110设置于裸金属服务器中,OVS120设置于容器、虚拟机、服务器中的任意一个中。
[0025] 下面将结合具体的实施例说明数据包从源IP地址传输到目的IP地址的过程。首先,用户可以在SDN控制器110上根据源IP地址、目的IP地址以及SDN的网络拓扑进行路由计算得到合适的转发路径,并根据转发路径生成流表项。然后,SDN控制器将流表项下发到相关的OVS120。当数据包到达OVS120时,OVS120会检查它的头信息,并与流表项中的匹配项进行匹配,在数据包的头信息能够与匹配项匹配的情况下,OVS120就会根据流表项的转发项将数据包进行转发。
[0026] 上述的OVS120通常是使用计算设备的计算资源(例如,处理器)、存储资源以及网络资源(例如,网卡)虚拟得到的,并且,为了提高OVS120的转发性能,往往还需要设置卸载硬件进行加速。因此,可以将处理器、卸载硬件以及网卡组成流表卸载系统。参见图2,图2是本申请提供的一种流表卸载系统的结构示意图。如图2所示,本申请的流表卸载系统应用包括处理器230、卸载硬件220以及网卡240。
[0027] 处理器230是运算核心和控制核心,能够对复杂的情况进行处理。处理器230可以是一块超大规模的集成电路。在处理器中安装有操作系统和其他软件程序,从而处理器230能够实现对内存及各种PCIE设备的访问。处理器230可以通过片内总线快速访问内存。处理器中可以包括一个或多个处理器核(core)。在一种实现中,处理器230可以是一个多核芯片,即包含多个处理核心的芯片。在另一种实现中,处理器中可以包括一个或多个处理器核(core)。可以为具有一个处理核心的芯片。处理器230中可以运行OVS以及数据平面开发工具包(Data Plane Development Kit,DPDK )。OVS的介绍可以参见图1中的相关描述。OVS读取内存的效率也不高,DPDK的轻量级库函数采用了非常有效的内存处理机制,即利用环形缓冲区在物理网卡与使用了DPDK的虚拟交换机之间来回传送数据包,从而提高了系统整体性能。OVS对高速数据包的处理缺乏优化,因而,导致数据包处理的过程中的很多步骤都要用到处理器230,由于处理器需要处理多任务,因而其可用性(特别是超载的情况下)会出现性能瓶颈的问题,为了减少数据包读取所需的处理器中断数,DPDK采用周期性轮询机制,定期轮询新数据包。如果数据包速率降至非常低数值,那么就可以切换到中断模式而不是定期轮询模式。通过有效的缓存管理、优化的最少CPU中断数以及其他增强型功能,DPDK能够让虚拟交换机实现接近原生性能。
[0028] 卸载硬件220通常用来存放流表等。卸载硬件220可以采用三态内容寻址存储器 (ternary content addressable memory,TCAM)、动态随机存取存储器(Dynamic Random Access Memory, DRAM)、专用集成电路(Application‑Specific Integrated Circuit,ASIC)、现场可编辑门阵列(Field‑Programmable Gate Array,FPGA)以及数据处理单元(Data Processing Unit,DPU)等等。卸载硬件220还可以是其他随机存取存储器,例如静态随机存取存储器(Static Random Access Memory,SRAM)等。本实施例不对卸载硬件的数量和类型进行限定。此外,可对卸载硬件进行配置使其具有保电功能。保电功能是指系统发生掉电又重新上电时,存储器中存储的数据也不会丢失。
[0029] 网卡240用于进行接收数据包或者发送数据包。由于其拥有媒体访问控制(Media Access Control  Address,MAC)地址,因此属于开放式系统互连(Open System Interconnection,OSI)模型的第1层和2层之间。它使得用户可以通过电缆或无线相互连接。每一个网卡都有一个被称为MAC地址的独一无二的48位串行号,它被写在卡上的一块ROM中。这里,网卡可以是可编程阵列逻辑(Field Programmable Gate Array,FPGA)网卡或者专用集成电路(Application Specific Integrated Circuit,ASIC)网卡等等。网卡可以与虚拟交换机进行数据交互,即,网卡可以接收来自虚拟交换机的数据包,也可以向虚拟交换机发送数据包。
[0030] 参见图3,图3是本申请提供的另一种流表卸载系统的结构示意图。如图3所示,本申请的流表卸载系统,包括:第一主机210用于将第一流表项卸载给卸载硬件的流表空间,将第一压入信息卸载给卸载硬件的隧道镜像空间。
[0031] 第一流表项包括第一匹配项以及第一动作项。第一动作项包括第一索引。可选地,第一索引还包括一个或者多个修改动作,例如,修改虚拟网络标识符(Virtual Network Identifier,VIN),替换目标端口(dport),网络地址转换(Network Address Translation,NAT)、虚拟局域网(Virtual Local Area Network,VLAN)、目的MAC地址、目的源IP地址等等。第一索引关联第一压入信息,第一压入信息包括第一隧道报文头以及第一镜像报文头的公共信息。在一具体的实施例中,第一压入信息包括头长度(headsize)、层2信息、层3信息以及端口信息等等,其中,层2信息包括目的(Media Access Control Address,MAC)地址,源MAC地址,网络类型(dltype)等等。层3信息包括源互联网协议(Internet Protocol,IP)地址,目的IP地址,IP地址类型(proto)、服务类型(ToS)、生存时间(Time To Live,ttl)等等。端口信息包括源端口号(sport)、目的端口号(dport)等等。第一压入信息来源于第一隧道报文头以及第一镜像报文头的公共信息。在一具体的实施例中,如图4所示,第一主机210中的虚拟机3.3.3.10通过开放交换机发送第一隧道报文给物理功能之后,物理功能和第二主机3.3.3.16之间的第一隧道报文通过源IP地址7.7.7.7,目的IP地址7.7.7.9,虚拟网络标识符0xc8的隧道封装转发。当第一主机210中的虚拟机3.3.3.10和第二主机
3.3.3.16的链路出现故障时,需要将虚拟机3.3.3.10和第二主机之间的第一隧道报文复制一份得到第一隧道镜像报文,并通过源IP地址7.7.7.7,目的IP地址7.7.7.9,虚拟网络标识符0x64的镜像封装转发给镜像主机3.3.3.16。那么,
第一隧道报文头的信息可以参见下文:
clone(tnl_push(tnl_port(vxlan_sys_4789),header(size=50,type=4,eth(dst=B0:7B:25:18:7f:56,src=5a:2a:b7:8e:32:48,dl_type=0x0800),ipv4(src=7.7.7.7,dst=7.7.7.9,proto=17,tos=0,ttl=64,frag=0x4000),udp(src=0,dst=4789,csum=0x0),vxlan(flags=0x8000000,vni=0xc8)),out_port(br‑ip)),dpdk‑pf0)。
[0032] 第一镜像报文头的信息可以参见下文:clone(tnl_push(tnl_port(vxlan_sys_4789),header(size=50,type=4,eth(dst=04:3f:72:9b:e3:9f,src=5a:2a:b7:8e:32:48,dl_type=0x0800),ipv4(src=7.7.7.7,dst=7.7.7.9,proto=17,tos=0,ttl=64,frag=0x4000),udp(src=0,dst=4789,csum=0x0),vxlan(flags=0x8000000,vni=0x64)),out_port(br‑ip)),dpdk‑pf0)。
[0033] 不难看出,第一隧道报文头和第一镜像报文头的信息的区别在于虚拟网络标识符(vni)不相同。
[0034] 在一可能的实施例中,第一压入信息可以采用结构体进行表示:Struct tnl_mir_buf
{
Char date[40];
int count;
}
其中,结构体包括字符类型(char)的字符变量(date),由于字符变量的长度为8个比特,40个字符变量的总长度为320。其中,一个比特用于存储端口标识,当端口标识为第一值时,端口标识为出端口标识,当端口标识为第二值时,端口标识为入端口标识,剩余的319个比特用于存储第一压入信息。结构体还包括整型(int)的整型变量(count),整型变量用于存储第一压入信息被引用的次数。整型变量的初始值为零,每当第一压入信息被引用时,整型变量的次数将会加1,每当第一压入信息被取消引用时,整型变量的次数将会减1。
[0035] 如果隧道报文头的压入信息和镜像报文头的压入信息分别存储在不同的空间,分别使用不同的规格,例如,隧道报文头的压入信息使用8千个压入信息的规格,镜像报文头使用64个压入信息的规格,那么,一旦镜像报文头的压入信息的64个规格用完了,那只能等镜像报文头的压入信息被释放之后,才能继续存储镜像报文头的压入信息,大大浪费了时间。但是,本申请中,隧道报文头和镜像报文头的压入信息共享同一个规格,其中,共享同一个规格是指对应的存储空间既可以被隧道报文头的压入信息使用,也可以被镜像报文头的压入信息使用,当隧道报文头的压入信息比较多时,可以占用镜像报文头的压入信息的存储空间,当镜像报文头的压入信息比较多时,可以占用隧道报文头的压入信息的存储空间,也就是说,共享的规格是隧道报文头和镜像报文头的压入信息的公共空间。例如,隧道报文头和镜像报文头的压入信息共享8千+64个规格,那么,当镜像报文头的压入信息即使超过64个时,依然可以使用8千的规格,就会大大减少浪费的时间。而且,也不会出现预分配过大导致资源浪费的情况,把镜像报文头的压入信息预分配512个,但是镜像报文头的压入信息用不到这么多,只用了80个,那么就会造成432个镜像报文头的压入信息的浪费。
[0036] 在卸载时,如果结构体的整型变量的值为零,那么,隧道镜像空间尚未存储有第一压入信息,可以将第一压入信息卸载到隧道镜像空间中。如果结构体的整型变量的值不为零,那么,隧道镜像空间中已经存储有第一压入信息,可以将结构体的整型变量的值加1。在删除时,如果结构体的整型变量的值为零,那么,已经不存在对隧道镜像空间的第一压入信息进行引用,可以将隧道镜像空间中的第一压入信息进行删除。如果结构体的整型变量的值不为零,那么,还存在对隧道镜像空间的第一压入信息的引用,可以将结构体的整型变量的值减1。
[0037] 由于第一隧道报文头和第一镜像报文头数据是基本一样的,本方案中第一压入信息只需要下载一个,所以,第一主机只需要下发1次给卸载硬件,另外一次只需要对整型变量加1即可。如果第一隧道报文头中的压入信息和第一镜像报文头中的压入信息分别存储到不同空间相比,可以有效减少空间的浪费。
[0038] 由于第一隧道报文头和第一镜像报文头数据是基本一样的,第一压入信息只需要下载一次,只要执行一次如果结构体的整型变量的值为零,那么,隧道镜像空间尚未存储有第一压入信息,可以将第一压入信息卸载到隧道镜像空间中。如果结构体的整型变量的值不为零,那么,隧道镜像空间中已经存储有第一压入信息,可以将结构体的整型变量的值加1的流程,如果第一隧道报文头中的压入信息和第一镜像报文头中的压入信息分别存储到不同空间,需要执行两次卸载流程相比,减少了一次软硬件寄存器交互,减少了功耗,在流表项的数量比较多时,效果十分显著。
[0039] 由于第一隧道报文头和第一镜像报文头数据是基本一样的,第一压入信息只需要删除一次,只要执行一次如果结构体的整型变量的值为零,那么,已经不存在对隧道镜像空间的第一压入信息进行引用,可以将隧道镜像空间中的第一压入信息进行删除。如果结构体的整型变量的值不为零,那么,还存在对隧道镜像空间的第一压入信息的引用,可以将结构体的整型变量的值减1的流程,如果第一隧道报文头中的压入信息和第一镜像报文头中的压入信息分别存储到不同空间,需要执行两次删除流程相比,减少了一次软硬件寄存器交互,减少了功耗,在流表项的数量比较多时,效果十分显著。
[0040] 卸载硬件220还用于接收第一原始报文,在第一原始报文的报文头信息和流表空间中的第一匹配项匹配的情况下,根据第一动作项的第一索引从隧道镜像空间中获取第一压入信息,基于第一压入信息为第一原始报文添加第一隧道报文头以及第一镜像报文头,得到第一隧道镜像报文。
[0041] 可选地,第一主机210还用于将第二流表项卸载到流表空间。其中,第二流表项包括第二匹配项以及第二动作项,第二动作项包括第一索引。卸载硬件220还用于接收第二原始报文,在第二原始报文的报文头信息和流表空间中的第二匹配项匹配的情况下,根据第二动作项的第一索引从隧道镜像空间中获取第一压入信息,基于第一压入信息为第二原始报文添加第一隧道报文头,得到第一隧道报文。这里,第一压入信息除了可以提供给隧道镜像报文使用之外,还可以提供给隧道报文使用,进一步提高第一压入信息的复用率。
[0042] 可选地,第一主机210还用于将第三流表项卸载到流表空间,将第二压入信息卸载到隧道镜像空间。其中,第三流表项包括第三匹配项以及第三动作项,第三动作项包括第二索引,第二索引关联第二压入信息,第二压入信息包括第二隧道报文头的信息,第一压入信息和第二压入信息共享隧道镜像空间的规格。卸载硬件220还用于接收第三原始报文,在第三原始报文的报文头信息和流表空间中的第三匹配项匹配的情况下,根据第三动作项的第二索引从隧道镜像空间中获取第二压入信息,基于第二压入信息为第三原始报文添加第二隧道报文头,得到第二隧道报文。这里,隧道报文和隧道镜像报文同样共享隧道镜像空间,能够更有效提高共享隧道镜像空间中的压入信息的利用率。
[0043] 可选地,第一主机210还用于将第四流表项卸载到流表空间,其中,第四流表项包括第四匹配项以及第四动作项,第四动作项包括第一索引;卸载硬件220还用于接收第四原始报文,在第四原始报文的报文头信息和流表空间中的第四匹配项匹配的情况下,根据第四动作项的第一索引从隧道镜像空间中获取第一压入信息,基于第一压入信息为第四原始报文添加第一镜像报文头,得到第一镜像报文。这里,第一压入信息除了可以提供给隧道镜像报文使用之外,还可以提供给镜像报文使用,进一步提高第一压入信息的复用率。
[0044] 可选地,第一主机210还用于将第五流表项卸载到流表空间,将第三压入信息卸载到隧道镜像空间,其中,第五流表项包括第五匹配项以及第五动作项,第五动作项包括第三索引,第三索引关联第三压入信息,第三压入信息包括第二镜像报文头的信息,第一压入信息和第三压入信息共享隧道镜像空间的规格;卸载硬件220还用于接收第五原始报文,在第五原始报文的报文头信息和流表空间中的第五匹配项匹配的情况下,根据第五动作项的第三索引从隧道镜像空间中获取第三压入信息,基于第三压入信息为第五原始报文添加第二镜像报文头,得到第二镜像报文。这里,镜像报文和隧道镜像报文同样共享隧道镜像空间,能够更有效提高共享隧道镜像空间中的压入信息的利用率。
[0045] 可选地,卸载硬件220还用于在端口标识为出端口标识的情况下,为第一原始报文添加第一隧道报文头,对第一隧道报文头执行修改动作得到第三隧道报文头,复制第三隧道报文头得到第三镜像报文头,并添加第三镜像报文头,得到出端口镜像报文,在端口标识为出端口标识的情况下,为第一原始报文添加第一隧道报文头,复制第一隧道报文头得到第一镜像报文头,并添加第一镜像报文头,得到入端口镜像报文。在现有技术方案中,假设修改动作包括修改虚拟网络标识符,修改目的MAC地址,修改虚拟局域网,修改目的IP地址,那么,为第一原始报文添加第一隧道报文头,修改第一隧道报文头中的虚拟网络标识符,重新计算校验值,修改第一隧道报文头中的目的MAC地址,重新计算校验值,修改第一隧道报文头中的虚拟局域网,重新计算校验值,修改第一隧道报文头中的目的IP地址,重新计算校验值。为第一隧道报文头添加第一镜像报文头得到第一隧道镜像报文,修改第一镜像报文中的虚拟网络标识符,重新计算校验值,修改第一镜像报文头中的目的MAC地址,重新计算校验值,修改第一镜像报文头中的虚拟局域网,重新计算校验值,修改第一镜像报文头中的目的IP地址,重新计算校验值,可以看出现有技术的流程非常繁琐,尤其如果修改动作比较多,流程很耗性能。而在本申请中,为第一原始报文添加第一隧道报文头,修改第一隧道报文头中的虚拟网络标识符,重新计算校验值,修改第一隧道报文头中的目的MAC地址,重新计算校验值,修改第一隧道报文头中的虚拟局域网,重新计算校验值,修改第一隧道报文头中的目的IP地址,重新计算校验值,后续直接看第一压入信息上的出端口标识是否是出端口标识,如果是出端口标识,说明是出端口镜像,第一镜像报文头编辑后的报文头应该跟第一隧道报文头编辑后的报文头是一样的,所以,直接复制当前的编辑好的第一隧道报文,添加到第一隧道报文里,重新计算校验值即可。
[0046] 参见图5,图5是本申请提供的一种计算设备的结构示意图。该计算设备400包括:一个或者多个处理单元410、通信接口420以及存储单元430。
[0047] 所述处理单元410、通信接口420以及存储单元430通过总线440相互连接。可选地,该计算设备400还可以包括输入/输出接口450,输入/输出接口450连接有输入/输出设备,用于接收用户设置的参数等。该计算设备400能够用于实现上述的本申请实施例中设备实施例或者系统实施例的部分或者全部功能;处理单元410还能够用于实现上述的本申请实施例中方法实施例的部分或者全部操作步骤。例如,该计算设备400执行各种操作的具体实现可参照上述实施例中的具体细节,如处理单元410用于执行上述方法实施例中部分或者全部步骤或者上述方法实施例中的部分或者全部操作。再例如,本申请实施例中,计算设备400可用于实现上述装置实施例中一个或者多个部件的部分或者全部功能,此外通信接口
420具体可用于为了实现这些装置、部件的功能所必须的通讯功能等,以及处理单元410具体可用于为了实现这些装置、部件的功能所必须的处理功能等。
[0048] 图5的计算设备400可以包括一个或者多个处理单元410,并且多个处理单元410可以按照并行化连接方式、串行化连接方式、串并行连接方式或者任意连接方式来协同提供处理能力,或者多个处理单元410可以构成处理器序列或者处理器阵列,或者多个处理单元410之间可以分成主处理器和辅助处理器,或者多个处理单元410之间可以具有不同的架构如采用异构计算架构。另外,图5所示的计算设备400,相关的结构性描述及功能性描述是示例性且非限制性的。在一些示例性实施例中,计算设备400可以包括比图5所示的更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者具有不同的部件布置。
[0049] 处理单元410可以有多种具体实现形式,例如处理单元410可以包括处理器(central processingunit,CPU)、图形处理器(graphic processing unit,GPU)、神经网络处理器(neural‑networkprocessing unit,NPU)、张量处理器(tensor processing unit,TPU)或数据处理器(data processing unit,DPU)等一种或多种的组合,本申请实施例不做具体限定。处理单元410还可以是单核处理器或多核处理器。处理单元410可以由CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application‑specificintegrated circuit,ASIC),可编程逻辑器件(programmable logicdevice,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD),现场可编程逻辑门阵列(field‑programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。处理单元410也可以单独采用内置处理逻辑的逻辑器件来实现,例如FPGA或数字信号处理器(digital signal processor,DSP)等。通信接口420可以为有线接口或无线接口,用于与其他模块或设备进行通信,有线接口可以是以太接口、局域互联网络(local interconnect network,LIN)等,无线接口可以是蜂窝网络接口或使用无线局域网接口等。
[0050] 存储单元430可以是非易失性存储器,例如,只读存储器(read‑onlymemory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electricallyEPROM,EEPROM)或闪存。存储单元430也可以是易失性存储器,易失性存储器可以是随机存取存储器(randomaccess memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double datarate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。存储单元430也可用于存储程序代码和数据,以便于处理单元410调用存储单元430中存储的程序代码执行上述方法实施例中的部分或者全部操作步骤,或者执行上述设备实施例中的相应功能。此外,计算设备400可能包含相比于图5展示的更多或者更少的组件,或者有不同的组件配置方式。
[0051] 总线440可以是快捷外设部件互连标准(peripheral component interconnect express,PCIe)总线,或扩展工业标准结构(extended industry standard architecture,EISA)总线、统一总线(unified bus,Ubus或UB)、计算机快速链接(compute express link,CXL)、缓存一致互联协议(cache coherentinterconnect for accelerators,CCIX)等。总线440可以分为地址总线、数据总线、控制总线等。总线440除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0052] 本申请实施例还提供一种系统,该系统包括多个计算设备,每个计算设备的结构可以参照上述的计算设备的结构。该系统可实现的功能或者操作可以参照上述方法实施例中的具体实现步骤和/或上述装置实施例中所描述的具体功能,在此不再赘述。
[0053] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者任意组合来实现。当使用软件实现时,可以全部或者部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令,在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。所述计算机指令可存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网络站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、微波等)方式向另一个网络站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质,也可以是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如DVD等)、或者半导体介质(例如固态硬盘)等等。在上述实施例中,对各个实施例的描述各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

当前第1页 第1页 第2页 第3页
相关技术
流表相关技术
系统设备相关技术
常伟发明人的其他相关专利技术