CN108616382A - 升级网卡固件的方法、装置、网卡和设备 - Google Patents

升级网卡固件的方法、装置、网卡和设备 Download PDF

Info

Publication number
CN108616382A
CN108616382A CN201810185565.XA CN201810185565A CN108616382A CN 108616382 A CN108616382 A CN 108616382A CN 201810185565 A CN201810185565 A CN 201810185565A CN 108616382 A CN108616382 A CN 108616382A
Authority
CN
China
Prior art keywords
network interface
interface card
memory
region
firmware
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.)
Granted
Application number
CN201810185565.XA
Other languages
English (en)
Other versions
CN108616382B (zh
Inventor
谢军宏
徐启明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
XFusion Digital Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201810185565.XA priority Critical patent/CN108616382B/zh
Priority to CN202011279529.3A priority patent/CN112491600A/zh
Publication of CN108616382A publication Critical patent/CN108616382A/zh
Application granted granted Critical
Publication of CN108616382B publication Critical patent/CN108616382B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供了一种升级网卡固件的方法、装置、网卡和设备,该方法包括:网卡从该网卡所在设备接收该网卡的新固件;保存该网卡当前处理的业务的现场信息,该业务的现场信息用于指示与该网卡当前处理的业务相关的信息;该网卡将该新固件加载到该网卡的内存区域,并在该内存区域运行该新固件;初始化配置该网卡中除业务逻辑模块之外的其他模块,并恢复该现场信息所指示的业务。本申请在升级网卡固件时无需重启网卡,因此可以在维持业务链路不中断的情况下,完成网卡固件的升级,可以降低网卡固件升级对业务应用的影响。

Description

升级网卡固件的方法、装置、网卡和设备
技术领域
本申请涉及通信领域,更具体地,涉及一种升级网卡固件的方法、装置、网卡和设备。
背景技术
随着网络技术的高速发展,不同设备之间可以使用不同网络协议传输数据。相应地,设备中网卡的种类也越来越多,除了传统的以太网卡外,还出现了智能网卡,配置智能网卡的不同设备之间可以使用高速网络传输协议传输报文,提升网络传输速率。与此同时,由于网卡内部软、硬件日益复杂,网卡的软件缺陷(Bug)和硬件故障也越来越多。只有及时修复故障,才能减少对设备中运行业务的影响。因此,针对网卡的软、硬件缺陷,需要及时、快速地更新网卡内部的固件(Firmware,FW)进行修复。
目前,传统的方式是采用冷升级的方式更新网卡内部固件。冷升级的基本过程为,待升级的设备(例如服务器/存储器阵列)获取新固件后,通过高速串行计算机扩展总线标准(peripheral component interconnect express,PCIe)总线将新固件发送给设备中的网卡,网卡将新固件写入只读存储器(read-only memory,ROM)(例如闪存(flash))里,然后重启网卡,且从ROM中运行新固件引导启动,这样新固件才会生效。但是重启网卡会导致业务链路中断,进而导致业务发生中断。此外,在不支持网卡热插拔的设备上,在更新网卡固件的过程中,不仅需要重启网卡,还需要重启整个设备,才能使新固件生效。
因此,当前升级网卡固件的方法,会导致业务链路中断,影响业务运行。
发明内容
本申请提供一种升级网卡固件的方法、装置、网卡和设备,可以在升级网卡固件的过程中,维持业务链路不中断,降低网卡固件升级对业务应用的影响。
第一方面,提供了一种升级网卡固件的方法,该方法包括:网卡从该网卡所在设备接收该网卡的新固件;该网卡在运行该新固件之前,保存该网卡当前处理的业务的现场信息,该业务的现场信息用于指示与该网卡当前处理的业务相关的信息;该网卡将该新固件加载到该网卡的内存区域,并在该内存区域运行该新固件;该网卡在运行该新固件之后,初始化配置该网卡中除业务逻辑模块之外的其他模块,并恢复该现场信息所指示的业务。
具体地,网卡所在设备的处理器通过总线向网卡下发该网卡的新固件,相应地,网卡通过该总线接收主机处理器下发的新固件。
网卡所在设备的处理器与网卡之间进行通信的总线可以是PCIe总线,或者也可以是非PCIe总线。其中,非PCIe总线可以为系统管理总线(system management bus,SMBus)、集成电路总线(inter-integrated circuit,I2C)、串行外设接口(serial peripheralinterface,SPI)总线、或通用异步收发传输器(universal asynchronous receiver/transmitter,UART)等。
作为一种实现方式,网卡在接收到网卡所在设备下发的新固件后,将所述新固件存入本地ROM中。
通过在运行新固件之前保存现场,并在运行新固件之后恢复现场、以及对除业务逻辑模块之前的其他模块进行初始化配置,从而可以在无需重启网卡的情况下,升级网卡的固件,由于无需重启网卡,因此可以保持业务链路不中断。因此,本实施例提供的技术方案可以在保持业务通信链接不断的情况下,完成网卡的固件升级,从而可以降低网卡固件升级对业务的影响。
在另一种可能的实现方式中,业务逻辑模块表示网卡中用于处理业务逻辑的功能模块。例如,该业务逻辑模块包括如下模块中的至少一种:串并收发器(serdes)报文处理模块、PCIe报文处理模块、FC/ETH MAC报文处理模块、FC/ETH报文处理模块。
在另一种可能的实现方式中,其他模块表示网卡中除了上述业务逻辑模块之外的模块。例如,该其它模块包括如下模块中的至少一种:处理器子系统模块、外设接口模块。该外设接口模块包括但不限于:集成电路总线接口模块、串行外设接口模块、通用输入/输出(general purpose input output,GPIO)接口模块。
在另一种可能的实现方式中,该网卡的内存区域包括第一内存区域和第二内存区域,该网卡包括处理器;其中,该网卡将该新固件加载到该网卡的内存区域,并在该内存区域运行该新固件,包括:该网卡将该新固件加载到该第一内存区域,该第一内存区域不同于该网卡当前运行旧固件所在的该第二内存区域;该处理器执行软件程序的位置从该第二内存区域跳转到该第一内存区域,换句话说,网卡的处理器的读取内存地址的范围从第二内存区域移到第一内存区域。应理解,网卡的处理器在第一内存区域读取指令,等同于运行新固件。
在另一种可能的实现方式中,该网卡在保存该业务的现场信息之前,将该新固件加载到该第一内存区域。
通过在保存现场之前将新固件加载到新的内存区域,这样可以使得在完成现场保存(或其它准备操作)之后,立即运行新固件,可以进一步降低网卡固件升级对业务的影响。
通过在网卡的内存区域的第二内存区域存储旧固件,在网卡的内存区域的第一内存区域存储新固件,然后,使得该网卡的处理器执行软件程序的位置从该第二内存区域跳转到该第一内存区域,从而实现了新固件的运行,即实现固件升级。整个固件升级过程中,无需重启网卡,则网卡没有断电,从而维持了网卡与主机处理器之间的链路不中断,网卡与远端设备之间的链路也不中断,即保证了业务链路不中断,可以有效降低固件升级对业务的影响。
在另一种可能的实现方式中,该网卡的内存区域包括第二内存区域,该网卡包括处理器;其中,该网卡将该新固件加载到该网卡的内存区域,并在该内存区域运行该新固件,包括:该网卡复位该处理器,该处理器在复位之前运行该第二内存区域中的旧固件;在该处理器复位后,该网卡将该新固件加载到该第二内存区域中;该处理器从该第二内存区域重启,运行该新固件。
本申请中,通过复位、重启网卡的处理器来实现固件升级,可以实现在固件升级过程中维持业务链路不中断,此外,由于不要求同时将新固件与旧固件加载到内存区域中,因此,可以降低对网卡内存空间的要求。
在另一种可能的实现方式中,该新固件包括分离的数据固件部分与控制固件部分,该网卡的内存区域包括第三内存区域与第四内存区域,该网卡包括第一处理器单元与第二处理器单元,该第一处理器单元用于处理数据功能,第二处理器单元用于处理控制功能;其中,该网卡将该新固件加载到该网卡的内存区域,并在该内存区域运行该新固件,包括:该网卡复位该第一处理器单元,该第一处理器单元在复位之前运行该第三内存区域中的旧固件的数据固件部分;在该第一处理器单元复位之后,该网卡将该新固件的数据固件部分加载到该第三内存区域中;该第一处理器单元从该第三内存区域重启,运行该新固件的数据固件部分;在该第一处理器单元重启之后,该网卡复位该第二处理器单元,该第二处理器单元在复位之前运行该第四内存区域中的旧固件的控制固件部分;在该第二处理器单元复位之后,该网卡将该新固件的控制固件部分加载到该第四内存区域中;该第二处理器单元从该第四内存区域重启,运行该新固件的控制固件部分。
具体地,网卡的处理器可以是单核处理器,或者是多核处理器。上述的第一处理器单元与第二处理器单元可以是两个单核处理器,或者上述的第一处理器单元与第二处理器单元为同一个多核处理器的两个处理器核。
本申请中,网卡具有第一处理器单元与第二处理器单元,第一处理器单元用于处理数据功能,第二处理器单元用于处理控制功能,在新固件包括分离的数据固件部分与控制固件部分的情形下,通过复位、重启第一处理器单元运行新固件的数据固件部分,在第一处理器单元重启之后,通过复位、重启第二处理器单元运行新固件的控制固件部分,从而完成固件升级。虽然在复位第一处理器的场景下,会造成短暂的业务停留,但是由于新固件的数据固件部分相对于新固件整体较为精简,不会造成业务链路的中断。因此,本实施例可以降低固件升级对业务的影响,同时也可以降低对网卡内存空间的要求。
在另一种可能的实现方式中,该业务的现场信息包括如下信息中的至少一种:业务逻辑的硬件状态信息、用户下发的业务配置信息、为业务逻辑硬件分配的内存信息。
在另一种可能的实现方式中,网卡可以将业务的现场信息存储在网卡的一段数据不丢失的存储区域上。
在另一种可能的实现方式中,在运行该新固件之前,该方法还包括:该网卡执行如下操作中的至少一种操作:关闭该网卡的系统调度,完成该网卡当前处理的事务,清理该网卡的系统资源,通知该设备该网卡进入固件升级状态。
在另一种可能的实现方式中,在运行所述新固件之后,所述方法还包括:所述网卡还执行通知周边热升级完成,解除周边隔离与屏蔽。
综上所述,本申请通过在运行新固件之前保存现场,并在运行新固件之后恢复现场、以及对除业务逻辑模块之前的其他模块进行初始化配置,从而可以在无需重启网卡的情况下,升级网卡的固件,由于无需重启网卡,可以保持业务链路不中断。因此,本申请提供的技术上方案可以在保持业务通信链接不断的情况下,完成网卡的固件升级,从而可以降低网卡固件升级对业务的影响。
第二方面,提供一种网卡,包括用于执行第一方面或第一方面任一种可能实现方式中的升级网卡固件的方法的各个模块。
第三方面,提供一种网卡,该网卡包括存储器和处理器,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,并且对该存储器中存储的指令的执行使得该处理器执行第一方面或第一方面的任一可能的实现方式中的方法的操作步骤。
第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机实现第一方面或第一方面的任一可能的实现方式中的方法的操作步骤。具体地,该计算机可以为网卡。
第五方面,提供一种包含指令的计算机程序产品,该指令被计算机执行时使得该计算机实现第一方面或第一方面的任一可能的实现方式中的方法的操作步骤。具体地,该计算机可以为网卡。
第六方面,提供一种设备,该设备包括网卡,该网卡用于执行上述第一方面或第一方面的任一可能的实现方式中的方法的操作步骤。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1为网卡固件升级场景的典型组网架构示意图。
图2为本申请实施例提供的升级网卡固件的方法的示意性流程图。
图3为本申请实施例中网卡生效新固件的原理示意图。
图4为网卡内部的RAM区域的空间分配的示意图。
图5为本申请实施例提供的升级网卡固件的方法的另一示意性流程图。
图6为本申请实施例提供的升级网卡固件的方法的再一示意性流程图。
图7为本申请实施例中涉及的网卡处理器运行控制固件的示意图。
图8为本申请实施例中涉及的网卡处理器运行控制与数据固件的示意图。
图9为本申请实施例中涉及的网卡的两个处理器单元分别运行控制固件与数据固件的示意图。
图10为本申请实施例提供的网卡的示意性框图。
图11为本申请实施例提供的网卡的另一示意性框图。
图12为本申请实施例提供的设备的示意性框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
为了便于理解本申请实施例,下文首先结合图1描述网卡固件升级场景的典型组网架构。
如图1所示,第一设备包括处理器与网卡。第一设备通过网卡与第二设备进行网络通信。第二设备可以为远端网络节点。网卡与第一设备的处理器通过高速串行计算机扩展总线标准(peripheral component interconnect express,PCIe)总线相连。网卡通过以太网(ethernet,ETH)/光纤通道(fibre channel,FC)与第二设备相连。应理解,在第二设备上也相应有网卡(图1未画出)。
具体地,第一设备可以为服务器或存储阵列。第二设备也可以为服务器或存储阵列。
应理解,网卡是局域网中连接待升级固件的网卡所在设备(如图1中的第一设备)和远端设备(如图1中的第二设备)的接口,它们的传输介质可以为图1中的ETH/FC,不仅能实现与局域网传输介质之间的物理连接和电信号匹配,还涉及帧的发送与接收、帧的封装与拆封、介质访问控制、数据的编码与解码以及数据缓存的功能等。
还应理解,图1仅为示例而非限定。实际应用中,网卡固件升级场景的组网架构还可以为多主机共享网卡场景,即多个主机共用一个网卡。具体地,多个待升级固件的设备的处理器分别通过多根PCIe总线与同一个网卡相连。
需要说明的是,本文中提及的主机对应于图1中所示的第一设备。例如,在多主机共享网卡场景中,包括多个如图1中所示的第一设备,但是这多个第一设备共享一个网卡,换句话说,这多个第一设备各自的处理器分别通过PCIe总线与同一个网卡相连。
还需要说明的是,图1中所示的处理器为第一设备的处理器,而非网卡的处理器。下文实施例中会涉及网卡的处理器(或处理器单元),为了区分而非限定,在下文实施例中,将网卡所在的设备中的处理器记为主机处理器。也就是说,下文实施例中提及的除了主机处理器之外所提及的处理器,除非特别说明,均表示网卡的处理器(处理器单元)。
上文已述,现有的网卡固件冷升级方法是通过重启网卡来运行网卡的新固件。但是,由于重启网卡,导致网卡掉电,从而导致业务链路中断。例如,在支持网卡热插拔的主机上升级网卡固件时,需要重启网卡才能恢复业务链路,由于重启网卡的时间一般在几十秒,因此,在支持网卡热插拔的主机上升级网卡固件时,业务链路会中断数十秒。再例如,在不支持网卡热插拔的主机上升级网卡固件时,既需要重启网卡,又需要重启主机,才能恢复业务链路,由于重启主机一般在数分钟,因此,在不支持网卡热插拔的主机上升级网卡固件时,业务链路会中断数分钟。对于网络要求高的业务(如部署金融、医疗相关应用的设备),对于数十秒乃至数分钟的业务网络连接中断是不能接受的。此外,对于不支持热插拔的多主机共享网卡场景,因固件冷升级重启网卡,会造成多个主机重启,恢复代价较大。此外,由于网卡重启,网卡与远端设备(如图1中的第二设备)之间的网络链路也中断,需要重新建立网卡与远端设备之间的链路,同时也需要重新配置远端设备,维护成本也较高。
总之,现有的网卡固件升级方案,存在如下弊端:网卡掉电导致业务链路中断,网络维护成本较高。
针对上述问题,本申请实施例提出一种升级网卡固件的方法、装置、网卡和设备,可以在升级网卡固件的过程中,维持业务链路不中断,同时也可以降低网络维护成本。
还需要说明的是,本实施例中提及的固件,指的是网卡内部的软件,包括网卡中驱动程序、操作系统。对应地,网卡固件升级指的是网卡内部的软件升级。
应理解,网卡内包括处理器和存储器。网卡内的处理器可以是中央处理器(central processing unit,CPU),或者是其他微处理器,或者还可以是现场可编程门阵列(field-programmable gate array,FPGA)。网卡内的存储器包括ROM(或者是闪存(flash))和内存存储器。具体地,内存存储器为随机存取存储器(random-access memory,RAM)。通常网卡上的固件存储在ROM中,当网卡工作时,将ROM中的固件加载到RAM区域去执行。
图2为本申请实施例提供的升级网卡固件的方法的示意性流程图。该方法包括如下步骤。
S210,网卡从该网卡所在设备接收该网卡的新固件。
该网卡所在设备可以是计算机、服务器或存储阵列。
为了便于描述,下文中将网卡所在的设备称为主机,对应地,将网卡所在设备的处理器称为主机处理器。
在S210中,具体地,主机处理器通过总线向网卡下发该网卡的新固件,相应地,网卡通过该总线接收主机处理器下发的新固件。
具体地,主机处理器将存储在主机的存储区域(ROM或RAM)的新固件发送给网卡。
主机处理器与网卡之间进行通信的总线可以是PCIe总线,或者也可以是非PCIe总线。其中,非PCIe总线可以为系统管理总线(system management bus,SMBus)、集成电路总线(inter-integrated circuit,I2C)、串行外设接口(serial peripheral interface,SPI)总线、或通用异步收发传输器(universal asynchronous receiver/transmitter,UART)等。
网卡接收到新固件后,将该新固件存储到网卡的存储空间中。具体地,如图2所示,在S211中,将新固件存储到网卡的ROM或FLASH中(作为示例,图2中示意存入ROM中)。
可选地,网卡在将新固件存储到本地后,向主机处理器发送成功接收新固件的应答消息,如图2中所示的S212。
可选地,主机处理器在接收到网卡发送的成功接收新固件的应答消息后,可以向网卡下发生效新固件的命令,如图2中所示的S213。
S220,该网卡在运行该新固件之前,保存该网卡当前处理的业务的现场信息。
具体地,业务的现场信息表示,与该网卡当前时刻处理的业务相关的信息。例如,业务的现场信息包括如下信息中的至少一种:业务逻辑的硬件状态信息、用户下发的业务配置信息、为业务逻辑硬件分配的内存信息。
可选地,在一些实施例中,网卡可以将业务的现场信息存储在网卡的一段数据不丢失的存储区域上。
作为一个示例,图3为网卡内部的RAM区域的空间分配的示意图。如图3所示,网卡内部的RAM区域中包括启动引导程序(Bootloader)区域、固件(firmware,FW)运行区域以及用于其他用途的区域。在本实施例中,网卡在网卡的RAM区域中再开辟一个存储区域,如图3中所示的现场保存区域,该现场保存区域具备如下属性:在运行新固件时,保存在该现场保存区域的数据不会丢失。网卡将业务的现场信息存储在如图3所示的现场保存区域,例如,将如下信息中的至少一种存储在该现场保存区域上:业务逻辑的硬件状态信息、用户下发的业务配置信息、为业务逻辑硬件分配的内存信息。
应理解,一段RAM区域保证存储在其上的数据不丢失的能力由硬件保障,这部分为现有技术,这里不再赘述。
可选地,在一些实施例中,保存业务的现场信息的实现方式包括但不限于:利用数据库、链表、队列存储。
S220中执行的操作可以称为运行固件之前的准备操作。
可选地,在一些实施例中,运行固件之前的准备操作除了包括保存业务的现场信息之外,还可以包括如下操作中的至少一种操作。
操作1,屏蔽该网卡的中断,关闭该网卡的系统调度。
操作1的目的是,网卡不再处理其他新的事务。
操作2,等待网卡的硬件进入空闲状态,或者说,等待网卡的任务状态变为空闲状态。
操作2的目的是,等待网卡完成当前处理的事务,进入空闲状态,即没有待执行的任务。
操作3,清理该网卡的系统资源。
具体地,例如删除网卡内的定时器(timer)数据、删除网卡内的任务、释放网卡内的内存。
操作4,通知该设备该网卡进入固件升级状态。
具体地,通知网卡所在的设备或者与该网卡有通信连接的其他设备,网卡将进入固件热升级状态,期间不再响应网卡所在的设备或者其他设备下发的命令。
应理解,执行上述操作2和操作3,指的是让网卡中运行的动态的行为恢复到静止状态,即使得网卡没有待执行的任务。在执行操作2和操作3的情况下,S220中保存的业务的现场信息指的就是,网卡的硬件处于空闲状态下时,软件维护的业务逻辑的硬件状态、用户下发过的配置信息、分配给业务逻辑硬件使用的内存。
S230,该网卡将该新固件加载到该网卡的内存区域(作为示例,图2中示意加载到RAM中),并在该内存区域运行该新固件。
本文提及的“加载”表示“拷贝(Copy)”。将该新固件加载到该网卡的内存区域,指的是,将S211中存储的新固件拷贝到网卡的内存区域(例如RAM区)。
在该内存区域运行该新固件,指的是,网卡的处理器加载新固件,读取新固件中的内容,以此运行新固件。
例如,网卡的处理器在如图3所示的FW运行区域运行新固件。
S240,该网卡在运行该新固件之后,初始化配置该网卡中除业务逻辑模块之外的其他模块,并恢复该现场信息所指示的业务。
业务逻辑模块表示网卡中用于处理业务逻辑的功能模块。例如,该业务逻辑模块包括如下模块中的至少一种:串并收发器(Serdes)报文处理模块、PCIe报文处理模块、FC/ETH MAC报文处理模块、FC/ETH报文处理模块。
其他模块表示网卡中除了上述业务逻辑模块之外的模块。例如,该其它模块包括如下模块中的至少一种:处理器子系统(例如CPU子系统)模块、外设接口模块。该外设接口模块包括但不限于:集成电路总线接口模块、串行外设接口模块、通用输入/输出接口模块。
可选地,该其它模块还包括用于实现如下功能中的至少一个功能的模块:
网卡的操作系统的资源信号量创建、网卡的任务创建、网卡的中断挂接、网卡的定时器创建、网卡的内存申请。
应理解,资源信号量创建是为了实现网卡的多任务间的同步与竞争。任务创建是为了处理网卡内复杂的硬件事件、轮询硬件状态等事务。中断挂接是为了让新固件有能力感知到网卡硬件上报的事件。
具体地,在S240中,仅初始化配置上述网卡内的处理器子系统模块与外设接口模块,而不初始化上述网卡内部的业务逻辑模块。
在S240中,恢复现场信息的实现方式与保存现场信息的实现方式相对应。
需要说明的是,本实施例中涉及的初始化配置不同于传统技术中断电后的上电初始化配置。例如,网卡断电后,上电重启,这时候需要对网卡中的所有模块进行初始化配置。而本实施例中的初始化配置指的是对除业务逻辑模块之外的其他模块进行初始化。也可以将本实施例中涉及的初始化配置称为差异化初始化配置。
S240中执行的操作可以称为运行固件之后的恢复操作。
可选地,在一些实施例中,运行固件之前的准备操作包括操作4,通知该设备该网卡进入固件升级状态,相应地,运行固件之后的恢复操作还可以包括:通知该设备该网卡完成固件升级。
应理解,采用本实施例提供的技术方案实现网卡固件升级,无需重启网卡,即网卡不断电,则保证业务链路不断开。
还需要说明的是,本文中会提及新旧的概念,例如新固件与旧固件,这里的新旧的概念是相对的。
本实施例通过在运行新固件之前保存现场,并在运行新固件之后恢复现场、以及对除业务逻辑模块之前的其他模块进行初始化配置,从而可以在无需重启网卡的情况下,升级网卡的固件,由于无需重启网卡,因此可以保持业务链路不中断。因此,本实施例提供的技术上方案可以在保持业务通信链接不断的情况下,完成网卡的固件升级,从而可以降低网卡固件升级对业务的影响。
相对于传统的固件冷升级方法,本申请实施例提供的升级网卡固件的方法可以称为固件热升级方法。
图4为网卡新固件生效的原理示意图。图4中的步骤①对应上述实施例中的S220,图4中的步骤②对应上述实施例中的S230,图4中的步骤③对应上述实施例中的S240。
具体描述,详见上文,这了不再赘述。
下文将描述S230中运行新固件的三种实现方式,网卡可以使用以下方式中任意一种运行新固件。
方式一:
该网卡的内存区域包括第一内存区域和第二内存区域,该网卡包括处理器。S230具体包括:该网卡将该新固件加载到该第一内存区域,该第一内存区域不同于该网卡当前运行旧固件所在的该第二内存区域;该处理器执行软件程序的位置从该第二内存区域跳转到该第一内存区域。
该处理器执行软件程序的位置从该第二内存区域跳转到该第一内存区域,指的是,网卡的处理器的读取内存地址的范围从第二内存区域移到第一内存区域。应理解,网卡的处理器在第一内存区域读取指令,等同于运行新固件。
在本实施例中,网卡的内存区域较为充足,可以同时存储旧固件与新固件,即网卡的内存区域包括第一内存区域与第二内存区域,第二内存区域用于存储旧固件,第一内存区域用于存储新固件。旧固件与新固件为相对的概念,旧固件表示固件升级之前的固件版本,新固件表示固件升级之后的固件版本。
例如,在图3所示的网卡内部的RAM区域的空间分配的例子中,网卡内部的FW运行区可分为旧区域与新区域,旧区域用于存储旧固件,新区域用于存储新固件。
可选地,在本实施例中,该网卡将该新固件加载到该第一内存区域的操作可以在该网卡保存该业务的现场信息之前执行。
具体地,在S220之前,网卡将该新固件加载到该第一内存区域。
本实施例通过在保存现场之前将新固件加载到新的内存区域,这样可以使得在完成现场保存(或其它准备操作)之后,立即运行新固件,可以进一步降低网卡固件升级对业务的影响。
图5示出方式一中网卡运行新固件的实现方法的流程图示意图。在图5中,网卡的内存区域包括第一内存区域与第二内存区域,第二内存区域用于存储旧固件,第一内存区域用于存储新固件。如图5所示,包括如下步骤。
S51,用户向主机处理器发送固件升级指令。
相应地,主机处理器接收到用户下发的固件升级指令。
S52,主机处理器向网卡下发新固件。
S52可以对应上文描述的S210,相关内容详见上文描述,这里不再赘述。
S53,网卡将新固件写入ROM中。
S54(可选地),网卡在将新固件写入ROM后,可以向主机发送新固件接收成功的应答消息。
S55,网卡执行新固件运行之前的准备操作,该准备操作包括保存网卡当前处理的业务的现场信息。
S55可以对应于上文描述的S220,相关内容详见上文描述,这里不再赘述。
S56,网卡将新固件加载到第一内存区域,第一内存区域不同于该网卡当前运行旧固件所在的该第二内存区域,该网卡的处理器执行软件程序的位置从该第二内存区域跳转到该第一内存区域。
具体地,网卡的处理器当前在第二内存区运行旧固件,网卡将新固件拷贝到与第二内存区域不同的第一内存区域,然后让网卡的处理器执行跳转指令,从第二内存区域跳转到第一内存区域,运行该新固件。其中,运行新固件即为网卡处理器调用进程读取新固件中内容,并完成对应内容的操作。
可选地,S56中网卡将新固件加载到第一内存区域的操作可以在S55之前执行。
通过在保存现场之前将新固件加载到新的内存区域,这样可以使得在完成现场保存(或其它准备操作)之后,立即运行新固件,可以进一步降低网卡固件升级对业务的影响。
S57,网卡执行新固件运行之后的恢复操作,该恢复操作包括初始化配置该网卡中除业务逻辑模块之外的其他模块,并恢复该现场信息所指示的业务。
S57可以对应于上文描述的S240,相关内容详见上文描述,这里不再赘述。
S58(可选地),网卡在完成固件升级后,向主机处理器发送固件升级成功的应答消息。
本实施例在固件升级的整个过程中,网卡与主机处理器之间、网卡与远端网络设备之间的通信链路正常,业务链路也正常,如图4中的示意。应理解,图4中的远端网络设备对应于图1中的第二设备。
本实施例通过在网卡的内存区域的第二内存区域存储旧固件,在网卡的内存区域的第一内存区域存储新固件,然后,使得该网卡的处理器执行软件程序的位置从该第二内存区域跳转到该第一内存区域,从而实现了新固件的运行,即实现固件升级。整个固件升级过程中,无需重启网卡,则网卡没有断电,从而维持了网卡与主机处理器之间的链路不中断,网卡与远端设备之间的链路也不中断,即保证了业务链路不中断,可以有效降低固件升级对业务的影响。
应理解,在网卡的内存区域空间充足,即内存区域可以同时存储新固件与旧固件的情况下,可以采用上文描述的方式一运行新固件的实现方式来升级网卡固件。
方式二:该网卡的内存区域包括第二内存区域,该网卡包括处理器。S230具体包括:该网卡复位该处理器,该处理器在复位之前运行该第二内存区域中的旧固件;在该处理器复位后,该网卡将该新固件加载到该第二内存区域中;该处理器从该第二内存区域重启,运行该新固件。
例如,在图3所示的网卡内部的RAM区域的空间分配的例子中,网卡内部的FW运行区无需划分为多个区域。网卡的处理器在复位之前,在该FW运行区域运行旧固件,在网卡的处理器重启之后,在该FW运行区域运行新固件。
图6示出方式二中网卡运行新固件的实现方法的流程图示意图。在图6中,网卡的内存区域包括第二内存区域,第二内存区域用于存储旧固件。如图6所示,包括如下步骤。
S61,用户向主机处理器发送固件升级指令。
相应地,主机处理器接收到用户下发的固件升级指令。
S62,主机处理器向网卡下发新固件。
S62可以对应上文描述的S210,相关内容详见上文描述,这里不再赘述。
S63,网卡将新固件写入ROM中。
S64(可选地),网卡在将新固件写入ROM后,可以向主机发送新固件接收成功的应答消息。
S65,网卡执行新固件运行之前的准备操作,该准备操作包括保存网卡当前处理的业务的现场信息。
S65可以对应于上文描述的S220,相关内容详见上文描述,这里不再赘述。
S66,网卡复位网卡的处理器,该处理器在复位之前运行该第二内存区域中的旧固件;在网卡的处理器复位后,该网卡将该新固件加载到该第二内存区域中;网卡的处理器从该第二内存区域重启,运行该新固件。
S67,网卡执行新固件运行之后的恢复操作,该恢复操作包括初始化配置该网卡中除业务逻辑模块之外的其他模块,并恢复该现场信息所指示的业务。
S67可以对应于上文描述的S240,相关内容详见上文描述,这里不再赘述。
S68(可选地),网卡在完成固件升级后,向主机处理器发送固件升级成功的应答消息。
本实施例在固件升级的整个过程中,网卡与主机处理器之间、网卡与远端网络设备之间的通信链路正常,如图5中的示意。应理解,图5中的远端网络设备对应于图1中的第二设备。
应理解,由网卡的处理器复位,会造成短暂的业务停留,但是因时间很短,不会造成网卡与远端设备断开链接,因此,网络业务几乎不感知。
本实施例,通过复位、重启网卡的处理器来实现固件升级,可以实现在固件升级过程中维持业务链路不中断,此外,由于不要求同时将新固件与旧固件加载到内存区域中,因此,可以降低对网卡内存空间的要求。
应理解,在网卡的内存区域空间不够充足,例如不允许新固件与旧固件同时存在的情况下,可以通过上述方式二来实现网卡固件升级。
接下来,结合图7进一步介绍本申请实施例提供的网卡内部的软、硬件分层结构。如图7所示,网卡内部的软、硬件分层由下至上包括:
(1)物理层(PHY Layer),用于负责底层物理传输、电气特性。
(2)数据链路层(MAC Layer),用于负责数据链路协商与传输。
(3)网络硬件层(FC/ETH Hardware Layer),用于负责网络传输协议部分。网络层不局限于光纤通道(FC)与以太网。
上面这三层属于硬件逻辑模块,直接参与数据转发。
(4)传输层至应用层。
网卡的处理器运行固件,对应于在传输层至应用层。
网卡的固件可以分为以下两种类型。
第一类型固件,仅负责网卡配置、网卡事件处理等控制路径上的功能,不参与数据路径上的功能。即第一类型固件可以称之为控制固件(CTRL FW)。
如图7所示,网卡的处理器运行的固件如果是控制固件,则网卡固件升级的过程与数据路径上的功能无关。而业务属于数据路径上的功能。因此,第一类型固件的升级过程,不会造成业务的停留,即业务对固件升级完全不感知。
第二类型固件,不仅负责网卡配置、网卡事件处理等控制路径上的功能,还参与报文解析、数据转发处理等数据路径上的功能。即第二类型固件可以称为控制与数据固件(CTRL+DATA FW)。
如图8所示,网卡的处理器运行的固件如果是控制与数据固件,则网卡固件升级的过程与数据路径上的功能相关。
可选地,在上述各个实施例中,新固件可以是该第一类型固件,也可以是该第二类型固件。
应理解,针对第二类型固件的升级,通过本申请实施例提供的升级网卡固件的方法来实现网卡固件升级,可以在网卡固件升级时维持业务链路不中断。
上文已述,在网卡的内存空间不充足的情况下,应该采用上文描述的方式二运行新固件的实现方式来升级网卡固件。在这种实现方式中,由于网卡的处理器的复位,会引起业务短时间的中断(业务链路并不中断),但是这个中断持续时间用户几乎是感知不到的。
在通过方式二运行新固件的实现方式来升级第二类型网卡的场景中,为了进一步地降低第二类型固件的升级对业务的影响,本申请提出将第二类型固件分离为控制固件部分与数据固件部分。其中,数据固件部分指的是,参与数据路径的功能的固件;控制固件部分指的是,参与控制路径的功能的固件。应理解,第二类型固件的控制固件部分的升级对业务是没有影响的。虽然第二类型固件的数据固件部分的升级对业务有影响,但是第二类型固件的数据固件部分相对于第二类型固件整体来说较为精简,换句话说,第二类型固件的数据固件部分的升级过程要比第二类型固件的整体升级过程简单,用时相对较少。因此,第二类型固件的数据固件部分的升级过程对业务的影响要小于第二类型固件的整体升级过程对业务的影响。
为了实现第二类型固件的数据部分与控制部分独立升级,需要网卡具有第一处理器单元与第二处理器单元,其中,第一处理器单元用于处理数据功能,第二处理器单元用于处理控制功能,例如,第一处理器单元用于运行数据固件部分,第二处理器单元用于运行控制固件部分。
网卡的处理器可以是单核处理器,或者是多核处理器。上述的第一处理器单元与第二处理器单元可以是两个单核处理器,或者上述的第一处理器单元与第二处理器单元为同一个多核处理器的两个处理器核。
具体地,如图9所示,网卡具有多核处理器,该多个处理器包括如图9中所示的处理器核1和处理器核2,其中处理器核1用于运行控制固件,处理器核2用于运行数据固件。应理解,通过复位、重启处理器核1实现控制固件的升级的过程,对业务没有影响。
上文结合图5和图6描述了运行新固件的方式一和方式二的实现方式,下文描述运行新固件的第三种实现方式。
方式三:新固件包括分离的数据固件部分与控制固件部分,该网卡的内存区域包括第三内存区域与第四内存区域,该网卡包括第一处理器单元(如图9中所示的处理器核1)与第二处理器单元(如图9中所示的处理器核2),该第一处理器单元用于处理数据功能,第二处理器单元用于处理控制功能。S230具体包括:该网卡复位该第一处理器单元,该第一处理器单元在复位之前运行该第三内存区域中的旧固件的数据固件部分;在该第一处理器单元复位之后,该网卡将该新固件的数据固件部分加载到该第三内存区域中;该第一处理器单元从该第三内存区域重启,运行该新固件的数据固件部分;在该第一处理器单元重启之后,该网卡复位该第二处理器单元,该第二处理器单元在复位之前运行该第四内存区域中的旧固件的控制固件部分;在该第二处理器单元复位之后,该网卡将该新固件的控制固件部分加载到该第四内存区域中;该第二处理器单元从该第四内存区域重启,运行该新固件的控制固件部分。
本实施例中,网卡具有第一处理器单元与第二处理器单元,第一处理器单元用于处理数据功能,第二处理器单元用于处理控制功能,在新固件包括分离的数据固件部分与控制固件部分的情形下,通过复位、重启第一处理器单元运行新固件的数据固件部分,在第一处理器单元重启之后,通过复位、重启第二处理器单元运行新固件的控制固件部分,从而完成固件升级。虽然在复位第一处理器的场景下,会造成短暂的业务停留,但是由于新固件的数据固件部分相对于新固件整体较为精简,不会造成业务链路的中断。因此,本实施例可以降低固件升级对业务的影响,同时也可以降低对网卡内存空间的要求。
综上所述,本申请实施例通过在运行新固件之前保存现场,并在运行新固件之后恢复现场、以及对除业务逻辑模块之前的其他模块进行初始化配置,从而可以在无需重启网卡的情况下,升级网卡的固件,由于无需重启网卡,因此可以保持业务链路不中断。因此,本实施例提供的技术上方案可以在保持业务通信链接不断的情况下,完成网卡的固件升级,从而可以降低网卡固件升级对业务的影响。
上文描述了单独升级网卡固件的方法。实际应用中,可能会出现主机与网卡一起升级的场景。如果由于升级主机内部的固件而需要重启主机,在这种情形下,避免不了网卡会断电,则会导致业务链路断开。如果升级主机内部固件无需重启主机,则使用本申请实施例提供的方法来升级网卡固件,可以保证业务链路不断开。
上文虽然以网卡为对象,描述了其固件升级的方法。但是,本申请实施例提供的固件升级的方案还可以应用于以太网(ethernet)接口、光纤通道(FC)接口、SAS/SATA接口,磁盘阵列(redundant arrays of independent disks,RAID)、主机总线适配器(host busadapter,HBA),也可用于其它形态的网络主机(计算节点、存储节点)的IO接口卡设备。
本申请实施例提供的固件升级的方案还可以应用于一些片上系统(system-on-a-chip,SoC)。SoC指的是在单个芯片上集成一个完整的系统,对所有或部分必要的电子电路进行包分组的技术。所谓完整的系统一般包括中央处理器(CPU)、存储器、以及外围电路等。
上文描述本申请的方法实施例,下文描述本申请的装置实施例。装置实施例中相关内容的解释及有益效果均可参考上文提供的对应的方法实施例,此处不再赘述。
如图10所示,本申请实施例提供一种网卡,该网卡包括如下单元。
收发单元1010,用于从该网卡所在设备接收该网卡的新固件;
处理单元1020,用于保存该网卡当前处理的业务的现场信息,该业务的现场信息用于指示与该网卡当前处理的业务相关的信息;将该新固件加载到该网卡的内存区域,并在该内存区域运行该新固件;初始化配置该网卡中除业务逻辑模块之外的其他模块,并恢复该现场信息所指示的业务。
本实施例通过在运行新固件之前保存现场,并在运行新固件之后恢复现场、以及对除业务逻辑模块之前的其他模块进行初始化配置,从而可以在无需重启网卡的情况下,升级网卡的固件,由于无需重启网卡,因此可以保持业务链路不中断。因此,本实施例提供的技术上方案可以在保持业务通信链接不断的情况下,完成网卡的固件升级,从而可以降低网卡固件升级对业务的影响。
可选地,在一些实施例中,该网卡的内存区域包括第一内存区域和第二内存区域,该处理单元1020包括处理器;
其中,该处理单元1020用于将该新固件加载到该网卡的内存区域,并在该内存区域运行该新固件,包括:该处理单元1020具体用于,将该新固件加载到该第一内存区域,该第一内存区域不同于该网卡当前运行旧固件所在的该第二内存区域;该处理器用于,将执行软件程序的位置从该第二内存区域跳转到该第一内存区域。
可选地,在一些实施例中,该网卡的内存区域包括第二内存区域,该处理单元1020包括处理器;
其中,该处理单元1020用于将该新固件加载到该网卡的内存区域,并在该内存区域运行该新固件,包括:该处理单元1020具体用于,复位该处理器,该处理器在复位之前运行该第二内存区域中的旧固件;在该处理器复位后,将该新固件加载到该第二内存区域中;该处理器用于,从该第二内存区域重启,运行该新固件。
可选地,在一些实施例中,该新固件包括分离的数据固件部分与控制固件部分,该网卡的内存区域包括第三内存区域与第四内存区域,该处理单元1020包括第一处理器单元与第二处理器单元,该第一处理器单元用于处理数据功能,第二处理器单元用于处理控制功能;
其中,该处理单元1020用于将该新固件加载到该网卡的内存区域,并在该内存区域运行该新固件,包括:该处理单元1020具体用于,复位该第一处理器单元,该第一处理器单元在复位之前运行该第三内存区域中的旧固件的数据固件部分;在该第一处理器单元复位之后,将该新固件的数据固件部分加载到该第三内存区域中;该第一处理器单元用于,从该第三内存区域重启,运行该新固件的数据固件部分;该处理单元1020具体用于,在该第一处理器单元重启之后,复位该第二处理器单元,该第二处理器单元在复位之前运行该第四内存区域中的旧固件的控制固件部分;在该第二处理器单元复位之后,将该新固件的控制固件部分加载到该第四内存区域中;该第二处理器单元用于,从该第四内存区域重启,运行该新固件的控制固件部分。
可选地,在一些实施例中,该处理单元1020用于将该新固件加载到该第一内存区域,包括:该处理单元1020具体用于,在保存该业务的现场信息之前,将该新固件加载到该第一内存区域。
可选地,在一些实施例中,该业务的现场信息包括如下信息中的至少一种:业务逻辑的硬件状态信息、用户下发的业务配置信息、为业务逻辑硬件分配的内存信息。
可选地,在一些实施例中,该处理单元1020在运行该新固件之前,还用于执行如下操作中的至少一种操作:关闭该网卡的系统调度,完成该网卡当前处理的事务,清理该网卡的系统资源,通知该设备该网卡进入固件升级状态。
根据本发明实施例的网卡可对应于执行本发明实施例中描述的方法,并且网卡中的各个单元的上述和其它操作和/或功能分别为了实现图2、图5和图6的各个方法的相应流程,为了简洁,在此不再赘述。
综上所述,本实施例通过在运行新固件之前保存现场,并在运行新固件之后恢复现场、以及对除业务逻辑模块之前的其他模块进行初始化配置,从而可以在无需重启网卡的情况下,升级网卡的固件,由于无需重启网卡,因此可以保持业务链路不中断。因此,本实施例提供的技术上方案可以在保持业务通信链接不断的情况下,完成网卡的固件升级,从而可以降低网卡固件升级对业务的影响。
如图11,本申请实施例还提供一种网卡,该网卡包括处理器1110,存储器1120,总线1130,输入接收1140和输出接口1150。处理器1110、存储器1120、输入接收1140和输出接口1150通过总线1130通信连接。存储器1120用于存储指令,该处理器1110用于执行该存储器1130存储的指令,并且对该存储器1130中存储的指令的执行使得,该处理器1110用于执行上文方法实施例中网卡执行的动作。
本申请实施例还提供一种芯片,该芯片包括处理单元与通信接口,该处理单元用于执行上述方法实施例中的芯片设备执行的操作,该通信接口用于与外部进行通信。
可选地,该芯片还可以包括存储单元,该存储单元中存储有指令,该处理单元用于执行上述存储单元中存储的指令,当该指令执行时,述处理单元用于执行上述方法实施例中的网卡执行的操作。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可以实现上述方法实施例中网卡执行的方法。
本申请实施例还提供一种包括指令的计算机程序产品,该指令被计算机执行时可以实现上述方法实施例中网卡执行方法。
如图12所示,本申请实施例还提供一种设备,该设备包括处理器1210,通信接口1220,总线1230和网卡1240,其中,通信接口1220和网卡1240通过总线1230通信连接。处理器1210的对应于上文实施例中提到的主机处理器。网卡1240对应于上文实施例中的网卡。该服务器可以对应于上文实施例中提及的第一设备或主机。
可选地,该总线1130可以为PCIe总线,或者也可以是非PCIe总线。其中,非PCIe总线可以为SMBus、I2C、SPI总线、或UART等。
应理解,根据本发明实施例的设备中的网卡可对应于本发明实施例中图9所示的的网卡,并可以对应于执行根据本发明实施例图2、图5和图6中实现网卡固件升级的方法中的执行主体,并且设备中的各个模块的上述和其它操作和/或功能分别为了实现图2、图5和图6中的各个方法的相应流程,为了简洁,在此不再赘述。
综上所述,本申请实施例通过在运行新固件之前保存现场,并在运行新固件之后恢复现场、以及对除业务逻辑模块之前的其他模块进行初始化配置,从而可以在无需重启网卡的情况下,升级网卡的固件,由于无需重启网卡,因此可以保持业务链路不中断。因此,本实施例提供的技术上方案可以在保持业务通信链接不断的情况下,完成网卡的固件升级,从而可以降低网卡固件升级对业务的影响。
应理解,本实施例中的网卡具有处理器与存储器。其中,该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(randomaccess memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamicRAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。应注意,本文描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘(solid state drive,SSD)。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
上述仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (16)

1.一种升级网卡固件的方法,其特征在于,包括:
网卡从所述网卡所在设备接收所述网卡的新固件;
保存所述网卡当前处理的业务的现场信息,所述业务的现场信息用于指示与所述网卡当前处理的业务相关的信息;
所述网卡将所述新固件加载到所述网卡的内存区域,并在所述内存区域运行所述新固件;
所述网卡初始化配置所述网卡中除业务逻辑模块之外的其他模块,并恢复所述现场信息所指示的业务。
2.根据权利要求1所述的方法,其特征在于,所述网卡的内存区域包括第一内存区域和第二内存区域,所述网卡包括处理器;
其中,所述网卡将所述新固件加载到所述网卡的内存区域,并在所述内存区域运行所述新固件,包括:
所述网卡将所述新固件加载到所述第一内存区域,所述第一内存区域不同于所述网卡当前运行旧固件所在的所述第二内存区域;
所述处理器执行软件程序的位置从所述第二内存区域跳转到所述第一内存区域。
3.根据权利要求1所述的方法,其特征在于,所述网卡的内存区域包括第二内存区域,所述网卡包括处理器;则所述网卡将所述新固件加载到所述网卡的内存区域,并在所述内存区域运行所述新固件,包括:
所述网卡复位所述处理器,所述处理器在复位之前运行所述第二内存区域中的旧固件;
在所述处理器复位后,所述网卡将所述新固件加载到所述第二内存区域中;
所述处理器从所述第二内存区域重启,运行所述新固件。
4.根据权利要求1所述的方法,其特征在于,所述新固件包括分离的数据固件部分与控制固件部分,所述网卡的内存区域包括第三内存区域与第四内存区域,所述网卡包括第一处理器单元与第二处理器单元,所述第一处理器单元用于处理数据功能,第二处理器单元用于处理控制功能;
其中,所述网卡将所述新固件加载到所述网卡的内存区域,并在所述内存区域运行所述新固件,包括:
所述网卡复位所述第一处理器单元,所述第一处理器单元在复位之前运行所述第三内存区域中的旧固件的数据固件部分;在所述第一处理器单元复位之后,所述网卡将所述新固件的数据固件部分加载到所述第三内存区域中;所述第一处理器单元从所述第三内存区域重启,运行所述新固件的数据固件部分;
在所述第一处理器单元重启之后,所述网卡复位所述第二处理器单元,所述第二处理器单元在复位之前运行所述第四内存区域中的旧固件的控制固件部分;在所述第二处理器单元复位之后,所述网卡将所述新固件的控制固件部分加载到所述第四内存区域中;所述第二处理器单元从所述第四内存区域重启,运行所述新固件的控制固件部分。
5.根据权利要求2所述的方法,其特征在于,所述网卡将所述新固件加载到所述第一内存区域,包括:
所述网卡在保存所述业务的现场信息之前,将所述新固件加载到所述第一内存区域。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述业务的现场信息包括如下信息中的至少一种:业务逻辑的硬件状态信息、用户下发的业务配置信息、为业务逻辑硬件分配的内存信息。
7.根据权利要求1至6中任一项所述的方法,其特征在于,在运行所述新固件之前,所述方法还包括:
所述网卡执行如下操作中的至少一种操作:关闭所述网卡的系统调度,完成所述网卡当前处理的事务,清理所述网卡的系统资源,通知所述设备所述网卡进入固件升级状态。
8.一种网卡,其特征在于,包括:
收发单元,用于从所述网卡所在设备接收所述网卡的新固件;
处理单元,用于保存所述网卡当前处理的业务的现场信息,所述业务的现场信息用于指示与所述网卡当前处理的业务相关的信息;将所述新固件加载到所述网卡的内存区域,并在所述内存区域运行所述新固件;初始化配置所述网卡中除业务逻辑模块之外的其他模块,并恢复所述现场信息所指示的业务。
9.根据权利要求8所述的网卡,其特征在于,所述网卡的内存区域包括第一内存区域和第二内存区域,所述处理单元包括处理器;
其中,所述处理单元用于将所述新固件加载到所述网卡的内存区域,并在所述内存区域运行所述新固件,包括:
所述处理单元具体用于,将所述新固件加载到所述第一内存区域,所述第一内存区域不同于所述网卡当前运行旧固件所在的所述第二内存区域;
所述处理器用于,将执行软件程序的位置从所述第二内存区域跳转到所述第一内存区域。
10.根据权利要求8所述的网卡,其特征在于,所述网卡的内存区域包括第二内存区域,所述处理单元包括处理器;
其中,所述处理单元用于,将所述新固件加载到所述网卡的内存区域,并在所述内存区域运行所述新固件,包括:
所述处理单元具体用于,复位所述处理器,所述处理器在复位之前运行所述第二内存区域中的旧固件;在所述处理器复位后,将所述新固件加载到所述第二内存区域中;
所述处理器用于,从所述第二内存区域重启,运行所述新固件。
11.根据权利要求8所述的网卡,其特征在于,所述新固件包括分离的数据固件部分与控制固件部分,所述网卡的内存区域包括第三内存区域与第四内存区域,所述处理单元包括第一处理器单元与第二处理器单元,所述第一处理器单元用于处理数据功能,第二处理器单元用于处理控制功能;
其中,所述处理单元用于将所述新固件加载到所述网卡的内存区域,并在所述内存区域运行所述新固件,包括:
所述处理单元具体用于,复位所述第一处理器单元,所述第一处理器单元在复位之前运行所述第三内存区域中的旧固件的数据固件部分;在所述第一处理器单元复位之后,将所述新固件的数据固件部分加载到所述第三内存区域中;所述第一处理器单元用于,从所述第三内存区域重启,运行所述新固件的数据固件部分;
所述处理单元具体用于,在所述第一处理器单元重启之后,复位所述第二处理器单元,所述第二处理器单元在复位之前运行所述第四内存区域中的旧固件的控制固件部分;在所述第二处理器单元复位之后,将所述新固件的控制固件部分加载到所述第四内存区域中;所述第二处理器单元用于,从所述第四内存区域重启,运行所述新固件的控制固件部分。
12.根据权利要求9所述的网卡,其特征在于,所述处理单元用于将所述新固件加载到所述第一内存区域,包括:
在保存所述业务的现场信息之前,将所述新固件加载到所述第一内存区域。
13.根据权利要求8至12中任一项所述的网卡,其特征在于,所述业务的现场信息包括如下信息中的至少一种:业务逻辑的硬件状态信息、用户下发的业务配置信息、为业务逻辑硬件分配的内存信息。
14.根据权利要求8至13中任一项所述的网卡,其特征在于,所述处理单元在运行所述新固件之前,还用于执行如下操作中的至少一种操作:
关闭所述网卡的系统调度,完成所述网卡当前处理的事务,清理所述网卡的系统资源,通知所述设备所述网卡进入固件升级状态。
15.一种网卡,其特征在于,包括存储器与处理器,所述存储器用于存储指令,所述处理器用于执行所述存储器存储的指令,并且对所述存储器中存储的指令的执行使得,所述处理器用于执行如权利要求1至7中任一项所述方法中的操作步骤。
16.一种设备,其特征在于,包括所述设备的处理器与权利要求15所述的网卡,所述设备的处理器用于向所述网卡下发新固件。
CN201810185565.XA 2018-03-07 2018-03-07 升级网卡固件的方法、装置、网卡和设备 Active CN108616382B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810185565.XA CN108616382B (zh) 2018-03-07 2018-03-07 升级网卡固件的方法、装置、网卡和设备
CN202011279529.3A CN112491600A (zh) 2018-03-07 2018-03-07 升级网卡固件的方法、装置、网卡和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810185565.XA CN108616382B (zh) 2018-03-07 2018-03-07 升级网卡固件的方法、装置、网卡和设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202011279529.3A Division CN112491600A (zh) 2018-03-07 2018-03-07 升级网卡固件的方法、装置、网卡和设备

Publications (2)

Publication Number Publication Date
CN108616382A true CN108616382A (zh) 2018-10-02
CN108616382B CN108616382B (zh) 2020-12-08

Family

ID=63658495

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202011279529.3A Pending CN112491600A (zh) 2018-03-07 2018-03-07 升级网卡固件的方法、装置、网卡和设备
CN201810185565.XA Active CN108616382B (zh) 2018-03-07 2018-03-07 升级网卡固件的方法、装置、网卡和设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202011279529.3A Pending CN112491600A (zh) 2018-03-07 2018-03-07 升级网卡固件的方法、装置、网卡和设备

Country Status (1)

Country Link
CN (2) CN112491600A (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110619955A (zh) * 2019-09-20 2019-12-27 江苏赛诺格兰医疗科技有限公司 医疗影像设备中电子设备软件的升级方法及电子设备
CN110944048A (zh) * 2019-11-29 2020-03-31 腾讯科技(深圳)有限公司 业务逻辑配置方法及装置
CN111399891A (zh) * 2020-03-09 2020-07-10 蚌埠依爱消防电子有限责任公司 一种用户信息传输装置局部软件热升级的方法
CN111522559A (zh) * 2020-04-17 2020-08-11 苏州浪潮智能科技有限公司 智能网卡固件刷新方法、装置及计算机可读存储介质
CN111786820A (zh) * 2020-06-16 2020-10-16 浙江国利网安科技有限公司 固件更新方法、装置及网络设备
CN112600679A (zh) * 2020-12-01 2021-04-02 锐捷网络股份有限公司 一种智能网卡
CN112732462A (zh) * 2021-01-07 2021-04-30 杭州立思辰安科科技有限公司 基于netmap网卡驱动防止网卡重启的方法
WO2021120327A1 (zh) * 2019-12-19 2021-06-24 歌尔股份有限公司 一种固件更新方法、装置、耳机及计算机可读存储介质
CN113407217A (zh) * 2021-06-30 2021-09-17 迈普通信技术股份有限公司 芯片程序升级方法、通信设备及计算机可读存储介质
CN114422485A (zh) * 2022-01-27 2022-04-29 上海顺舟智能科技股份有限公司 一种Zigbee无线智能设备的固件更新方法及装置
CN115941475A (zh) * 2023-03-15 2023-04-07 苏州浪潮智能科技有限公司 网卡固件升级方法、装置、设备、网卡及可读存储介质
WO2024022017A1 (zh) * 2022-07-29 2024-02-01 恒玄科技(上海)股份有限公司 一种用于主机的无线网卡和无线通信方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112491600A (zh) * 2018-03-07 2021-03-12 华为技术有限公司 升级网卡固件的方法、装置、网卡和设备
CN114422994A (zh) * 2022-03-29 2022-04-29 龙旗电子(惠州)有限公司 固件升级方法、装置及电子设备、存储介质
CN114900469B (zh) * 2022-06-10 2023-07-25 苏州浪潮智能科技有限公司 一种multihost网卡的数据流量控制的方法、系统、设备及介质
CN115543393B (zh) * 2022-12-01 2023-08-22 摩尔线程智能科技(北京)有限责任公司 升级方法、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102789388A (zh) * 2012-06-14 2012-11-21 曙光信息产业(北京)有限公司 基于bmc在mips架构服务器中增加网卡功能的方法及系统
CN105320553A (zh) * 2015-12-07 2016-02-10 浪潮集团有限公司 一种基于国产处理器平台更新网卡固件的方法及系统
CN105912356A (zh) * 2016-03-31 2016-08-31 武汉光迅科技股份有限公司 一种支持版本回退的光模块固件程序在线升级方法
US20170300431A1 (en) * 2014-12-30 2017-10-19 Huawei Technologies Co., Ltd. Computer device and configuration and management method of computer device

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002084484A2 (en) * 2001-04-18 2002-10-24 Domosys Corporation Method of remotely upgrading firmware in field-deployed devices
KR20060019146A (ko) * 2004-08-26 2006-03-03 삼성전자주식회사 네트워크 카드의 펌웨어 업그레이드 방법 및 장치
US8024426B2 (en) * 2007-05-11 2011-09-20 Texas Memory Systems, Inc. Non-disruptive data path upgrade using target mobility
CN102880487B (zh) * 2012-09-10 2016-04-20 曙光信息产业(北京)有限公司 一种一键式烧录网卡固件的方法
CN102915249A (zh) * 2012-11-02 2013-02-06 苏州科达科技股份有限公司 远程地实现固件升级的方法和装置
CN103970567A (zh) * 2014-04-28 2014-08-06 浪潮电子信息产业股份有限公司 一种云存储系统固件在线升级的方法
CN105045627A (zh) * 2015-07-23 2015-11-11 浪潮电子信息产业股份有限公司 一种实现服务器在线更新网卡配置文件的方法
CN106874032B (zh) * 2017-01-04 2020-09-04 青岛海信宽带多媒体技术有限公司 光模块固件升级的方法、装置及光模块
CN107517223A (zh) * 2017-09-29 2017-12-26 郑州云海信息技术有限公司 一种远程更新mellanox网卡软件的方法及系统
CN112491600A (zh) * 2018-03-07 2021-03-12 华为技术有限公司 升级网卡固件的方法、装置、网卡和设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102789388A (zh) * 2012-06-14 2012-11-21 曙光信息产业(北京)有限公司 基于bmc在mips架构服务器中增加网卡功能的方法及系统
US20170300431A1 (en) * 2014-12-30 2017-10-19 Huawei Technologies Co., Ltd. Computer device and configuration and management method of computer device
CN105320553A (zh) * 2015-12-07 2016-02-10 浪潮集团有限公司 一种基于国产处理器平台更新网卡固件的方法及系统
CN105912356A (zh) * 2016-03-31 2016-08-31 武汉光迅科技股份有限公司 一种支持版本回退的光模块固件程序在线升级方法

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110619955A (zh) * 2019-09-20 2019-12-27 江苏赛诺格兰医疗科技有限公司 医疗影像设备中电子设备软件的升级方法及电子设备
CN110944048B (zh) * 2019-11-29 2022-06-24 腾讯科技(深圳)有限公司 业务逻辑配置方法及装置
CN110944048A (zh) * 2019-11-29 2020-03-31 腾讯科技(深圳)有限公司 业务逻辑配置方法及装置
WO2021120327A1 (zh) * 2019-12-19 2021-06-24 歌尔股份有限公司 一种固件更新方法、装置、耳机及计算机可读存储介质
CN111399891A (zh) * 2020-03-09 2020-07-10 蚌埠依爱消防电子有限责任公司 一种用户信息传输装置局部软件热升级的方法
CN111522559A (zh) * 2020-04-17 2020-08-11 苏州浪潮智能科技有限公司 智能网卡固件刷新方法、装置及计算机可读存储介质
CN111786820A (zh) * 2020-06-16 2020-10-16 浙江国利网安科技有限公司 固件更新方法、装置及网络设备
CN112600679A (zh) * 2020-12-01 2021-04-02 锐捷网络股份有限公司 一种智能网卡
CN112732462A (zh) * 2021-01-07 2021-04-30 杭州立思辰安科科技有限公司 基于netmap网卡驱动防止网卡重启的方法
CN112732462B (zh) * 2021-01-07 2024-02-09 杭州中电安科现代科技有限公司 基于netmap网卡驱动防止网卡重启的方法
CN113407217A (zh) * 2021-06-30 2021-09-17 迈普通信技术股份有限公司 芯片程序升级方法、通信设备及计算机可读存储介质
CN114422485A (zh) * 2022-01-27 2022-04-29 上海顺舟智能科技股份有限公司 一种Zigbee无线智能设备的固件更新方法及装置
CN114422485B (zh) * 2022-01-27 2023-11-24 上海顺舟智能科技股份有限公司 一种Zigbee无线智能设备的固件更新方法及装置
WO2024022017A1 (zh) * 2022-07-29 2024-02-01 恒玄科技(上海)股份有限公司 一种用于主机的无线网卡和无线通信方法
CN115941475A (zh) * 2023-03-15 2023-04-07 苏州浪潮智能科技有限公司 网卡固件升级方法、装置、设备、网卡及可读存储介质

Also Published As

Publication number Publication date
CN112491600A (zh) 2021-03-12
CN108616382B (zh) 2020-12-08

Similar Documents

Publication Publication Date Title
CN108616382A (zh) 升级网卡固件的方法、装置、网卡和设备
US9652216B2 (en) System and method for providing out-of-band software or firmware upgrades for a switching device
US20180373557A1 (en) System and Method for Virtual Machine Live Migration
US10686890B2 (en) Keep-alive scheduler in a network device
US10333865B2 (en) Transformation of peripheral component interconnect express compliant virtual devices in a network environment
US8448162B2 (en) Hitless software upgrades
CN108139924B (zh) 热插拔硬件及软件实施方案
JP5332000B2 (ja) 複合型計算機装置、複合型計算機の管理方法及び管理サーバ
US10361948B2 (en) Communication loop prevention in an information handling system
US9847911B1 (en) System and method for customized port configuration
CN101876910A (zh) 双控制器磁盘存储阵列,及其升级固件方法和控制器
CN111147274B (zh) 为集群解决方案创建高度可用的仲裁集的系统和方法
US8554973B2 (en) Storage device and method for managing size of storage device
WO2021012169A1 (zh) 一种提高存储系统可靠性的方法和相关装置
CN103562865A (zh) 重新编程可编程硬件设备而不需要系统停机时间
CN109831326B (zh) 网络设备控制方法及网络设备
US10855518B2 (en) Computer having an embedded switch
CN109445984B (zh) 一种业务恢复方法、装置、仲裁服务器以及存储系统
CN112491570A (zh) 一种虚拟网卡链路状态设置方法、装置及存储介质
US11487528B1 (en) Managing system upgrades in a network computing environment
WO2021244500A1 (zh) 一种备份状态确定方法、装置及系统
US20210349794A1 (en) Fencing non-responding ports in a network fabric
CN109600270B (zh) 网络设备控制方法及网络设备
CN102160027B (zh) 数据处理系统中保留逻辑通信路径的方法和设备
KR101628219B1 (ko) 소프트웨어 정의 네트워크에서 컨트롤러를 운용하는 방법 및 장치

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
TR01 Transfer of patent right

Effective date of registration: 20211224

Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province

Patentee after: xFusion Digital Technologies Co., Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right