计算机程序还原模式自动启动控制方法及系统的制作方法

文档序号:6651140阅读:143来源:国知局
专利名称:计算机程序还原模式自动启动控制方法及系统的制作方法
技术领域
本发明是关于一种计算机信息技术,特别是关于一种计算机程序还原模式自动启动控制方法及系统,应用在一计算机平台,且该计算机平台设置有一程序储存模块,例如一闪存,其中例如储存有一BIOS(Basic Input/Output System)程序码或服务器中的BMC(BaseboardManagement Controller)服务单元管控器的程序码,在该程序储存模块中储存的开机控制程序码发生损毁状况无法令该计算机平台正常开机时,可响应此状况自动启动一还原(recovery)程序,还原损毁的程序码。
背景技术
在计算机的应用上,当使用者将计算机平台的电源开启时,计算机平台的内部主机电路的首要初始步骤即为执行一操作系统加载的开机程序(boot procedure),将操作系统(operating system,OS)从硬盘装置加载到主存储器。当操作系统成功地加载到主存储器后,使用者即可通过操作系统提供的使用者操控接口,操控计算机平台执行各种所需的应用功能。在具体实施上,开机程序的计算机程序是通常写入于一非发挥性随机访问存储器(Non-Volatile Random-Access Memory,NVRAM),例如一闪存。
在实际应用时,开机程序的计算机程序码常有可能发生损毁状况导致计算机平台无法正常开机。该问题的一种解决方法是采用所谓的″Boot Block″,它是一小段储存在BIOS芯片中的计算机程序,可在计算机平台因BIOS程序码发生损毁状况无法正常开机时,对发生损毁的BIOS程序码进行一还原程序,借此还原损毁的BIOS程序码,令计算机平台可再正常开机。该还原程序通常是从一储存装置,例如盘片,将一备份的BIOS程序码或其系统映像(system image)重新写入到BIOS芯片。
然而在实际应用时,″Boot Block″程序仍有一些不足之处。举例来说,重新写入进来的BIOS程序码可能仍有损毁状况,但在某些情况下用来查错所用的校验和(checksum)可能仍为正确。原因在于校验和查错方法并非百分之百的精确。这种状况却无法被″Boot Block″程序得知,因此仍还原该有损毁状况无法正常执行的程序码。
此外,在实际应用上,″Boot Block″程序在执行上需要由使用者用人工拨动计算机主板上一组特定的跳线开关(Jumper Switch),借此将BIOS芯片设定到还原模式(recovery mode),令其执行一还原程序。然而此作法较为花费人力和时间,因此颇为不便且费时费力而没有效率。此外,还原模式所用的跳线开关在具体实施上需要应用到BIOS芯片上的GPIO(General Purpose Input/Output)接脚,因此硬件电路的设计便变得较为复杂且需占用更多的布局空间。

发明内容
为克服上述现有技术的缺点,本发明的主要目的在于提供一计算机程序还原模式自动启动控制方法及系统,它可在计算机平台的系统程序发生损毁状况无法正常开机时,完全不通过硬设备(即拨接开关及GPIO接脚)即可自动启动一还原程序还原损毁的系统程序。
本发明的再一目的在于提供一计算机程序还原模式自动启动控制方法及系统,它可在还原后重新写入程序码的校验和(checksum)为正确但仍有损毁的程序码无法正常执行的状况下,也可响应此状况自动启动一还原程序再次还原该无法正常执行的程序码。
本发明的再一目的在于提供一计算机程序还原模式自动启动控制方法及系统,它在实施上可完全不占用计算机主板上的布局空间。
本发明的计算机程序还原模式自动启动控制方法及系统是应用在一计算机平台,且该计算机平台设置有一程序储存模块,例如一闪存,其中例如储存有一BIOS(Basic Input/Output System)程序码、或服务器中的BMC(Baseboard Management Controller)服务单元管控器的程序码,在该程序储存模块中储存的开机控制程序码发生损毁状况无法令该计算机平台正常开机时,可响应此状况自动启动一还原(recovery)程序,借此还原损毁的程序码。
本发明的计算机程序还原模式自动启动控制方法至少包括在该计算机平台每次发生一开机启动事件时,响应地计数当前的开机启动事件的累积总次数;将该开机启动事件累积总次数的计数值与一预定的上限值进行比较;若比较结果为小于,则发出一开机程序启动激活信息;若比较结果为等于,则发出一还原模式激活信息;响应该开机程序启动激活信息,启动一开机程序对该计算机平台执行一开机程序;并进而在该计算机平台成功地完成开机程序之后,将当前开机启动事件累积总次数的计数值归零;以及响应该还原模式激活信息,启动一还原模式控制程序对该程序储存模块进行一还原程序。
在实体架构上,本发明的计算机程序还原模式自动启动控制系统至少包括一开机启动事件响应模块,可在该计算机平台每次发生一开机启动事件时,响应地发出一开机启动次数计数激活信息;一开机启动次数计数模块,可响应该开机启动事件响应模块发出的开机启动次数计数激活信息,计算该计算机平台开机启动的累积总次数;一比较模块,可将该开机启动次数计数模块求得的计数值,与一预定的上限值进行比较;若比较结果为小于,则发出一开机程序启动激活信息;但若比较结果为等于,则发出一还原模式激活信息;一开机程序启动模块,可响应该比较模块发出的开机程序启动激活信息启动一开机程序,对该计算机平台执行一开机程序;并可进而在该计算机平台成功地完成开机程序之后,发出一开机启动次数计数值归零激活信息;一归零设定模块,可响应该开机程序启动模块发出的开机启动次数计数值归零激活信息,将该开机启动次数计数模块的计数值重新设定为初始的零值;以及一还原模式启动模块,可响应该比较模块发出的还原模式激活信息启动一还原模式控制程序,对该程序储存模块进行一还原程序。
本发明的计算机程序还原模式自动启动控制方法及系统可持续监测该计算机平台开机失败的总次数,并在此开机失败总次数达到一默认值(例如为3)时,在下一次再度开机时自动启动一还原程序。本发明在计算机平台开机程序发生损毁状况时,完全通过计算机程序,而是人为方式操控硬设备(即拨接开关及GPIO接脚)即可启动还原模式;并可在加载的程序码的校验和(checksum)为正确无误但却无法正常执行的状况下,也可响应此状况启动还原程序;且在具体实施上可完全不必占用到计算机主板上的布局空间。


图1是本发明的计算机程序还原模式自动启动控制系统的应用架构示意图;图2是本发明的计算机程序还原模式自动启动控制系统的对象导向组件模型的基本架构示意图。
具体实施例方式
实施例以下即配合附图,详细说明本发明的计算机程序还原模式自动启动控制方法及系统的实施例。
图1显示本发明的计算机程序还原模式自动启动控制系统(如标号100所指的方块)的应用方式。如图所示,本发明的计算机程序还原模式自动启动控制系统100在实际应用上是搭载到一计算机平台10,且该计算机平台10设置有一程序储存模块20,例如一闪存,其中例如储存有一BIOS(Basic Input/Output System)程序码或服务器中的BMC(Baseboard Management Controller)服务单元管控器的程序码,在该程序储存模块20中所储存的程序码发生损毁状况、该计算机平台10无法正常开机时,可响应此状况自动启动一还原(recovery)程序,以此还原损毁的程序码,令该计算机平台10可再正常开机。在具体实施上,程序储存模块20中储存的BIOS/BMC程序码通常会包括一开机程序21和一还原模式控制程序22。
如图2所示,本发明的计算机程序还原模式自动启动控制系统100的对象导向组件模型(object-oriented component model)的基本架构至少包括(A)一开机启动事件响应模块110;(B)一开机启动次数计数模块120;(C)一比较模块130;(D)一开机程序启动模块140;(E)一归零设定模块150;以及(F)一还原模式启动模块160。在具体实施上,本发明的计算机程序还原模式自动启动控制系统100中的上述所有模块完全以计算机程序实现,并将此计算机程序例如以一附加模块(add-onmodule)的方式搭载到该计算机平台10的程序储存模块20中所储存的BIOS/BMC系统程序中。
以下分别说明本发明的计算机程序还原模式自动启动控制系统100中的各个模块的个别属性及功能。
开机启动事件响应模块110可在该计算机平台10每次发生一开机启动事件201时,也就是使用者按下该计算机平台10的电源开关或在电源开启后按下一重置键(reset)时,回应地发出一开机启动次数计数激活信息到开机启动次数计数模块120。
开机启动次数计数模块120中设置有一开机启动次数计数缓存器121(其中计数值例如以变量PowerCycleCnt表示),且该开机启动次数计数缓存器121的计数值PowerCycleCnt在初始时被设定为零值(0)。在实际操作时,该开机启动次数计数模块120可响应上述开机启动事件响应模块110发出的每一次开机启动次数计数激活信息,将该开机启动次数计数缓存器121的计数值PowerCycleCnt加1,借此累计该计算机平台10的开机启动总次数。
比较模块130可将上述开机启动次数计数模块120求得的当前计数值PowerCycleCnt,与一预定的上限值(其例如以常数PowerCycleLimit表示,且其值例如预设为4;但此上限值的设定是一随意性的设计选择,因此也可以是3、5或更大)相比。若比较结果是小于(即PowerCycleCnt<PowerCycleLimit),则比较模块130即发出一开机程序启动激活信息至开机程序启动模块140;反之,若比较结果为等于(即PowerCycleCnt=PowerCycleLimit),则比较模块130即发出一还原模式启动激活信息至还原模式启动模块160。
开机程序启动模块140可响应上述比较模块130发出的开机程序启动激活信息,启动该程序储存模块20中的开机程序21,执行一操作系统加载的开机程序(boot procedure)。若此开机程序成功地完成开机,该计算机平台10可正常运行,则开机程序启动模块140将发出一开机启动次数计数值归零的激活信息至归零设定模块150。
归零设定模块150可响应上述开机程序启动模块140发出的开机启动次数计数值归零激活信息,将该开机启动次数计数缓存器121的计数值PowerCycleCnt重新设定到初始的零值(即PowerCycleCnt=0)。
还原模式启动模块160可响应上述比较模块130发出的还原模式启动激活信息(此信息的发出即代表开机程序21发生损毁状况,计算机平台10无法正常开机),启动该程序储存模块20中的还原模式控制程序22,执行一还原模式(recovery mode)的操作程序,借此还原该损毁的开机程序21。
以下利用2个应用实例说明本发明的计算机程序还原模式自动启动控制系统100,实际应用在本发明的计算机程序还原模式自动启动控制方法时的操作方式。第1个应用实例中,假设程序储存模块20中的开机程序21未发生损毁状况;第2个应用实例中,则假设开机程序21发生损毁状况。
请同时参阅图1和图2,第1个应用实例是,当使用者要使用该计算机平台10时,只要开启计算机平台10电源,发出一开机启动事件201,即可同时启动本发明的计算机程序还原模式自动启动控制系统100。首先,开机启动事件响应模块110将响应此开机启动事件201,发出一开机启动次数计数激活信息至开机启动次数计数模块120,开机启动次数计数模块120将开机启动次数计数缓存器121的计数值PowerCycleCnt加1,计算该计算机平台10开机启动的总次数。接着比较模块130会将开机启动次数计数缓存器121当前的计数值PowerCycleCnt=1,与预定的上限值PowerCycleLimit=4进行比较。由于比较结果是PowerCycleCnt<PowerCycleLimit,因此比较模块130发出一开机程序启动激活信息至开机程序启动模块140,开机程序启动模块140响应地启动开机程序21执行一操作系统加载的开机程序。
若上述开机程序成功地令该计算机平台10可正常运行,则开机程序启动模块140将响应地发出一开机启动次数计数值归零激活信息至归零设定模块150,归零设定模块150响应地将该开机启动次数计数缓存器121的计数值PowerCycleCnt重新设定至初始的零值(0)。反之,若开机程序21在执行后无法令计算机平台10正常运行(程序码虽然没有损毁,可能因内部电路传输错误或噪声干扰引起数据传输错误状况),则使用者可再重新启动计算机平台10,发出第2次开机启动事件201,开机启动次数计数模块120将其开机启动次数计数缓存器121的计数值PowerCycleCnt加1而成为2;接着比较模块130将当前开机启动总次数PowerCycleCnt=2,与预定的上限值PowerCycleLimit=4进行比较。由于比较结果仍是PowerCycleCnt<PowerCycleLimit,因此开机程序启动模块140将再一次启动开机程序21执行一开机程序。若程序码未发生损毁状况但因传输错误使计算机平台10无法正常开机,通常可在多次重复开机后(例如4次后)获得正常开机的结果,因此若开机程序21未发生损毁状况,则通常可在PowerCycleCnt=4之前,计算机平台10开机成功。
请再同时参阅图1和图2,第2个应用实例是假设开机程序21发生损毁状况,当使用者开启计算机平台10电源发出一开机启动事件201时,即可首先令开机启动事件响应模块110响应地发出一开机启动次数计数激活信息至开机启动次数计数模块120,开机启动次数计数模块120将开机启动次数计数缓存器121的计数值PowerCycleCnt加1;接着比较模块130将当前开机启动总次数PowerCycleCnt=1,与预定的上限值PowerCycleLimit=4进行比较。由于比较结果是PowerCycleCnt<PowerCycleLimit,因此比较模块130即发出一开机程序启动激活信息至开机程序启动模块140,令开机程序启动模块140响应地启动开机程序21执行一操作系统加载的开机程序。由于开机程序21发生损毁状况,因此计算机平台10无法成功地开机,使得PowerCycleCnt不会被归零而保持其当前的设定值(即1)。在此情况下,使用者可再重新启动计算机平台10发出第2次开机启动事件201,开机启动次数计数模块120将开机启动次数计数缓存器121的计数值PowerCycleCnt加1而成为2;接着比较模块130将当前开机启动总次数PowerCycleCnt=2,与预定的上限值PowerCycleLimit=4进行比较。由于比较结果仍为PowerCycleCnt<PowerCycleLimit,因此开机程序启动模块140再一次令开机程序21执行一开机程序。但由于开机程序21发生损毁状况,因此第2次仍无法正常开机成功。接着第3次开机启动事件201也同样地无法开机成功。在使用者第4次发出开机启动事件201时PowerCycleCnt=4,即PowerCycleCnt=PowerCycleLimit,使比较模块130发出一还原模式起动激活信息至还原模式启动模块160,还原模式启动模块160响应地启动还原模式控制程序22,对损毁的开机程序21执行一还原程序,借此还原该损毁的开机程序21。
总而言之,本发明提供了一计算机程序还原模式自动启动控制方法及系统,对一计算机平台提供一计算机程序还原模式自动启动控制功能;本发明呆持续监测该计算机平台的开机失败的总次数,并在此开机失败总次数达到一默认值(例如为3)时,在下一次再度开机时自动启动一还原程序。本发明可在计算机平台的开机程序发生损毁状况时,完全通过计算机程序,不必采用人为方式操控硬设备(即拨接开关及GPIO接脚)即可启动还原模式;并可在加载程序码的校验和(checksum)为正确无误但却无法正常执行的状况下,也可响应此状况启动还原程序;且在具体实施上可完全不占用计算机主板上的布局空间。本发明因此具有更佳的进步性及实用性。
权利要求
1.一计算机程序还原模式自动启动控制方法,应用在一计算机平台,且该计算机平台设置有一程序储存模块,在该程序储存模块发生一程序损毁状况时,自动启动一还原程序,其特征在于,该计算机程序还原模式自动启动控制方法至少包括在该计算机平台每次发生一开机启动事件时,响应地计数当前的开机启动事件的累积总次数;将该开机启动事件累积总次数的计数值与一预定的上限值进行比较;若比较结果为小于,则发出一开机程序启动激活信息;若比较结果为等于,则发出一还原模式激活信息;响应该开机程序启动激活信息,启动一开机程序对该计算机平台执行一开机程序;并进而在该计算机平台成功地完成开机程序之后,将当前开机启动事件累积总次数的计数值归零;以及响应该还原模式激活信息,启动一还原模式控制程序对该程序储存模块进行一还原程序。
2.如权利要求1所述的计算机程序还原模式自动启动控制方法,其特征在于,该程序储存模块是一闪存。
3.如权利要求1所述的计算机程序还原模式自动启动控制方法,其特征在于,该程序储存模块是一个人计算机平台中的BIOS程序储存模块。
4.如权利要求1所述的计算机程序还原模式自动启动控制方法,其特征在于,该程序储存模块是一服务器中的BMC服务单元管控程序储存模块。
5.如权利要求1所述的计算机程序还原模式自动启动控制方法,其特征在于,该计算机程序还原模式自动启动控制方法是实施成一计算机程序,并将此计算机程序整合到该程序储存模块。
6.一计算机程序还原模式自动启动控制系统,可搭配到一计算机平台,且该计算机平台设置有一程序储存模块,在该程序储存模块发生一程序损毁状况时,自动启动一还原程序,其特征在于,该计算机程序还原模式自动启动控制系统至少包括一开机启动事件响应模块,可在该计算机平台每次发生一开机启动事件时,响应地发出一开机启动次数计数激活信息;一开机启动次数计数模块,可响应该开机启动事件响应模块发出的开机启动次数计数激活信息,计算该计算机平台开机启动的累积总次数;一比较模块,可将该开机启动次数计数模块求得的计数值,与一预定的上限值进行比较;若比较结果为小于,则发出一开机程序启动激活信息;但若比较结果为等于,则发出一还原模式激活信息;一开机程序启动模块,可响应该比较模块发出的开机程序启动激活信息启动一开机程序,对该计算机平台执行一开机程序;并可进而在该计算机平台成功地完成开机程序之后,发出一开机启动次数计数值归零激活信息;一归零设定模块,可响应该开机程序启动模块发出的开机启动次数计数值归零激活信息,将该开机启动次数计数模块的计数值重新设定为初始的零值;以及一还原模式启动模块,可响应该比较模块发出的还原模式激活信息启动一还原模式控制程序,对该程序储存模块进行一还原程序。
7.如权利要求6所述的计算机程序还原模式自动启动控制系统,其特征在于,该程序储存模块是一闪存。
8.如权利要求6所述的计算机程序还原模式自动启动控制系统,其特征在于,该程序储存模块是一个人计算机平台中的BIOS程序储存模块。
9.如权利要求6所述的计算机程序还原模式自动启动控制系统,其特征在于,该程序储存模块是一服务器中的BMC服务单元管控程序储存模块。
10.如权利要求6所述的计算机程序还原模式自动启动控制系统,其特征在于,该计算机程序还原模式自动启动控制系统是实施成一计算机程序,并将此计算机程序整合到该程序储存模块。
全文摘要
一计算机程序还原模式自动启动控制方法及系统,搭载至一计算机平台,对该提供一计算机程序还原模式自动启动控制功能;本发明的计算机程序还原模式自动启动控制系统至少包括开机启动事件响应模块、开机启动次数计数模块、比较模块、开机程序启动模块、归零设定模块以及还原模式启动模块;本发明可持续监测该计算机平台开机失败的总次数,在开机失败总次数达到一默认值时,自动启动一还原程序;本发明在开机程序发生损毁状况或加载程序码校验和正确无误却无法开机的状况下,完全通过计算机程序而不用人为方式操控硬设备即可启动还原模式,在实施上完全不占计算机主板上的空间。
文档编号G06F9/445GK1979435SQ200510127489
公开日2007年6月13日 申请日期2005年12月9日 优先权日2005年12月9日
发明者施温信 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1