应用升级方法、装置、网卡和设备与流程

文档序号:33701613发布日期:2023-03-31 19:39阅读:26来源:国知局
1.本技术涉及通信领域,更具体地,涉及一种应用升级方法、装置、网卡和设备。
背景技术
::2.当前的时代已经完成从计算为中心到以数据为中心的转变,很多的应用都是依赖大数据,例如典型的人工智能应用。与此同时,当数据量越来越大之后,就需要有更快的网络来传输这些数据。3.随着网络技术的高速发展,不同设备之间可以使用不同网络协议传输数据。相应地,设备中网卡的种类也越来越多,除了传统的以太网卡外,还出现了智能网卡(本技术中可以简称为网卡或网卡设备),配置智能网卡的不同设备之间可以使用高速网络传输协议传输报文,提升网络传输速率。为了帮助应用更好的传输通信和计算,提高整机或者整套集群的通信和计算性能,可以利用智能网卡做通信和计算的卸载,也就是将主机上的应用相关的运算卸载到智能网卡上执行。4.在一些场景中,需要对卸载到智能网卡上的应用进行升级,传统的方式是采用冷升级的方式升级网卡内部的应用。冷升级的基本过程为,待升级的设备(例如服务器/存储器阵列)获取新应用(或者称之为新固件)后,通过高速串行计算机扩展总线标准(peripheralcomponentinterconnectexpress,pcie)总线将新固件发送给设备中的网卡,网卡将新固件写入只读存储器(read-onlymemory,rom)(例如闪存(flash))里,然后重启网卡,且从rom中运行新固件引导启动,这样新固件才会生效。但是重启网卡会导致业务链路中断,进而导致业务发生中断。此外,在不支持网卡热插拔的设备上,在更新网卡应用的过程中,不仅需要重启网卡,还需要重启整个设备,才能使新应用生效。5.因此,当前升级网卡应用的方法,会导致业务链路中断,影响业务运行。技术实现要素:6.本技术实施例提供了一种应用升级方法,可以在无需重启网卡的情况下,升级网卡的应用,从而可以降低网卡应用升级对业务的影响,加速应用计算和传输,提高了整机的性能。7.第一方面,本技术提供了一种应用升级方法,所述方法应用于网卡设备,所述方法包括:获取目标应用的升级信息,所述升级信息包括目标算子、所述目标算子的算子标识、所述目标应用的应用标识;获取为所述目标算子分配的物理地址,所述物理地址为所述网卡设备上存储空间的地址;8.在一种可能的实现中,用户可以在网卡所在的设备上触发针对目标应用的升级指令,进而网卡所在的设备可以生成目标应用的升级信息,该升级信息可以为对升级内容(例如至少一个算子)进行交叉编译得到的微码算子包,并将升级信息传递至网卡设备。其中,升级内容可以为增加的算子、替换的算子等等。9.在一种可能的实现中,目标算子可以理解为函数对应的代码,函数是指一个函数空间到函数空间上的映射规则,例如,目标算子可以为哈希运算、函数截取运算等等。10.在一种可能的实现中,升级信息也可以称之为微码算子包或者微码包;11.在一种可能的实现中,目标算子的算子标识可以为函数名或者其他指示算子的信息(例如字符串),算子标识也可以称之为算子id、微码id等,算子标识可以唯一指示目标算子。12.在一种可能的实现中,目标应用的应用标识可以为应用名或者其他指示应用的信息(例如字符串),应用标识也可以称之为应用id,应用标识可以唯一指示目标应用;13.在一种可能的实现中,所述升级信息还包括:所述目标算子对应的虚拟地址;网卡设备可以基于所述虚拟地址,将所述虚拟地址映射到对应的物理地址。14.其中,虚拟地址可以为主机为目标算子所分配的地址(例如动态随机存储器(dynamicrandomaccessmemory,dram)中的地址),为了能将目标算子存储至自身的存储空间中,网卡设备需要将虚拟地址映射到自身存储空间的物理地址。15.在一种可能的实现中,存储空间为网卡设备上空闲的存储空间,所谓空闲,可以理解为在存储空间上没有分配并存储的数据,也就是说,存储空间可以为网卡设备缓存中空闲的存储空间,存储空间还可以为网卡设备闪存中空闲的存储空间;16.将所述目标算子存储至所述物理地址对应的存储空间中,并根据所述算子标识、所述应用标识以及所述物理地址,构建第一映射关系,所述第一映射关系指示所述算子标识、所述应用标识以及所述物理地址中的至少两个之间存在映射关系,所述第一映射关系用于在所述目标应用运行时作为所述目标算子的路由信息。17.在确定出目标算子对应的物理地址后,可以将所述目标算子存储至所述物理地址对应的存储空间中,例如可以将所述目标算子存储至缓存中所述物理地址对应的存储空间中,或者是存储至闪存中所述物理地址对应的存储空间中。18.而为了之后目标应用在运行时,网卡设备可以调用到目标算子,需要建立用于作为目标算子路由信息的映射关系表(本技术实施例可以称之为微码运行管理表,或者第一映射关系),在第一映射关系中记载了目标应用的各个算子的标识、物理地址(或者称之为接口地址)等,在目标应用运行时,可以在数据包中指定需要调用的算子的标识,进而网卡设备可以基于算子的标识以及第一映射关系,确定出算子所存储的物理地址,并基于物理地址调用并执行算子。19.现有的实现中,在升级网卡上的应用时,为了在代码中增加算子,需要在算子的插入位置编写算子,由于插入算子时会对整体的应用造成影响(例如插入算子a和算子b时,当插入了算子a而还未插入算子b时,此时应用的运行是存在错误的),则必须关闭网页的业务通信(也就是不处理数据包),并将已经完成算子插入的升级后的应用整体写入网卡并重启生效。而本实施例中,在对目标应用进行升级时,不对目标应用整体进行替换,而是只对升级的算子进行存储以及针对于升级的算子进行路由信息的构建,并不是将目标算子插入到应用的某一位置,并不会影响应用的其他代码的工作过程,在应用运行时,只需要在数据包中指定是否调用目标算子,基于第一映射关系就可以路由到目标段子的存储位置,并调用目标算子,进而,可以在无需重启网卡的情况下,升级网卡的应用,由于无需重启网卡,因此可以保持业务链路不中断。因此,本实施例提供的技术上方案可以在保持业务通信链接不断的情况下,完成网卡的应用升级,从而可以降低网卡应用升级对业务的影响,加速应用计算和传输,提高了整机的性能。20.此外,针对于不同的应用,可以配置不同的应用标识,由于应用标识的不同,可以保证应用之间的隔离(在处理数据包时,各个数据包可以基于算子标识的指示,来调用自身应用的算子),也就是可以支持多算子多类型应用同时卸载操作,相互隔离互不影响。21.在一种可能的实现中,所述存储空间为缓存或闪存。22.其中,存储空间为闪存时,在不中断网卡业务流量的情况下,卸载算子到网卡的闪存flash区域,可以实现网卡功能的在线升级和选择性管理,并且重启网卡之后,可以再次从flash加载算子到内存中运行。23.在一种可能的实现中,所述升级信息还包括所述目标算子的第一调用层级,所述第一调用层级用于指示所述目标算子的重要程度,所述存储空间包括为所述第一调用层级的算子所分配的第一子空间,所述物理地址为所述第一子空间的地址。24.其中,重要程度可以为算子功能、算子大小或者是算子的调用关系,例如,所述第一调用层级可以指示所述目标算子可被第二调用层级的算子调用、以及所述目标算子可调用第三调用层级的算子,所述第二调用等级和所述第三调用等级不同;在一种可能的实现中,所述第二调用层级低于所述第一调用层级,所述第三调用层级高于所述第一调用层级,在对算子进行物理地址的分配时,对不同调用层级的算子分配了不同的区域,基于调用层级的划分可以让低层调用层级的算子可以调用高层调用层级的算子,可以降低算子的数量。25.其中,网卡设备可以预先为不同重要程度(例如不同功能,不同大小等)的算子分配不同的存储空间(即上述描述的子空间)。26.其中,所述存储空间可以包括为所述第一调用层级的算子所分配的第一子空间,所述物理地址为所述第一子空间的地址。所述存储空间还可以包括为第二调用层级的算子所分配的第二子空间,所述第一子空间用于存储所述第一调用层级的算子,所述第二子空间用于存储所述第二调用层级的算子。27.在一种可能的实现中,所述存储空间为所述网卡设备上为所述第一调用层级的算子所分配的第一子空间,所述第一子空间用于存储所述第一调用层级的算子。28.在对算子进行物理地址的分配时,对不同调用层级的算子分配了不同的存储区域,其中,第一子空间用于存储第一调用等级的算子,而不存储其他调用等级的算子。29.在一种可能的实现中,所述根据所述算子标识、所述应用标识以及所述物理地址,构建第一映射关系,包括:根据所述算子标识、所述第一调用层级、所述应用标识以及所述物理地址,构建第一映射关系,所述第一映射关系指示所述算子标识、所述第一调用层级、所述应用标识以及所述物理地址存在映射关系。30.在一种可能的实现中,所述第二映射关系可以记载当前各个应用(包括目标应用)已经分配好物理地址的算子的相关信息(例如包括算子标识、虚拟地址、算子大小等等)。31.在一种可能的实现中,可以基于算子的调用层级关系进行算子的存储,其中,这里的调用层级可以理解为算子之间的调用关系,调用层级较低的算子可以调用调用层级较高的算子。具体的,可以为各个调用层次分别分配一定的存储空间,算子可以存储在所属的调用层级分配的存储空间中。32.在一种可能的实现中,所述第二映射关系可以包括多个调用层级、为每个所述调用层级分配的子空间以及每个子空间存储的算子的信息,所述算子的信息可以包括所述算子的虚拟地址、算子的标识。33.其中,第二映射关系可以记载为各个调用层级分配的存储空间中已分配的算子的信息,进而在为目标算子分配地址时,可以首先确定目标算子所属的调用层级(例如目标算子属于第一调用层级)。34.在一种可能的实现中,所述升级信息还包括所述目标算子的第一调用层级,也就是说,算子的调用层级可以包括在升级信息中。35.在确定出目标算子所属的调用层级为第一调用层级之后,可以基于第二映射关系确定为第一调用层级分配的空间(第一子空间,所述第一子空间用于存储所述第一调用层级的算子),也就是根据所述第一调用层级以及所述第二映射关系,从所述第二映射关系中确定为所述第一调用层级所分配的第一子空间,进而可以从所述第一子空间中获取为所述目标算子分配的物理地址。36.应理解,第二映射关系可以存储在缓存或者闪存中。37.应理解,第二映射关系可以以表格、数组等信息存储,这里并不限定第二映射关系的数据形式。38.在一种可能的实现中,所述升级信息还可以包括:待替换算子的标识;所述获取为所述目标算子分配的物理地址,包括:根据所述待替换算子的标识,确定出存储所述待替换算子的存储空间的物理地址。39.其中,针对于应用的升级可以是对应用的算子进行替换或者增加,在对算子进行替换时,升级信息可以指示要替换哪个算子(待替换算子)以及替换成哪个算子(目标算子),进而网卡设备可以将待替换算子从原本的存储位置剔除并存储目标算子。40.在一种可能的实现中,所述目标算子包括第一算子段以及第二算子段,所述第一算子段以及所述第二算子段分别为所述目标算子的一部分,且所述第一算子段包括所述目标算子的入口函数;所述将所述目标算子存储至所述物理地址对应的存储空间中,包括:基于所述第一子空间可用的空间小于存储所述目标算子所需的存储空间,且所述第一子空间可用的空间大于存储所述第一算子段所需的存储空间,将所述第一算子段存储至所述物理地址对应的存储空间中,并将所述第二算子段传递至主机,以便所述主机存储所述第二算子段。41.其中,当第一子空间中可用的存储空间不足以存储完整的目标算子,而仅可以存储部分目标算子时,可以仅将目标算子的部分算子存储至第一子空间,然后将剩余的算子存储至主机,且存储至第一子空间的部分算子可以包括入口函数。通过上述方式,可以充分利用网卡设备的存储空间。42.在一种可能的实现中,所述构建第一映射关系之后,所述方法还包括:接收所述目标应用运行时发送的算子调用信息,所述算子调用信息包括所述应用标识和所述算子标识,所述算子调用信息用于指示执行所述目标算子;根据所述算子调用信息以及所述第一映射关系,得到所述物理地址;根据所述物理地址,获取所述目标算子。43.其中,在实际运行升级后的应用时,若应用需要调用目标算子,则可以将指示调用目标算子的信息(包括算子标识以及应用标识)传递至网卡设备,网卡设备可以基于第一映射关系,得到存储目标算子的物理地址,并从物理地址中获取目标算子并执行。44.在一种可能的实现中,所述算子调用信息还用于指示执行软件程序,所述软件程序包括第一代码段、第二代码段以及位于所述第一代码段和所述第二代码段之间的钩子hook点,所述hook点用于指示是否调用所述目标算子,所述算子调用信息具体用于指示在执行所述第一代码段之后调用所述目标算子;所述方法还包括:根据所述算子调用信息,执行所述第一代码段,执行所述目标算子,以及执行所述第二代码段。45.其中,算子调用信息可以指示运行应用中的某一段程序,该程序中可以预先配置有hook点,在该hook点可以指示是否调用所述目标算子,应用可以将在该hook点需要调用目标算子的信息(可以承载在数据包或者qpc中)传递至网卡设备,进而网卡设备可以在运行程序时在该hook点处调用并执行目标算子。46.第二方面,本技术提供了一种应用升级装置,所述装置应用于网卡设备,所述装置包括:47.获取模块,用于获取目标应用的升级信息,所述升级信息包括目标算子、所述目标算子的算子标识、所述目标应用的应用标识;48.获取为所述目标算子分配的物理地址,所述物理地址为所述网卡设备上存储空间的地址;49.算子部署模块,用于将所述目标算子存储至所述物理地址对应的存储空间中,并根据所述算子标识、所述应用标识以及所述物理地址,构建第一映射关系,所述第一映射关系指示所述算子标识、所述应用标识以及所述物理地址存在映射关系,所述第一映射关系用于在所述目标应用运行时作为所述目标算子的路由信息。50.在一种可能的实现中,所述存储空间为缓存或闪存。51.在一种可能的实现中,所述升级信息还包括:所述目标算子对应的虚拟地址;52.所述获取模块,具体用于:53.基于所述虚拟地址,将所述虚拟地址映射到对应的物理地址。54.在一种可能的实现中,所述升级信息还包括所述目标算子的第一调用层级,所述第一调用层级用于指示所述目标算子的重要程度,所述存储空间包括为所述第一调用层级的算子所分配的第一子空间,所述物理地址为所述第一子空间的地址。55.在一种可能的实现中,所述存储空间还包括为第二调用层级的算子所分配的第二子空间,所述第一子空间用于存储所述第一调用层级的算子,所述第二子空间用于存储所述第二调用层级的算子。56.在一种可能的实现中,所述获取模块,具体用于:57.获取第二映射关系,所述第二映射关系包括多个调用层级、为每个所述调用层级分配的子空间;58.根据所述第一调用层级以及所述第二映射关系,从所述第二映射关系中确定为所述第一调用层级所分配的第一子空间;59.从所述第一子空间中获取为所述目标算子分配的物理地址。60.在一种可能的实现中,所述升级信息还包括:待替换算子的标识;61.所述获取模块,具体用于:62.根据所述待替换算子的标识,确定出存储所述待替换算子的存储空间的物理地址。63.在一种可能的实现中,所述目标算子包括第一算子段以及第二算子段,所述第一算子段以及所述第二算子段分别为所述目标算子的一部分,且所述第一算子段包括所述目标算子的入口函数;64.所述算子部署模块,具体用于:65.基于所述第一子空间可用的空间小于存储所述目标算子所需的存储空间,且所述第一子空间可用的空间大于存储所述第一算子段所需的存储空间,将所述第一算子段存储至所述物理地址对应的存储空间中,并将所述第二算子段传递至主机,以便所述主机存储所述第二算子段。66.在一种可能的实现中,所述算子部署模块,具体用于:67.根据所述算子标识、所述第一调用层级、所述应用标识以及所述物理地址,构建第一映射关系,所述第一映射关系指示所述算子标识、所述第一调用层级、所述应用标识以及所述物理地址存在映射关系。68.在一种可能的实现中,所述获取模块,还用于:69.接收所述目标应用运行时发送的算子调用信息,所述算子调用信息包括所述应用标识和所述算子标识,所述算子调用信息用于指示执行所述目标算子;70.根据所述算子调用信息以及所述第一映射关系,得到所述物理地址;71.根据所述物理地址,获取所述目标算子。72.在一种可能的实现中,所述算子调用信息还用于指示执行软件程序,所述软件程序包括第一代码段、第二代码段以及位于所述第一代码段和所述第二代码段之间的钩子hook点,所述hook点用于指示是否调用所述目标算子,所述算子调用信息具体用于指示在执行所述第一代码段之后调用所述目标算子;73.所述装置还包括:74.程序执行模块,用于根据所述算子调用信息,执行所述第一代码段,执行所述目标算子,以及执行所述第二代码段。75.第三方面,本技术实施例提供了一种计算机可读存储介质,其特征在于,包括计算机可读指令,当该计算机可读指令在计算机设备上运行时,使得该计算机设备执行上述第一方面及其任一可选的方法。76.第四方面,本技术实施例提供了一种计算机程序产品,其特征在于,包括计算机可读指令,当该计算机可读指令在计算机设备上运行时,使得该计算机设备执行上述第一方面及其任一可选的方法。77.第五方面,本技术提供了一种芯片系统,该芯片系统包括处理器,用于支持执行设备或训练设备实现上述方面中所涉及的功能,例如,发送或处理上述方法中所涉及的数据;或,信息。在一种可能的设计中,该芯片系统还包括存储器,该存储器,用于保存执行设备或训练设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。78.第六方面,提供一种设备,该设备包括网卡,该网卡用于执行上述第一方面或第一方面的任一可能的实现方式中的方法的操作步骤。79.本技术在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。80.本技术实施例提供了一种应用升级方法,所述方法应用于网卡设备,所述方法包括:获取目标应用的升级信息,所述升级信息包括目标算子、所述目标算子的算子标识、所述目标应用的应用标识;获取为所述目标算子分配的物理地址,所述物理地址为所述网卡设备上存储空间的地址;将所述目标算子存储至所述物理地址对应的存储空间中,并根据所述算子标识、所述应用标识以及所述物理地址,构建第一映射关系,所述第一映射关系指示所述算子标识、所述应用标识以及所述物理地址存在映射关系,所述第一映射关系用于在所述目标应用运行时作为所述目标算子的路由信息。81.在对目标应用进行升级时,无需对目标应用整体进行替换,而是只对升级的算子进行存储以及针对于升级的算子进行路由信息的构建,可以在无需重启网卡的情况下,升级网卡的应用,由于无需重启网卡,因此可以保持业务链路不中断。因此,本实施例提供的技术上方案可以在保持业务通信链接不断的情况下,完成网卡的应用升级,从而可以降低网卡应用升级对业务的影响,加速应用计算和传输,提高了整机的性能。附图说明82.图1为本技术实施例提供的应用架构示意;83.图2为本技术实施例提供的应用升级方法的流程示意;84.图3为本技术实施例提供的应用升级方法的流程示意;85.图4为本技术实施例提供的加载管理表的示意;86.图5为本技术实施例提供的运行管理表的示意;87.图6为本技术实施例提供的应用升级方法的流程示意;88.图7为本技术实施例提供的应用架构示意;89.图8为本技术实施例提供的应用升级方法的流程示意;90.图9为本技术实施例提供的应用升级方法的流程示意;91.图10为本技术实施例提供的应用升级方法的流程示意;92.图11为本技术实施例提供的应用升级装置的结构示意;93.图12为本技术实施例提供的网卡的一种结构示意图;94.图13为本技术实施例提供的设备的一种结构示意图。具体实施方式95.下面结合本技术实施例中的附图对本技术实施例进行描述。本技术的实施方式部分使用的术语仅用于对本技术的具体实施例进行解释,而非旨在限定本技术。96.本技术的说明书和权利要求书及上述附图中的术语“第一”、第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本技术的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。97.为了便于理解本技术实施例,下文首先结合图1描述网卡中应用升级场景的典型架构。98.如图1所示,第一设备包括处理器与网卡。第一设备通过网卡与第二设备进行网络通信。第二设备可以为远端网络节点。网卡与第一设备的处理器通过高速串行计算机扩展总线标准(peripheralcomponentinterconnectexpress,pcie)总线相连。网卡通过以太网(ethernet,eth)/光纤通道(fibrechannel,fc)与第二设备相连。应理解,在第二设备上也相应有网卡(图1未画出)。99.具体地,第一设备可以为服务器或存储阵列。第二设备也可以为服务器或存储阵列。100.应理解,网卡是局域网中连接待升级应用的网卡所在设备(如图1中的第一设备)和远端设备(如图1中的第二设备)的接口,它们的传输介质可以为图1中的eth/fc,不仅能实现与局域网传输介质之间的物理连接和电信号匹配,还涉及帧的发送与接收、帧的封装与拆封、介质访问控制、数据的编码与解码以及数据缓存的功能等。101.还应理解,图1仅为示例而非限定。实际应用中,网卡的应用升级场景的架构还可以为多主机共享网卡场景,即多个主机共用一个网卡。具体地,多个待升级应用的设备的处理器分别通过多根pcie总线与同一个网卡相连。102.需要说明的是,本文中提及的主机可以对应于图1中所示的第一设备。例如,在多主机共享网卡场景中,包括多个如图1中所示的第一设备,但是这多个第一设备共享一个网卡,换句话说,这多个第一设备各自的处理器分别通过pcie总线与同一个网卡相连。103.还需要说明的是,图1中所示的处理器为第一设备的处理器,而非网卡的处理器。下文实施例中会涉及网卡的处理器(或处理器单元),为了区分而非限定,在下文实施例中,将网卡所在的设备中的处理器记为主机处理器。也就是说,下文实施例中提及的除了主机处理器之外所提及的处理器,除非特别说明,均表示网卡的处理器(处理器单元)。104.在现有的应用升级方法中,需要根据升级后的应用重新编译网卡中的微码,然后中断网卡的业务(即中断网络运行程序),然后替换网卡上的微码固件。105.上文已述,现有的网卡应用升级方法是通过重启网卡来运行网卡的新固件。但是,由于重启网卡,导致网卡掉电,从而导致业务链路中断。例如,在支持网卡热插拔的主机上升级网卡固件时,需要重启网卡才能恢复业务链路,由于重启网卡的时间一般在几十秒,因此,在支持网卡热插拔的主机上升级网卡固件时,业务链路会中断数十秒。再例如,在不支持网卡热插拔的主机上升级网卡的应用时,既需要重启网卡,又需要重启主机,才能恢复业务链路,由于重启主机一般在数分钟,因此,在不支持网卡热插拔的主机上升级网卡固件时,业务链路会中断数分钟。对于网络要求高的业务(如部署金融、医疗相关应用的设备),对于数十秒乃至数分钟的业务网络连接中断是不能接受的。此外,对于不支持热插拔的多主机共享网卡场景,因应用冷升级重启网卡,会造成多个主机重启,恢复代价较大。此外,由于网卡重启,网卡与远端设备(如图1中的第二设备)之间的网络链路也中断,需要重新建立网卡与远端设备之间的链路,同时也需要重新配置远端设备,维护成本也较高。106.总之,现有的网卡应用升级方案,存在如下弊端:网卡掉电导致业务链路中断,网络维护成本较高。107.针对上述问题,本技术实施例提出一种应用升级方法、装置、网卡和设备,可以在升级网卡上的应用的过程中,维持业务链路不中断,同时也可以降低网络维护成本。108.应理解,网卡内包括处理器和存储器。网卡内的处理器可以是中央处理器(centralprocessingunit,cpu),或者是其他微处理器,或者还可以是现场可编程门阵列(field-programmablegatearray,fpga)。网卡内的存储器包括rom(或者是闪存(flash))和内存存储器。具体地,内存存储器为随机存取存储器(random-accessmemory,ram)。通常网卡上的固件存储在rom中,当网卡工作时,将rom中的固件加载到ram区域去执行。109.下面结合本技术实施例中的附图对本技术实施例进行描述。本技术的实施方式部分使用的术语仅用于对本技术的具体实施例进行解释,而非旨在限定本技术。110.图2为本技术实施例提供的应用升级方法的示意性流程图。该方法包括如下步骤。111.201,网卡设备获取目标应用的升级信息,所述升级信息包括目标算子、所述目标算子的算子标识、所述目标应用的应用标识。112.在一种可能的实现中,用户可以在网卡所在的设备上触发针对目标应用的升级指令,进而网卡所在的设备可以生成目标应用的升级信息,该升级信息可以为对升级内容(例如至少一个算子)进行交叉编译得到的微码算子包,并将升级信息传递至网卡设备。113.其中,升级内容可以为增加的算子、替换的算子等等。114.其中,目标算子可以理解为函数对应的代码,函数是指一个函数空间到函数空间上的映射规则,例如,目标算子可以为哈希运算、函数截取运算等等。115.其中,升级信息也可以称之为微码算子包或者微码包;116.在一种可能的实现中,网卡可以从网卡所在的设备上获取目标应用的升级信息,该网卡所在设备可以是计算机、服务器或存储阵列。为了便于描述,下文中将网卡所在的设备称为主机,对应地,将网卡所在设备的处理器称为主机处理器。117.在步骤201中,具体地,主机处理器可以通过总线向网卡下发该目标应用的升级信息,相应地,网卡设备可以通过该总线接收主机处理器下发的针对于目标应用的升级信息。118.主机处理器与网卡之间进行通信的总线可以是pcie总线,或者也可以是非pcie总线。其中,非pcie总线可以为系统管理总线(systemmanagementbus,smbus)、集成电路总线(inter-integratedcircuit,i2c)、串行外设接口(serialperipheralinterface,spi)总线、或通用异步收发传输器(universalasynchronousreceiver/transmitter,uart)等。119.在一种可能的实现中,升级信息可以包括至少一个算子的相关信息,以至少一个算子包括目标算子为例,升级信息可以包括目标算子本身、目标算子的算子标识、目标算子的虚拟地址(可选的)以及目标应用的应用标识。120.其中,目标算子的算子标识可以为函数名或者其他指示算子的信息(例如字符串),算子标识也可以称之为算子id、微码id等,算子标识可以唯一指示目标算子。121.其中,目标应用的应用标识可以为应用名或者其他指示应用的信息(例如字符串),应用标识也可以称之为应用id,应用标识可以唯一指示目标应用。122.在一种可能的实现中,网卡设备可以获取到升级信息,并保存升级信息相关的算子,其中,参照图3,网卡设备中的处理器可以运行微码动态加载管理模块,该微码动态加载管理模块可以进行与处理升级信息相关的行为。123.在一种可能的实现中,所述升级信息还可以包括:待替换算子的标识;其中,针对于应用的升级可以是对应用的算子进行替换或者增加,在对算子进行替换时,升级信息可以指示要替换哪个算子(待替换算子)以及替换成哪个算子(目标算子),进而网卡设备可以将待替换算子从原本的存储位置剔除并存储目标算子。124.202、网卡设备获取为所述目标算子分配的物理地址,所述物理地址为所述网卡设备上存储空间的地址。125.在一种可能的实现中,所述存储空间为缓存cache。其中,缓存可以包括数据缓存以及指令缓存,这里的存储空间可以为数据缓存。126.在一种可能的实现中,所述存储空间为闪存flash。由于闪存是一种非易失性存储器,即断电数据也不会丢失,在重启网卡设备之后,可以再次从flash加载算子到内存中运行。127.其中,存储空间为网卡设备上空闲的存储空间,所谓空闲,可以理解为在存储空间上没有分配并存储的数据,也就是说,存储空间可以为网卡设备缓存中空闲的存储空间,存储空间还可以为网卡设备闪存中空闲的存储空间。128.在一种可能的实现中,所述升级信息可以包括所述目标算子对应的虚拟地址;网卡设备可以基于所述虚拟地址,将所述虚拟地址映射到对应的物理地址。129.其中,虚拟地址可以为主机为目标算子所分配的地址(例如动态随机存储器(dynamicrandomaccessmemory,dram)中的地址),为了能将目标算子存储至自身的存储空间中,网卡设备需要将虚拟地址映射到自身存储空间的物理地址。130.本技术实施例中,网卡设备可以为目标算子分配空闲的指令空间(即存储空间的地址),调整调用地址(即将所述虚拟地址映射到对应的物理地址),并将目标算子写入分配的指令空间中,其中,网卡设备可以根据指令空间的实时状态和目标算子的大小需求,分配空闲的指令空间。131.为了知晓网卡设备中哪些存储资源是空闲的,网卡设备可以维护一个表(该表可以称之为微码加载管理表,或者称之为第二映射关系,具体可以参照图3和图4所示)。接下来对第二映射关系进行描述:132.在一种可能的实现中,所述第二映射关系可以记载当前各个应用(包括目标应用)已经分配好物理地址的算子的相关信息(例如包括算子标识、虚拟地址(可选的)、算子大小等等)。133.在一种可能的实现中,可以基于算子的调用层级关系进行算子的存储,其中,这里的调用层级可以理解为目标算子的重要程度;其中,重要程度可以为算子功能、算子大小或者是算子的调用关系,例如,所述第一调用层级可以指示所述目标算子可被第二调用层级的算子调用、以及所述目标算子可调用第三调用层级的算子,所述第二调用等级和所述第三调用等级不同;在一种可能的实现中,所述第二调用层级低于所述第一调用层级,所述第三调用层级高于所述第一调用层级,在对算子进行物理地址的分配时,对不同调用层级的算子分配了不同的区域,基于调用层级的划分可以让低层调用层级的算子可以调用高层调用层级的算子,可以降低算子的数量。134.其中,网卡设备可以预先为不同重要程度(例如不同功能,不同大小等)的算子分配不同的存储空间(即上述描述的子空间)。135.其中,所述存储空间可以包括为所述第一调用层级的算子所分配的第一子空间,所述物理地址为所述第一子空间的地址。所述存储空间还可以包括为第二调用层级的算子所分配的第二子空间,所述第一子空间用于存储所述第一调用层级的算子,所述第二子空间用于存储所述第二调用层级的算子。136.在一种可能的实现中,所述存储空间为所述网卡设备上为所述第一调用层级的算子所分配的第一子空间,所述第一子空间用于存储所述第一调用层级的算子。137.在对算子进行物理地址的分配时,对不同调用层级的算子分配了不同的存储区域,其中,第一子空间用于存储第一调用等级的算子,而不存储其他调用等级的算子。138.在一种可能的实现中,所述升级信息还包括所述目标算子的第一调用层级,也就是说,算子的调用层级可以包括在升级信息中。139.在一种可能的实现中,所述第二映射关系可以包括多个调用层级、为每个所述调用层级分配的子空间以及每个子空间存储的算子的信息,所述算子的信息可以包括所述算子的虚拟地址、算子的标识。140.其中,第二映射关系可以记载为各个调用层级分配的存储空间中已分配的算子的信息,进而在为目标算子分配地址时,可以首先确定目标算子所属的调用层级(例如目标算子属于第一调用层级)。141.在一种可能的实现中,所述第二映射关系可以包括多个调用层级、为每个所述调用层级分配的子空间以及每个子空间存储的算子的信息,所述算子的信息可以包括所述算子的虚拟地址、算子的标识。142.其中,第二映射关系可以记载为各个调用层级分配的存储空间中已分配的算子的信息,进而在为目标算子分配地址时,可以首先确定目标算子所属的调用层级(例如目标算子属于第一调用层级)。143.在确定出目标算子所属的调用层级为第一调用层级之后,可以基于第二映射关系确定为第一调用层级分配的空间(第一子空间,所述第一子空间用于存储所述第一调用层级的算子),也就是根据所述第一调用层级以及所述第二映射关系,从所述第二映射关系中确定为所述第一调用层级所分配的第一子空间,进而可以从所述第一子空间中获取为所述目标算子分配的物理地址。144.应理解,第二映射关系可以存储在缓存或者闪存中。145.应理解,第二映射关系可以以表格、数组等信息存储,这里并不限定第二映射关系的数据形式。146.本技术实施例中,可以基于目标算子的信息更新第二映射关系,例如可以构建目标算子的算子标识、第一调用层级、目标算子的虚拟地址等信息之间的映射关系,并将上述映射关系添加进第二映射关系中,以此实现对第二映射关系的更新。147.203、网卡设备将所述目标算子存储至所述物理地址对应的存储空间中,并根据所述算子标识、所述应用标识以及所述物理地址,构建第一映射关系,所述第一映射关系指示所述算子标识、所述应用标识以及所述物理地址中的至少两个之间存在映射关系,所述第一映射关系用于在所述目标应用运行时作为所述目标算子的路由信息。148.本技术实施例中,在确定出目标算子对应的物理地址后,可以将所述目标算子存储至所述物理地址对应的存储空间中,例如可以将所述目标算子存储至缓存中所述物理地址对应的存储空间中,或者是存储至闪存中所述物理地址对应的存储空间中。149.而为了之后目标应用在运行时,网卡设备可以调用到目标算子,需要建立用于作为目标算子路由信息的映射关系表(本技术实施例可以称之为微码运行管理表,或者第一映射关系,可以参照图3和图5所示),在第一映射关系中记载了目标应用的各个算子的标识、物理地址(或者称之为接口地址)等,在目标应用运行时,可以在数据包中指定需要调用的算子的标识,进而网卡设备可以基于算子的标识以及第一映射关系,确定出算子所存储的物理地址,并基于物理地址调用并执行算子。150.本技术实施例中,可以基于目标算子的相关信息更新第一映射关系,第一映射关系可以在后续调用目标算子时作为路由信息被使用,具体的,可以根据所述算子标识、所述第一调用层级、所述应用标识以及所述物理地址,构建第一映射关系,所述第一映射关系指示所述算子标识、所述第一调用层级、所述应用标识以及所述物理地址存在映射关系。151.应理解,第一映射关系可以存储在缓存或者闪存中。152.应理解,第一映射关系可以以表格、数组等信息存储,这里并不限定第一映射关系的数据形式。153.在一种可能的实现中,所述目标算子包括第一算子段以及第二算子段,所述第一算子段以及所述第二算子段分别为所述目标算子的一部分,且所述第一算子段包括所述目标算子的入口函数;所述将所述目标算子存储至所述物理地址对应的存储空间中,包括:基于所述第一子空间可用的空间小于存储所述目标算子所需的存储空间,且所述第一子空间可用的空间大于存储所述第一算子段所需的存储空间,将所述第一算子段存储至所述物理地址对应的存储空间中,并将所述第二算子段传递至主机,以便所述主机存储所述第二算子段。154.其中,当第一子空间中可用的存储空间不足以存储完整的目标算子,而仅可以存储部分目标算子时,可以仅将目标算子的部分算子存储至第一子空间,然后将剩余的算子存储至主机,且存储至第一子空间的部分算子可以包括入口函数。通过上述方式,可以充分利用网卡设备的存储空间。155.在一种可能的实现中,在目标应用运行时,网卡设备可以接收所述目标应用运行时发送的算子调用信息,所述算子调用信息包括所述应用标识和所述算子标识,所述算子调用信息用于指示执行所述目标算子;根据所述算子调用信息以及所述第一映射关系,得到所述物理地址;根据所述物理地址,获取所述目标算子。156.其中,在实际运行升级后的应用时,若应用需要调用目标算子,则可以将指示调用目标算子的信息(包括算子标识以及应用标识)传递至网卡设备,网卡设备可以基于第一映射关系,得到存储目标算子的物理地址,并从物理地址中获取目标算子并执行。157.参照图6,图6为一种应用运行时的数据流示意。158.具体的,在一种可能的实现中,所述算子调用信息还用于指示执行软件程序,所述软件程序包括第一代码段、第二代码段以及位于所述第一代码段和所述第二代码段之间的钩子hook点,所述hook点用于指示是否调用所述目标算子,所述算子调用信息具体用于指示在执行所述第一代码段之后调用所述目标算子;所述方法还包括:根据所述算子调用信息,执行所述第一代码段,执行所述目标算子,以及执行所述第二代码段。159.其中,算子调用信息可以指示运行应用中的某一段程序,该程序中可以预先配置有hook点,在该hook点可以指示是否调用所述目标算子,应用可以将在该hook点需要调用目标算子的信息(可以承载在数据包或者qpc中)传递至网卡设备,进而网卡设备可以在运行程序时在该hook点处调用并执行目标算子。160.也就是说,当网卡设备执行到hook点处,需要判断数据包是否需要用卸载的算子(例如目标算子)处理,可选的,可以通过处理程序表handlertable查询智能内存缓存smartmemorycache的隔离空间卸载的代码地址,通过contexttable查询执行数据包需要的数据,并根据卸载的指令处理数据包,包括但不仅限于数据包的匹配执行逻辑。161.应理解,上述应用升级的过程可以包括分为数据部分的执行和控制部分的执行,数据部分用于获取算子、存储算子等等,控制部分用于构建第一映射关系、第二映射关系等等,网卡可以具有第一处理器单元与第二处理器单元,其中,第一处理器单元用于处理数据功能,第二处理器单元用于处理控制功能。网卡的处理器可以是单核处理器,或者是多核处理器。上述的第一处理器单元与第二处理器单元可以是两个单核处理器,或者上述的第一处理器单元与第二处理器单元为同一个多核处理器的两个处理器核。162.本技术实施例提供了一种应用升级方法,所述方法应用于网卡设备,所述方法包括:获取目标应用的升级信息,所述升级信息包括目标算子、所述目标算子的算子标识、所述目标应用的应用标识;获取为所述目标算子分配的物理地址,所述物理地址为所述网卡设备上存储空间的地址;将所述目标算子存储至所述物理地址对应的存储空间中,并根据所述算子标识、所述应用标识以及所述物理地址,构建第一映射关系,所述第一映射关系指示所述算子标识、所述应用标识以及所述物理地址存在映射关系,所述第一映射关系用于在所述目标应用运行时作为所述目标算子的路由信息。现有的实现中,在升级网卡上的应用时,为了在代码中增加算子,需要在算子的插入位置编写算子,由于插入算子时会对整体的应用造成影响(例如插入算子a和算子b时,当插入了算子a而还未插入算子b时,此时应用的运行是存在错误的),则必须关闭网页的业务通信(也就是不处理数据包),并将已经完成算子插入的升级后的应用整体写入网卡并重启生效。而本实施例中,在对目标应用进行升级时,不对目标应用整体进行替换,而是只对升级的算子进行存储以及针对于升级的算子进行路由信息的构建,并不是将目标算子插入到应用的某一位置,并不会影响应用的其他代码的工作过程,在应用运行时,只需要在数据包中指定是否调用目标算子,基于第一映射关系就可以路由到目标段子的存储位置,并调用目标算子,进而,可以在无需重启网卡的情况下,升级网卡的应用,由于无需重启网卡,因此可以保持业务链路不中断。因此,本实施例提供的技术上方案可以在保持业务通信链接不断的情况下,完成网卡的应用升级,从而可以降低网卡应用升级对业务的影响,加速应用计算和传输,提高了整机的性能。163.此外,针对于不同的应用,可以配置不同的应用标识,由于应用标识的不同,可以保证应用之间的隔离(在处理数据包时,各个数据包可以基于算子标识的指示,来调用自身应用的算子),也就是可以支持多算子多类型应用同时卸载操作,相互隔离互不影响。164.此外,本实施例不需要数据包修改,不需要修改数据层的数据包格式,只需要修改控制通道的下发匹配规则,区分不同的数据包,可扩展性更强。165.此外,针对于不同的应用,可以配置不同的应用标识,并基于和图2所示的应用升级方法相同的方式进行应用升级,由于应用标识的不同,可以保证应用之间的隔离(在处理数据包时,各个数据包可以基于算子标识的指示,来调用自身应用的算子),也就是可以支持多算子多类型应用同时卸载操作,相互隔离互不影响。166.此外,在不中断网卡业务流量的情况下,卸载算子到网卡的闪存flash区域,可以实现网卡功能的在线升级和选择性管理,并且重启网卡之后,可以再次从flash加载算子到内存中运行。167.此外,在对算子进行物理地址的分配时,对不同调用层级的算子分配了不同的区域,基于调用层级的划分可以让低层调用层级的算子可以调用高层调用层级的算子,降低了算子的数量。168.上文虽然以网卡为对象,描述了其应用升级的方法。但是,本技术实施例提供的应用升级的方案还可以应用于以太网(ethernet)接口、光纤通道(fc)接口、sas/sata接口,磁盘阵列(redundantarraysofindependentdisks,raid)、主机总线适配器(hostbusadapter,hba),也可用于其它形态的网络主机(计算节点、存储节点)的io接口卡设备。169.本技术实施例提供的应用升级的方案还可以应用于一些片上系统(system.on.achip,soc)。soc指的是在单个芯片上集成一个完整的系统,对所有或部分必要的电子电路进行包分组的技术。所谓完整的系统一般包括中央处理器(cpu)、存储器、以及外围电路等。170.接下来给出一个本技术实施例中网卡设备的系统框架示意:171.参照图7,图7示出了一个在网计算(onlinenetworkprocessing,onp)的框架示意,onp是一个动态可编程加速框架,图7示出了多个应用卸载加速的场景,包括网络的动态多拥塞协议,存储的事务原子读写,kvs,集合通信,以及hpc的离散数据传输,这些场景各自有不同的应用逻辑,onp的目标就是用一个统一的可编程框架动态支撑这些不同的应用加速需求。为了实现这样的目标,onp提供了统一的可编程接口以及应用逻辑开发流程,然后通过onp管理组件动态地选择运行应用卸载逻辑。同时,向下支持自研的网卡架构,向上提供统一的编程模型。172.如图7所示,其包含在网计算编程接口,并新增了在网计算管理框架和在网计算编排执行模块。在网计算编程接口可以给用户提供统一的网卡可编程接口,方便用户编程。其中包括控制通道接口,方便用户下发控制命令和卸载微码算子;包括数据通道接口,方便用户调用实现数据传送。其次,还有一些定制的appverbs,比如kvstore、rpc序列化的定制加速接口。在网计算管理框架是一个实时调度、编译卸载的软件系统框架,抽象网卡的计算、存储和硬件资源给用户使用,并且替用户管理。用户卸载的算子微码,在管理框架中被提取编译,分发到网卡或者其他硬件设备上面执行。在网计算编排执行是微码算子在网卡中编排执行的框架,给不同算子提供通信和相互调用的能力。173.互联网公司在搭建自己的数据中心和计算中心时,为了避免venderinlock,所有的网卡不会购买同一家公司的,会按照一定比例购买多家公司的智能网卡,但是基于rdma的智能网卡大部分都是设备厂商自研的拥塞控制协议,这样一来如果混合部署的情况下,不仅会出现通信性能下降,甚至会出现连通性问题。多种拥塞控制机制有各自不同的协议流程,报文格式,如何融合到统一的rdma报文处理流程中,支持不同场景下的互通,在融合的流程中保持互通的同时,继续实现pfcfree的拥塞控制策略。为了支持拥塞控制机制的可扩展和动态更新,我们利用本专利提供的技术,实现了动态多拥塞控制dcc,支持多种拥塞控制机制,ldcp,dcqcn,pcc-ldcp。实现动态配置拥塞模式,统一拥塞控制可编程接口,多拥塞控制算法的共存和动态切换。174.根据图8和图9,可以看到没有利用本技术实施例时的拥塞控制算法运行流程,如图8所示,微码静态运行时,(1)微码收到cnp/ack/rtt等数据包;(2)根据不同的事件进入不同的处理流程;(3)调用公用的smartmemorycache的微码执行数据包操作。利用本技术实施例的动态拥塞控制算法流程,微码增加hook点动态调用应用下发的浮动地址空间的代码。微码拥塞控制动态调用时,1)微码流程里增加hook点;2)在hook点判断数据包是否需要用卸载的code处理;3)通过handlertable查询smartmemorycache的隔离空间卸载的代码地址,通过contexttable查询执行数据包需要的数据。4)根据卸载的指令处理数据包,包括但不仅限于数据包的匹配执行逻辑。175.参照图10,现有数据流处理流程中添加调用点,在调用点处动态卸载拥塞控制算子。具体算法运行流程如下:176.1、在初始化阶段,可以产生newflow事件;177.2、在收包阶段,可以产生cnp/ack/nack/rtt等事件;178.3、在发送阶段,可以发送一定量的数据后通知cc算法(tx事件);179.4、用户cc算子由事件驱动;180.5.拥有20b的空间存储状态,将结果写入rate;181.6.发送阶段读取rate,按照rate发送数据;182.通过本技术实施例,用户可以自定义拥塞控制算法,调用卸载接口,可以动态下发rdma拥塞控制算法到网卡上面。可以在不中断业务数据流的情况下实现动态卸载拥塞控制算法。微码动态调用收益可以包括:1、动态加载效率更高。2、存储资源隔离,提供cache命中率,减少content切换。3、接口调用灵活。183.上文描述本技术的方法实施例,下文描述本技术的装置实施例。装置实施例中相关内容的解释及有益效果均可参考上文提供的对应的方法实施例,此处不再赘述。184.参照图11,本技术实施例提供了一种应用升级装置的结构示意,所述装置应用于网卡设备,所述装置1100可以包括:185.获取模块1101,用于获取目标应用的升级信息,所述升级信息包括目标算子、所述目标算子的算子标识、所述目标应用的应用标识;186.获取为所述目标算子分配的物理地址,所述物理地址为所述网卡设备上存储空间的地址;187.其中,关于获取模块1101的具体描述可以参照步骤201和步骤202的描述,这里不再赘述。188.算子部署模块1102,用于将所述目标算子存储至所述物理地址对应的存储空间中,并根据所述算子标识、所述应用标识以及所述物理地址,构建第一映射关系,所述第一映射关系指示所述算子标识、所述应用标识以及所述物理地址存在映射关系,所述第一映射关系用于在所述目标应用运行时作为所述目标算子的路由信息。189.其中,关于算子部署模块1102的具体描述可以参照步骤203的描述,这里不再赘述。190.在一种可能的实现中,所述存储空间为缓存或闪存。191.在一种可能的实现中,所述升级信息还包括:所述目标算子对应的虚拟地址;192.所述获取模块,具体用于:193.基于所述虚拟地址,将所述虚拟地址映射到对应的物理地址。194.在一种可能的实现中,所述升级信息还包括所述目标算子的第一调用层级,所述第一调用层级用于指示所述目标算子的重要程度,所述存储空间包括为所述第一调用层级的算子所分配的第一子空间,所述物理地址为所述第一子空间的地址。195.在一种可能的实现中,所述存储空间还包括为第二调用层级的算子所分配的第二子空间,所述第一子空间用于存储所述第一调用层级的算子,所述第二子空间用于存储所述第二调用层级的算子。196.在一种可能的实现中,所述获取模块,具体用于:197.获取第二映射关系,所述第二映射关系包括多个调用层级、为每个所述调用层级分配的子空间;198.根据所述第一调用层级以及所述第二映射关系,从所述第二映射关系中确定为所述第一调用层级所分配的第一子空间;199.从所述第一子空间中获取为所述目标算子分配的物理地址。200.在一种可能的实现中,所述升级信息还包括:待替换算子的标识;201.所述获取模块,具体用于:202.根据所述待替换算子的标识,确定出存储所述待替换算子的存储空间的物理地址。203.在一种可能的实现中,所述目标算子包括第一算子段以及第二算子段,所述第一算子段以及所述第二算子段分别为所述目标算子的一部分,且所述第一算子段包括所述目标算子的入口函数;204.所述算子部署模块,具体用于:205.基于所述第一子空间可用的空间小于存储所述目标算子所需的存储空间,且所述第一子空间可用的空间大于存储所述第一算子段所需的存储空间,将所述第一算子段存储至所述物理地址对应的存储空间中,并将所述第二算子段传递至主机,以便所述主机存储所述第二算子段。206.在一种可能的实现中,所述算子部署模块,具体用于:207.根据所述算子标识、所述第一调用层级、所述应用标识以及所述物理地址,构建第一映射关系,所述第一映射关系指示所述算子标识、所述第一调用层级、所述应用标识以及所述物理地址存在映射关系。208.在一种可能的实现中,所述获取模块,还用于:209.接收所述目标应用运行时发送的算子调用信息,所述算子调用信息包括所述应用标识和所述算子标识,所述算子调用信息用于指示执行所述目标算子;210.根据所述算子调用信息以及所述第一映射关系,得到所述物理地址;211.根据所述物理地址,获取所述目标算子。212.在一种可能的实现中,所述算子调用信息还用于指示执行软件程序,所述软件程序包括第一代码段、第二代码段以及位于所述第一代码段和所述第二代码段之间的钩子hook点,所述hook点用于指示是否调用所述目标算子,所述算子调用信息具体用于指示在执行所述第一代码段之后调用所述目标算子;213.所述装置还包括:214.程序执行模块,用于根据所述算子调用信息,执行所述第一代码段,执行所述目标算子,以及执行所述第二代码段。215.如图12,本技术实施例还提供一种网卡,该网卡包括处理器1110,存储器1120,总线1130,输入接收1140和输出接口1150。处理器1110、存储器1120、输入接收1140和输出接口1150通过总线1130通信连接。存储器1120用于存储指令,该处理器1110用于执行该存储器1130存储的指令,并且对该存储器1130中存储的指令的执行使得,该处理器1110用于执行上文方法实施例中网卡执行的动作。216.本技术实施例还提供一种芯片,该芯片包括处理单元与通信接口,该处理单元用于执行上述方法实施例中的芯片设备执行的操作,该通信接口用于与外部进行通信。217.可选地,该芯片还可以包括存储单元,该存储单元中存储有指令,该处理单元用于执行上述存储单元中存储的指令,当该指令执行时,述处理单元用于执行上述方法实施例中的网卡执行的操作。218.本技术实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可以实现上述方法实施例中网卡执行的方法。219.本技术实施例还提供一种包括指令的计算机程序产品,该指令被计算机执行时可以实现上述方法实施例中网卡执行方法。220.如图13所示,本技术实施例还提供一种设备,该设备包括处理器1210,通信接口1220,总线1230和网卡1240,其中,通信接口1220和网卡1240通过总线1230通信连接。处理器1210的对应于上文实施例中提到的主机处理器。网卡1240对应于上文实施例中的网卡。该服务器可以对应于上文实施例中提及的主机。221.可选地,该总线1130可以为pcie总线,或者也可以是非pcie总线。其中,非pcie总线可以为smbus、i2c、spi总线、或uart等。222.应理解,根据本发明实施例的设备中的网卡可对应于本技术实施例中图12所示的网卡,并可以对应于执行根据本技术实施例图2中实现网卡应用升级的方法中的执行主体,并且设备中的各个模块的上述和其它操作和/或功能分别为了实现图2的方法的相应流程,为了简洁,在此不再赘述。223.应理解,本实施例中的网卡具有处理器与存储器。其中,该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,rom)、可编程只读存储器(programmablerom,prom)、可擦除可编程只读存储器(erasableprom,eprom)、电可擦除可编程只读存储器(electricallyeprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(randomaccessmemory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(staticram,sram)、动态随机存取存储器(dynamicram,dram)、同步动态随机存取存储器(synchronousdram,sdram)、双倍数据速率同步动态随机存取存储器(doubledataratesdram,ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,esdram)、同步连接动态随机存取存储器(synchlinkdram,sldram)和直接内存总线随机存取存储器(directrambusram,drram)。应注意,本文描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。224.另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本技术提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。225.通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本技术可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用cpu、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本技术而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、u盘、移动硬盘、rom、ram、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本技术各个实施例该的方法。226.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。227.该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本技术实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。该计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。该可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solidstatedisk,ssd))等。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1