CN115981685A - 应用升级方法、装置、计算设备和芯片系统 - Google Patents

应用升级方法、装置、计算设备和芯片系统 Download PDF

Info

Publication number
CN115981685A
CN115981685A CN202111667437.7A CN202111667437A CN115981685A CN 115981685 A CN115981685 A CN 115981685A CN 202111667437 A CN202111667437 A CN 202111667437A CN 115981685 A CN115981685 A CN 115981685A
Authority
CN
China
Prior art keywords
application program
application
dpu
upgrading
data
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.)
Pending
Application number
CN202111667437.7A
Other languages
English (en)
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.)
Huawei 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 PCT/CN2022/120324 priority Critical patent/WO2023061172A1/zh
Publication of CN115981685A publication Critical patent/CN115981685A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

公开了应用升级方法、装置、计算设备和芯片系统,涉及计算机领域。方法由连接主机的DPU执行,方法包括:DPU升级DPU上运行的多个应用程序中的第一应用程序时,从DPU中内存的共享存储区域读取第一应用程序的升级前数据,基于升级前数据恢复第一应用程序的业务。由于共享存储区域是DPU的操作系统不能访问的区域,即使DPU升级第一应用程序时,第一应用程序的业务中断,DPU的操作系统也不会回收共享存储区域,避免共享存储区域中保存的第一应用程序的升级前数据的丢失。DPU升级运行的第一应用程序后,可以从共享存储区域读取第一应用程序的升级前数据,使DPU可以在升级应用程序时,快速地恢复业务。

Description

应用升级方法、装置、计算设备和芯片系统
本申请要求于2021年10月14日提交国家知识产权局、申请号为202111196030.0、申请名称为“一种DPU卡系统软件的升级方法”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机领域,尤其涉及一种应用升级方法、装置、计算设备和芯片系统。
背景技术
数据处理单元(data process unit,DPU)是一种具备高性能计算能力的多核处理器。DPU卸载主机中其他芯片(如:中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU))运行的与人工智能,存储等相关应用,提升主机的数据处理性能,降低主机负载。
目前,通过重启DPU所连接的主机或重启DPU的操作系统使新版本的应用程序生效。由此导致DPU运行应用程序时业务中断,即业务处理失败。DPU的操作系统重启后进行初始化恢复业务。而且操作系统的重启时长通常较长(如:分钟级别),导致DPU的业务中断时长也较长,降低用户体验。因此,如何在升级DPU的应用程序时,尽快恢复业务是目前亟需解决的问题。
发明内容
本申请提供了应用升级方法、装置、计算设备和芯片系统,由此在升级DPU的应用程序时,尽快地恢复业务。
第一方面,提供了一种应用升级方法,方法由连接主机的DPU执行,方法包括:DPU升级DPU上运行的多个应用程序中的第一应用程序时,从DPU中内存的共享存储区域读取第一应用程序的升级前数据,基于升级前数据恢复第一应用程序的业务。共享存储区域用于存储多个应用程序的业务数据。共享存储区域不能被DPU的操作系统访问。
如此,由于共享存储区域是DPU的操作系统不能访问的区域,即使DPU升级第一应用程序时,第一应用程序的业务中断,DPU的操作系统也不会回收共享存储区域,因此,避免共享存储区域中保存的第一应用程序的升级前数据的丢失。DPU升级运行的第一应用程序后,从共享存储区域读取第一应用程序的升级前数据,使DPU可以在升级应用程序时,快速地恢复业务,提升用户体验。
在一种可能的实现方式中,升级DPU上运行的多个应用程序中的第一应用程序之前,方法还包括:接收主机发送的升级请求,响应升级请求,暂停第一应用程序的业务,并将第一应用程序的升级前数据存入共享存储区域。升级请求用于指示升级第一应用程序。其中,升级前数据包括升级第一应用程序之前第一应用程序的业务数据和运行第一应用程序的硬件状态。从而,以便于DPU升级第一应用程序时可以快速地读取第一应用程序的业务数据和运行第一应用程序的硬件状态,快速地恢复业务,缩短升级应用程序的时长,提升用户体验。
在另一种可能的实现方式中,DPU首次启动第一应用程序的进程时,从内存中为第一应用程序分配用于存储第一应用程序的业务数据和硬件状态的共享存储区域。
在另一种可能的实现方式中,共享存储区域包含多个子区域,多个子区域中的每个子区域用于存储多个应用程序中一个应用程序的业务数据和硬件状态。
第二方面,提供了一种应用升级装置,所述装置包括用于执行第一方面或第一方面任一种可能设计中的应用升级方法的各个模块。
第三方面,提供了一种处理器,所述处理器用于执行第一方面或第一方面任一种可能设计中的应用升级方法的操作步骤。
第四方面,提供一种计算设备,该计算设备包括至少一个处理器和存储器,存储器用于存储一组计算机指令;当处理器作为第一方面或第一方面任一种可能实现方式中的执行设备执行所述一组计算机指令时,执行第一方面或第一方面任一种可能实现方式中的应用升级方法的操作步骤。
第五方面,提供一种计算机可读存储介质,包括:计算机软件指令;当计算机软件指令在计算设备中运行时,使得计算设备执行如第一方面或第一方面任意一种可能的实现方式中所述方法的操作步骤。
第六方面,提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算设备执行如第一方面或第一方面任意一种可能的实现方式中所述方法的操作步骤。
第七方面,提供一种芯片系统,该芯片系统包括处理器,用于实现上述第一方面的方法中处理器的功能。在一种可能的设计中,所述芯片系统还包括存储器,用于保存程序指令和/或数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1为本申请实施例提供的一种计算机设备的示意图;
图2为本申请实施例提供的一种应用升级方法的流程示意图;
图3为本申请实施例提供的一种共享存储区域的示意图;
图4为本申请提供的一种应用升级场景的示意图;
图5为本申请提供的一种应用升级装置的示意图;
图6为本申请提供的一种计算设备的结构示意图。
具体实施方式
应用程序是一种满足用户需求实现特定功能的计算机程序。为了修复应用程序的缺陷、增强应用程序的功能和提升用户体验,对应用程序进行升级。
本申请实施例提供一种应用升级方法,尤其是提供一种数据处理单元(dataprocess unit,DPU)上运行的应用程序升级的技术。通过将应用程序与操作系统剥离,升级应用程序时避免重启DPU的操作系统,从而缩短升级应用程序的时长,并且在升级应用程序前,将应用程序的升级前数据存储到DPU的操作系统不能访问的存储区域,避免存储区域中保存的应用程序的业务数据丢失,使DPU可以在升级应用程序时,快速地恢复业务,提升用户体验。
DPU可以安装在计算机设备上,由计算机设备指示DPU进行升级。计算机设备可以是独立的服务器或者计算集群中的计算设备。下面结合附图对本申请实施例提供应用升级的实施方式进行详细说明。
图1为本申请实施例提供的一种计算机设备的示意图。如图1所示,计算机设备100包括处理器(Processor)110、内存120和内存控制器(Memory Controller)130。
处理器110是计算机设备100的运算核心和控制核心。处理器110可以是一块超大规模的集成电路。处理器110中安装有操作系统112和其他软件程序,使得处理器110实现对内存120及各种快捷外围部件互连标准(Peripheral Component Interconnect Express,PCIe)设备的访问。处理器110包括一个或多个处理器核(core)111。处理器110中的处理器核111例如是中央处理器(Central Processing unit,CPU)或其他特定集成电路(Application Specific Integrated Circuit,ASIC)。处理器110还可以是是其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(applicationspecific integrated circuit,ASIC)、现场可编程门阵列(field programmable gatearray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。实际应用中,计算机设备100也可以包括多个处理器。
本申请实施例中,处理器110用于向DPU发送升级请求。处理器110还可以向其他专用处理器发送升级请求。专用处理器是针对特定应用或者领域的处理器。例如用于处理图像数据的图像处理单元(graphics processing unit,GPU)或用于处理信号的DSP。
内存120是计算机设备100的主存。内存120通常用来存放操作系统112中各种正在运行的软件、输入和输出数据以及与外存交换的信息等。为了提高处理器110的访问速度,内存120需要具备访问速度快的优点。在计算机系统架构中,采用动态随机存取存储器(Dynamic Random Access Memory,DRAM)作为内存120。处理器110能够通过内存控制器130高速访问内存120,对内存120中的任意一个存储单元进行读操作和写操作。除了DRAM之外,内存120还可以是其他随机存取存储器,例如静态随机存取存储器(Static Random AccessMemory,SRAM)等。另外,内存120也可以是只读存储器(Read Only Memory,ROM)。而对于只读存储器,举例来说,可以是可编程只读存储器(Programmable Read Only Memory,PROM)、可抹除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)等。本实施例不对内存120的数量和类型进行限定。此外,可对内存120进行配置使其具有保电功能。保电功能是指系统发生掉电又重新上电时,存储器中存储的数据也不会丢失。具有保电功能的内存120被称为非易失性存储器。
内存控制器130是计算机设备100内部控制内存120并用于管理与规划从内存120到处理器核111间的数据传输的总线电路控制器。通过内存控制器130,内存120与处理器核111之间可以交换数据。内存控制器130可以是一个单独的芯片,并通过系统总线与处理器核111连接。内存控制器130也可以被集成到处理器110中,也可以被内置于北桥中,还可以是一块独立的内存控制器芯片,本申请实施例不对内存控制器的具体位置和存在形式进行限定。实际应用中,内存控制器130可以控制必要的逻辑以将数据写入内存120或从内存120中读取数据。内存控制器130可以是通用处理器、专用加速器、GPU、FPGA、嵌入式处理器等处理器系统中的内存控制器。
计算机设备100还包括各种输入/输出(Input/Output,I/O)设备140。I/O设备140是指进行数据传输的硬件,也可以理解为与I/O接口对接的设备。常见的I/O设备有网卡、打印机、键盘、鼠标等。所有的外存也可以作为I/O设备,如硬盘、软盘、光盘等。
处理器110、内存120、内存控制器130和I/O设备140通过总线150相连。总线150可以包括一通路,用于在上述组件(如处理器110、内存120)之间传送信息。总线150除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线150。总线150可以是PCIe总线,或扩展工业标准结构(extended industry standard architecture,EISA)总线、统一总线(unified bus,Ubus或UB)、计算机快速链接(compute express link,CXL)、缓存一致互联协议(cachecoherent interconnect for accelerators,CCIX)等。例如,处理器110可以通过PCIe总线访问这些I/O设备140。处理器110通过双倍速率(double data rate,DDR)总线和内存120相连。这里,不同的内存120可能采用不同的数据总线与处理器110通信,因此,DDR总线也可以替换为其他类型的数据总线,本申请实施例不对总线类型进行限定。
需要说明的是,计算机设备100可以称为主机。图1只是示意图,该计算机设备100中还可以包括其它部件,如还可以包括硬盘、光驱、电源、机箱、散热系统以及其他输入输出控制器和接口,在图1中未画出。本申请的实施例对该计算机设备100中包括的处理器、内存和内存控制器的数量不做限定。
计算机设备100还包括DPU160,可以通过PCIe总线与处理器110连接。DPU160卸载计算机设备100其他芯片(如:处理器110)运行的与人工智能,存储等相关应用,提升计算机设备100的数据处理性能,降低计算机设备100的负载。
DPU160可以是一个小型计算机设备,可以如计算机设备100包含处理器、内存和内存控制器等。DPU160可以根据计算机设备100中处理器110发送的升级请求对运行的应用程序进行升级。
接下来,结合图2对DPU运行的应用程序进行升级的过程进行说明。如图2所示,假设DPU160包括处理器161、内存162和存储器163。存储器163可以是硬盘,用于存储DPU160新版本的应用程序。关于DPU160包含的处理器、内存和内存控制器的详细解释可以参考上计算机设备100的阐述。本申请实施例提供的应用升级方法包括以下步骤。
S210、DPU160接收处理器110发送的升级请求。
DPU160包括多个处理器核,不同的处理器核可以运行不同应用程序,DPU160可以运行多个应用程序,对多个应用程序分别进行升级。对多个应用程序中任意一个应用程序进行升级,可以不影响运行其他应用程序。升级请求可以用于指示升级多个应用程序中的一个应用程序。升级请求可以包含应用程序的标识,以便于DPU160根据应用程序的标识识别需要升级的应用程序。本申请实施例所述的应用程序可以是硬件驱动程序、协议程序或用于实现用户需求的业务程序等。
假设升级请求可以用于指示升级多个应用程序中的第一应用程序,DPU160执行S220。
S220、DPU160响应升级请求,暂停第一应用程序的业务,并将第一应用程序的升级前数据存入共享存储区域。
DPU160升级第一应用程序可以是指用新版本的第一应用程序替换旧版本的第一应用程序。若DPU160运行旧版本的第一应用程序时,DPU160升级第一应用程序,导致第一应用程序支持的业务中断。因此,DPU160响应升级请求,暂停第一应用程序的业务,并将第一应用程序的升级前数据存入共享存储区域。
操作系统是管理计算机硬件与软件资源的计算机程序,例如内存分配和内存回收。若处理器161首次启动第一应用程序的进程时,处理器161向DPU160的操作系统申请为第一应用程序分配的存储区域,在第一应用程序的进程结束运行后,操作系统需要回收分配给第一应用程序的存储区域。
为了避免升级第一应用程序时,第一应用程序的业务数据丢失,本申请实施例提供一种处理器为应用程序分配共享存储区域的方法。处理器161首次启动第一应用程序的进程时,处理器161为第一应用程序分配用于存储第一应用程序的业务数据和硬件状态的共享存储区域。应理解,共享存储区域不能被DPU160的操作系统访问。因此,在第一应用程序的进程结束运行后,操作系统不回收分配给第一应用程序的存储区域。
在一些实施例中,处理器161可以根据DPU160支持运行的所有应用程序分配共享存储区域,以及划分共享存储区域中子区域的数量。共享存储区域包含多个子区域,多个子区域中的每个子区域用于存储多个应用程序中一个应用程序的业务数据和运行应用程序的硬件状态。例如,DPU160支持运行的10个应用程序,处理器161分配的共享存储区域包括10个子区域,一个应用程序使用一个子区域来存储应用程序的业务数据和运行应用程序的硬件状态。示例地,如图3所示,处理器161为第一应用程序分配的存储资源是从共享存储区域中的一个子区域。
需要说明的是,共享存储区域可以内存中连续的物理存储空间,即用于存储第一应用程序的业务数据和硬件状态的子区域也是连续的物理存储空间。
应理解,处理器161无论运行旧版本的第一应用程序还是运行新版本的第一应用程序,处理器161均将运行第一应用程序时的业务数据和硬件状态存入共享存储区域。
升级前数据包括未执行升级第一应用程序时运行旧版本的第一应用程序时业务数据和硬件状态,即处理器161启动运行第一应用程序后,将旧版本的第一应用程序时业务数据和硬件状态存入共享存储区域。在一些实施例中,如果在升级第一应用程序之前,存在未及时存入共享存储区域的运行旧版本的第一应用程序的业务数据和硬件状态,此时,处理器161响应升级请求,暂停第一应用程序的业务,并将未及时存入共享存储区域的旧版本的第一应用程序的业务数据和硬件状态存入共享存储区域,以便于处理器161在升级第一应用程序后,能够及时获取升级第一应用程序前的升级前数据,恢复第一应用程序的业务。因此,升级前数据不仅包括未执行升级第一应用程序时运行旧版本的第一应用程序时业务数据和硬件状态,还可以包括未及时存入共享存储区域的运行旧版本的第一应用程序的业务数据和硬件状态。
硬件状态包括DPU160连接计算机设备100的PCIe总线的状态、PCIe总线与DPU160的内存162之间的硬件通道(如:DMA引擎通道,协议通道(队列),网络通道)的状态和DPU160的内存160与外部设备的通道的状态。
S230、DPU160升级运行的第一应用程序。
DPU160的处理器161可以从DPU160的存储器163中读取新版本的第一应用程序,将新版本的第一应用程序加载到内存162。处理器161从内存162读取新版本的第一应用程序,运行新版本的第一应用程序,用新版本的第一应用程序替换旧版本的第一应用程序。处理器161还将第一应用程序的运行级别设置为用户态,从而,避免重启DPU160的操作系统,通常重启操作系统在分钟级别,相对于重启操作系统来重启应用程序,从而缩短升级第一应用程序的时长。
内核态,也可以称为主机内核态,由于需要限制不同的程序之间的访问能力,防止获取其他程序的内存数据,或者获取外围设备的数据,处理器划分出两个权限等级:用户态和内核态。当一个任务或者一个进程执行系统调用而在内核代码中执行时,该进程被称为处于内核态。此时处理器处于特权级最高的内核代码中执行。在内核态,处理器可以访问内存的所有数据,包括外围设备,例如内存,网卡等。
S240、DPU160从共享存储区域读取第一应用程序的升级前数据。
由于共享存储区域是DPU160的操作系统不能访问的区域,即使DPU160升级第一应用程序时,第一应用程序的业务中断,DPU160的操作系统也不会回收共享存储区域,因此,共享存储区域依然保存第一应用程序的升级前数据。DPU160升级运行的第一应用程序后,从共享存储区域读取第一应用程序的升级前数据。升级前数据可以包括未执行升级第一应用程序时运行旧版本的第一应用程序时业务数据和硬件状态。可选地,升级前数据还可以包括未及时存入共享存储区域的运行旧版本的第一应用程序的业务数据和硬件状态。
例如,DPU160的基本输入输出系统(Basic Input Output System,BIOS)根据业务进程需要的内存大小,划分一部分连续的物理内存空间作为共享存储区域。在启动第一应用程序时,提供创建共享存储区域的接口,将第一应用程序的标识与共享存储区域绑定。在重启第一应用程序时,提供共享存储区域找回的接口,DPU160根据与第一应用程序的标识关联的共享存储区域中第一子区域,从第一子区域读取升级前数据。
S250、DPU160基于升级前数据恢复第一应用程序的业务。
DPU160从共享存储区域读取第一应用程序的升级前数据,基于升级前数据可以快速地恢复第一应用程序的业务。由于升级的过程无需重启计算机设备100或DPU,使得用户态的第一应用程序的业务进程在1秒内完成升级,虽然在1秒内出现业务跌落或归零,但是1秒后业务继续运行,使用户对升级应用程序无感知。
例如,在银行业务系统中,第一应用程序用于实现存款业务功能。DPU160升级第一应用程序时,造成存款业务中断。若DPU160升级第一应用程序前,将存款业务数据和硬件状态存储到共享存储区域,DPU160从共享存储区域读取存款业务数据和硬件状态,基于存款业务数据和硬件状态恢复存款业务,从而避免存款业务的操作请求失败,使DPU160可以在升级应用程序时,快速地恢复存款业务,避免银行工作人员重新操作存款业务,提升用户体验。
可选地,DPU160对第一应用程序进行升级成功后,可以向处理器110发送升级完成响应,告知计算机设备100对第一应用程序进行升级成功。
由此可见,DPU将需要频繁升级的应用程序部署到用户态的业务进程,在不重启DPU的操作系统的情况下,快速重新拉起升级后的业务进程。另外,DPU部署共享存储区域,为业务进程提供专用的共享存储区域,与业务相关的硬件状态、队列信息、IO状态都保存在共享存储区域,新版本的应用程序的进程拉起时可以恢复共享存储区域中的数据,继续处理升级前运行的业务,使主机不会感知DPU的升级操作,提升用户体验。
下面对本申请实施例提供的应用升级的过程进行举例说明。假设DPU用于实现非易失性内存扩展(Non Volatile Memory Express,NVMe)协议的控制功能,向DPU连接的主机提供基于NVMe协议的接口。DPU提供2*100GE的业务接口,用于接入存储网络。DPU连接的存储网络包括存储阵列和分布式存储资源池中至少一种。DPU对存储网络中的存储空间进行整合,转换为NVMe协议的命名(namespace)空间,提供给主机使用。主机向DPU发送业务数据流,DPU将业务数据流发送给存储阵列或者分布式存储资源池。本实施例中主要数据通信通道有3种:主机和DPU之间的NVMe队列、DPU和存储阵列之间的基于光纤的非易失性内存(NVMe over fabrics,NOF)队列和数据的DMA队列。
在DPU升级应用程序,新版本的应用程序的业务进程重启时,快速恢复主机业务的主要工作就是恢复上述3种队列的信息和运行的I/O信息。
主机的一个IO请求的流程包含图4中8个步骤,即1,NVMe启动器(initiator,INI)驱动将主机的IO请求写入NVMe队列,NVMe队列包括发送队列(send queue,SQ)和完成队列(complete queue,CQ))。2,NVMe INI驱动处理NVMe队列的IO请求;3,NVMe目标器(target,TGT)驱动发起IO请求的数据DMA请求;4,将数据DMA从主机的内存到DPU的内存;5,NOF INI驱动发起NOF IO请求;6,将数据DMA从DPU的内存到存储阵列;7,写入IO完成消息;8,主机处理IO完成消息。其中,第2步至第8步是DPU对IO请求的主要处理过程,NVMe TGT驱动和NOFINI驱动是业务进程启动过程中的关键。
DPU将运行的旧版本的应用程序关闭,使用新版本的应用程序的执行文件重启业务进程。DPU调用NOF INI驱动的初始化函数,NOF INI驱动检查业务进程不是首次启动,执行恢复的流程。具体地,停止数据DMA操作,将DMA队列还原到初始化的状态;恢复业务接口对象的内存资源和状态;恢复NOF INI驱动连接的内存资源和状态;恢复NOF INI驱动连接的队列资源和状态;将未完成的IO上下文清除,由NVMe TGT驱动重新发起IO请求。DPU调用NVMe TGT驱动的初始化函数,NVMe TGT驱动检查业务进程不是首次启动,执行恢复的流程。具体地,停止数据DMA操作,将使用的数据DMA队列还原到初始化的状态;恢复NVMe控制对象的内存资源和状态;恢复NVMe队列的内存资源和状态;恢复正在执行的IO上下文的内存资源和状态,将未完成的IO从图4中第3步重新开始执行;恢复NVMe队列的处理,继续处理主机下发的新IO。
可以理解的是,为了实现上述实施例中的功能,计算设备包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本申请中所公开的实施例描述的各示例的单元及方法步骤,本申请能够以硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。
上文中结合图1至图4,详细描述了根据本实施例所提供的应用升级方法,下面将结合图5,描述根据本实施例所提供的应用升级装置。
图5为本实施例提供的可能的应用升级装置的结构示意图。这些应用升级装置可以用于实现上述方法实施例中处理器的功能,因此也能实现上述方法实施例所具备的有益效果。在本实施例中,该应用升级装置可以是如图2所示的数据处理单元160,还可以是应用于服务器的模块(如芯片)。
如图5所示,应用升级装置500包括通信模块510、管理模块520、升级模块530、业务模块540和存储模块550。应用升级装置500用于实现上述图2中所示的方法实施例中数据处理单元160的功能。
通信模块510用于接收计算机设备100发送的升级请求,升级请求用于指示升级第一应用程序。例如,通信模块510用于执行图2中S210。
升级模块530用于响应升级请求,暂停第一应用程序的业务,并将第一应用程序的升级前数据存入共享存储区域。例如,升级模块530用于执行图2中S220。
升级模块530用于升级DPU上运行的多个应用程序中的第一应用程序。
业务模块540用于从DPU中内存的共享存储区域读取第一应用程序的升级前数据,基于升级前数据恢复第一应用程序的业务。共享存储区域用于存储多个应用程序的业务数据。共享存储区域不能被DPU的操作系统访问。例如,升级模块530用于执行图2中S230、步骤240和S250。
管理模块520用于在首次启动第一应用程序的进程时,为第一应用程序分配用于存储第一应用程序的业务数据和硬件状态的共享存储区域。
存储模块550可以对应上述方法实施例中用于存储升级前数据等信息。
应用升级装置500还可以包括进程管理模块、协议模块和驱动模块等。进程管理模块用于管理运行的进程。协议模块用于实现协议转换。驱动模块用于实现软件与硬件的转换。
应理解的是,本申请实施例的应用升级装置500可以通过DPU实现。根据本申请实施例的应用升级装置500可对应于执行本申请实施例中描述的方法,并且应用升级装置500中的各个单元的上述和其它操作和/或功能分别为了实现图2中的各个方法的相应流程,为了简洁,在此不再赘述。
图6为本实施例提供的一种计算设备600的结构示意图。如图所示,计算设备600包括处理器610、总线620、存储器630、内存单元650(也可以称为主存(main memory)单元)和通信接口640。处理器610、存储器630、内存单元650和通信接口640通过总线620相连。
应理解,在本实施例中,处理器610可以是CPU,该处理器610还可以是其他通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
通信接口640用于实现计算设备600与外部设备或器件的通信。在本实施例中,通信接口640用于与其他计算设备进行数据交互。
总线620可以包括一通路,用于在上述组件(如处理器610、内存单元650和存储器630)之间传送信息。总线620除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线620。总线620可以是快捷外围部件互连标准(Peripheral Component Interconnect Express,PCIe)总线,或扩展工业标准结构(extended industry standard architecture,EISA)总线、统一总线(unified bus,Ubus或UB)、计算机快速链接(compute express link,CXL)、缓存一致互联协议(cache coherent interconnect for accelerators,CCIX)等。
作为一个示例,计算设备600可以包括多个处理器。处理器可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的计算单元。处理器610可以调用存储器630存储的升级前数据,基于升级前数据恢复第一应用程序的业务。
值得说明的是,图6中仅以计算设备600包括1个处理器610和1个存储器630为例,此处,处理器610和存储器630分别用于指示一类器件或设备,具体实施例中,可以根据业务需求确定每种类型的器件或设备的数量。
内存单元650可以对应上述方法实施例中用于存储升级前数据等信息的存储介质。内存单元650可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
存储器630用于存储新版本的第一应用程序,可以是固态硬盘或机械硬盘。
应理解,上述计算设备600可以是一个DPU。根据本实施例的计算设备600可对应于本实施例中的应用升级装置500,并可以对应于执行根据图2中的相应主体,并且应用升级装置500中的各个模块的上述和其它操作和/或功能分别为了实现图2中的相应流程,为了简洁,在此不再赘述。
本实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于计算设备中。当然,处理器和存储介质也可以作为分立组件存在于网络设备或终端设备中。
本申请还提供一种芯片系统,该芯片系统包括处理器,用于实现上述方法中数据处理单元的功能。在一种可能的设计中,所述芯片系统还包括存储器,用于保存程序指令和/或数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其它可编程装置。所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digital video disc,DVD);还可以是半导体介质,例如,固态硬盘(solid state drive,SSD)。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (11)

1.一种应用升级方法,其特征在于,所述方法由连接主机的数据处理单元DPU执行,所述方法包括:
升级所述DPU上运行的多个应用程序中的第一应用程序;
从所述DPU中内存的共享存储区域读取所述第一应用程序的升级前数据,所述共享存储区域用于存储所述多个应用程序的业务数据,所述共享存储区域不能被所述DPU的操作系统访问;
基于所述升级前数据恢复所述第一应用程序的业务。
2.根据权利要求1所述的方法,其特征在于,升级所述DPU上运行的多个应用程序中的第一应用程序之前,所述方法还包括:
接收所述主机发送的升级请求,所述升级请求用于指示升级所述第一应用程序;
响应所述升级请求,暂停所述第一应用程序的业务,并将所述第一应用程序的升级前数据存入所述共享存储区域。
3.根据权利要求1或2所述的方法,其特征在于,所述升级前数据包括升级所述第一应用程序之前所述第一应用程序的业务数据和运行所述第一应用程序的硬件状态。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述共享存储区域包含多个子区域,所述多个子区域中的每个子区域用于存储所述多个应用程序中一个应用程序的业务数据和硬件状态。
5.一种应用升级装置,其特征在于,包括:
升级模块,用于升级所述DPU上运行的多个应用程序中的第一应用程序;
业务模块,用于从所述DPU中内存的共享存储区域读取所述第一应用程序的升级前数据,所述共享存储区域用于存储所述多个应用程序的业务数据,所述共享存储区域不能被所述DPU的操作系统访问;
所述业务模块,还用于基于所述升级前数据恢复所述第一应用程序的业务。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括通信模块;
所述通信模块,用于接收所述主机发送的升级请求,所述升级请求用于指示升级所述第一应用程序;
升级模块,用于响应所述升级请求,暂停所述第一应用程序的业务,并将所述第一应用程序的升级前数据存入所述共享存储区域。
7.根据权利要求5或6所述的装置,其特征在于,所述升级前数据包括升级所述第一应用程序之前所述第一应用程序的业务数据和运行所述第一应用程序的硬件状态。
8.根据权利要求5-7中任一项所述的装置,其特征在于,所述共享存储区域包含多个子区域,所述多个子区域中的每个子区域用于存储所述多个应用程序中一个应用程序的业务数据和硬件状态。
9.一种处理器,其特征在于,所述处理器用于执行上述权利要求1-4中任一项所述的方法的操作步骤。
10.一种计算设备,其特征在于,包括存储器和处理器,所述存储器用于存储一组计算机指令;当所述处理器执行所述一组计算机指令时,执行上述权利要求1-4中任一项所述的方法的操作步骤。
11.一种芯片系统,其特征在于,所述芯片系统包括存储器和至少一个处理器,所述存储器用于存储一组计算机指令;当所述处理器执行所述一组计算机指令时,执行上述权利要求1-4中任一项所述的方法的操作步骤。
CN202111667437.7A 2021-10-14 2021-12-31 应用升级方法、装置、计算设备和芯片系统 Pending CN115981685A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/120324 WO2023061172A1 (zh) 2021-10-14 2022-09-21 应用升级方法、装置、计算设备和芯片系统

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202111196030 2021-10-14
CN2021111960300 2021-10-14

Publications (1)

Publication Number Publication Date
CN115981685A true CN115981685A (zh) 2023-04-18

Family

ID=85961083

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111667437.7A Pending CN115981685A (zh) 2021-10-14 2021-12-31 应用升级方法、装置、计算设备和芯片系统

Country Status (2)

Country Link
CN (1) CN115981685A (zh)
WO (1) WO2023061172A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116701284B (zh) * 2023-06-26 2024-02-09 北京瑞祺皓迪技术股份有限公司 一种cpu间数据高速同步方法、装置、设备及介质
CN116578327B (zh) * 2023-07-12 2023-11-03 苏州浪潮智能科技有限公司 一种程序更新方法、装置及电子设备和存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8527471B2 (en) * 2010-12-27 2013-09-03 Sap Ag Shadow system mirroring of an original system during uptime of an upgrade process
US20130174042A1 (en) * 2011-12-30 2013-07-04 Samsung Electronics Co., Ltd. Display apparatus, upgrading apparatus, display system and control method thereof
CN107358114A (zh) * 2017-06-12 2017-11-17 深圳市金立通信设备有限公司 一种防止用户数据丢失的方法及终端
CN108845822B (zh) * 2018-05-28 2022-03-01 烽火通信科技股份有限公司 实现软件不中断业务升级的内存管理方法及系统
CN111338663B (zh) * 2018-12-19 2023-06-13 成都鼎桥通信技术有限公司 系统升级方法、终端及存储介质
CN112230947A (zh) * 2019-06-28 2021-01-15 中科方德软件有限公司 一种操作系统的升级方法、升级系统
CN112650518A (zh) * 2019-10-10 2021-04-13 国创新能源汽车能源与信息创新中心(江苏)有限公司 Dsp程序在线升级方法
CN111857776B (zh) * 2020-07-09 2023-07-28 天津津航计算技术研究所 Dsp板卡类的应用程序的在线升级方法

Also Published As

Publication number Publication date
WO2023061172A1 (zh) 2023-04-20

Similar Documents

Publication Publication Date Title
US11126420B2 (en) Component firmware update from baseboard management controller
US8671241B2 (en) Systems and methods for using reserved solid state nonvolatile memory storage capacity for system reduced power state
US9158628B2 (en) Bios failover update with service processor having direct serial peripheral interface (SPI) access
EP2189901B1 (en) Method and system to enable fast platform restart
EP2798491B1 (en) Method and device for managing hardware errors in a multi-core environment
US8582448B2 (en) Method and apparatus for power throttling of highspeed multi-lane serial links
US9448889B2 (en) BIOS failover update with service processor
US7895477B2 (en) Resilience to memory errors with firmware assistance
US20110093627A1 (en) Handling legacy bios services for mass storage devices using system management interrupts
US20070150713A1 (en) Methods and arrangements to dynamically modify the number of active processors in a multi-node system
WO2023061172A1 (zh) 应用升级方法、装置、计算设备和芯片系统
US9448808B2 (en) BIOS update with service processor without serial peripheral interface (SPI) access
US9483782B2 (en) Automating capacity upgrade on demand
CN102591675A (zh) 使用共享存储块管理多软件镜像的方法和系统
US10289563B2 (en) Efficient reclamation of pre-allocated direct memory access (DMA) memory
GB2529740A (en) Data processing systems
US20200218545A1 (en) Information handling system adaptive component reset
US11593170B2 (en) Flexible reverse ballooning for nested virtual machines
US9235426B2 (en) Multicore processor system, computer product, and notification method for updating operating system
CN116382913A (zh) 资源分配装置、方法、电子设备和存储介质
US7953914B2 (en) Clearing interrupts raised while performing operating system critical tasks
US9342477B2 (en) Multi-core processor, controlling method thereof and computer system with such processor
US8195981B2 (en) Memory metadata used to handle memory errors without process termination
US20220318053A1 (en) Method of supporting persistence and computing device
CN114115703A (zh) 裸金属服务器在线迁移方法以及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication