CN116501343A - 一种程序升级方法、电源及计算设备 - Google Patents

一种程序升级方法、电源及计算设备 Download PDF

Info

Publication number
CN116501343A
CN116501343A CN202310316413.XA CN202310316413A CN116501343A CN 116501343 A CN116501343 A CN 116501343A CN 202310316413 A CN202310316413 A CN 202310316413A CN 116501343 A CN116501343 A CN 116501343A
Authority
CN
China
Prior art keywords
processing unit
program
processor
power supply
storage area
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
CN202310316413.XA
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.)
XFusion Digital Technologies Co Ltd
Original Assignee
XFusion Digital 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 XFusion Digital Technologies Co Ltd filed Critical XFusion Digital Technologies Co Ltd
Priority to CN202310316413.XA priority Critical patent/CN116501343A/zh
Publication of CN116501343A publication Critical patent/CN116501343A/zh
Pending legal-status Critical Current

Links

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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Power Sources (AREA)

Abstract

本申请实施例公开一种程序升级方法、电源及计算设备,该方法应用于电源,电源包括处理器,处理器包括第一处理单元、第二处理单元、第一存储区和第二存储区;其中,第一存储区用于存储第一处理单元执行的业务程序,第二存储区用于存储第二处理单元执行的业务程序。程序升级方法包括:响应于程序升级命令,第一处理单元接收待升级业务程序并将待升级业务程序写入至第二存储区;在待升级业务程序写入完成后,第一处理单元启动第二处理单元;第二处理单元升级待升级业务程序。通过这种方式,有利于在进行程序升级的过程中不中断电源输出,提高业务执行效率。

Description

一种程序升级方法、电源及计算设备
技术领域
本申请涉及服务器技术领域,尤其涉及一种程序升级方法、电源及计算设备。
背景技术
电源中包括处理器,处理器架构中的存储区包括:BootLoader区和应用程序(application program,APP)区,BootLoader区烧写有BootLoader引导启动程序,APP区烧写有应用程序。
正常运行时,处理器执行App区中的程序,接收到程序升级命令时,处理器由执行App区中的程序变更为执行BootLoader区中的程序,通过执行BootLoader区中的程序可以完成接收新应用程序的过程。处理器接收到新应用程序并将其写入到App区,写入完成后,处理器重新初始化并执行App区中的程序,在这一过程中处理器会复位,处理器复位会导致电源输出中断,影响业务执行。
发明内容
本申请实施例提出了一种程序升级方法、电源及计算设备。在对电源程序升级的过程中可以不中断电源输出,不影响业务执行,提高了业务的执行效率。
第一方面,本申请实施例提供了一种程序升级方法,应用于电源,电源包括处理器,处理器包括第一处理单元、第二处理单元、第一存储区和第二存储区;其中,第一存储区用于存储第一处理单元执行的业务程序,第二存储区用于存储第二处理单元执行的业务程序。所述方法包括:响应于程序升级命令,第一处理单元接收待升级业务程序并将待升级业务程序写入至第二存储区;在待升级业务程序写入完成后,第一处理单元启动第二处理单元;第二处理单元升级待升级业务程序。
在该技术方案中,由第二处理单元对写入至第二存储区中的待升级业务程序进行升级,因此,在程序升级过程中,无需复位处理器,因此在进行程序升级的过程中不会中断电源输出。
在一种实现方式中,在第二处理单元升级待升级业务程序之后,所述方法还包括:第二处理单元初始化升级后的业务程序;在完成业务程序初始化的情况下,第二处理单元与第一处理单元进行信息同步,其中,同步的信息包括第一处理单元的运行时间、电流/电压/温度的采样信息、电压环参数信息和电流环的参数信息。
在一种实现方式中,第二处理单元与第一处理单元进行信息同步,包括:第一处理单元和第二处理单元通过共享内存或者进程间通信进行信息同步。
在一种实现方式中,在第二处理单元与第一处理单元进行信息同步之后,所述方法还包括:第二处理单元关闭第一处理单元,并执行第二存储区中的业务程序。
在该技术方案中,由于第一处理单元是在同步完成后关闭的,因此,原本由第一处理单元控制的业务不会被中断,仍能正常运行。
在一种实现方式中,处理器还包括校验区,校验区用于存储校验信息,校验信息用于指示执行业务程序所用的处理单元;在第二处理单元与第一处理单元进行信息同步之后,所述方法还包括:更新校验区中的校验信息,更新后的校验信息用于指示第二处理单元作为升级后业务程序的执行单元。
在一种实现方式中,响应于程序升级命令,第一处理单元接收待升级业务程序,并将待升级业务程序写入第二存储区之前,所述方法还包括:第一处理单元执行第一存储区中的业务程序。
第二方面,本申请实施例提供了一种电源,电源包括处理器,处理器包括第一处理单元、第二处理单元和存储器;存储器用于存储程序指令;处理器用于执行所述程序指令以使得电源执行如第一方面及其各实现方式中的方法。
在一种实现方式中,处理器为MCU。
在一种实现方式中,第一处理单元和第二处理单元为同构的处理器核。
在该技术方案中,有利于提高第一处理单元和第二处理单元进行信息同步的效率。
第三方面,本申请实施例提供一种计算设备,该计算设备包括如第二方面所述的电源和管理控制器,其中,电源与管理控制器电连接;管理控制器用于管理电源的升级。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被执行时使得第一方面所述的方法被实现。
第五方面,本申请实施例提供一种包括计算机程序或指令的计算机程序产品,当计算机程序或指令在处理器上运行时,使得电源执行如第一方面所述的方法。
附图说明
图1是一种计算设备的系统架构示意图;
图2是一种处理器的架构示意图;
图3a是Flash存储区的一种划分示意图;
图3b是Flash存储区的另一种划分示意图;
图4a是本申请实施例提供的一种处理器件的架构示意图;
图4b是本申请实施例提供的一种程序升级方法的流程示意图;
图5是本申请实施例提供的一种包括同构核和异构核的多核CPU的架构示意图;
图6是本申请实施例提供的一种不同CPU核具有独立存储区的多核CPU的架构示意图;
图7是本申请实施例提供的一种电源的结构示意图。
具体实施方式
为了更好地理解本申请实施例提供的技术方案,首先对本申请实施例涉及的部分概念或技术进行介绍。
(1)计算设备
计算设备是具有数据处理能力、数据收发能力和数据存储能力的电子设备。例如,计算设备可以为机架式服务器、机柜式服务器、刀片式服务器、高密度服务器等服务器。
示例性的,计算设备的系统架构示意图可以如图1所示,其中,计算设备10包括机箱101,机箱101内包括但不限于电源102、处理器103、内存104、管理控制器105等部件。其中,电源102可以为电源供电单元(Power supply unit,PSU)。处理器103可以为中央处理器(central processing unit,CPU)或图形处理器(graphics processing unit,GPU)等。内存104可以为随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-OnlyMemory,ROM)。计算设备的管理控制器105可以是处理器103之外的带外处理器。计算设备的管理控制器105主要用于对计算设备10部件的监测以及管理等。例如,计算设备的管理控制器105可以监测计算设备中各个硬件设备的状态(如温度、电压等)。再例如,通过计算设备的管理控制器105可以进行系统配置、固件升级、故障诊断等。其中,机箱101中的各组件与电源102均电连接(图1未示出)。
需要说明的是,不同的设备厂家对计算设备的管理控制器105可以有不同的命名,在本申请实施例中以计算设备的管理控制器105称为管理控制器(Baseboard ManagementController,BMC)为例。还需要说明的是,计算设备的系统架构中还可以包括但不限于:主板、风扇等基础硬件,硬盘、网卡、磁盘阵列(Redundant Arrays of Independent Disks,RAID)等可配置部件,FPGA、CPLD等各种具有处理功能的控制器等。
其中,电源102中可以包括处理器,该处理器中可以包括微控制单元(Microcontroller Unit,MCU)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)等各种具有处理功能的控制器等。MCU是集成了处理单元和外围模块的微型控制单元,外围模块可以包括但不限于:随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-OnlyMemory,ROM)定时计数器、输入/输出(input/output,I/O)端口,处理单元与外围模块可以通过总线连接起来。示例性的,I/O端口可以包括但不限于:通用输入/输出端口(General-purpose input/output,GPIO)、脉冲宽度调制(Pulse Width Modulation,PWM)、串行通信接口(Serial Communication Interface,SCI)等,MCU通过I/O端口可以与外设设备连接。总线可以包括但不限于:控制器局域网络(Controller Area Network,CAN)总线、集成电路总线(Inter Integrated Circuit,I2C)、系统管理总线(System Management Bus,SMBus)接口等。MCU还可以称为单片微型计算机(Single Chip Microcomputer)或单片机。
(2)处理单元
处理单元是解释并执行指令的功能部件。本申请实施例中的处理单元可以指中央处理器(central processing unit,简称CPU),在计算机体系结构中,CPU是对计算机的所有硬件资源(如存储器、输入输出单元)进行控制调配、执行通用运算的核心硬件单元。CPU是计算机的运算和控制核心,是信息处理、程序运行的最终执行单元。计算机系统中所有软件层的操作,最终都将通过指令集映射为CPU的操作。
CPU由运算器、控制器和寄存器组成。其中,寄存器用于暂存指令数据等处理对象;控制器用于径内存上的指令、数据等读入寄存器;运算器用于运算从内存读入寄存器的数据。可选的,CPU还可以有外接的存储设备,分为外存和内存。其中,内存的速度较外存的速度快,并且内存具有“掉电信息全部消失”的特性,而外存则具有“掉电信息也不会丢失”的特性。示例性的,内存可以包括随机存取存储器(Random Access Memory,RAM),外存可以包括闪存(Flash)。
CPU可以分为单核CPU和多核CPU。一个CPU核心(core)可以认为是一个完全独立的处理器,它可以从内部存储器中读取指令,并执行指定指令的控制和计算任务。可以理解的是,单核CPU仅包括一个CPU核心,多核CPU包括多个CPU核心。
(3)电源升级
在相关技术中,电源采用单核CPU作为控制器。在需要进行程序升级的情况下,电源在程序升级完成后需要重启才能工作,因此会出现电源输出中断的现象。
请参见图2所示的处理器的架构示意图,该处理器的架构中可以包括但不限于:1个CPU核(即单核CPU)、RAM存储区、Flash存储区和一个或多个I/O端口(图2中以3个I/O端口为例),该处理器的架构中各组件可通过总线(图2中粗线所示)电连接。
示例1:
如图3a所示,以具有单核CPU的处理器架构中的Flash存储区包括:初始化区(或称为BootLoader区)和APP区为例。其中,BootLoader区烧写有BootLoader引导启动程序(可简称为boot程序),APP区烧写有应用程序。BootLoader引导启动程序为系统引导文件,BootLoader引导启动程序用于计算机的启动,是计算机运行前必不可少的一步。如图3a所示,正常运行时,单核CPU执行App区中的程序,接收到升级命令时,单核CPU从App区跳转到BootLoader区(参见图3a中流程①所示),单核CPU从App区跳转到BootLoader区是指:单核CPU由执行App区中的程序变更为执行BootLoader区中的程序,通过执行BootLoader区中的程序可以完成接收新应用程序的过程。单核CPU接收到新应用程序并将其写入(或称为刷新)到App区,写入完成后,单核CPU重新初始化并执行App区中的程序,如单核CPU从BootLoader区跳转到App区(参见图3a中流程②所示)。在执行图3a所示流程①过程中CPU会复位,CPU复位会导致正常业务被中断(如服务器中的电源输出中断)。
需要说明的是,接收到的新应用程序需要写入到App区,但是App区中的程序被执行的过程中该APP区中不能写入新应用程序,所以在写入新应用程序的过程中不能执行该APP区中的程序。另外,单核CPU需要执行相应程序才能完成接收新应用程序的过程,因此,单核CPU通过从App区跳转到BootLoader区可以实现接收新应用程序并将其写入到App区。
示例2:
如图3b所示,以具有单核CPU的处理器架构中的Flash存储区包括:BootLoader区、App_A区和App_B区为例,其中,App_A区和App_B区互为备份区,并且正常运行时单核CPU执行App_A区中的程序。如图3b所示,正常运行时,单核CPU执行App_A区中的程序,接收到升级命令时,单核CPU接收新应用程序并将其写入到App_B区(参见图3b中流程①所示),此过程中业务不中断;写入完成后,单核CPU从App_B区跳转BootLoader区(参见图3b中流程②所示),然后重新初始化并执行App_B区中的程序(参见图3b中流程③所示)。在执行图3b所示流程②过程中CPU会复位,CPU复位会导致正常业务被中断(如电源输出中断)。
在示例1和示例2的两个方案中,在进行程序升级的过程中CPU会复位进而导致正常业务被中断,例如CPU复位会导致服务器的电源需要重启才能工作,即会出现电源输出中断的问题。为了解决该问题,本申请实施例提出了一种程序升级方法,有利于在进行程序升级的过程中不中断业务的正常运行。
下面对本申请实施例提供的程序升级方法进行阐述。该方法应用于电源,电源包括处理器,该方法可由电源内部的装置执行,该装置例如为电源内部处理器中的处理单元等。其中,该处理器的架构中至少包括两个处理单元,在本申请实施例中,以该处理器的架构包括两个处理单元,以包括第一处理单元和第二处理单元为例,具体可参见图4a所示,其中,第一处理单元和第二处理单元均对应有各自的存储区,第一处理单元对应第一存储区,第二处理单元对应第二存储区,其中,第一存储区用于存储第一处理单元执行的业务程序,第二存储区用于存储第二处理单元执行的业务程序,第一处理单元和第二处理单元可以通过总线进行通信。
本申请实施例提供的程序升级方法的流程示意图可参见图4b,该方法包括但不限于如下步骤:
S401:响应于程序升级命令,第一处理单元接收待升级业务程序并将该待升级业务程序写入至第二存储区。
其中,程序升级命令可以由BMC发送,程序升级命令的作用是通知处理器接收待升级业务程序。处理器在接收到程序升级命令后,响应于该程序升级命令,通过第一处理单元接收待升级业务程序,该待升级业务程序可以用于对待升级的应用程序进行升级,或者,该待升级业务程序用于在处理器中安装新的应用程序。例如,在需要对应用程序进行升级或需要在处理器中安装新应用程序的情况下,维护人员可以通过操作BMC向处理器发送程序升级命令。
在本申请实施例中,一个处理单元可以指一个CPU核。在正常状态下,处理器的主处理单元处于启动状态。在正常状态下,主处理单元通过执行“执行存储区”中的程序控制该处理器的外设设备工作,主处理单元控制外设设备工作的情况下,电源正常工作,该处理器中的业务正常运行。其中,执行存储区用于存储主处理单元执行的业务程序。可选的,在正常状态下,处理器的备份处理单元处于关闭状态。可选的,在正常状态下,处理器的备份处理单元对应的存储区不使用,备份处理单元对应的存储区用于存储该备份处理单元执行的业务程序。
在本申请实施例中,在正常状态下,如在接收到程序升级命令的情况下,处理器的主处理单元为第一处理单元,处理器的备份处理单元为第二处理单元。在接收到程序升级命令的情况下,第一处理单元接收待升级业务程序并将该待升级业务程序写入至第二存储区(执行S401)。因为第一处理单元和第二处理单元均对应有各自的存储区,并且执行S401的过程中执行存储区为第一存储区,待升级业务程序的写入存储区为第二处理单元(备份处理单元)对应的第二存储区,执行存储区和写入存储区并非同一存储区,因此,在写入该待升级业务程序的过程中仍然能执行“执行存储区”中的程序。所以,在执行S401的过程中,处理器不会复位,第一处理单元(主处理单元)可以不中断业务的正常运行,电源输出不中断。
S402:在待升级业务程序写入完成后,第一处理单元启动第二处理单元。
在待升级业务程序写入完成后,主处理单元启动备份处理单元(即第二处理单元),以便于备份处理单元升级存储于第二存储区中的待升级业务程序。
S403:第二处理单元升级待升级业务程序。
在该待升级业务程序用于对待升级的应用程序进行升级的情况下,通过执行S403可以实现待升级应用程序的成功升级。在该待升级业务程序用于在处理器中安装新应用程序的情况下,通过执行S403可以实现成功安装该新应用程序。
可选的,在第二处理单元升级该待升级业务程序之后,本申请实施例提供的程序升级方法还可以包括S404~S405:
S404:第二处理单元初始化升级后的业务程序。
第二处理单元对第二存储区中的待升级业务程序进行升级、然后进行初始化后,可以执行升级后的业务程序。
S405:在完成业务程序初始化的情况下,第二处理单元与第一处理单元进行信息同步。
同步的信息包括基本的全局变量,例如可以包括第一处理单元的运行时间、电流/电压/温度的采样信息、电压环参数信息和电流环参数信息(误差累积、输出值)。
第一处理单元和第二处理单元可以通过总线进行信息同步,或者,第一处理单元和第二处理单元通过共享内存或者进程间通信(Interprocessor Communication,IPC)进行信息同步。本申请实施例不限定信息同步的具体方式。
可选的,在第二处理单元与第一处理单元信息同步完成之后,还可以执行S406:第二处理单元关闭第一处理单元,并执行第二存储区中的业务程序。在同步完成后,第二处理单元关闭第一处理单元,这种情况下,第一处理单元处于关闭状态,第二处理单元处于开启状态,可以理解的是,处于开启状态的第二处理单元成为处理器逻辑上的主处理单元。换言之,同步完成后,关闭原本的主处理单元,由原本的备份处理单元(即第二处理单元)执行对应存储区(即第二存储区)中的业务程序,以控制外设设备工作。可选的,执行S401之前,第一处理单元为主处理单元,第一处理单元执行第一存储区中的业务程序,以控制外设设备工作。由于第一处理单元是在同步完成后关闭的,因此,原本由第一处理单元控制的业务不会被中断,仍能正常运行,同时执行S403也能实现待升级业务程序的成功升级和/或成功安装新应用程序。另一方面,在程序升级过程中,处理器无需从处理单元对应的存储区(还可以称为程序区)跳转到BootLoader区,因此不会导致处理器复位,也就不会导致电源输出中断,换言之,在进行程序升级的过程中可以不中断电源输出。
在一种可选的实施方式中,同步完成之前,处理器的主处理单元为第一处理单元,处理器的备份处理单元为第二处理单元;同步完成之后,处理器的主处理单元为第二处理单元,处理器的备份处理单元为第一处理单元。
在一种可选的实施方式中,处理器除了包括第一处理单元、第一存储区、第二处理单元、第二存储区以外,还可以包括校验区。校验区用于存储校验信息,校验信息可以用于指示执行业务程序所用的处理单元(或者描述为:校验信息用于指示处理器的主处理单元)。可选的,校验信息还可以用于指示处理器的备份处理单元。
第二处理单元与第一处理单元信息同步完成之后,该方法还可以包括:更新校验区中的校验信息;更新前的校验信息用于指示第一处理单元作为业务程序的执行单元,更新后的校验信息用于指示第二处理单元作为升级后业务程序的执行单元(或者描述为:更新前的校验信息用于指示主处理单元为第一处理单元,更新后的校验信息用于指示主处理单元为第二处理单元)。可选的,更新前的校验信息还用于指示备份处理单元为第二处理单元,更新后的校验信息用于指示备份处理单元为第一处理单元。
在一种可选的实施方式中,校验信息还可以用于指示处理器的执行存储区。所述更新前的校验信息还用于指示该执行存储区为第一存储区,所述更新后的校验信息还用于指示该执行存储区为第二存储区。
在一种可选的实施方式中,本申请实施例中的处理器为微控制单元MCU(Microcontroller Unit)。在一种可选的实施方式中,第一处理单元和第二处理单元为同构的处理器核,或者,第一处理单元和第二处理单元为异构的处理器核。第一处理单元和第二处理单元为同构的处理器核的情况下,第二处理单元与第一处理单元之间的同步过程更加简单,有利于提高同步效率,还有利于降低在同步过程中发生差错的概率。示例性的,请参见图5,图5中相同颜色的CPU核表示同构的CPU核,不同颜色的CPU表示异构的CPU核。例如,CPU核0和CPU核1为同构的CPU核,CPU核0和CPU核2为异构的CPU核,CPU核1和CPU核2为异构的CPU核。关于图5中的其他组件可分别参见图2中的说明,此处不再赘述。
在一种可选的实施方式中,第一存储区和第二存储区可以属于同一存储区,例如,以第一处理单元为图5中的CPU核0,第二处理单元为图5中的CPU核1为例,第一处理单元对应的第一存储区和第二处理单元对应的第二存储区可以属于同一存储区,如第一存储区和第二存储区均属于图5中的Flash存储区中。需要说明的是,第一存储区和第二存储区属于同一存储区的情况下,第一存储区和第二存储区可以为同一存储区中划分出的两个独立的存储区域。
在另一种可选的实施方式中,第一存储区和第二存储区可以属于不同存储区,以第一处理单元为图6中的CPU核0,第二处理单元为图6中的CPU核1为例,图6中CPU核0和CPU核1具有各自对应的Flash存储区和RAM存储区,第一处理单元对应的第一存储区和第二处理单元对应的第二存储区属于不同存储区,如第一存储区属于CPU核0对应的Flash存储区中,第二存储区属于CPU核1对应的Flash存储区中。关于图6中的其他组件可分别参见图2中的说明,此处不再赘述。
可选的,存储区只能被所对应的处理单元访问;或者,存储区可以被任一处理单元单一访问;或者,存储区除了被所对应的处理单元访问以外,还可以被其他处理单元访问,本申请实施例对此不做限定。例如,第一存储区只能由第一处理单元访问,第二存储区只能由第二处理单元访问。或者,第一存储区被第一处理单元或第二处理单元中的一个处理单元访问,第二存储区被第一处理单元或第二处理单元中的一个处理单元访问。或者,第一存储区可以被第一处理单元访问,也可以被第二处理单元访问,第二存储区可以被第一处理单元访问,也可以被第二处理单元访问。
在一种可选的实施方式中,处理器的存储器(如Flash存储区)可以划分为:初始化区(或称为BootLoader区)、存储区(下文记为APP区)和校验区。可选的,还包括RAM区。其中,BootLoader区烧写有boot程序,APP区烧写有应用程序。
可选的,在步骤S401之前,电源还可以执行如下步骤:电源上电后,先启动默认的处理单元(例如默认为第一处理单元),通过默认的处理单元执行BootLoader区中的程序,通过执行BootLoader区中的程序读取校验区中的校验信息以确定处理器的主处理单元、备份处理单元和执行存储区。在本申请实施例中,通过读取校验信息确定的主处理单元为第一处理单元,备份处理单元为第二处理单元,执行存储区为第一存储区。
可选的,程序升级命令可以分别不同类型,例如,分为第一类型和第二类型,电源接收到程序升级命令的情况下,判断程序升级命令的类型,若程序升级命令属于第一类型,响应于该第一类型的程序升级命令,执行S401~S403。这样能实现在程序升级过程中,不会影响业务的正常运行。第一类型的程序升级命令可以为在线升级命令,第二类型的程序升级命令可以为非在线升级命令,本申请实施例对此不做限定。若程序升级命令属于第二类型,响应于该第二类型的程序升级命令,处理器按照前文示例1和示例2的方式进行程序升级,这种升级过程会导致处理器复位,进而导致电源输出中断。
请参见图7,为本申请提供的一种电源的结构示意图。图7所示的电源70包括处理器701,处理器701包括第一处理单元7011、第二处理单元7012、第一存储区7013和第二存储区7014。
可选的,处理器701还包括校验区7015。
第一处理单元7011、第二处理单元7012可以用于执行前述方法实施例中的相关步骤。该步骤对应的程序指令存储在第一存储区7013和第二存储区7014中。具体为,在第一处理单元7011作为执行业务的处理单元时,该处理单元执行第一存储区7013中的程序指令,使得第一处理单元7011执行前述方法实施例中的相关步骤。在第二处理单元7012作为执行业务的处理单元时,该处理单元执行第二存储区7014中的程序指令,使得第二处理单元7012执行前述方法实施例中的相关步骤。
其中,第一处理单元7011,用于响应于程序升级命令,接收待升级业务程序并将待升级业务程序写入至第二存储区7014;在待升级业务程序写入完成后,启动第二处理单元7012。第二处理单元7012,用于升级该待升级业务程序。
在一种实现方式中,在第二处理单元升级待升级业务程序之后,第二处理单元7012还用于初始化升级后的业务程序;在完成所述业务程序初始化的情况下,与第一处理单元7011进行信息同步,其中,同步的信息包括第一处理单元7011的运行时间、电流/电压/温度的采样信息、电压环参数信息和电流环的参数信息。
在一种实现方式中,第一处理单元7011和第二处理单元7012通过共享内存或者进程间通信进行信息同步。
在一种实现方式中,在第二处理单元7012与第一处理单元7011进行信息同步之后,第二处理单元7012关闭第一处理单元7011,并执行第二存储区7014中的业务程序。
在一种实现方式中,校验区7015用于存储校验信息,校验信息用于指示执行业务程序所用的处理单元;在第二处理单元7012与第一处理单元7011进行信息同步之后,处理器701还用于更新校验区7015中的校验信息,更新后的校验信息用于指示第二处理单元7012作为升级后业务程序的执行单元。
在一种实现方式中,第一处理单元7011接收待升级业务程序,并将待升级业务程序写入第二存储区7014之前,第一处理单元7011还用于执行第一存储区7013中的业务程序。
在一种实现方式中,处理器701为MCU。
在一种实现方式中,第一处理单元7011和第二处理单元7012为同构的处理器核。
基于同一发明构思,本申请实施例中提供的电源70解决问题的原理与有益效果与本申请方法实施例中解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。
电源70的结构可以不受图7的限制。电源还可以包括其它部分。本申请实施例对电源具体结构不做限制。
本领域技术人员还可以理解到本申请实施例列出的各种说明性逻辑块(illustrative logical block)和步骤(step)可以通过电子硬件、电脑软件,或两者的结合进行实现。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员对于相应的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本申请实施例保护的范围。
本申请所描述的方案可通过各种方式来实现。例如,这些技术可以用硬件、软件或者硬件结合的方式来实现。对于硬件实现,用于在电源处执行这些技术的处理单元,可以实现在一个或多个通用处理器、数字信号处理器(digital signal processor,DSP)、数字信号处理器件、专用集成电路(application specific integrated circuit,ASIC)、可编程逻辑器件、现场可编程门阵列(field programmable gate array,FPGA)、或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合中。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本申请实施例还提供了一种计算机可读介质,其上存储有程序指令,该程序指令被处理器执行时实现上述任一方法实施例的升级方法。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品被处理器执行时实现上述任一方法实施例的升级方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(digital video disc,DVD))、或者半导体介质(例如,固态硬盘(solid state drive,SSD))等。
可以理解,说明书通篇中提到的“实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各个实施例未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。可以理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
可以理解,在本申请中,“当…时”、“若”以及“如果”均指在某种客观情况下装置会做出相应的处理,并非是限定时间,且也不要求装置实现时一定要有判断的动作,也不意味着存在其它限定。
本申请中对于使用单数表示的元素旨在用于表示“一个或多个”,而并非表示“一个且仅一个”,除非有特别说明。本申请中,在没有特别说明的情况下,“至少一个”旨在用于表示“一个或者多个”,“多个”旨在用于表示“两个或两个以上”。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A可以是单数或者复数,B可以是单数或者复数。
本领域普通技术人员可以理解,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请中各个实施例之间相同或相似的部分可以互相参考。在本申请中各个实施例、以及各实施例中的各个实施方式/实施方法/实现方法中,如果没有特殊说明以及逻辑冲突,不同的实施例之间、以及各实施例中的各个实施方式/实施方法/实现方法之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例、以及各实施例中的各个实施方式/实施方法/实现方法中的技术特征根据其内在的逻辑关系可以组合形成新的实施例、实施方式、实施方法、或实现方法。以上所述的本申请实施方式并不构成对本申请保护范围的限定。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。

Claims (10)

1.一种程序升级方法,应用于电源,其特征在于,
所述电源包括处理器;所述处理器包括第一处理单元、第二处理单元、第一存储区和第二存储区;
其中,所述第一存储区用于存储所述第一处理单元执行的业务程序,所述第二存储区用于存储所述第二处理单元执行的业务程序;
所述方法包括:
响应于程序升级命令,所述第一处理单元接收待升级业务程序,并将所述待升级业务程序写入所述第二存储区;
在所述待升级业务程序写入完成后,所述第一处理单元启动所述第二处理单元;
所述第二处理单元执行所述待升级业务程序,以完成所述业务程序的升级。
2.如权利要求1所述的方法,其特征在于,在所述第二处理单元升级所述待升级业务程序之后,所述方法还包括:
所述第二处理单元初始化升级后的业务程序;
在完成所述业务程序初始化的情况下,所述第二处理单元与所述第一处理单元进行信息同步,其中,同步的信息包括所述第一处理单元的运行时间、电流/电压/温度的采样信息、电压环参数信息和电流环的参数信息。
3.如权利要求1或2所述的方法,其特征在于,所述第二处理单元与所述第一处理单元进行信息同步,包括:
第一处理单元和第二处理单元通过共享内存或者进程间通信进行信息同步。
4.如权利要求1-3任一项所述的方法,其特征在于,在所述第二处理单元与所述第一处理单元进行信息同步之后,所述方法还包括:
所述第二处理单元关闭所述第一处理单元,并执行所述第二存储区中的业务程序。
5.如权利要求1-4任一项所述的方法,其特征在于,所述处理器还包括校验区,所述校验区用于存储校验信息,所述校验信息用于指示执行业务程序所用的处理单元;
在所述第二处理单元与所述第一处理单元进行信息同步之后,所述方法还包括:
更新所述校验区中的校验信息,更新后的校验信息用于指示所述第二处理单元作为升级后业务程序的执行单元。
6.如权利要求1-5任一项所述的方法,其特征在于,所述响应于程序升级命令,所述第一处理单元接收待升级业务程序,并将所述待升级业务程序写入所述第二存储区之前,所述方法还包括:
所述第一处理单元执行所述第一存储区中的业务程序。
7.一种电源,其特征在于:所述电源包括处理器;
所述处理器包括第一处理单元第二处理单元和存储器;所存储器用于存储程序指令;
所述处理器用于执行所述程序指令,以使得所述电源执行如权利要求1-6中任一项所述的方法。
8.如权利要求7所述的电源,其特征在于,所述处理器为微控制单元MCU。
9.如权利要求7或8所述的电源,其特征在于,所述第一处理单元和所述第二处理单元为同构的处理器核。
10.一种计算设备,其特征在于,所述计算设备包括如权利要求9所述的电源和管理控制器;其中,所述电源与所述管理控制器电连接;所述管理控制器用于管理所述电源的升级。
CN202310316413.XA 2023-03-28 2023-03-28 一种程序升级方法、电源及计算设备 Pending CN116501343A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310316413.XA CN116501343A (zh) 2023-03-28 2023-03-28 一种程序升级方法、电源及计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310316413.XA CN116501343A (zh) 2023-03-28 2023-03-28 一种程序升级方法、电源及计算设备

Publications (1)

Publication Number Publication Date
CN116501343A true CN116501343A (zh) 2023-07-28

Family

ID=87325721

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310316413.XA Pending CN116501343A (zh) 2023-03-28 2023-03-28 一种程序升级方法、电源及计算设备

Country Status (1)

Country Link
CN (1) CN116501343A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117573175A (zh) * 2024-01-16 2024-02-20 广东高斯宝电气技术有限公司 不复位控制芯片的固件实时更新方法、系统及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117573175A (zh) * 2024-01-16 2024-02-20 广东高斯宝电气技术有限公司 不复位控制芯片的固件实时更新方法、系统及存储介质
CN117573175B (zh) * 2024-01-16 2024-06-21 广东高斯宝电气技术有限公司 不复位控制芯片的固件实时更新方法、系统及存储介质

Similar Documents

Publication Publication Date Title
CN107122321B (zh) 硬件修复方法、硬件修复系统以及计算机可读取存储装置
US7007192B2 (en) Information processing system, and method and program for controlling the same
JP2007172591A (ja) マルチノード・システムにおいてアクティブなプロセッサの数を動的に変更する方法及び構成
US9372702B2 (en) Non-disruptive code update of a single processor in a multi-processor computing system
WO2018095107A1 (zh) 一种bios程序的异常处理方法及装置
US10459742B2 (en) System and method for operating system initiated firmware update via UEFI applications
EP1933234A2 (en) Frozen ring cache
CN116521209B (zh) 操作系统的升级方法及装置、存储介质及电子设备
CN116501343A (zh) 一种程序升级方法、电源及计算设备
US8819484B2 (en) Dynamically reconfiguring a primary processor identity within a multi-processor socket server
US10996942B1 (en) System and method for graphics processing unit firmware updates
WO2013048536A1 (en) Apparatus and method for managing register information in a processing system
US20240103971A1 (en) Systems and methods for error recovery in rebootless firmware updates
CN113392052B (zh) 一种基于四路服务器的bios系统、方法及计算机可读存储介质
WO2019148482A1 (en) Configurable storage server with multiple sockets
US11663021B2 (en) System and method for providing granular processor performance control
CN115129345A (zh) 一种固件升级方法、装置、设备及存储介质
CN114115703A (zh) 裸金属服务器在线迁移方法以及系统
US7631178B2 (en) Independent main partition reset
US20240103720A1 (en) SYSTEMS AND METHODS FOR SUPPORTING NVMe SSD REBOOTLESS FIRMWARE UPDATES
US20240103849A1 (en) Systems and methods for supporting rebootless firmware updates
US11966750B2 (en) System-on-chip management controller
KR101564144B1 (ko) 펌웨어 관리 장치 및 방법
US20240241728A1 (en) Host and dpu coordination for dpu maintenance events
US20240103847A1 (en) Systems and methods for multi-channel rebootless firmware updates

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