一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

开机错误信息记录方法与流程

2021-11-24 20:58:00 来源:中国专利 TAG:


1.本案是关于一种开机错误信息记录方法。


背景技术:

2.在服务器的开机过程中,可能会因各种错误原因而发生当机之状况。在服务器当机之后,根据不同之服务器,服务器之系统会自动重新启动或是停留在当机的地方。若服务器自动重新启动,则服务器之使用者难以追踪服务器发生当机的原因,即便服务器未重新启动,由于服务器已当机,工程师若仅靠显示在led灯的除错代码亦难分析服务器发生当机之原因。尤其是当服务器已卖到客户端时,一般的计算机操作人员遇到当机时,可能不会记录看到的led灯除错代码即重新启动,所以连最简单的错误信息都无法提供给原厂去除错。因此,不论服务器是否自动重新启动,工程师都难以针对服务器当机之状况进行分析与除错,造成除错之效率低落,相当不便。
3.再者,即便服务器能显示错误信息,现在的服务器也无法显示足够之错误信息,以现今之服务器之系统复杂度而言,服务器在开机的过程中会执行上千或上万个涵式,工程师将难以分析出服务器系在执行哪个时间点或执行哪一个涵式时发生当机之状况,造成除错之效率亦相当低落。


技术实现要素:

4.本发明要解决的技术问题是提供一种提高除错效率的开机错误信息记录方法为解决上述技术问题,本发明一种适于一服务器装置之开机错误信息记录方法包含:一处理单元执行一开机自我检测码以先后执行一第一开机自我检测程序及一第二开机自我检测程序,在第二开机自我检测程序中,处理单元判断前次执行之该第一开机自我检测程序是否发生错误,当第一开机自我检测程序发生错误时,处理单元在一基本输入输出系统内存之一写入功能未就绪时将已存在于一互补式金属氧化物半导体内存之一第一地址空间之除错代码搬移至互补式金属氧化物半导体内存之一第二地址空间;于搬移至第二地址空间之后,处理单元执行开机自我检测码包含之复数子程序,其中各子程序包含除错代码,处理单元在执行子程序时将已执行之子程序之除错代码写入第一地址空间,处理单元在写入功能就绪时将搬移后存在于第二地址空间之除错代码所对应之开机错误信息写入基本输入输出系统内存。
5.相较于现有技术,本发明的开机错误信息记录方法中服务器装置之除错者可根据储存在bios内存中之开机错误信息了解服务器装置曾在哪个时间点以及哪个子程序发生当机之状况,作为追踪及除错之参考,以提高除错效率。
6.【附图说明】图1 为根据本发明之具开机错误信息记录功能之服务器装置之一实施例之功能方块图。
7.图2 为根据本发明之开机错误信息记录方法之一实施例之流程图。
8.图3 为图2所示例之开机错误信息记录方法之一实施态样之流程图。
9.【具体实施方式】请参照图1,图1系为根据本发明之具开机错误信息记录功能之服务器装置1之一实施例之功能方块图。服务器装置1包含基本输入输出系统(bios)内存11、互补式金属氧化物半导体(cmos)内存12及处理单元13。处理单元13耦接bios内存11及cmos内存12。
10.bios内存11包含开机自我检测(power-on self-test;post)码,处理单元13读取bios内存11而执行开机自我检测码,以进行服务器装置1之开机程序。其中,开机自我检测码包含复数子程序,其中之部分子程序具有除错代码,且具有不同之除错代码。举例来说,以开机自我检测码包含上万个子程序且其中三个具有除错代码之子程序(以下分别称为第一子程序、第二子程序及第三子程序)为例,第一子程序、第二子程序及第三子程序之除错代码(以16进制表示法为例)可分别为「0x01」、「0x02」、「0x03」。在一实施例中,前述之子程序可为开机自我检测程序中需执行之常规程序(routine)。
11.基于前述之除错代码,cmos内存12包含用以储存除错代码之不同地址空间(以下分别称为第一地址空间及第二地址空间),处理单元13在执行开机自我检测码时系将已执行之子程序之除错代码写入第一地址空间,以纪录已执行之子程序;再者,在开机自我检测程序曾发生错误之状况下,处理单元13可在bios内存11的写入功能就绪(ready)时将存在于第二地址空间中之除错代码对应之开机错误信息写入bios内存11,以纪录服务器装置1之开机错误信息。在一实施例中,第一地址空间及第二地址空间可分别为「42h」、「43h」之地址。再者,前述之开机错误信息可为前述之除错代码、在开机自我检测程序中发生错误时之日期及时间。
12.详细而言,请合并参照图1及图2,图2为根据本发明之开机错误信息记录方法之一实施例之流程图。在执行开机自我检测码时,处理单元13先判断前次执行之开机自我检测程序是否发生错误(步骤s01),也就是处理单元13判断服务器装置1是否曾经发生当机之状况,若处理单元13在执行开机自我检测码时判断出前次执行之开机自我检测程序未发生错误(判断结果为「否」),处理单元13执行子程序并在执行子程序时将已执行之子程序之除错代码写入第一地址空间(步骤s03),以实时地记录已执行之具有除错代码之子程序;另一方面,若处理单元13在执行开机自我检测码时判断出前次执行之开机自我检测程序发生错误(判断结果为「是」),处理单元13读取cmos内存12之第一地址空间,第一地址空间包含处理单元13在前次执行开机自我检测程序时所写入之已执行之子程序之除错代码,处理单元13在bios内存11之写入功能未就绪时将已存在于第一地址空间中之除错代码搬移至第二地址空间(步骤s02)。
13.在将除错代码自第一地址空间搬移至第二地址空间之后,处理单元13执行子程序,并在执行子程序时将已执行之子程序之除错代码写入第一地址空间(步骤s03),使写入后之除错代码覆盖先前已存在于第一地址空间中除错代码,以在当下执行之开机自我检测程序中纪录已执行之子程序。并且,在bios内存11之写入功能就绪时,处理单元13将搬移后存在于第二地址空间中之除错代码对应之开机错误信息写入bios内存11(步骤s05),以将前次执行开机自我检测程序时所发生之错误信息纪录在bios内存11中。
14.举例来说,以处理单元13先后执行一第一开机自我检测程序及一第二开机自我检测程序为例,在第一开机自我检测程序中,处理单元13在执行第一子程序时将第一子程序
之除错代码「0x01」写入第一地址空间,且在执行第二子程序时将第二子程序之除错代码「0x02」写入第一地址空间,服务器装置1接着在除错代码「0x02」写入第一地址空间之后发生当机之状况,处理单元13在服务器装置1重新启动之后执行第二开机自我检测程序,并在第二开机自我检测程序中执行开机自我检测码而在步骤s01中判断出第一开机自我检测程序曾经发生错误(判断结果为「是」),于是,在第二开机自我检测程序中,处理单元13将储存在第一地址空间中之除错代码0x02搬移至第二地址空间,接着处理单元13由第一子程序开始执行,且处理单元13在bios内存11的写入功能就绪之后,将存在于第二地址空间中之除错代码「0x02」所对应之开机错误信息写入bios内存11。处理单元13在执行步骤s05之后继续执行开机自我检测程序(步骤s12)。
15.基此,处理单元13在每次执行开机自我检测码时都能实时地纪录当下已执行之子程序,并将曾经发生之当机之状况纪录在bios内存11中,服务器装置1之除错者即可根据储存在bios内存11中之开机错误信息了解服务器装置1曾在哪个时间点以及哪个子程序发生当机之状况,作为追踪及除错之参考,以提高除错效率。
16.在一实施例中,处理单元13在步骤s03中系依序地执行复数个子程序,且处理单元13系于每执行一个具有除错代码之子程序时将子程序之除错代码写入前述之第一地址空间,以覆盖不同子程序之除错代码。以前述之第一子程序及第二子程序为例,处理单元13系执行第一子程序时将除错代码「0x01」写入第一地址空间,且处理单元13系执行第二子程序时将除错代码「0x02」写入第一地址空间,在处理单元13将除错代码「0x02」写入第一地址空间之后,除错代码「0x02」覆盖存在于第一地址空间之第一子程序之除错代码「0x01」,使第一地址空间储存之除错代码由「0x01」更新为「0x02」,如此一来,第一地址空间能储存已执行之最新子程序之除错代码。
17.在一实施例中,cmos内存12更具有一第三地址空间,第三地址空间可为「40h」之地址,第三地址空间储存有两旗标(以下称为第一旗标及第二旗标),第一旗标系表示开机自我检测程序是否完成,第二旗标系表示前次所执行之开机自我检测程序是否发生错误而是否需将存在于第二地址空间中之除错代码所对应之开机错误信息写入bios内存11,处理单元13系根据第一旗标来判断前次执行之开机自我检测程序是否发生错误,并根据第一旗标来设定第二旗标。待bios内存11之写入功能就绪时,处理单元13再根据第二旗标决定是否需将存在于第二地址空间中之除错代码所对应之开机错误信息写入bios内存11。
18.详细而言,请合并参照图3,以处于高位准之第一旗标系表示开机自我检测程序并未完成为例,处理单元13在执行步骤s01时系判断第一旗标是否处于高位准(即,逻辑「1」),以判断前次执行之第一开机自我检测程序是否完成。若处理单元13在步骤s01判断出第一旗标并未处于高位准(判断结果为「否」),例如第一旗标系处于低位准,表示第一开机自我检测程序已完成而未发生错误,此时,在第二开机自我检测程序中,处理单元13先设定第一旗标具有高位准(步骤s07),也就是处理单元13预先设定当下所执行之第二开机自我检测程序并无法完成,使第一旗标由低位准转变为高位准,以避免处理单元13在执行第二开机自我检测程序时发生错误造成当机而无法在第二开机自我检测程序中设定第一旗标具有高位准;尔后,待第二开机自我检测程序完成时,处理单元13再进一步重置第一旗标(步骤s08),使第一旗标由高位准转变为低位准,以表示当下执行之第二开机自我检测程序已完成而未发生错误。
19.基此,在处理单元13设定第一旗标具有高位准之后(步骤s07),若处理单元13在第二开机自我检测程序中执行子程序时当机,在服务器装置1重新启动之后,由于第二开机自我检测程序并未完成,处理单元13还未在步骤s08中重置第一旗标使第一旗标转变为低位准,处理单元13在服务器装置1重新启动之后之第三开机自我检测程序中执行步骤s01时可藉由第一旗标系处于高位准而判断出前次所执行之第二开机自我检测程序发生错误(判断结果为「是」)而据以将存在于第一地址空间之除错代码搬移至第二地址空间(步骤s02)。
20.另一方面,在第二开机自我检测程序中,若处理单元13在步骤s01判断出第一旗标系处于高位准(判断结果为「是」),则表示前次所执行之第一开机自我检测程序并未完成,也就是第一开机自我检测程序发生错误,此时,处理单元13进一步根据具有高位准之第一旗标设定第二旗标(步骤s09);于是,以具有高位准之第二旗标表示前次所执行之开机自我检测程序(例如,第一开机自我检测程序)发生错误为例,处理单元13在步骤s09中即设定第二旗标具有高位准;据此,处理单元13在bios内存11之写入功能就绪之后(步骤s04之判断结果为「是」),处理单元13判断第二旗标是否具有高位准(步骤s10),以判断前次所执行之开机自我检测程序是否发生错误而需将存在于第二地址空间中之除错代码所对应的开机错误信息写入bios内存11(步骤s05),若判断出第二旗标具有高位准(判断结果为「是」),处理单元13始执行步骤s05而将开机错误信息写入bios内存11。在处理单元13将开机错误信息写入bios内存11之后,处理单元13重置第二旗标具有低位准(步骤s12),使第二旗标由高位准转变至低位准,以表示已完成开机错误信息之纪录。
21.另一方面,当处理单元13在步骤s01中根据第一旗标判断出前次执行之第一开机自我检测程序未发生错误(判断结果为「否」)且处理单元11在步骤s10判断出第二旗标未处于高位准时(判断结果为「否」),处理单元11即执行步骤s11以判断当下执行之第二开机自我检测程序是否完成并判断服务器装置1是否需进行暖重置,当第二开机自我检测程序已完成或服务器装置1需进行暖重置时,处理单元11重置第一旗标(步骤s08)。因此,不论第一旗标及第二旗标是否具有高位准,处理单元13在当下执行之第二开机自我检测程序中均判断开机程序是否完成且判断服务器装置1是否需进行系统重置,以决定是否重置第一旗标。
22.在一实施例中,处理单元13在重置第一旗标之前更判断当下所执行之开机自我检测程序是否完成(步骤s11),若开机自我检测程序完成,表示当下执行之开机自我检测程序并未发生错误,处理单元13始重置第一旗标具有低位准(步骤s08),使第一旗标由步骤s07中设定之高位准转变为低位准。再者,一些子程序具有使服务器装置1进行暖重置之功能。在步骤s11中,处理单元13更进一步判断服务器装置1是否需进行暖重置,若因前述之子程序而致使服务器装置1需进行暖重置(步骤s11之判断结果为「是」),处理单元13亦需重置第一旗标具有低位准(步骤s08),以避免服务器装置1在暖重置启动后,处理单元13在后续执行之开机自我检测程序中之步骤s01中因第一旗标未重置至低位准而发生判断错误的问题。
23.举例来说,以第三子程序具有使服务器装置1进行暖重置之功能为例,处理单元13在第二开机自我检测程序中之步骤s07先设定第一旗标具有高位准,接着,处理单元13在步骤s03执行第三子程序,并在步骤s11中判断出服务器装置1需进行暖重置,此时,第一旗标系处于高位准,待处理单元13执行步骤s08之后,第一旗标由高位准转变为低位准,在服务器装置1重置之后,处理单元13执行第三开机自我检测程序并在步骤s01中判断出第一旗标
系处于低位准而非处于高位准,也就是正确地表示前次所执行之第二开机自我检测程序并未发生错误(因服务器装置1系进行暖重置而非当机)。
24.在一实施例中,处理单元13在步骤s07中更进一步根据第三地址空间中之资料计算一校验和,并将校验和储存在第四地址空间,以表示cmos内存12是否损坏。举例来说,以第三地址空间中之数据为「0x01」为例,处理单元13据以计算产生为「0xff」之校验和,使「0xff」与「0x01」加总后应产生为「0x00」之加总值。在一实施例中,第四地址空间可为「41h」之地址。
25.基此,处理单元13在判断前次所执行之开机自我检测程序中所执行之开机自我检测码是否错误之前(步骤s01),处理单元13先判断cmos内存12是否损坏(步骤s06),处理单元13在步骤s06中系读取cmos内存12,处理单元13将第三地址空间中之数据与储存在第四地址空间中之校验和进行加总而产生一加总值,处理单元13并判断加总值是否为零,若加总值不为零,表示因cmos内存12损坏,储存在cmos内存12中之第一旗标、第二旗标及校验和中任一者之数值产生变化而造成前述之加总值不为零。基此,若cmos内存12损坏,表示cmos内存12中所储存之第一旗标及第二旗标表示之信息并不值得参考。因此,当处理单元13在步骤s06中判断出cmos内存12损坏时(判断结果为「否」),处理单元13不执行步骤s01、s02、s09,处理单元13自步骤s07开始执行,也就是在cmos内存12损坏的情况下,处理单元13并未设定第二旗标具有高位准而不会执行步骤s05将开机错误数据写入bios内存11。
26.在一实施例中,处理单元12在步骤s05中将开机错误信息写入bios内存11时,处理单元12并不覆盖在不同时间点所写入之开机错误信息,也就是在不同时间点产生之开机错误信息均可保存在bios内存11中,使服务器装置1之维修者能根据较多笔数之开机错误信息对服务器装置1进行除错分析。再者,前述之子程序之除错代码可包含之位数可为两个字节(byte),也就是开机自我检测码至多可包含65536个具有不同除错代码之子程序。于此,除错者可根据实际需求在子程序中增加除错代码之数量,根据数量庞大之不同除错代码,当服务器装置1发生当机状况时,除错者可更准确地得知已执行之发生错误之子程序。
27.在一实施例中,bios内存11之写入功能系在开机自我检测程序包含之驱动程序执行环境(dxe)开机阶段就绪,也就是处理单元13可在dxe开机阶段执行步骤s05而更新bios内存11中之开机错误信息。再者,服务器装置1包含南桥芯片,cmos内存12系存在于南桥芯片,南桥芯片之写入功能系在开机自我检测程序包含之安全性(security;sec)开机阶段就绪,也就是处理单元13在开始执行开机自我检测码时即可利用cmos内存12储存已执行之子程序之除错代码。
28.综上所述,根据本发明之开机错误信息记录方法之一实施例,服务器装置之除错者可根据储存在bios内存中之开机错误信息了解服务器装置曾在哪个时间点以及哪个子程序发生当机之状况,作为追踪及除错之参考,以提高除错效率。
29.虽然本案已以实施例揭露如上然其并非用以限定本案,任何所属技术领域中具有通常知识者,在不脱离本案之精神和范围内,当可作些许之更动与润饰,故本案之保护范围当视后附之权利要求书所界定者为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献