CN104461659A - 一种高可靠性的计算机启动方法 - Google Patents
一种高可靠性的计算机启动方法 Download PDFInfo
- Publication number
- CN104461659A CN104461659A CN201410842380.3A CN201410842380A CN104461659A CN 104461659 A CN104461659 A CN 104461659A CN 201410842380 A CN201410842380 A CN 201410842380A CN 104461659 A CN104461659 A CN 104461659A
- Authority
- CN
- China
- Prior art keywords
- bootloader
- mode
- cpu
- block
- logical device
- 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
Links
Landscapes
- Retry When Errors Occur (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种高可靠性的计算机启动方法,该方法包括:在计算机上电时,逻辑器件组合在内部启动具有预定时长的定时器;逻辑器件组合在确定自身保存的启动模式为主模式时,控制CPU启动第一区块中的主bootloader;逻辑器件组合在确定自身保存的启动模式为从模式时,控制CPU启动第二区块中的备份bootloader;CPU在确定bootloader启动成功时,通知逻辑器件组合启动成功;逻辑器件组合在收到CPU的启动成功通知时关闭所述定时器,在确定所述定时器超时且当前启动模式为主模式时,将所述启动模式从主模式修改为从模式并将所述CPU复位。本申请可以有效降低单一bootloader损坏带来的可靠性降低的负面影响。
Description
技术领域
本申请计算机技术,尤其涉及高可靠性计算机启动方法。
背景技术
随着集成电路的发展,电子产品价格越来越低,智能电子终端越来越多的进入到人们的生活当中,智能手机、平板电脑、机顶盒等,促进人与人之间的交流,同时也丰富着人们的生活。在智能电子产品使用过程中,难以避免要进行系统的升级,来提升系统性能与功能。
智能产品使用环境千差万别,因此对可靠性有很高的要求。假设设备系统升级过程中出现断电或者升级了错误的系统镜像包等情况,很有可能无法进入系统。此时只能在bootloader(“引导加载器”或“引导加载程序”)下升级系统,这对普通用户来说,操作困难。
少数智能手机在bootloader下实现了基本的GUI界面,用户可以比较方便的再次升级系统,但是如果bootloader都被意外破坏了,此时只能返厂维修。有一些产品在bootloader下实现双系统备份,但是该方案在bootloader损坏的情况下不能起到作用,无法自动恢复系统。
还有一些产品采用两片独立的存储器来分别存放主系统与备份系统,该方案将两片独立的存储器通过一种电子开关分别于CPU相连,用户通过操作电子开关(比如智能手机上的一些组合按键)来选择需要将那一片存储器与CPU导通,以此来选择进入哪一种系统。该方案硬件实现上成本较高,电路系统复杂,不具备产品成本优势。且该方案每次只能将一个存储器与CPU连接,实际上两片存储器中的系统是完全独立的,互相不能备份与恢复,仅仅只能选择从哪一种系统启动而已,如果两个系统都坏了,也只能返回厂家来维修。
发明内容
有鉴于此,本申请提供一种高可靠性的计算机启动方法,其中该计算机包括处理器CPU、逻辑器件组合以及存储器,其中所述逻辑器件组合位于处理器以及存储器之间,并通过地址总线分别与处理器以及存储器相连;所述存储器设置有存储主bootloader的第一区块、存储有备份bootloader的第二区块以及存储操作系统的区块;该方法包括:
在计算机上电时,逻辑器件组合在内部启动具有预定时长的定时器;
逻辑器件组合在确定自身保存的启动模式为主模式时,控制CPU启动第一区块中的主bootloader;
逻辑器件组合在确定自身保存的启动模式为从模式时,控制CPU启动第二区块中的备份bootloader;
CPU在确定bootloader启动成功时,通知逻辑器件组合启动成功;
逻辑器件组合在收到CPU的启动成功通知时关闭所述定时器,在确定所述定时器超时且当前启动模式为主模式时,将所述启动模式从主模式修改为从模式并将所述CPU复位。
本申请可以有效降低单一bootloader损坏带来的可靠性降低的负面影响
附图说明
图1是本申请一个例子中计算机系统内部的硬件结构图。
图2是本申请一个例子中FLASH上的区块划分示意图。
图3是本申请一个例子中启动bootloader的流程图。
图4是本申请另一个例子中启动bootloader的流程图。
具体实施方式
请参考图1所示,本申请提供一种具有高可靠性的计算机启动解决方案,该计算机包括处理器(CPU)、逻辑器件组合(比如CPLD)以及非易失性存储器(比如FLASH),一般来说计算机还通常包括内存(未图示),当然该计算机系统还可能包括更多的硬件,这取决于该计算机系统的类型,比如智能手机可能还包括摄像头以及射频等硬件。在本申请中,所述逻辑器件组合可以为单一的逻辑器件,如一个或多个CPLD;也可以是其他逻辑器件与必要电子开关的组合,比如FPGA或MCU与少量电子开关的组合;以下将以逻辑器件组合是CPLD为例进行说明,CPLD相对FPGA或MCU等实现方案来说,成本更加低廉。
请参考图2,其中所述FLASH包括四个分区,分别为存储主bootloader的第一区块,存储备份bootloader的第二区块,存储主操作系统(以下简称“系统”)的第三区块以及存储备份系统的第四区块。当然,在一个简单的例子中,存储器上可以只有一个存放主系统的区块。所述CPLD位于CPU与FLASH之间,通过地址总线与CPU以及FLASH分别相连,所述CPU通过数据总线与FLASH相连。请参考图3,该计算机的启动过程包括如下步骤:
步骤301,在计算机上电时,逻辑器件组合在内部启动具有预定时长的定时器;
步骤302,逻辑器件组合在确定自身保存的启动模式为主模式时,控制CPU启动第一区块中的主bootloader;
步骤303,逻辑器件组合在确定自身保存的启动模式为从模式时,控制CPU启动第二区块中的备份bootloader;
步骤304,CPU在确定bootloader启动成功时,通知逻辑器件组合;
步骤305,逻辑器件组合在收到CPU的启动成功通知时关闭所述定时器,在确定所述定时器超时且当前启动模式为主模式时,将所述启动模式从主模式修改为从模式并将所述CPU复位。
请同时参考图3以及图4,以下通过更为详细的例子来对上述技术方案进行说明。在一个例子中,在计算机上电时,逻辑器件组合(以CPLD为例)和CPU都会复位开始工作。在一个例子中,CPLD内部预设有第一寄存器,这个寄存器的数值可以用来表征启动模式,当然也可以用其他方式来表征启动模式。在这个例子中,CPLD在上电时先设置第一寄存器数值,比如设置数值1来表征当前启动模式为主模式,也就是说初始启动模式被设置为主模式。在主模式下,CPLD将允许CPU从第一区块的起始地址(地址0)读取主bootloader并运行,比如图2中的0~1M-1这段存储空间,即第一区块的起始地址0。CPLD此时对地址总线上的信号可以采用透传的处理方式,也就是说这个时候CPLD对于CPU对FLASH的访问是透明的,可以理解为不存在。CPU从地址0开始运行主bootloader的代码。
CPU运行主bootloader可以完成操作系统启动前的一些准备工作,比如硬件初始化等,然后跳转至主系统内核进行系统启动。也就是跳转到第三区块的位置去启动内核。如果主系统启动失败了,bootloader将会跳转到第四区块(如果有)的备用系统内核进行系统启动。关于bootloader如何启动操作系统内核,可以参考现有技术来实现,此处不再一一赘述。
当CPU启动bootloader成功时,CPU将会通知CPLD启动成功,在一个例子中,这种通知可以通过设置预设的第二寄存器内的数值的方式来实现,比如将第二寄存器的数值设置为1来向CPLD表征系统启动成功。而CPLD在确定第二寄存器数值被设置为1时,相应地关闭(也可以理解为删除或去使能)所述预先启动的定时器。
当主bootloader不可用(比如发生损坏)的时候,bootloader将无法成功启动,此时第二寄存器的数值将维持在初始设定的数值0(表征启动失败),定时器在预定时长到达的时候超时。该预定时长可以由开发人员根据系统启动时间来设定,比如说设定为30秒。在定时器超时的时候,CPLD将确定无法通过主bootloader启动,此时CPLD可以通过设置第一寄存器数值的方式将启动模式从主模式修改为从模式,并将所述CPU复位,比如通过图1中的RST_CPU_N这样的控制通道来复位CPU。事实上,如果当前启动模式已经是从模式,说明使用主bootloader启动失败,使用备份bootloader启动也失败,说明两个bootloader都不可用,系统确实无法启动,此时可以结束处理;当然也可以提示用户出错。一般来说两个bootloader都不可用的情况非常少见,在定时器超时的时候检查启动模式主要是为了防止反复复位CPU形成死循环。
CPU复位之后按照正常的方式重新访问默认起始地址(地址0)的数据。CPLD进行启动模式判断可以确定此时CPLD内部保存的启动模式已经从主模式变成了从模式,在从模式下CPLD将修改地址总线上的地址信号,使得CPU的访问起始地址变更到1M处(也就是第二区块的起始地址)。请参考图1以及图2,在主模式下,CPLD将A0~A23地址线上的信号直接透传给存储器;而在从模式下,CPLD将A0~A19这20根地址线的信号透传给存储器(A0~A19寻址空间长度为1M),将A20这根地址线上的信号强制输出成1,这样CPU访问0~1M-1的flash的地址空间将被CPLD转换为访问1M~2M-1的地址空间,而1M~2M-1的地址空间是保存备份bootloader的第二区块,此时CPU将启动备份bootloader。CPU启动备份bootloader的过程与启动主bootloader的过程是一致的,不再一一赘述。
在上述例子中,CPLD控制CPU启动主bootloader还是备份bootloader主要是通过控制CPU访问的起始地址来控制CPU运行主bootloader或备份bootloader。事实上在其他例子中,可以非常灵活地设定CPLD对CPU访问的起始地址的控制。比如说可以将主bootloader存放在其他起始地址不是0的位置,只要改变地址总线上的地址信号使得CPU能够访问到该起始地址即可,也可以将备份bootloader放在其他位置,其实现原理是一致的。
从以上的描述中可以看出,本申请可以有效避免一个bootloader不可用无法启动系统的问题,在很大程度上规避了需要返厂维修的麻烦。在另一个例子中,本申请可以进一步提升产品的可靠性。在系统启动成功后,CPU可以检查CPLD当前保存的启动模式,若当前启动模式为主模式,则说明系统是通过主bootloader启动的,此时CPU可以检查第一区块上的主bootloader与第二区块上备份bootloader是否一致,如果不一致则说明主bootloader很可能已经版本升级了,也就是说相对于备份bootloader来说版本更高,此时CPU可以将主bootloader复制一份到第二区块来更新备份bootloader。相反,若当前启动模式为从模式,则说明通过主bootloader启动失败了,主bootloader很可能已经不可用,此时CPU可以将备份bootloader复制一份到第一区块来恢复主bootloader,保持在下次启动时依然有两个bootloader可以使用,使得整个系统在这一块仍然具有冗余性。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种高可靠性的计算机启动方法,其中该计算机包括处理器CPU、逻辑器件组合以及存储器,其中所述逻辑器件组合位于处理器以及存储器之间,并通过地址总线分别与处理器以及存储器相连;所述存储器设置有存储主bootloader的第一区块、存储有备份bootloader的第二区块以及存储操作系统的区块;该方法包括:
在计算机上电时,逻辑器件组合在内部启动具有预定时长的定时器;
逻辑器件组合在确定自身保存的启动模式为主模式时,控制CPU启动第一区块中的主bootloader;
逻辑器件组合在确定自身保存的启动模式为从模式时,控制CPU启动第二区块中的备份bootloader;
CPU在确定bootloader启动成功时,通知逻辑器件组合启动成功;
逻辑器件组合在收到CPU的启动成功通知时关闭所述定时器,在确定所述定时器超时且当前启动模式为主模式时,将所述启动模式从主模式修改为从模式并将所述CPU复位。
2.如权利要求1所述的方法,其特征在于:所述逻辑器件组合在计算机上电时将自身保存的启动模式设置为主模式。
3.如权利要求1所述的方法,其特征在于:所述逻辑器件组合控制CPU运行第二区块中的备份bootloader的方式具体为:修改地址总线上的地址信号以将CPU访问存储器的起始地址变更为第二区块的起始地址。
4.如权利要求1所述的方法,其特征在于:控制CPU启动第一区块中的主bootloader的过程为:将地址总线上的地址信号透传至所述存储器。
5.如权利要求1所述的方法,其特征在于:还包括:
逻辑器件组合在确定所述定时器超时且当前启动模式为从模式时,结束当前流程。
6.如权利要求1所述的方法,其特征在于:还包括:
CPU在确定bootloader启动成功时,检查逻辑器件组合保存的当前启动模式是主模式还是从模式,若当前启动模式为从模式,则使用备份bootloader更新第一区块中的主bootloader,若当前启动模式为主模式,在主bootloader版本更高的情况下,使用主bootloader更新第二区块中的备份bootloader。
7.如权利要求1所述的方法,其特征在于:所述保存操作系统的区块包括存储有主操作系统的第三区块以及存储有备份操作系统的第四区块。
8.如权利要求1所述的方法,其特征在于:所述定时器的定时时长不超过1分钟。
9.如权利要求1所述的方法,其特征在于:所述逻辑器件组合为CPLD。
10.如权利要求1所述的方法,其特征在于:所述CPU通过数据总线与所述存储器相连。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410842380.3A CN104461659B (zh) | 2014-12-30 | 2014-12-30 | 一种高可靠性的计算机启动方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410842380.3A CN104461659B (zh) | 2014-12-30 | 2014-12-30 | 一种高可靠性的计算机启动方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104461659A true CN104461659A (zh) | 2015-03-25 |
CN104461659B CN104461659B (zh) | 2017-11-03 |
Family
ID=52907764
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410842380.3A Active CN104461659B (zh) | 2014-12-30 | 2014-12-30 | 一种高可靠性的计算机启动方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104461659B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105589713A (zh) * | 2015-09-22 | 2016-05-18 | 杭州华三通信技术有限公司 | 电子设备和用于电子设备的启动方法 |
CN111209141A (zh) * | 2019-12-30 | 2020-05-29 | 晶晨半导体(深圳)有限公司 | 运用于系统迭代的双系统切换方法和装置 |
CN113032032A (zh) * | 2021-05-21 | 2021-06-25 | 武汉深之度科技有限公司 | 一种系统管理方法、装置、计算设备及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101256527A (zh) * | 2008-03-12 | 2008-09-03 | 中兴通讯股份有限公司 | 一种引导程序的备份方法及其备份装置 |
US20090013167A1 (en) * | 2007-07-02 | 2009-01-08 | Asustek Computer Inc. | Computer device, method for booting the same, and booting module for the same |
CN101499909A (zh) * | 2008-02-03 | 2009-08-05 | 中兴通讯股份有限公司 | 单板启动系统和方法 |
CN102135927A (zh) * | 2011-04-29 | 2011-07-27 | 杭州华三通信技术有限公司 | 一种基于nand flash的系统引导方法和装置 |
-
2014
- 2014-12-30 CN CN201410842380.3A patent/CN104461659B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090013167A1 (en) * | 2007-07-02 | 2009-01-08 | Asustek Computer Inc. | Computer device, method for booting the same, and booting module for the same |
CN101499909A (zh) * | 2008-02-03 | 2009-08-05 | 中兴通讯股份有限公司 | 单板启动系统和方法 |
CN101256527A (zh) * | 2008-03-12 | 2008-09-03 | 中兴通讯股份有限公司 | 一种引导程序的备份方法及其备份装置 |
CN102135927A (zh) * | 2011-04-29 | 2011-07-27 | 杭州华三通信技术有限公司 | 一种基于nand flash的系统引导方法和装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105589713A (zh) * | 2015-09-22 | 2016-05-18 | 杭州华三通信技术有限公司 | 电子设备和用于电子设备的启动方法 |
CN111209141A (zh) * | 2019-12-30 | 2020-05-29 | 晶晨半导体(深圳)有限公司 | 运用于系统迭代的双系统切换方法和装置 |
CN111209141B (zh) * | 2019-12-30 | 2023-10-20 | 晶晨半导体(深圳)有限公司 | 运用于系统迭代的双系统切换方法和装置 |
CN113032032A (zh) * | 2021-05-21 | 2021-06-25 | 武汉深之度科技有限公司 | 一种系统管理方法、装置、计算设备及可读存储介质 |
CN113032032B (zh) * | 2021-05-21 | 2022-03-29 | 武汉深之度科技有限公司 | 一种系统管理方法、装置、计算设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104461659B (zh) | 2017-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10353779B2 (en) | Systems and methods for detection of firmware image corruption and initiation of recovery | |
CN103425506B (zh) | 关机方法及开机方法及通信终端 | |
CN109542744B (zh) | 检测终端开机异常问题的方法、装置、存储介质及终端 | |
US20110283274A1 (en) | Firmware image update and management | |
CN108432219A (zh) | 终端设备开机失败的恢复方法和终端设备 | |
US20100235617A1 (en) | System recovery method and embedded system with automatic recovery function | |
CN105745617A (zh) | 用于预启动固件更新的选择性功率管理 | |
CN109905770B (zh) | 终端开机启动方法、装置及终端 | |
CN113900699B (zh) | 一种系统升级方法和电子设备 | |
US10387257B1 (en) | Systems and methods for reliable redundant management controller firmware update | |
CN110597533A (zh) | 一种fpga板卡程序更新系统及方法 | |
CN104881312A (zh) | 一种fpga逻辑代码可迭代升级的方法及电路 | |
CN103514014A (zh) | 一种嵌入式终端设备引导系统的设计方法 | |
CN104461659A (zh) | 一种高可靠性的计算机启动方法 | |
CN103902336A (zh) | 操作系统启动控制的方法及装置 | |
CN117130672A (zh) | 服务器启动流程控制方法、系统、终端及存储介质 | |
CN113867807A (zh) | 一种缩短服务器上电时间的方法、装置、设备和存储介质 | |
CN105825126A (zh) | 一种文件保护方法及装置 | |
CN111143131B (zh) | 对操作系统进行备份热启动的系统 | |
CN104765631A (zh) | 一种移动终端的应用程序恢复方法及装置 | |
CN103890713A (zh) | 用于管理处理系统内的寄存器信息的装置及方法 | |
US20140181496A1 (en) | Method, Apparatus and Processor for Reading Bios | |
CN109634782B (zh) | 一种系统健壮性的检测方法、装置、存储介质及终端 | |
CN104834574B (zh) | 一种解决系统分区损坏的方法及装置 | |
CN113890930A (zh) | 一种基于蓝牙双平台直连切换的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |