一种高可靠性的计算机启动方法
【专利摘要】本申请提供一种高可靠性的计算机启动方法,该方法包括:在计算机上电时,逻辑器件组合在内部启动具有预定时长的定时器;逻辑器件组合在确定自身保存的启动模式为主模式时,控制CPU启动第一区块中的主bootloader;逻辑器件组合在确定自身保存的启动模式为从模式时,控制CPU启动第二区块中的备份bootloader;CPU在确定bootloader启动成功时,通知逻辑器件组合启动成功;逻辑器件组合在收到CPU的启动成功通知时关闭所述定时器,在确定所述定时器超时且当前启动模式为主模式时,将所述启动模式从主模式修改为从模式并将所述CPU复位。本申请可以有效降低单一bootloader损坏带来的可靠性降低的负面影响。
【专利说明】
一种高可靠性的计算机启动方法
【技术领域】
[0001]本申请计算机技术,尤其涉及高可靠性计算机启动方法。
【背景技术】
[0002]随着集成电路的发展,电子产品价格越来越低,智能电子终端越来越多的进入到人们的生活当中,智能手机、平板电脑、机顶盒等,促进人与人之间的交流,同时也丰富着人们的生活。在智能电子产品使用过程中,难以避免要进行系统的升级,来提升系统性能与功倉泛。
[0003]智能产品使用环境千差万别,因此对可靠性有很高的要求。假设设备系统升级过程中出现断电或者升级了错误的系统镜像包等情况,很有可能无法进入系统。此时只能在1300^108(161-( “引导加载器”或“引导加载程序”)下升级系统,这对普通用户来说,操作困难。
[0004]少数智能手机在130於10狀161'下实现了基本的⑶I界面,用户可以比较方便的再次升级系统,但是如果化0丨10^161'都被意外破坏了,此时只能返厂维修。有一些产品在13001:108(161-下实现双系统备份,但是该方案在损坏的情况下不能起到作用,无法自动恢复系统。
[0005]还有一些产品采用两片独立的存储器来分别存放主系统与备份系统,该方案将两片独立的存储器通过一种电子开关分别于0^相连,用户通过操作电子开关(比如智能手机上的一些组合按键)来选择需要将那一片存储器与0^导通,以此来选择进入哪一种系统。该方案硬件实现上成本较高,电路系统复杂,不具备产品成本优势。且该方案每次只能将一个存储器与0^连接,实际上两片存储器中的系统是完全独立的,互相不能备份与恢复,仅仅只能选择从哪一种系统启动而已,如果两个系统都坏了,也只能返回厂家来维修。
【发明内容】
[0006]有鉴于此,本申请提供一种高可靠性的计算机启动方法,其中该计算机包括处理器0^、逻辑器件组合以及存储器,其中所述逻辑器件组合位于处理器以及存储器之间,并通过地址总线分别与处理器以及存储器相连;所述存储器设置有存储主1300丨10狀161~的第一区块、存储有备份1300丨10狀161~的第二区块以及存储操作系统的区块;该方法包括:
[0007]在计算机上电时,逻辑器件组合在内部启动具有预定时长的定时器;
[0008]逻辑器件组合在确定自身保存的启动模式为主模式时,控制0^启动第一区块中的主 13001:103(16:^ ;
[0009]逻辑器件组合在确定自身保存的启动模式为从模式时,控制0^启动第二区块中的备份 13001:103(16:^ ;
[0010]0?11在确定)3001:1021(16:^启动成功时,通知逻辑器件组合启动成功;
[0011]逻辑器件组合在收到0^的启动成功通知时关闭所述定时器,在确定所述定时器超时且当前启动模式为主模式时,将所述启动模式从主模式修改为从模式并将所述0^复位。
[0012]本申请可以有效降低单一 13001:1021(16:^损坏带来的可靠性降低的负面影响
【专利附图】
【附图说明】
[0013]图1是本申请一个例子中计算机系统内部的硬件结构图。
[0014]图2是本申请一个例子中上的区块划分示意图。
[0015]图3是本申请一个例子中启动13001:1021(16:^的流程图。
[0016]图4是本申请另一个例子中启动13001:1021(16:^的流程图。
【具体实施方式】
[0017]请参考图1所示,本申请提供一种具有高可靠性的计算机启动解决方案,该计算机包括处理器(⑶⑴、逻辑器件组合(比如⑶⑶)以及非易失性存储器(比如口“別),一般来说计算机还通常包括内存(未图示),当然该计算机系统还可能包括更多的硬件,这取决于该计算机系统的类型,比如智能手机可能还包括摄像头以及射频等硬件。在本申请中,所述逻辑器件组合可以为单一的逻辑器件,如一个或多个;也可以是其他逻辑器件与必要电子开关的组合,比如或1⑶与少量电子开关的组合;以下将以逻辑器件组合是
为例进行说明,相对??以或1⑶等实现方案来说,成本更加低廉。
[0018]请参考图2,其中所述?的第一区块,存储备份化於10狀161~的第二区块,存储主操作系统(以下简称“系统”)的第三区块以及存储备份系统的第四区块。当然,在一个简单的例子中,存储器上可以只有一个存放主系统的区块。所述位于0^与之间,通过地址总线与0^以及几…!!分别相连,所述0^通过数据总线与相连。请参考图3,该计算机的启动过程包括如下步骤:
[0019]步骤301,在计算机上电时,逻辑器件组合在内部启动具有预定时长的定时器;
[0020]步骤302,逻辑器件组合在确定自身保存的启动模式为主模式时,控制0^启动第一区块中的主 13001:103(16:^ ;
[0021]步骤303,逻辑器件组合在确定自身保存的启动模式为从模式时,控制0^启动第二区块中的备份13001:103(16:^ ;
[0022]步骤304,0?11在确定)3001:1021(16:^启动成功时,通知逻辑器件组合;
[0023]步骤305,逻辑器件组合在收到0^的启动成功通知时关闭所述定时器,在确定所述定时器超时且当前启动模式为主模式时,将所述启动模式从主模式修改为从模式并将所述0^复位。
[0024]请同时参考图3以及图4,以下通过更为详细的例子来对上述技术方案进行说明。在一个例子中,在计算机上电时,逻辑器件组合(以为例)和0^都会复位开始工作。在一个例子中,⑶10内部预设有第一寄存器,这个寄存器的数值可以用来表征启动模式,当然也可以用其他方式来表征启动模式。在这个例子中,在上电时先设置第一寄存器数值,比如设置数值1来表征当前启动模式为主模式,也就是说初始启动模式被设置为主模式。在主模式下,将允许0^从第一区块的起始地址(地址0)读取主130011021(161并运行,比如图2中的0?11-1这段存储空间,即第一区块的起始地址0。0?10此时对地址总线上的信号可以采用透传的处理方式,也就是说这个时候对于0^对的访问是透明的,可以理解为不存在。⑶口从地址0开始运行主的代码。
[0025]0?^运行主13000021(161'可以完成操作系统启动前的一些准备工作,比如硬件初始化等,然后跳转至主系统内核进行系统启动。也就是跳转到第三区块的位置去启动内核。如果主系统启动失败了,130於10狀161'将会跳转到第四区块(如果有)的备用系统内核进行系统启动。关于130於10狀161'如何启动操作系统内核,可以参考现有技术来实现,此处不再--赘述。
[0026]当启动成功时,0?^将会通知启动成功,在一个例子中,这种通知可以通过设置预设的第二寄存器内的数值的方式来实现,比如将第二寄存器的数值设置为1来向表征系统启动成功。而在确定第二寄存器数值被设置为1时,相应地关闭(也可以理解为删除或去使能)所述预先启动的定时器。
[0027]当主)3001:1021(101'不可用(比如发生损坏)的时候,13001: 1(321(101'将无法成功启动,此时第二寄存器的数值将维持在初始设定的数值0 (表征启动失败),定时器在预定时长到达的时候超时。该预定时长可以由开发人员根据系统启动时间来设定,比如说设定为30秒。在定时器超时的时候,将确定无法通过主130011021(161'启动,此时可以通过设置第一寄存器数值的方式将启动模式从主模式修改为从模式,并将所述0^复位,比如通过图1中的这样的控制通道来复位⑶匕事实上,如果当前启动模式已经是从模式,说明使用主13001:1021(16:^启动失败,使用备份1^001:1021(16:^启动也失败,说明两个130於10狀161'都不可用,系统确实无法启动,此时可以结束处理;当然也可以提示用户出错。一般来说两个1300丨10狀161'都不可用的情况非常少见,在定时器超时的时候检查启动模式主要是为了防止反复复位0^形成死循环。
[0028]0?^复位之后按照正常的方式重新访问默认起始地址(地址0)的数据。进行启动模式判断可以确定此时内部保存的启动模式已经从主模式变成了从模式,在从模式下将修改地址总线上的地址信号,使得0^的访问起始地址变更到11处(也就是第二区块的起始地址请参考图1以及图2,在主模式下,0?10将八0?八23地址线上的信号直接透传给存储器;而在从模式下,0?10将八0?八19这20根地址线的信号透传给存储器(八0?八19寻址空间长度为11),将八20这根地址线上的信号强制输出成1,这样0^访问0?11-1的行狀!!的地址空间将被转换为访问11?21-1的地址空间,而11?
21-1的地址空间是保存备份的第二区块,此时启动备份13001:1021(16:^的过程与启动主13001:1021(16:^的过程是一致的,不再--赘述。
[0029]在上述例子中,⑶10控制⑶!)启动主13001:1051(16:^还是备份)3001:1051(16:^主要是通过控制⑶!)访问的起始地址来控制⑶!)运行主13001:1051(16:^或备份)3001:1051(16:1%事实上在其他例子中,可以非常灵活地设定对访问的起始地址的控制。比如说可以将主1300^108(161-存放在其他起始地址不是0的位置,只要改变地址总线上的地址信号使得0^能够访问到该起始地址即可,也可以将备份13001:1021(16:^放在其他位置,其实现原理是一致的。
[0030]从以上的描述中可以看出,本申请可以有效避免一个130於10狀161'不可用无法启动系统的问题,在很大程度上规避了需要返厂维修的麻烦。在另一个例子中,本申请可以进一步提升产品的可靠性。在系统启动成功后,0^可以检查当前保存的启动模式,若当前启动模式为主模式,则说明系统是通过主130於10狀161'启动的,此时⑶口可以检查第一区块上的主13001:1021(16:^与第二区块上备份1^001:1021(16:^是否一致,如果不一致则说明主13001:108(161-很可能已经版本升级了,也就是说相对于备份1^001:1021(16:^来说版本更高,此时?:?11可以将主)3001:1021(16:^复制一份到第二区块来更新备份13001: 。相反,若当前启动模式为从模式,则说明通过主13001:1021(16:^启动失败了,主1^001:1021(16:^很可能已经不可用,此时⑶!)可以将备份13001:1021(161'复制一份到第一区块来恢复主13001:1021(161',保持在下次启动时依然有两个13001:1021(161'可以使用,使得整个系统在这一块仍然具有冗余性。
[0031]以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
【权利要求】
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所述的方法,其特征在于:所述定时器的定时时长不超过I分钟。
9.如权利要求1所述的方法,其特征在于:所述逻辑器件组合为CPLD。
10.如权利要求1所述的方法,其特征在于:所述CPU通过数据总线与所述存储器相连。
【文档编号】G06F11/14GK104461659SQ201410842380
【公开日】2015年3月25日 申请日期:2014年12月30日 优先权日:2014年12月30日
【发明者】杨传龙 申请人:浙江宇视科技有限公司