本发明是有关于一种系统检测方法,特别是指一种能自动分辨出基板管理控制器当前的常驻程序是否正常执行的方法。
背景技术:
目前在计算机装置中的基板管理控制器(bmc,baseboardmanagementcontroller)在开机运行阶段偶尔会发生重要的常驻程序(demand)无法正常运作的情况,此时,虽然基板管理控制器的运行灯号是正常的,但实际上已无法提供完整的服务,使得bmc的监控功能无法确实运作。因此,在计算机装置完成开机后,管理者通过计算机装置发送信号并发现常驻程序已无法正常运作时,仅能将基板管理控制器重新开机,才能使基板管理控制器的常驻程序恢复正常运作。
有鉴于此,故如何提供一种可有效于计算机装置开机阶段监控基板管理控制器所执行的常驻程序是否正常运作并解决无法正常运作的常驻程序的问题,即为本创作所欲解决的首要课题。
技术实现要素:
本发明要解决的技术问题是在于提供一种可有效于计算机装置开机阶段监控基板管理控制器所执行的常驻程序是否正常运作并解决无法正常运作常驻程序的方法。
为解决上述技术问题,一种用于监控基板管理控制器的常驻程序的方法,借由一计算机装置来实施,该计算机装置包含一处理模块及一电连接该处理模块的基板管理控制器,该基板管理控制器用于执行多个常驻程序,该用于监控基板管理控制器的常驻程序的方法包含一步骤(a)、一步骤(b),以及一步骤(c)。
该步骤(a)是借由该基板管理控制器,产生一常驻程序执行表,该常驻程序执行表包含多个对应该等常驻程序的程序代码,以及每一常驻程序所对应的一存活值,每一存活值在所对应的常驻程序被该基板管理控制器正常执行时会被更新。
该步骤(b)是借由该处理模块,读取该常驻程序执行表中该等常驻程序所对应的存活值,并根据前次所读取到的该等常驻程序所对应的存活值与当前所读取到的该等常驻程序所对应的存活值判定该等常驻程序中是否存在至少一运作异常的常驻程序,其中每一运作异常的常驻程序在前次被读取到的存活值相同于其在当前被读取到的存活值。
该步骤(c)是当该处理模块判定出存在该至少一运作异常的常驻程序时,借由该处理模块,通知该基板管理控制器,以致该基板管理控制器重新启动每一运作异常的常驻程序。
相较于现有技术,本发明用于监控基板管理控制器的常驻程序的方法,借由该计算机装置根据所产生的常驻程序执行表中的每一常驻程序及其对应的存活值,并检测每一常驻程序的状态是否为正常执行,而当检测出存在该至少一运作异常的常驻程序无法正常执行时,则将该至少一运作异常的常驻程序重新启动,有效地达成在无需将该基板管理控制器重新开机的情况下,便可使该至少一运作异常的常驻程序重新正常执行,进而使该基板管理控制器正常运作。
【附图说明】
图1是一方块图,说明一执行本发明用于监控基板管理控制器的常驻程序的方法的一实施例的计算机装置;
图2是一流程图,说明该实施例的一资料读取程序;
图3是一流程图,说明该实施例的一常驻程序重启程序;
图4是一流程图,说明该实施例的一第一基板管理控制器重启程序;
图5是一流程图,说明该实施例的一第一异常记录产生程序;
图6是一流程图,说明该实施例的一沟通界面重启程序;
图7是一流程图,说明该实施例的一第二基板管理控制器重启程序;及
图8是一流程图,说明该实施例的一第二异常记录产生程序。
【具体实施方式】
参阅图1,执行本发明用于监控基板管理控制器的常驻程序的方法的一实施例的一计算机装置1,该计算机装置1包含一基板管理控制器11(bmc,baseboardmanagementcontroller)、一储存有一基本输入输出程序121(bios,basicinput/outputsystem)的记忆模块12、一处理模块13,以及一电连接该基板管理控制器11、该记忆模块12及该处理模块13的平台路径控制器14(pch,platformcontrollerhub)。
值得特别说明的是,在该实施例中,该平台路径控制器14系通过多个通用型的输入输出接脚(gpio,general-purposeinput/output)连接该基板管理控制器11。该等通用型的输入输出接脚的其中任一者皆可用于重启对应的该常驻程序,或用于重启该基板管理控制器11。
特别地,在该实施例中,该等通用型的输入输出接脚的其中一第一条通用型的输入输出接脚连接至该基板管理控制器11的通用型的输入输出接脚,该平台路径控制器14可通过该第一条通用型的输入输出接脚传输一指示出需重启相关于一沟通界面的第一重启信号。该等通用型的输入输出接脚的其中一第二条通用型的输入输出接脚连接至该基板管理控制器11的重新启动接脚(resetpin),该平台路径控制器14可通过该第二条通用型的输入输出接脚传输一指示出需重启该基板管理控制器11的第二重启信号以强制该基板管理控制器11进行自身的重新启动,也就是说,以该第二重启信号触发基板管理控制器11进行自身的重新启动。而在另一实施例中,该等通用型的输入输出接脚中的该第一条通用型的输入输出接脚及该第二条通用型的输入输出接脚以外的至少一第三通用型的输入输出接脚,还分别连接至该基板管理控制器11的通用型的输入输出接脚,该平台路径控制器14可通过每一第三条通用型的输入输出接脚传输一指示出需重启相关于一对应的该常驻程序的第三重启信号。
在该实施例中,该处理模块13系经由该沟通界面,例如为一智能型平台管理界面(ipmi,intelligentplatformmanagementinterface)且通过该平台路径控制器14与该基板管理控制器11进行信息、指令或资料的传输,但不以此为限。值得特别说明的是,该沟通界面还可以是例如为可通过基体电路总线(i2c,inter-integratedcircuit)或系统管理总线(smbus,systemmanagementbus)传送的智能型平台管理界面、键盘控制器规格界面(kcs,keyboardcontrollerstyle)、单一区块传输界面(bt,blocktransfer),但不以此为限。
在该实施例中,该计算机装置1的实施态样例如为一个人计算机、一服务器或一云端主机,但不以此为限。
在该实施例中,该记忆模块12的实施态样例如为一挥发性存储器、一非挥发性存储器或其组合,但不以此为限。
在该实施例中,该处理模块13的实施态样例如为一中央处理器(cpu,centralprocessingunit),但不以此为限。该处理模块13亦可与该平台路径控制器14共同存在于一系统单晶片(soc,systemonachip)的实施样态,但不以此为限。
以下将借由本发明用于监控基板管理控制器的常驻程序的方法的该实施例来说明该计算机装置1的该基板管理控制器11、该记忆模块12、该处理模块13,以及该平台路径控制器14各元件的运作细节,其中用于执行该用于监控基板管理控制器的常驻程序的方法的相关程序系整合于该基本输入输出程序121中并于开机时由该处理模块13所载入执行,本发明用于监控基板管理控制器的常驻程序的方法包含一资料读取程序、一常驻程序重启程序、一第一基板管理控制器重启程序、一第一异常记录产生程序、一沟通界面重启程序、一第二基板管理控制器重启程序,以及一第二异常记录产生程序。
参阅图2,该资料读取程序系读取相关于一常驻程序执行表的资料,并包含一步骤91、一步骤92,以及一步骤93。
在该步骤91中,当该计算机装置1中的该基板管理控制器11初始化时,该基板管理控制器11产生该常驻程序执行表,并储存该常驻程序执行表。其中,该常驻程序执行表包含多个对应该等常驻程序的程序代码,以及每一常驻程序所对应的一存活值(heartbeat)。其中,每一存活值在所对应的常驻程序于正常执行时会被该基板管理控制器11周期性地更新。
在该步骤92中,该处理模块13产生一相关于该常驻程序执行表的读取请求,并通过该平台路径控制器14传送至该基板管理控制器11。
在该步骤93中,该处理模块13判定有无接收到该基板管理控制器11传送的相关于该常驻程序执行表的资料。当该处理模块13判定出有接收到该基板管理控制器11回应传送的相关于该常驻程序执行表的资料,则进行该常驻程序重启程序;当该处理模块13判定出没有接收到该基板管理控制器11回应传送的相关于该常驻程序执行表的资料,则进行该沟通界面重启程序。需进行该沟通界面重启程序即表示有可能是因为该沟通界面故障而造成该基板管理控制器11无法正确的接收经由该沟通界面传送的该相关于该常驻程序执行表的读取请求或是该基板管理控制器11无法正确的经由该沟通界面回应传送该相关于该常驻程序执行表的资料。值得特别说明的是,该处理模块13系周期性地传送该相关于该常驻程序执行表的读取请求并判断是否有在一传送周期内接收到该基板管理控制器11传送的相关于该常驻程序执行表的资料,进而接着读取所接收的相关于该常驻程序执行表的资料。
参阅图3,该常驻程序重启程序系重启所有运作异常的常驻程序,并包含一步骤21、一步骤22,以及一步骤23。
在该步骤21中,该处理模块13读取相关于该常驻程序执行表的资料,以获得该等常驻程序所分别对应的存活值,且根据前次所读取到的该等常驻程序所分别对应的存活值与当前所读取到的该等常驻程序所分别对应的存活值判定该等常驻程序中是否存在至少一运作异常的常驻程序,其中每一运作异常的常驻程序在前次被读取到的存活值相同于其在当前被读取到的存活值。当该处理模块13判定出存在该至少一运作异常的常驻程序时,进行流程步骤22;当该处理模块13判定出不存在任何运作异常的常驻程序时,流程结束。值得特别说明的是,该处理模块13系周期性地读取相关于该常驻程序执行表的资料,以获得并储存前次所读取到的该等常驻程序所分别对应的存活值与当前所读取到的该等常驻程序所分别对应的存活值。
在该步骤22中,对于每一运作异常的常驻程序,该处理模块13产生一指示出该运作异常的常驻程序运作异常的通知信息并通过该平台路径控制器14传送至该基板管理控制器11。值得特别说明的是,在另一实施例的该步骤22中,对于每一运作异常的常驻程序,该处理模块13触发该平台路径控制器14产生指示出重启该运作异常的常驻程序的该第三重启信号,并经由该第三条通用型的输入输出接脚传送至该基板管理控制器11。其中,该处理模块13是借由产生并传送一指示出重启该运作异常的常驻程序的第三重启命令至该平台路径控制器14,以触发该平台路径控制器14产生并传送指示出重启该运作异常的常驻程序的该第三重启信号。此外,该处理模块13也可以直接将指示出重启该运作异常的常驻程序的一参数写入该平台路径控制器14的一指示出重启该运作异常的常驻程序的暂存器,以触发该平台路径控制器14产生并传送指示出重启该运作异常的常驻程序的该第三重启信号。
在该子步骤23中,对于每一通知信息,该基板管理控制器11在接收到该通知信息后,重新启动该通知信息所对应的该运作异常的常驻程序。值得特别说明的是,在另一实施例的该步骤23中,对于每一第三重启信号,该基板管理控制器11在接收到该第三重启信号后,重新启动该第三重启信号所对应的该运作异常的常驻程序。
参阅图4,该第一基板管理控制器重启程序系在执行该常驻程序重启程序后,若重新启动每一运作异常的常驻程序后,仍无法使所有运作异常的常驻程序正常运作时,即会重启该基板管理控制器11,该第一基板管理控制器重启程序包含一步骤31、一步骤32、一步骤33、一步骤34、一步骤35,以及一步骤36。
在该步骤31中,对于每一运作异常的常驻程序,在该处理模块13传送对应的该通知信息且经过一第一预设时间后,对于每一运作异常的常驻程序,该处理模块13产生一相关于该运作异常的常驻程序的第一确认请求并通过该平台路径控制器14传送至该基板管理控制器11。特别地,该第一预设时间系为预设该至少一运作异常的常驻程序重启完成所需的时间。值得特别说明的是,在另一实施例的该步骤31中,对于每一运作异常的常驻程序,在该处理模块13触发传送对应的该第三重启信号且经过该第一预设时间后,对于每一运作异常的常驻程序,该处理模块13产生相关于该运作异常的常驻程序的该第一确认请求并通过该平台路径控制器14传送至该基板管理控制器11。
在该步骤32中,对于每一第一确认请求,该基板管理控制器11在接收到该第一确认请求后,判定该第一确认请求所对应的运作异常的常驻程序是否回复运作正常的运作状态,其中该基板管理控制器11系根据该第一确认请求所对应的该运作异常的常驻程序的该存活值是否随时间改变来判定其运作状态是否回复运作正常,当判定出其所对应的该存活值有随时间改变,则表示该第一确认请求所对应的该运作异常的常驻程序已回复运作正常的运作状态,反之,则为未回复运作正常的运作状态,也就是运作异常的运作状态。当该基板管理控制器11判定出该第一确认请求所对应的运作异常的常驻程序回复运作正常,则进行流程步骤33;当该基板管理控制器11判定出该第一确认请求所对应的运作异常的常驻程序仍为运作异常,则流程结束。
在该步骤33中,该基板管理控制器11产生一相关于该步骤32中的该回复正常运作的运作异常的常驻程序的第一确认回覆并通过该平台路径控制器14传送至该处理模块13。
在该步骤34中,该处理模块13判定在发送该第一确认请求后的一第二预设时间内是否有接收到该基板管理控制器11所回传的回应于每一第一确认请求的一第一确认回覆。当该处理模块13判定出在该第二预设时间内有接收到该基板管理控制器11所回传的对应每一第一确认请求的该第一确认回覆,则流程结束;当该处理模块13判定出在该第二预设时间内没有接收到该基板管理控制器11所回传的对应每一第一确认请求的该第一确认回覆,则进行流程步骤35。
在该步骤35中,该处理模块13触发该平台路径控制器14产生指示出重启该基板管理控制器11的该第二重启信号,并经由该第二条通用型的输入输出接脚传送至该基板管理控制器11,并将每一不存在所对应的第一确认回覆的第一确认请求所相关的运作异常的常驻程序作为一待观察常驻程序。其中,该处理模块13是借由产生并传送一指示出重启该基板管理控制器11的第二重启命令至该平台路径控制器14,以触发该平台路径控制器14产生并传送指示出重启该基板管理控制器11的该第二重启信号。此外,该处理模块13也可以直接将指示出重启该基板管理控制器11的一参数写入该平台路径控制器14的一指示出重启该基板管理控制器11的暂存器,以触发该平台路径控制器14产生并传送指示出重启该基板管理控制器11的该第二重启信号。其中,每一不存在所对应的第一确认回复的第一确认请求,系在该第二预设时间内没有接收到该基板管理控制器11所回传的该第一确认回覆所对应的第一确认请求。
在该步骤36中,该基板管理控制器11在接收到该第二重启信号后,重新启动该基板管理控制器11。
参阅图5,该第一异常记录产生程序系在执行该第一基板管理控制器重启程序后,若重新启动该基板管理控制器11后,仍无法使所有待观察常驻程序正常运作时,即会产生相关于仍运作异常的待观察常驻程序的一第一异常记录,该第一异常记录产生程序包含一步骤41、一步骤42、一步骤43、一步骤44,以及一步骤45。
在该步骤41中,在该处理模块13传送该第二重启命令且经过一第三预设时间后,对于每一待观察常驻程序,该处理模块13产生一相关于该待观察常驻程序的第二确认请求并通过该平台路径控制器14传送至该基板管理控制器11。特别地,该第三预设时间系预设为等待该基板管理控制器11重启完成所需的时间。
在该步骤42中,对于每一第二确认请求,该基板管理控制器11在接收到该第二确认请求后,判定该第二确认请求所对应的待观察常驻程序是否回复正常运作。当该基板管理控制器11判定出该第二确认请求所对应的待观察常驻程序回复正常运作,则进行流程步骤43;当该基板管理控制器11判定出该第二确认请求所对应的待观察常驻程序仍运作异常,则流程结束。
在该步骤43中,该基板管理控制器11产生一相关于该步骤42中的该有回应的待观察常驻程序的第二确认回覆并通过该平台路径控制器14传送至该处理模块13。
在该步骤44中,该处理模块13判定在传送该第二确认请求后的一第四预设时间内是否有接收到该基板管理控制器11所回传的回应于每一第二确认请求的一第二确认回覆。当该处理模块13判定出在该第四预设时间内有接收到该基板管理控制器11所回传对应每一第二确认请求的该第二确认回覆,则流程结束;当该处理模块13判定出在该第四预设时间内没有接收到该基板管理控制器11所回传的对应每一第二确认请求的该第二确认回覆,则进行流程步骤45。
在该步骤45中,该处理模块13将每一不存在所对应的第二确认回覆的第二确认请求所相关的待观察常驻程序作为一待纪录常驻程序,并产生指示出每一待纪录常驻程序运作异常的该第一异常纪录(logfile)。其中,每一不存在所对应的第二确认回覆的第二确认请求,系在该第四预设时间内没有接收到该基板管理控制器11所回传的该第二确认回覆所对应的第二确认请求。
参阅图6,该沟通界面重启程序系于无法接收相关于该常驻程序执行表的资料,则重启该沟通界面,并包含一步骤512,以及一步骤52。
在该步骤51中,该处理模块13触发该平台路径控制器14产生指示出重启该沟通界面的该第一重启信号,并经由该第一条通用型的输入输出接脚传送至该基板管理控制器11。其中,该处理模块13是借由产生并传送一指示出重启该沟通界面的第一重启命令至该平台路径控制器14,以触发该平台路径控制器14产生并传送指示出重启该沟通界面的该第一重启信号。此外,该处理模块13也可以直接将指示出重启该沟通界面的一参数写入该平台路径控制器14的一指示出重启该沟通界面的暂存器,以触发该平台路径控制器14产生并传送指示出重启该沟通界面的该第一重启信号。
在该步骤52中,该基板管理控制器11在接收到该第一重启信号,重新启动该沟通界面。
参阅图7,该第二基板管理控制器重启程序系在执行该沟通界面重启程序后,还无法接收相关于该常驻程序执行表的资料,则重启该基板管理控制器11,并包含一步骤61、一步骤62、一步骤63,以及一步骤64。
在该步骤61中,在该处理模块13触发该平台路径控制器14产生并传送该第一重启信号且经过一第五预设时间后,该处理模块13再次产生另一相关于该常驻程序执行表的读取请求并通过该平台路径控制器14传送至该基板管理控制器11。特别地,该第五预设时间系为预设等待该沟通界面重启完成所需的时间。
在该步骤62中,该处理模块13判定有无接收到该基板管理控制器11传送的相关于该常驻程序执行表的资料。当该处理模块13判定出有接收到该基板管理控制器11传送的相关于该常驻程序执行表的资料,则回到流程步骤21;当该处理模块13判定出没有接收到该基板管理控制器11传送的相关于该常驻程序执行表的资料,则进行流程步骤63。
在该步骤63中,该处理模块13触发该平台路径控制器14产生指示出重启该基板管理控制器11的该第二重启信号,并经由该第二条通用型的输入输出接脚传送至该基板管理控制器11。其中,该处理模块13是借由产生并传送一指示出重启该基板管理控制器11的第二重启命令至该平台路径控制器14,以触发该平台路径控制器14产生并传送指示出重启该基板管理控制器11的该第三重启信号。此外,该处理模块13也可以直接将指示出重启该基板管理控制器11的一参数写入该平台路径控制器14的指示出重启该基板管理控制器11的该暂存器,以触发该平台路径控制器14产生并传送指示出重启该基板管理控制器11的该第二重启信号。
在该步骤64中,该基板管理控制器11在接收到该第二重启信号后,重新启动该基板管理控制器11。
参阅图8,该第二异常记录产生程序系在执行该第二基板管理控制器重启程序后,还无法接收该常驻程序执行表时,产生相关于该沟通界面的一第二异常记录,并包含一步骤71、一步骤72,以及一步骤73。
在该步骤71中,在该处理模块13传送该第二重启命令且经过一第六预设时间后,该处理模块13再次产生另一相关于该常驻程序执行表的读取请求并通过该平台路径控制器14传送至该基板管理控制器11。特别地,该第六预设时间系为预设等待该基板管理控制器11重启完成所需的时间。
在该步骤72中,该处理模块13判定有无接收到该基板管理控制器11传送的相关于该常驻程序执行表的资料。当该处理模块13判定出有接收到该基板管理控制器11传送的相关于该常驻程序执行表的资料,则回到流程步骤21;当该处理模块13判定出没有接收到该基板管理控制器11传送的相关于该常驻程序执行表的资料,也就是判断是否有在该传送周期内接收到该基板管理控制器11传送的相关于该常驻程序执行表的资料,则进行流程步骤73。
在该步骤73中,该处理模块13产生相关于该沟通界面运作异常的该第二异常纪录。
综上所述,本发明用于监控基板管理控制器的常驻程序的方法,借由该处理模块13于计算机装置1开机阶段及开机完成后其中至少一者,周期性地读取相关于该常驻程序执行表的资料,以检测每一常驻程序的运作状态是否为运作正常,并当检测出存在该至少一处于运作异常的运作异常的常驻程序时,则先将该至少一运作异常的常驻程序重新启动,并再次检测该至少一运作异常的常驻程序是否回复运作正常的运作状态,当再次检测存在仍处于运作异常的该至少一待观察常驻程序,才进行重新启动该基板管理控制器11,通过该用于监控基板管理控制器的常驻程序的方法有效地达成当检测到该至少一运作异常的常驻程序是单纯的仅因为该至少一运作异常的常驻程序本身的问题而不是该基板管理控制器11本身运作异常所造成该常驻程序无法处于运作正常的运作状态,则无需直接将该基板管理控制器11整个重新启动,便可使该至少一运作异常的常驻程序自动回复运作正常的运作状态,此外,还可自动确认是否为该处理模块13无法经由该沟通界面与该基板管理控制器11进行沟通造成无法该基板管理控制器11的监控常驻程序运作状态,并于确认后,自动通过该平台路径控制器14将该沟通界面重新启动,使得该处理模块13可继续监控该基板管理控制器11的常驻程序。因此,确实能达成本发明的目的。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。