具体实施方式
以下在实施方式中详细叙述本发明的详细特征以及优点,其内容足以使任何本领域技术人员了解本发明的技术内容并据以实施,且根据本说明书所揭露的内容、权利要求范围及附图,任何本领域技术人员可轻易地理解本发明相关的目的及优点。
本发明提供一种开机错误处理方法,其适用于具有多个电压调节模块(voltage regulator down,VRD)的一计算机(computer)。
请参照图1,其为一实施范例的计算机的方框示意图。
计算机可包括一电源供应器(power supplier)10、多个VRD 11A、11B和11C(以下统称为VRD 11)、一开机序列控制器(power sequence controller)12、一电力开启接口(电源启动接口)13、一复杂可程序逻辑装置(ComplexProgrammable Logic Device,CPLD)14以及其他的多个硬件模块15。计算机例如可以是台式计算机、笔记型计算机、平板计算机或手持式计算机,但并不以此为限。而电力开启接口13可以是一个电力开启按钮,计算机的一使用者可通过电力开启界面13发出一触发指令给开机序列控制器12,以开始启动计算机。开机序列控制器12亦可是需求与CPLD 14整合为一个装置。
每个VRD 11与电源供应器10、开机序列控制器12以及至少一个硬件模块15连接,以依据开机序列控制器12的指令将电源供应器10所提供的电压转换为相连的硬件模块15所需的一开机电压。每个VRD 11对应一个开机电压,而开机电压例如可以是6.5伏特(volt,V)、5V、3.3V、1.5V或是1.1V。
而开机错误处理方法可实作于CPLD 14。因此CPLD 14可以与开机序列控制器12以及每个VRD 11相连,以检测是否有开机错误的情况发生,并即时进行处理。且CPLD 14可以配置在计算机的一主机板(baseboard,未绘示)或是配置在独立于主机板的一测试板上。
请参照图2,其为一实施范例的开机错误处理方法的流程图。
首先开机序列控制器12读取一开机序列(步骤S100),其中开机序列包括多个电力开启阶段,且每一个电力开启阶段对应一个开机电压以及VRD 11之一。换言之,每个电力开启阶段、VRD 11与开机电压可以是一对一对应的。例如第一、第二以及第三个电力开启阶段可分别对应输出6.5V、3.3V以及1.1V的开机电压,以及用以输出6.5V、3.3V以及1.1V的输出电压的VRD 11。
接下来依据开机序列,开机序列控制器12依序执行各个电力开启阶段,并判断每一个电力开启阶段对应的VRD 11的输出电压是否等于对应的开机电压(步骤S200)。且开机序列控制器12判断是否任一VRD 11的输出电压不等于对应的开机电压(步骤S300),若有任一VRD 11的输出电压不等于对应的开机电压的情形,则视为发生开机错误。
请配合参照图3,其为一实施范例的步骤S200的流程图。于此实施范例的中,开机错误处理方法可提供一人机界面(human-machine interface)16给使用者,以供使用者逐一确认每个电力开启阶段是否发生开机错误。人机界面16可以是配置于主机板或单独的测试板的一按钮,每当按钮被按押时,人机界面16就发出一续行信号给开机序列控制器12或是CPLD 14。
开机序列控制器12先执行第一个电力开启阶段,并判断第一个电力开启阶段所对应的输出电压是否等于对应的开机电压(步骤S210)。接着开机序列控制器12依序接收多个续行信号(步骤S220);每当接收一个续行信号时,依据开机序列下一个电力开启阶段,并判断执行的电力开启阶段所对应的输出电压是否等于对应的开机电压(步骤S230)。
换句话说,使用者可以在确认第一电力开启阶段开机正常后操控人机界面16,当开机序列控制器12或是CPLD 14接收到续行信号的后,才会进行下一个电力开启阶段。且开机错误处理方法会监控每个电力开启阶段是否有开机错误。
然而亦可在开机序列控制器12或是CPLD 14的中预先设置多个中断点,每个中断点之间可包括一个或多个电力开启阶段。而每次接收续行信号时,开机序列控制器12可连续执行一个或多个电力开启阶段直到遇到下一个中断点。
根据一实施范例,开机错误处理方法可以利用VRD 11发出的一电源良好(power good)信号判断是否有发生开机错误。当VRD 11将电源供应器10所提供的电压调节成所需的开机电压时,VRD 11会输出电源良好信号给开机序列控制器12。而CPLD 14可直接从VRD 11监听电源良好信号,或是由开机序列控制器12间接得到。
则于步骤S210时执行第一个电力开启阶段;且当在第一个电力开启阶段接收电源良好信号时,可判定第一个电力开启阶段所对应的输出电压等于对应的开机电压。也就是说,若有接收到电源良好信号,则判定开机正常。而当在第一个电力开启阶段的一判断时间内未接收到电源良好信号时,可检测第一个电力开启阶段所对应的输出电压,并判断检测的输出电压是否等于对应的开机电压。此外,若是没有接收到电源良好信号,但是检测到的输出电压等于对应的开机电压,可等待一段时间并继续执行下一电力开启阶段,而不视为发生开机错误。
类似地,于步骤S230时依据开机序列执行下一个电力开启阶段。当在执行的电力开启阶段接收电源良好信号时,判定执行的电力开启阶段所对应的输出电压等于对应的开机电压。反之,当在执行的电力开启阶段的判断时间内未接收到电源良好信号时,检测执行的电力开启阶段所对应的输出电压,并判断检测的输出电压是否等于对应的开机电压。
当开机序列控制器12判断任一个VRD 11的输出电压不等于对应的开机电压时,执行一除错程序(步骤S400)。反之,当所有的VRD 11的输出电压都等于对应的开机电压时,执行一加电后开机程序(步骤S500)。更详细地说,每执行一个电力开启阶段之后,开机序列控制器12可判断此电力开启阶段是不是开机序列中的最后一个电力开启阶段。如果到最后一个电力开启阶段都没有发生开机错误,便可执行加电后开机程序以将控制权交给计算机的一基本输出入系统(Basic Input/Output System,BIOS),并由BIOS完成整个开机的动作。
根据一实施方式,除错程序可依据一处理模式参数来以不同的方式处理开机错误。请参照图4,其为一实施范例的除错程序的流程图。
除错程序可读取处理模式参数(步骤S610)并判断处理模式参数(步骤S620)。处理模式参数可以通过一指拨开关(switch)、一跳线器(jumper)或是一基板管理控制器(baseboard management controller,BMC)被接收,而不同的处理模式参数的值代表不同的处理方式。于本实施范例中处理模式参数可能是一第一参数值、一第二参数值或是一第三参数值。
当处理模式参数为第一参数值时,除错程序可将计算机维持在输出电压不等于开机电压的一除错状态(步骤S631)。除错程序并可输出一第一灯号驱动信号(步骤S632),以使计算机的至少一发光单元(例如发光二极管,Light-Emitting Diode,LED)闪灯。则使用者可通过第一灯号驱动信号所产生的闪灯方式得知在目前的电力启动阶段发生开机错误,且计算机正维持在此错误的状态之下。如此一来,使用者便可在除错状态下对可能影响的电源供应器10、VRD 11或是其他硬件模块15进行测量与分析。
然而CPLD 14亦可还外执行一测量分析程序,或是通知BMC进行测量分析,以依照预先设定的项目测量所需的参数再进行分析。且CPLD 14可与欲进行测量或分析的硬件模块15连接。例如测量分析程序可被设定为一但发生开机错误,就纪录发生错误的VRD 11的输出电压以及发生错误的时间。又例如测量分析程序亦可在发生开机错误时自动检测计算机的一中央处理器(Central Processing Unit,CPU)的温度。
类似地,当处理模式参数为第二参数值时,除错程序可将计算机维持在成功执行的前一个电力开启阶段作为除错状态,以避免目前的开机错误对计算机造成损害(步骤S641)。除错程序并可输出第二灯号驱动信号(步骤S642),以通知使用者发生开机错误。
而当处理模式参数为第三参数值时,除错程序可先在一段时间内持续输出第三灯号驱动信号通知使用者后(步骤S651),再重新启动计算机(步骤S652)。此外,步骤S610亦可在步骤S200之前执行,以尽早得知需进行的处理方式。
开机错误处理方式并可具有一防烧毁机制,以避免维持在除错状态的硬件模块15因不适当的电压而被烧毁。
请参照图5,其为还一实施范例的除错程序的流程图。当处理模式参数为第一参数值时,除错程序可判断与开机电压对应的硬件模块15是否为一核心硬件(步骤S633)。其中核心硬件是指中央处理器或主记忆体等计算机中较关键的硬件模块15。通常核心硬件所需的开机电压较低,而容易被烧毁。例如中央处理器所需的开机电压一般为1.1V到1.5V。当判定与开机电压对应的至少一硬件模块15为核心硬件时,除错程序可执行一例外程序。除错程序中的例外程序可先输出一第四灯号驱动信号(步骤S634),再重新启动该计算机(步骤S652)。
类似地,当处理模式参数为第二参数值时,除错程序也可判断与开机电压对应的硬件模块15是否为核心硬件(步骤S643)。且当与开机电压对应的至少一硬件模块15为核心硬件时,可输出第四灯号驱动信号(步骤S644),再重新启动该计算机(步骤S652)。
请参照图6,其为又一实施范例的除错程序的流程图。
当计算机被维持在停止的除错状态时,除错程序可以一计时器计算已维持在除错状态的时间。除错程序并可判断维持除错状态的时间是否超过一停止门槛值(步骤S635或S645)。若超过,则重新启动计算机以避免有硬件模块15烧毁。若维持的时间还未超过停止门槛值,则可继续维持在除错状态。
上述步骤S633、S634、S635、S643、S644、S645以及S652即为所述的的防烧毁机制,能避免硬件模块15受到错误的输出电压影响而损坏。
从上所述,开机错误处理方法可以在每一个电力启动阶段检测是否发生VRD输出不适当的电压,并在发生错误时将计算机维持在除错状态以供使用者进行相关硬件模块的测量与分析。为了提供避免硬件模块受到错误的输出电压影响而烧毁,开机错误处理方法并提供防烧毁机制。此外,开机错误处理方法并可通过人机界面接收续行信号,以供使用者逐步对每一个电力启动阶段进行测试。因此对使用者而言,不但可通过不同的灯号得知计算机的整体状况,亦可在发生错误时即时纪录当下的错误情形,再进行除错或是进一步的测试。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。