CN114090107A - 计算机和***启动方法 - Google Patents

计算机和***启动方法 Download PDF

Info

Publication number
CN114090107A
CN114090107A CN202111001644.9A CN202111001644A CN114090107A CN 114090107 A CN114090107 A CN 114090107A CN 202111001644 A CN202111001644 A CN 202111001644A CN 114090107 A CN114090107 A CN 114090107A
Authority
CN
China
Prior art keywords
firmware
memory
processor
computer
monitoring circuit
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
CN202111001644.9A
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.)
Xunmu Information Technology Shanghai Co Ltd
Original Assignee
Xunmu Information Technology Shanghai 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 Xunmu Information Technology Shanghai Co Ltd filed Critical Xunmu Information Technology Shanghai Co Ltd
Priority to CN202111001644.9A priority Critical patent/CN114090107A/zh
Priority to TW110137232A priority patent/TWI786871B/zh
Publication of CN114090107A publication Critical patent/CN114090107A/zh
Priority to US17/890,865 priority patent/US20230060908A1/en
Priority to JP2022132409A priority patent/JP2023035930A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/4408Boot device selection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)
  • Programmable Controllers (AREA)

Abstract

一种计算机和应用于所述计算机上的启动方法。在所述计算机中,第一存储器存储第一固件,第二存储器存储第二固件。本申请提出一种程控装置连接所述第一存储器和所述第二存储器,包括选择器和监控电路。所述选择器提供指向功能,用于选择所述第一存储器或所述第二存储器为选定固件。所述计算机中有处理器,连接所述程控装置,可根据所述指向功能,加载并执行所述选定固件。当所述计算机启动时,所述监控电路判断所述处理器是否成功加载并执行所述选定固件;如果不成功,所述监控电路改变所述指向功能,使所述处理器重启后加载并执行不同的选定固件。

Description

计算机和***启动方法
技术领域
本申请涉及一种计算机和适用所述计算机的***启动方法,尤其涉及一种确保计算机能成功加载并执行固件以启动***的方法。
背景技术
目前,大部分中高端的处理器的启动固件(BOOT Firmware)存放在外部的非易失性存储器,例如闪存(Flash)中。***上电或重启后,处理器从闪存中读取启动固件并执行,使计算机可以启动。
图1是已知技术中的计算机100架构图。在计算机100中,包括处理器110,通过线路102连接存储器120。存储器120中存储有固件(未图示)。当计算机100启动时,处理器110通过线路102从存储器120中读取固定的启动固件。因为故障修复或者功能增加等原因,有时启动固件需要升级。计算机100可通过外部接口(未图示),例如网口等获得新版本的启动固件,通过与存储器120间的线路102进行一种在线升级。在此过程中,万一出现断电、***异常、软件缺陷等原因导致升级失败,存储器120启动固件将不能工作,计算机100也将失去功能。
为避免启动固件升级失败导致***瘫痪这种灾难性事件的发生,现有一种启动固件备份方案是在计算机中配置有二片闪存,即计算机具有主板、处理器和二片闪存,处理器和二片闪存设置在主板上。并且主板上设置有切换线路和跳线帽,切换线路连接在处理器和二片闪存之间,跳线帽可插拔地设在主板上并连接切换线路,跳线帽的位置变化可改变切换线路的配置,使处理器可通过切换线路电性连接至二片闪存的其中一个。当固件升级失败时,其中一个闪存不能工作,此时用户可通过拔插跳线帽而转换跳线帽的位置,使处理器可通过另一个闪存启动,再把升级失败的闪存再升级一次以恢复***。现在还有一种启动固件备份方案是将上述跳线帽换为手拨开关。
上述两种实现方案的缺点如下。
图1所述的计算机100没有考虑启动固件的备份,如果升级失败了,必须打开***外壳,用仿真器或其它辅助工具,或者将存储器120从计算机100中取出,重新烧写存储器120中的固件,操作极不便利,也不适合远程操作和用户机房等场合。这种具有两片闪存的启动固件备份方案,不但需要操作人员手动干预,也不适合远程操作和用户机房等场合。因为要求操作人员熟悉芯片位置、跳线帽或手拨开关的位置,二种方法对用户都不友好。也因为需要手动操作,二种方法的恢复效率都比较低,***宕机时间比较长。
发明内容
为了解决上述技术问题,本申请实施例提供一种可以确保计算机成功启动的方法和所述计算机。
在所述计算机的一个具体实施例中,包括了至少下列组件。第一存储器,配置为存储第一固件。第二存储器,配置为存储第二固件。程控装置,连接所述第一存储器和所述第二存储器,包括选择器。所述选择器提供指向功能,用于选择所述第一存储器的所述第一固件和所述第二存储器的所述第二固件的其中一个为选定固件。处理器,连接所述程控装置,根据所述指向功能,加载并执行所述选定固件。当所述计算机启动时,所述程控装置判断所述处理器是否成功加载并执行所述选定固件。如果不成功,所述程控装置改变所述指向功能,以选择所述第一存储器的所述第一固件或所述第二存储器的所述第二固件的另一个为所述选定固件,使所述处理器重启后加载并执行不同的所述选定固件。
在一个具体的实施方式中,所述程控装置还包括监控电路,所述程控装置被配置为通过所述监控电路判断所述处理器是否成功加载并执行所述选定固件。当所述计算机启动时,所述监控电路可启动计时。当所述监控电路发出计时溢出信号,所述监控电路可判断所述处理器没有成功加载并执行所述选定固件。
在一个具体的实施方式中,所述处理器和所述程控装置可通过一个芯片级总线(Inter-Integrated Chip;I2C)互相连接。
在一个具体的实施方式中,所述处理器可包括一个复位(RESET)脚,用于触发所述处理器的复位。所述程控装置连接所述复位脚。当一个复位信号产生时,先由所述程控装置接收,再传送至所述复位脚,使所述处理器复位。
在一个具体的实施方式中,当所述处理器成功加载并执行所述选定固件后,可通过所述程控装置关闭所述监控电路,然后加载操作***和应用软件。
在一个具体的实施方式中,所述程控装置可以是一种复杂可编程逻辑装置(Complex Programmable Logic Device;CPLD)。
在一个具体的实施方式中,所述选择器为片选选择器,而所述指向功能可以是一种片选信号(Chip Select Signal)。
在一个具体的实施方式中,所述第二存储器的所述第二固件配置为默认的所述选定固件。当所述计算机进行固件升级时,所述选择器配置为默认的选择所述第二存储器,使所述处理器对所述第二固件进行升级。当所述第二固件升级完成后,所述处理器重启以加载并执行所述第二固件。当所述程控装置判断所述处理器没有成功加载并执行所述第二固件时,所述选择器改变所述指向功能以选择所述第一存储器,使所述处理器重启后加载并执行所述第一固件。
在进一步的实施方式中,所述程控装置提供一种记录失败的功能,使计算机在重启后知道前一次更新失败,进而决定是否进行固件还原。举例来说,当所述程控装置判断所述处理器没有成功加载并执行所述第二固件时,可生成一个失败信号。当所述处理器重启后,收到所述失败信号,可选择性地触发一个用于还原所述第二固件的程序。
本申请的另一实施例是应用于所述计算机的一种***启动方法,可确保计算机中的处理器可成功地加载并执行固件。所述***启动方法可总结为以下步骤。在第一存储器提供第一固件,并在第二存储器提供第二固件。提供指向功能,用于选择所述第一存储器的所述第一固件和所述第二存储器的所述第二固件的其中一个为选定固件。接着,根据所述指向功能的选择结果,加载并执行所述选定固件。在启动时,可判断所述选定固件是否被成功加载并执行。如果判断所述选定固件没有被成功加载并执行,改变所述指向功能,以选择所述第一存储器的所述第一固件或所述第二存储器的所述第二固件的另一个为所述选定固件,重启后加载并执行不同的所述选定固件。
在一个具体的实施方式中,当所述计算机启动时,可通过监控电路判断所述选定固件是否被成功加载并执行。所述监控电路可启动计时。当所述计时溢出,监控电路发出计时溢出信号可判断所述处理器没有成功加载并执行所述选定固件。
在一个具体的实施方式中,当判断所述选定固件被成功加载并执行,可关闭所述监控电路,然后加载操作***和应用软件。
在一个具体的实施方式中,所述指向功能可以是一种片选信号。
在一个具体的实施方式中,可默认地选择所述第二存储器的所述第二固件为所述选定固件。当进行固件升级时,默认地对所述第二固件进行升级。当所述第二固件升级完成后,重启以加载并执行所述第二固件。当所述第二固件被判断没有被成功加载并执行时,改变所述指向功能以选择所述第一存储器,重启后加载并执行所述第一固件。更进一步地说,当所述第二固件被判断没有被成功加载并执行时,可生成失败信号,用于在重启后基于所述失败信号触发还原所述第二固件的程序。
与现有的启动固件闪存备份方案比较,本申请具有明显优势:
使用程控装置,免除现场拆装设备的问题。为固件更新提供备援支持,即使更新失败,仍能确保***保持可启动的状态,以利后续还原修复工作。上述特征,使整个升级和修复过程允许远程操作。如果启动固件更新失败,操作人员可以远程恢复,不需借助工具,也不必去现场切换跳线帽或开关,操作方便,节省时间和人力物力。更进一步地,本申请提高了计算机的可靠性。如果启动固件更新失败,无需人工干预,***可以自动地从备份的启动固件启动。避免了因为***无法启动而导致的灾难性事件的发生。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是已知技术中的计算机架构图。
图2是本申请实施例的一种计算机架构图。
图3是本申请实施例的另一种计算机架构图。
图4是本申请实施例的***启动方法流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属本申请保护的范围。
图2是本申请实施例的一种计算机架构图。计算机200包括处理器、程控装置210、第一存储器202和第二存储器204。程控装置210例如但不限于是复杂可编程逻辑器件(CPLD),第一存储器202和第二存储器204,举例来说,可以是但不限于是两片闪存(FLASH)。程控装置210中包括一个选择器212,而所述第一存储器202和第二存储器204连接选择器212。所述第一存储器202和第二存储器204还进一步通过程控装置210与处理器110连接。程控装置210可根据切换信号而使选择器212切换为信号连接第一存储器202或信号连接第二存储器204,在此架构中,第一存储器202和第二存储器204的切换信号是由程控装置210处理,而第一存储器202和第二存储器204的其它信号则是与处理器110直接相连。选择器212的切换,举例来说,可以是但不限于是由外部的切换器214控制。在一些实施例中,切换器214也可以是整合程控装置210。切换器214可以通过外部输入的信号而产生对应的切换信号,也可以通过处理器110控制而产生对应的切换信号。在一些实施例中,切换器214整合于程控装置210中。程控装置210会通过切换器214来选择从不同的闪存来启动计算机200,再把升级失败的闪存再升级一次以恢复***。例如,选择器212在预设情况下,可使处理器110信号连接第一存储器202并由第一存储器202读取出启动固件,以加载并执行计算机200的***。在升级启动固件时,也是预设会先对第一存储器202中的启动固件进行升级。程控装置210可用于判断启动固件是否成功升级或写入至第一存储器202,也就是判断升级或写入程序的完整性和正确性。程控装置210也可以用于判断处理器110是否成功加载或读取第一存储器202的启动固件,也就是判断加载或读取程序的完整性和正确性。当程控装置210判断启动固件升级失败或加载失败时,程控装置210会通过切换器214改为从第二存储器204加载启动固件来启动计算机200。在一些实施例中,选择器212的切换是通过片选机制(ChipSelect),例如是一种使用可编程逻辑器件或选择器芯片的晶片信号切换选择的机制。
图3是本申请实施例的另一种计算机架构图。本申请在程控装置310中实作一种监控电路302。监控电路302可用于实现前述切换器的功能。通过程控装置310的逻辑设计,弥补了常用启动固件闪存备份方案的缺陷。监控电路302的工作模式类似看门狗(Watchdog)机制,可以即时根据状况反应,弹性实现片选机制。
处理器110和两片闪存,即,第一存储器202和第二存储器204,通过程控装置310连接。在本实施例中,仅说明程控装置310处理第一存储器202和第二存储器204的片选通道的部份。至于第一存储器202和第二存储器204的其它信号主要是由处理器110直接连接与处理,在本实例中不另外说明。程控装置310中包括了一个选择器312。程控装置310中的监控电路302可以是一个具有计时功能的信号产生器。默认的监控电路302时间溢出值可根据***启动时间预先设定。当监控电路302的计时溢出时,可输出一个用于指示计时溢出的信号,使所述程控装置判断有加载或启动失败的状况,而进行对应处置。举例来说,所述监控电路302可以在计时溢出时,直接输出一个片选信号#SL至选择器312,使选择器312改变原本第一片选通道CS0和第二片选通道CS1对应指向的第一存储器202或第二存储器204。监控电路302和处理器110之间通过一个控制总线304连接,可供处理器110控制监控电路302的开关。如果处理器110在加载执行固件的过程中失败而宕机,不会通过控制总线304关闭监控电路302。此时监控电路302会因为等待过久而计时溢出,并输出片选信号#SL。选择器312收到片选信号#SL后,会互换第一片选通道CS0和第二片选通道CS1的指向,使处理器改变了读取到的闪存。
在本实施例中,计算机100是通过第一片选通道CS0和第二片选通道CS1连接第一存储器202和第二存储器204。由于处理器110的通用设计限制,在启动时只会使用第一片选通道CS0来加载固件。第一片选通道CS0和第二片选通道CS1的线路在经过程控装置310时,使用了选择器312来实作切换选择的作用。举例来说,在计算机300上电或重启后,监控电路302可自动启动,使第一片选通道CS0指向第二存储器204,第二片选通道CS1指向第一存储器202。监控电路302计时溢出后,可发出一个片选信号#SL给选择器312,使第一片选通道CS0指向第一存储器202,第二片选通道CS1指向第二存储器204。
另外,在本实施例的程控装置310中,原本用于发给处理器110的复位(reset)信号,会先输入到程控装置310,再由程控装置310控制输出给处理器110。借此,程控装置310可主动决定复位处理器110的时机,提供监控电路302和选择器312足够的时间来准备处理器110所需要的运作条件。
综上所述,在图3的计算机300具体实施例方式中,运用了至少下列组件。首先使用第一存储器202来存储第一固件,第二存储器204存储第二固件(未图示)。计算机300中使用一个程控装置310连接所述第一存储器202和所述第二存储器204。程控装置310中包括选择器312和监控电路。所述选择器312提供指向功能,用于选择所述第一存储器202或所述第二存储器204为选定固件。在本实施例中,所述指向功能是一种片选(Chip Select)功能,即一种由逻辑电路产生高/低电平的信号来实现的开关切换。借此,计算机300不再需要实体的开关机构,也不需要手动介入运作。
处理器110,连接所述程控装置310,通过选择器312的指向功能,加载并执行所述选定固件。当所述计算机300启动时,由所述监控电路302判断所述处理器110是否成功加载并执行所述选定固件。如果不成功,所述监控电路302通过片选信号#SL改变选择器312的指向功能,使所述处理器110重启后加载并执行不同的选定固件。
在一个具体的实施方式中,当所述计算机300启动时,所述监控电路302可启动一个计时功能。当所述监控电路302的计时溢出,或所述处理器110超过时限没有回报启动成功时,则所述监控电路302可判断所述处理器110没有成功加载并执行所述选定固件。
在一个具体的实施方式中,所述处理器110和所述程控装置310可通过一个控制总线304互相连接。
在一个具体的实施方式中,所述处理器110可包括一个复位脚(未图示),用于触发所述处理器110的复位。所述程控装置310可通过一个复位总线306连接处理器110的复位脚。当计算机300中有一个复位信号#RST产生时,可先由所述程控装置310接收所述复位信号#RST,再通过所述复位总线306送至处理器110,使所述处理器110复位。另一方面,程控装置310也可以在需要复位处理器110时,主动产生复位信号#RST,再通过所述复位总线306送至处理器110,使所述处理器110复位。
在一个具体的实施方式中,当所述处理器110成功加载并执行所述选定固件后,可通过所述控制总线304关闭所述监控电路302。另一个做法是,当所述处理器110成功加载并执行所述选定固件后,通过所述控制总线304回报给所述监控电路302一个启动成功的信号,使监控电路302不再计时,以避免计时溢出。所述监控电路302被关闭或停止计时后,处理器110可以继续加载操作***和应用软件,使计算机300进入正常运作。
在一个具体的实施方式中,所述程控装置310可以是一种复杂可编程逻辑装置CPLD。
图3所述的架构尤其适合应用在需要远程固件升级的场合中。当所述计算机300进行固件升级时,所述指向功能可配置为所述第二存储器204,使所述处理器110对所述第二固件进行升级。当所述第二固件升级完成后,所述处理器110重启以加载并执行所述第二固件。当所述监控电路302判断所述处理器110没有成功加载并执行所述第二固件时,可改变所述指向功能为所述第一存储器202,使所述处理器110重启后加载并执行所述第一固件。
在进一步的实施方式中,所述监控电路302提供一种记录失败的功能,使计算机300在重启后知道前一次更新失败,进而决定是否进行固件还原。举例来说,当所述监控电路302判断所述处理器110没有成功加载并执行所述第二固件时,可生成一个失败信号。当所述处理器110重启后,先是以第一固件正常的开机。接着通过控制总线304从监控电路302收到所述失败信号,得知前一次升级失败。如果第一固件中配置有一个自动还原固件的功能,可选择性地触发,以进行还原所述第二固件的程序。关于还原的方式,可以是从第一存储器中复制第一固件至第二存储器中,或是从其他用户自订的备份地址读取还原用的文件,再写入所述第二存储器中。
本申请所提出的计算机300,可以是以处理器110和固件为基础所实现的任何应用设备,可包括但不限定于服务器、交换机、嵌入式***,网络监视器,网络存储***,或物联网设备。尤其适合难以人力到场维护,经常需要远端控制的设备。本申请实施例中虽然没有明确说明,但是计算机300中可包括运作必要的其他组件,例如通信模组,网络接口,人机界面,及存储***等。详细功能与架构不在本申请限定范围。
图4是本申请实施例的计算机300启动方法流程图。基于图3的计算机300,操作流程可以简单总结为下列几个步骤。首先在步骤401中,启动计算机300。在步骤403中,当所述计算机300上电或重启后,由程控装置310将一个复位信号#RST通过复位总线306输送给处理器110,同时使监控电路302启动。此时选择器312中的指向功能,依照原厂设定或客制设定,使第一片选通道CS0指向第二存储器204,第二片选通道CS1指向第一存储器202。在步骤405中,处理器110从第二存储器204中读取启动固件然后启动。在步骤407中,判断启动是否成功。在本实施例中,启动成功的判断,对监控电路302而言基本上是一个计时等待的过程。如果处理器110启动成功,监控电路302会在步骤413中被关闭。换句话说,如果处理器110成功地加载执行了固件,会通过控制总线304发出一个命令关闭了监控电路302,或是发出一命令使监控电路302停止计时。相对地,如果处理器110加载固件后的执行状态出了问题,监控电路302不会收到任何命令,最后发生计时溢出。当计时溢出时,即可判定为启动失败,而进行步骤409。
在步骤409中,因监控电路302的计时溢出,确定启动失败。监控电路302通过片选信号#SL通知选择器312,使选择器312中的选择倒转,即第一片选通道CS0指向第一存储器202,第二片选通道CS1指向第二存储器204。同时,程控装置310再次通过复位总线306输出复位信号#RST给处理器110,迫使处理器110重启。在步骤411中,重启后的处理器110,根据选择器312的指向,从第一存储器202读取启动固件并启动。当处理器110成功地加载第一存储器202并执行后,会进步骤413,关闭监控电路302。接着,处理器110可进行步骤415,正常加载操作***和应用软件。
本申请的启动方法,在***升级时,尤其能保障计算机300的正常运作。在一种实施方式中,升级启动固件时,默认的预设原则可以是固定只针对第二存储器204进行文件更新。如此,万一升级失败,计算机300还能退一步从第一存储器202启动,除了保留基本运作的功能,也保留了恢复第二存储器204,或再次升级第二存储器204的机会。
在一些实施例中,处理器110和程控装置310之间可通过一根I2C总线互连,方便***读取启动原因、监控电路302等状态信息,以及关闭监控电路302等操作。例如控制总线304为I2C总线。在一些实施例中,控制总线304也可以是SPI总线或并行总线。在进一步的实作方式中,也可以应用不同种类的总线,来实现处理器110和程控装置310的连接。
在进一步的实施例中,每次计算机300启动成功后,选择器312的指向设定可被储存起来,做为下次启动的参考。存储的设定可运用计算机300中既有的非挥发式存储装置,例如第一存储器或第二存储器中的剩余空间,或是由程控装置310本身内建的非挥发式存储。
在进一步的实施例中,监控电路302的计时溢出阈值是可以通过软件改变的。举例来说,所述阈值可在设定后存储在程控装置310中,供监控电路302开启时即时配置。
在进一步的实施例中,选择器312的指向设定不止是可以通过监控电路302的片选信号#SL而改变,也可以通过软件改变。
与现有的启动固件闪存备份方案比较,本申请具有明显优势:一是支持远程操作。如果启动固件更新失败,操作人员可以远程恢复,不需借助工具,也不必去现场切换跳线帽或开关,操作方便,节省时间和人力物力。另一可靠性高,如果启动固件更新失败,无需人工干预,***可以自动地从备份的启动固件启动。避免了因为***无法启动而导致的灾难性事件的发生。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属本申请的保护之内。

Claims (13)

1.一种计算机,其特征在于,包括:
第一存储器,配置为存储第一固件;
第二存储器,配置为存储第二固件;
程控装置,连接所述第一存储器和所述第二存储器,包括选择器;
其中所述选择器提供指向功能,用于选择所述第一存储器的所述第一固件和所述第二存储器的所述第二固件的其中一个为选定固件;及
处理器,连接所述程控装置,根据所述指向功能,加载并执行所述选定固件;其中:
当所述计算机启动时,所述程控装置判断所述处理器是否成功加载并执行所述选定固件;如果不成功,所述程控装置改变所述指向功能,以选择所述第一存储器的所述第一固件或所述第二存储器的所述第二固件的另一个为所述选定固件,使所述处理器重启后加载并执行不同的所述选定固件。
2.如权利要求1所述的计算机,其特征在于,所述程控装置还包括监控电路,所述程控装置被配置为通过所述监控电路判断所述处理器是否成功加载并执行所述选定固件,其中:
当所述计算机启动时,所述监控电路启动计时;及
当所述监控电路所述计时溢出,发出计时溢出信号,所述程控装置判断所述处理器没有成功加载并执行所述选定固件。
3.如权利要求2所述的计算机,其特征在于,其中:
当所述处理器成功加载并执行所述选定固件,通过芯片级总线关闭所述监控电路,然后加载操作***和应用软件。
4.如权利要求1所述的计算机,其特征在于,其中:
所述处理器包括复位脚,所述复位脚用于触发所述处理器的复位;
所述程控装置连接所述复位脚;及
所述程控装置接收或产生复位信号,并传送所述复位信号至所述复位脚,使所述处理器复位。
5.如权利要求1所述的计算机,其特征在于,其中:
所述选择器为片选选择器,所述指向功能是片选信号。
6.如权利要求1所述的计算机,其特征在于,其中:
所述第二存储器的所述第二固件配置为默认的所述选定固件,当所述计算机进行固件升级时,所述选择器配置为默认的选择所述第二存储器,使所述处理器对所述第二固件进行升级;
当所述第二固件升级完成后,所述处理器重启以加载并执行所述第二固件;及
当所述程控装置判断所述处理器没有成功加载并执行所述第二固件时,所述选择器改变所述指向功能以选择所述第一存储器,使所述处理器重启后加载并执行所述第一固件。
7.如权利要求6所述的计算机,其特征在于,其中:
当所述程控装置判断所述处理器没有成功加载并执行所述第二固件时,生成失败信号,所述处理器重启后收到所述失败信号而触发还原所述第二固件的程序。
8.一种***启动方法,其特征在于,包括:
在第一存储器提供第一固件;
在第二存储器提供第二固件;
提供指向功能,用于选择所述第一存储器的所述第一固件和所述第二存储器的所述第二固件的其中一个为选定固件;
根据所述指向功能的选择结果,加载并执行所述选定固件;
启动时,判断所述选定固件是否被成功加载并执行;及
如果判断所述选定固件没有被成功加载并执行,改变所述指向功能,以选择所述第一存储器的所述第一固件或所述第二存储器的所述第二固件的另一个为所述选定固件,重启后加载并执行不同的所述选定固件。
9.如权利要求8所述的***启动方法,其特征在于,还包括:
通过监控电路判断所述选定固件是否被成功加载并执行,
启动时,使所述监控电路启动计时;及
当所述计时溢出,监控电路发出计时溢出信号;其中,所述计时溢出信号用于判断所述选定固件没有被成功加载并执行。
10.如权利要求9所述的***启动方法,其特征在于,还包括:
当判断所述选定固件被成功加载并执行,关闭所述监控电路,然后加载操作***和应用软件。
11.如权利要求9所述的***启动方法,其特征在于,其中:
所述指向功能是片选信号。
12.如权利要求9所述的***启动方法,其特征在于,还包括:
默认选择所述第二存储器的所述第二固件为所述选定固件,当进行固件升级时,默认对所述第二固件进行升级;
当所述第二固件升级完成后重启以加载并执行所述第二固件;及
当判断所述第二固件没有被成功加载并执行时,改变所述指向功能以选择所述第一存储器,重启后加载并执行所述第一固件。
13.如权利要求12所述的***启动方法,其特征在于,还包括:
当判断所述第二固件没有被成功加载并执行时,生成失败信号,用于在重启后基于所述失败信号触发还原所述第二固件的程序。
CN202111001644.9A 2021-08-30 2021-08-30 计算机和***启动方法 Pending CN114090107A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202111001644.9A CN114090107A (zh) 2021-08-30 2021-08-30 计算机和***启动方法
TW110137232A TWI786871B (zh) 2021-08-30 2021-10-06 電腦和系統啓動方法
US17/890,865 US20230060908A1 (en) 2021-08-30 2022-08-18 Computer system and method for booting up the computer system
JP2022132409A JP2023035930A (ja) 2021-08-30 2022-08-23 コンピュータシステム及びコンピュータシステムのブート方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111001644.9A CN114090107A (zh) 2021-08-30 2021-08-30 计算机和***启动方法

Publications (1)

Publication Number Publication Date
CN114090107A true CN114090107A (zh) 2022-02-25

Family

ID=80296128

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111001644.9A Pending CN114090107A (zh) 2021-08-30 2021-08-30 计算机和***启动方法

Country Status (4)

Country Link
US (1) US20230060908A1 (zh)
JP (1) JP2023035930A (zh)
CN (1) CN114090107A (zh)
TW (1) TWI786871B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023182725A1 (ko) * 2022-03-25 2023-09-28 삼성전자 주식회사 시스템 부팅을 위한 컨트롤러를 포함하는 전자 장치 및 그의 동작 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11984175B2 (en) * 2022-05-25 2024-05-14 Advanced Micro Devices, Inc. Automatic mirrored ROM

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1567270A (zh) * 2003-06-14 2005-01-19 中兴通讯股份有限公司 一种使用多个启动程序存储器的处理器***及其启动方法
CN101169728A (zh) * 2007-11-22 2008-04-30 中兴通讯股份有限公司 双引导启动装置及方法
CN102906710A (zh) * 2011-08-30 2013-01-30 华为技术有限公司 一种BootRom备份方法和装置
CN113032788A (zh) * 2021-03-24 2021-06-25 山东英信计算机技术有限公司 一种计算机***中的固件镜像切换方法、装置及介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6931519B1 (en) * 2000-08-25 2005-08-16 Sun Microsystems, Inc. Method and apparatus for reliable booting device
TWI355608B (en) * 2008-01-30 2012-01-01 Inventec Corp Computer system with dual basic input output syste
TWI411959B (zh) * 2008-03-21 2013-10-11 Asustek Comp Inc 具雙開機程式碼區之電腦系統及其啟動方法
JP5431111B2 (ja) * 2009-10-22 2014-03-05 株式会社日立製作所 情報処理装置及びシステム設定方法
CN103186393A (zh) * 2011-12-30 2013-07-03 鸿富锦精密工业(深圳)有限公司 具有基板管理控制器固件的电子装置及固件加载方法
KR101707266B1 (ko) * 2013-08-29 2017-02-15 엘에스산전 주식회사 Plc에서의 os의 업데이트 장치 및 방법
JP6480751B2 (ja) * 2015-02-18 2019-03-13 パナソニック株式会社 アレイアンテナ装置
US10191811B2 (en) * 2015-08-13 2019-01-29 Quanta Computer Inc. Dual boot computer system
US10489877B2 (en) * 2017-04-24 2019-11-26 Intel Corporation Compute optimization mechanism
TWI682271B (zh) * 2018-11-28 2020-01-11 英業達股份有限公司 伺服器系統
US11169819B2 (en) * 2019-05-01 2021-11-09 Dell Products L.P. Information handling system (IHS) and method to proactively restore firmware components to a computer readable storage device of an IHS
US11704197B2 (en) * 2019-10-22 2023-07-18 Ncr Corporation Basic input/output system (BIOS) device management
CN111008379B (zh) * 2019-11-22 2023-02-28 腾讯科技(深圳)有限公司 电子设备的固件安全检测方法及相关设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1567270A (zh) * 2003-06-14 2005-01-19 中兴通讯股份有限公司 一种使用多个启动程序存储器的处理器***及其启动方法
CN101169728A (zh) * 2007-11-22 2008-04-30 中兴通讯股份有限公司 双引导启动装置及方法
CN102906710A (zh) * 2011-08-30 2013-01-30 华为技术有限公司 一种BootRom备份方法和装置
CN113032788A (zh) * 2021-03-24 2021-06-25 山东英信计算机技术有限公司 一种计算机***中的固件镜像切换方法、装置及介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023182725A1 (ko) * 2022-03-25 2023-09-28 삼성전자 주식회사 시스템 부팅을 위한 컨트롤러를 포함하는 전자 장치 및 그의 동작 방법

Also Published As

Publication number Publication date
TW202207027A (zh) 2022-02-16
JP2023035930A (ja) 2023-03-13
US20230060908A1 (en) 2023-03-02
TWI786871B (zh) 2022-12-11

Similar Documents

Publication Publication Date Title
US8930931B2 (en) Information processing apparatus using updated firmware and system setting method
US7206971B2 (en) Selectable and updatable computer boot memory
US7613937B2 (en) Method and apparatus for utilizing a microcontroller to provide an automatic order and timing power and reset sequencer
US10409617B2 (en) BIOS switching device
TWI633487B (zh) 自動回復基本輸入輸出系統映像檔的方法及電腦系統
US7941658B2 (en) Computer system and method for updating program code
CN108304282B (zh) 一种双bios的控制方法及相关装置
US20110093741A1 (en) Method for recovering bios and computer system thereof
KR100952585B1 (ko) 운영체제(os) 자동복구기능을 갖는 임베디드 시스템 및운영체제 자동복구 방법
JPH11316687A (ja) 自動リカバリ・システム
CN114090107A (zh) 计算机和***启动方法
US7194614B2 (en) Boot swap method for multiple processor computer systems
CN111240753A (zh) 引导程序的加载方法、存储介质及嵌入式终端
US20020095619A1 (en) Fault tolerant/redundant boot ROM reprogramming
CN108345464A (zh) 一种安卓***的启动方法及安卓车机
US5949997A (en) Method and apparatus for programming a microprocessor using an address decode circuit
JP2007122151A (ja) ブート制御装置およびブート制御方法
JPH117382A (ja) ファームウェアのバージョンアップ方法
CN115904512A (zh) 基于cpld实现嵌入式***高可靠启动的方法
CN115129345A (zh) 一种固件升级方法、装置、设备及存储介质
JP2004192329A (ja) プログラム書換え方法および端末装置
CN111078452A (zh) 一种bmc固件镜像恢复方法与装置
EP3798831B1 (en) Resilient upgradable boot loader with power reset
CN115599449A (zh) 处理器启动***及方法
TWI726436B (zh) 電腦基本輸入輸出系統bios修復方法及實施該修復方法之電腦系統

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