具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
互补金属氧化物半导体存储器(Complementary Metal Oxide Semiconductor,CMOS)是主机上的一块可读写的RAM芯片,被广泛应用于保存主机的硬件配置和操作人员设定的各类系统参数。一般情况下,当主机运行过程中遇到开机不停重启或死机等故障时,往往通过手动短接主机内的CLR_CMOS跳帽,以达到清除CMOS内存储的数据的目的,从而修复主机运行过程中发生的故障。
本发明实施例提供的用于主机运行过程的故障处理方法主要是在运行过程出现故障后,通过自动清除CMOS内存储数据修复主机,此外还可以识别出发生故障的逻辑阶段,从而方便工程师分析和修复出现故障的逻辑阶段。
图1示出了本发明实施例提供的用于主机运行过程的故障处理方法的实现流程,详述如下:
在S101中,将运行过程分为多个逻辑阶段,并为各个逻辑阶段设定预期执行时间以及为各个逻辑阶段执行故障设定对应的异常标记。
可选地,主机的运行过程可以分为多个逻辑阶段,例如:SEC阶段、PEI阶段、DXE阶段、BDS阶段以及TSL阶段,其中SEC阶段用于对系统进行安全认证、CPU自检、更新CPU代码、初始化CPU Cache作为BIOS初始阶段的临时存储器和C程序临时堆栈;PEI阶段用于初始化内存控制器和内存,初始化基本芯片的基本功能;DXE阶段用于初始化硬件;BDS阶段用于选择合适的外部存储器以加载操作系统加载器;TSL阶段用于加载系统的程序,如板卡检测程序、收发邮件和即时通讯的程序等。
可以理解地,对于运行过程中逻辑阶段的划分不仅仅限于上述的分类方法,可以根据具体项目的侧重点,将运行过程以不同的方式进行划分。
在本发明实施例中,为各个逻辑阶段设定预期执行时间。每个逻辑阶段对应的预期执行时间是根据大量的实验获得的每个逻辑阶段正常运行的最大时间。可以理解地,预期执行时间可用于判断一个逻辑阶段是否出现无法正常运行的故障。
在本发明实施例中,为各个逻辑阶段执行故障设定对应的异常标记。值得注意地,在本发明实施例中,异常标记为初始设定的,只有当逻辑阶段正常运行后,该逻辑阶段对应的异常标记才会被清除
在S102中,若当所述逻辑阶段执行完毕且成功返回执行结果时,该逻辑阶段的实际执行时间小于所述预期执行时间,则清除该逻辑阶段对应的所述异常标记并执行下一逻辑阶段。
在本发明实施例中,正常情况下,当一个逻辑阶段执行完毕会返回执行结果。在本发明实施例中,从一个逻辑阶段开始执行就计算该逻辑阶段的实际执行时间,如果当该逻辑阶段执行完毕且成功返回执行结果时,该逻辑阶段的实际执行时间小于预期执行时间,则证明该逻辑阶段的执行过程没有遇到故障,符合设计要求,因此清除该逻辑阶段对应的异常标记。
在S103中,若所述逻辑阶段的实际执行时间等于或大于所述预期执行时间,或出现执行故障,则中断执行该运行过程并外发该逻辑阶段对应的所述异常标记,清除CMOS内存储的数据并重启。
在本发明实施例中,运行过程出现异常主要体现在两个方面,一方面,主机出现执行故障无法继续执行完一个逻辑阶段;另一方面,一个逻辑阶段的实际执行时间达到或超过预期执行时间。所以针对上述两种运行过程出现异常的可能,本发明实施例在逻辑阶段的实际执行时间等于或大于所述预期执行时间,或出现执行故障的情况下,中断执行该运行过程,此外不清除该逻辑阶段对应的异常标记,而是将该逻辑阶段对应的异常标记外发,以使工程师们可以基于异常标记确定故障发生的逻辑阶段。
在本发明实施例中,在中断执行运行过程后清除CMOS内存储的数据并重新启动主机。可以理解地,在传统的清除CMOS内存储的数据方法中需要如下步骤:移除电源适配器,移除复位电池,将循环复位寄存器短路接地,最后安装复位电池以及接通主机电源,从而清除CMOS内存储的部分数据。而在本发明实施例中,可以在运行过程异常时,自动控制相关的电路部件移动位置,使得CMOS无电力输入。
进一步地,在所述若所述逻辑阶段的实际执行时间达到所述预期执行时间,或出现执行错误,则中断执行该逻辑阶段并保留该逻辑阶段对应的所述异常标记之后,还包括:生成并保存辅助故障定位信息,所述辅助故障定位信息用于记录所述逻辑阶段内出现执行错误的位置。
如上文所述,各个逻辑阶段在初始时都对应一个异常标记,只有当所述逻辑阶段执行完毕且成功返回执行结果时,该逻辑阶段的实际执行时间小于所述预期执行时间,才会清除该逻辑阶段对应的异常标记。由此可见,异常标记具有向工程人员提示出现异常的逻辑阶段的作用。然而,工程人员只能根据异常标记找出出现异常的逻辑阶段,而不能找出逻辑阶段内出现异常的具体的程序位置。为了解决上述问题,本发明实施例提供的主机运行过程的故障处理方法还可以在一个逻辑阶段出现异常时,生成辅助故障定位信息。
可以理解地,该辅助故障定位信息用于指示出现异常的逻辑阶段中具体的异常位置。
进一步地,本发明实施例提供的用于主机运行过程的故障处理方法,还包括:根据所述异常标记,统计各个所述逻辑阶段出现异常的概率;若所述逻辑阶段出现异常的概率大于预设的概率阈值,则对所述逻辑阶段进行修复。
可以理解地,如上文所述,本发明实施例一方面可以通过自动清除CMOS内存储数据修复主机,另一方面还可以识别出发生故障的逻辑阶段,从而方便工程师分析和修复出现故障的逻辑阶段。所以,本发明实施例还提供了具体利用异常标记的方法。
可选地,可以收集多次主机故障时的数据,并统计出各个逻辑阶段对应的异常标记未被消除的次数。根据各个逻辑阶段对应的异常标记未被消除的次数,计算出各个逻辑阶段出现异常的概率。可以理解地,如果一个逻辑阶段出现异常的概率大于预设的概率阈值,则说明该逻辑阶段存在较大问题,所以需要对该逻辑阶段相关的程序或硬件进行修复。
进一步地,本发明实施例提供的用于主机运行过程的故障处理方法涉及的异常标记以及所述辅助故障定位信息均存储于外部存储器内,所述外部存储器位于所述主机外部。
进一步地,本发明实施例提供的用于主机运行过程的故障处理方法还包括:若清除CMOS内存储数据并重启后所述逻辑阶段对应的异常标记不能清除,则对所述主机的板卡进行维修。
可选地,如果一个逻辑阶段出现异常,在清除CMOS内存储数据并重启后该逻辑阶段对应的异常标记不能清除,即主机运行过程连续两次在同一逻辑阶段出现异常,则证明该逻辑阶段存在较大问题,所以需要对主机的板卡进行维修。
对应于上文实施例所述的用于主机运行过程的故障处理方法,图2示出了本发明实施例提供的用于主机运行过程的故障处理装置的结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。
参照图2,该装置包括:
划分模块201,用于将运行过程分为多个逻辑阶段,并为各个逻辑阶段设定预期执行时间以及为各个逻辑阶段执行故障设定对应的异常标记;
第一执行模块202,用于若当所述逻辑阶段执行完毕且成功返回执行结果时,该逻辑阶段的实际执行时间小于所述预期执行时间,则清除该逻辑阶段对应的所述异常标记并执行下一逻辑阶段;
第二执行模块203,用于若所述逻辑阶段的实际执行时间等于或大于所述预期执行时间,或出现执行故障,则中断执行该运行过程并外发该逻辑阶段对应的所述异常标记,清除CMOS内存储的数据并重启。
进一步地,该装置还包括:
生成模块,用于生成并保存辅助故障定位信息,所述辅助故障定位信息用于记录所述逻辑阶段内出现执行错误的位置。
进一步地,该装置还包括:
统计模块,用于根据所述异常标记,统计各个所述逻辑阶段出现异常的概率;
维修模块,用于若所述逻辑阶段出现异常的概率大于预设的概率阈值,则对所述逻辑阶段进行修复。
进一步地,所述异常标记以及所述辅助故障定位信息均存储于外部存储器内,所述外部存储器位于所述主机外部。
进一步地,该装置还包括:
主机修复模块,用于若清除CMOS内存储数据并重启后所述逻辑阶段对应的异常标记不能清除,则对所述主机的板卡进行维修。
对应于上文实施例所述的用于主机运行过程的故障处理方法及装置,图3是本发明一实施例提供的用于主机运行过程的故障处理装置的示意图。如图3所示,该实施例的用于主机运行过程的故障处理装置包括:处理器30、存储器31以及存储在所述存储器31中并可在所述处理器30上运行的计算机程序33,例如用于主机运行过程的故障处理程序。所述处理器30执行所述计算机程序33时实现上述各个用于主机运行过程的故障处理方法实施例中的步骤,例如图1所示的步骤S101至S103。或者,所述处理器30执行所述计算机程序33时实现上述各装置实施例中各模块/单元的功能,例如图3所示模块301至303的功能。
示例性的,所述计算机程序33可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器31中,并由所述处理器30执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序33在所述用于主机运行过程的故障处理装置3中的执行过程。例如,所述计算机程序33可以被分割成划分模块、第一执行模块以及第二执行模块(虚拟装置中的模块),各模块具体功能如下:
划分模块,用于将运行过程分为多个逻辑阶段,并为各个逻辑阶段设定预期执行时间以及为各个逻辑阶段执行故障设定对应的异常标记;
第一执行模块,用于若当所述逻辑阶段执行完毕且成功返回执行结果时,该逻辑阶段的实际执行时间小于所述预期执行时间,则清除该逻辑阶段对应的所述异常标记并执行下一逻辑阶段;
第二执行模块,用于若所述逻辑阶段的实际执行时间等于或大于所述预期执行时间,或出现执行故障,则中断执行该运行过程并外发该逻辑阶段对应的所述异常标记,清除CMOS内存储的数据并重启。
所述用于主机运行过程的故障处理装置3可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述用于主机运行过程的故障处理装置/装置可包括,但不仅限于,处理器30、存储器31。本领域技术人员可以理解,图3仅仅是用于主机运行过程的故障处理装置3的示例,并不构成对用于主机运行过程的故障处理装置3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述用于主机运行过程的故障处理装置还可以包括输入输出设备、网络接入设备、总线等。
所称处理器30可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器31可以是所述用于主机运行过程的故障处理装置的内部存储单元,例如用于主机运行过程的故障处理装置3的硬盘或内存。所述存储器31也可以是所述用于主机运行过程的故障处理装置/装置3的外部存储设备,例如所述用于主机运行过程的故障处理装置/装置3上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器31还可以既包括所述用于主机运行过程的故障处理装置/装置3的内部存储单元也包括外部存储设备。所述存储器31用于存储所述计算机程序以及所述用于主机运行过程的故障处理装置/装置所需的其他程序和数据。所述存储器31还可以用于暂时地存储已经输出或者将要输出的数据。所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/装置和方法,可以通过其它的方式实现。例如,以上所描述的装置/装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。