CN113760585A - 储存基本输入输出系统之除错讯息的方法 - Google Patents

储存基本输入输出系统之除错讯息的方法 Download PDF

Info

Publication number
CN113760585A
CN113760585A CN202010490308.4A CN202010490308A CN113760585A CN 113760585 A CN113760585 A CN 113760585A CN 202010490308 A CN202010490308 A CN 202010490308A CN 113760585 A CN113760585 A CN 113760585A
Authority
CN
China
Prior art keywords
processing module
storage
debug
stored
message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010490308.4A
Other languages
English (en)
Inventor
王义龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitac Computer Shunde Ltd
Shencloud Technology Co Ltd
Mitac Computing Technology Corp
Original Assignee
Mitac Computer Shunde Ltd
Mitac Computing Technology Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitac Computer Shunde Ltd, Mitac Computing Technology Corp filed Critical Mitac Computer Shunde Ltd
Priority to CN202010490308.4A priority Critical patent/CN113760585A/zh
Publication of CN113760585A publication Critical patent/CN113760585A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种储存基本输入输出系统之除错讯息的方法,借由一计算机装置来实施并包含以下步骤:(A)进行一初始化BIOS例程,以建立多个储存区块;(B)当下一BIOS例程为该除错讯息输出例程,同时该BIOS处于一初始化阶段时,根据一分存参数值、一储存索引值及一输出讯息数判定是否需将一除错讯息储存于该些储存区块;(C)当判定需储存该除错讯息时,储存该除错讯息,并更新该输出讯息数;(D)当判定出不储存该除错讯息时,更新该输出讯息数;(E)当该下一BIOS例程为驱动阶段的起始例程时,将储存于该些储存区块中的所有除错讯息储存至一第二储存模块。

Description

储存基本输入输出系统之除错讯息的方法
【技术领域】
本发明是有关于一种除错方法,特别是指一种储存基本输入输出系统之除错讯息的方法。
【背景技术】
基本输入输出系统(Basic Input/Output System,简称BIOS)是在通电启动阶段执行硬件初始化,以及为操作系统和程序提供运行时服务的韧体。若欲对BIOS之程序代码进行除错时,现有的除错方式通常是将BIOS的开机程序操作在一侦错模式下,而在开机过程中,除错讯息会经由串行端口输出到另一台计算机,工程师即可根据这些除错讯息,找出问题发生的原因。但现有的除错方法存在几个缺点:1.串行端口的输出除错讯息的速度十分缓慢,进而严重影响除错的效率;2.串行端口传输速度的缓慢也会改变程序代码执行的时间序列,造成原来要除错的问题消失或产生新的问题;3.需要使用一条串行线来与另一台计算机连接以收集除错讯息,实属不便,故现有的除错方法仍存在许多待改善之处。
【发明内容】
本发明要解决的技术问题是提供一种有效、且便利并能完整地获得所有除错讯息的储存基本输入输出系统之除错讯息的方法。
为解决上述技术问题,本发明储存基本输入输出系统之除错讯息的方法,借由一计算机装置来实施,该计算机装置包含一第一储存模块、一第二储存模块及一电连接该第一储存模块与该第二储存模块的处理模块,该储存基本输入输出系统之除错讯息的方法包含以下步骤:
(A)借由该处理模块进行一初始化基本输入输出系统例程,以在该第一储存模块建立多个储存区块,且设定一指示出除错讯息之分存次数的分存参数值及一储存索引值,并初始化一输出讯息数;
(B)借由该处理模块进行下一基本输入输出系统例程;
(C)当该下一基本输入输出系统例程为一除错讯息输出例程,同时该基本输入输出系统处于一初始化阶段时,借由该处理模块根据该分存参数值、该储存索引值及该输出讯息数判定是否储存该除错讯息输出例程所输出的一除错讯息;
(D)当该处理模块判定出需储存该除错讯息时,借由该处理模块将该除错讯息储存于该些储存区块中,并更新该输出讯息数,且回到步骤(B);
(E)当该处理模块判定出不需储存该除错讯息时,借由该处理模块更新该输出讯息数,并回到步骤(B);
(F)当该下一基本输入输出系统例程为一驱动阶段的起始例程时,借由该处理模块将储存于该些储存区块中的所有除错讯息储存至该第二储存模块,并回到步骤(B);
(G)当该下一基本输入输出系统例程为一加载操作系统例程时,借由该处理模块判定该分存参数值是否为一;及
(H)当该处理模块判定出该分存参数值不为一时,借由该处理模块更新该储存索引值。
为解决上述技术问题,本发明储存基本输入输出系统之除错讯息的方法,借由一计算机装置来实施,该计算机装置包含一第一储存模块、一第二储存模块及一电连接该第一储存模块与该第二储存模块的处理模块,该储存基本输入输出系统之除错讯息的方法包含以下步骤:
(A)借由该处理模块进行一初始化基本输入输出系统例程,以在该第一储存模块建立多个储存区块,且设定一预计的讯息总数,并初始化一输出讯息数;
(B)借由该处理模块进行下一基本输入输出系统例程;
(C)当该下一基本输入输出系统例程为该除错讯息输出例程,同时该基本输入输出系统处于一初始化阶段时,该处理模块将该除错讯息输出例程所输出的一除错讯息储存于该些储存区块中,并更新该输出讯息数;
(D)借由该处理模块根据该讯息总数、该输出讯息数及该些储存区块剩余的储存空间判定是否需压缩该些储存区块所储存之除错讯息;
(E)当该处理模块判定出需压缩该些储存区块所储存之除错讯息时,借由该处理模块压缩该些储存区块中所储存之未压缩过的除错讯息,并记录经压缩后的压缩讯息长度,且回到步骤(B);及
(F)当该下一基本输入输出系统例程为一驱动阶段的起始例程时,借由该处理模块将储存于该些储存区块中的所有除错讯息储存至该第二储存模块,并回到步骤(B)。
相较于现有技术,本发明借由该计算机装置透过建立多个储存区块并利用分次储存或压缩技术来储存所有在该初始化阶段产生的除错讯息,并在该驱动阶段的起始例程即将储存于该些储存区块中的所有除错讯息转存至该第二储存模块,而在该驱动阶段产生的除错讯息也储存在该第二储存模块中,使得不论是该初始化阶段产生的除错讯息还是该驱动阶段产生的除错讯息皆可自该第二储存模块取得,不需经由串行埠输出到另一台计算机,借此,所取得的除错讯息系为完整且真实反映的除错讯息,此外,借由直接将除错讯息储存于该些第二储存模块,而不需透过一条串行线来输出,可大幅提升收集除错讯息之效率性与便利性。
【附图说明】
本发明的其他的特征及功效,将于参照图式的实施方式中清楚地呈现,其中:
图1是一方块图,说明实施本发明储存基本输入输出系统之除错讯息的方法之第一实施例的一计算机装置;
图2及3配合地说明本发明储存基本输入输出系统之除错讯息的方法的第一实施例;
图4是一方块图,说明实施本发明储存基本输入输出系统之除错讯息的方法之第二实施例的一计算机装置;
图5及6配合地说明本发明储存基本输入输出系统之除错讯息的方法的第二实施例;
图7是一流程图,说明本发明该计算机装置之处理模块如何判定是否需压缩除错讯息的细部流程;及
图8是一流程图,说明本发明该计算机装置之处理模块如何将储存于多个储存区块中的所有除错讯息储存至一第二储存模块。
【具体实施方式】
在本发明被详细描述前,应当注意在以下的说明内容中,类似的组件是以相同的编号来表示。
参阅图1,本发明储存基本输入输出系统之除错讯息的方法的一第一实施例系借由一计算机装置1来实施。该计算机装置1包含一暂存模块11、一第一储存模块12、一第二储存模块13、一第三储存模块14及一电连接该暂存模块11、该第一储存模块12、该第二储存模块13与该第三储存模块14的处理模块15。在本实施例中,该暂存模块11例如为一缓存器,该第一储存模块12例如为一高速缓存(cache),其也可被包含于该处理模块15中,该第二储存模块13例如为一主存储器,该第三储存模块14例如为一闪存,该处理模块15例如为一中央处理单元。
以下将配合所附图式来说明利用该计算机装置1所实施的本发明储存基本输入输出系统之除错讯息的方法的一第一实施例,参阅图1、图2与图3,本发明储存基本输入输出系统之除错讯息的方法的一第一实施例包含下列步骤。
在步骤201中,该处理模块15进行一初始化基本输入输出系统例程(routine),以在该第一储存模块12建立多个储存区块,并将该些储存区块之地址储存于该暂存模块11,且设定一指示出除错讯息之分存次数的分存参数值及一储存索引值,并设定一预计的讯息总数,且初始化一输出讯息数。在本实施例中,每一储存区块例如为换手区块(hand offblock,HOB)
值得特别说明的是,该分存参数值可以被定义为一预设次数而由该处理模块15自动将该分存参数值设定为该预设次数,或者,也可由一管理者依先前的除错经验自行输入分存次数值,而使该处理模块15依据管理者输入的分存次数值来设定该分存参数值,但不以此为限。此外,在本实施例中,由于该第三储存模块14为一闪存,储存于该第三储存模块14中之数据不会因为电源关闭而消失,因此该储存索引值还被储存于该第三储存模块14中,故每次该处理模块15在进行该初始化基本输入输出系统例程以设定该储存索引值时,该处理模块15会依据该第三储存模块14所储存之该储存索引值来设定该储存索引值。
在步骤202中,该处理模块15进行下一基本输入输出系统例程。
在步骤203中,该处理模块15判定该下一基本输入输出系统例程是否为一除错讯息输出例程。当该处理模块15判定出该下一基本输入输出系统例程为该除错讯息输出例程时,流程进行步骤204;当该处理模块15判定出该下一基本输入输出系统例程不为该除错讯息输出例程时,流程进行步骤211。
在步骤204中,该处理模块15根据该暂存模块11所储存之数据判定该基本输入输出系统是否处于一初始化阶段(亦即,pre-EFI阶段,简称PEI阶段,其中EFI之全名为Extensible Firmware Interface)。当该处理模块15判定出该基本输入输出系统处于该初始化阶段时,流程进行步骤205;当该处理模块15判定出该基本输入输出系统不处于该初始化阶段时,流程进行步骤208。其中,该处理系借由判定该暂存模块11是否存有该些储存区块之地址,以判定该基本输入输出系统是否处于该初始化阶段模块。当该处理判定出该暂存模块11储存有该些储存区块之地址时,该处理模块15即判定该基本输入输出系统处于该初始化阶段;当该处理判定出该暂存模块11不储存有该些储存区块之地址时,该处理模块15即判定该基本输入输出系统不处于该初始化阶段。
在步骤205中,该处理模块15根据该分存参数值、该储存索引值及该输出讯息数判定是否储存该除错讯息输出例程所输出的一除错讯息。当该处理模块15判定出需储存该除错讯息时,流程进行步骤206;当该处理模块15判定出不需储存该除错讯息时,流程进行步骤207。其中,该处理模块15系借由计算出该输出讯息数除以该分存参数值的一余数,并判定该余数是否等于该储存索引值以判定是否储存该除错讯息输出例程所输出的一除错讯息,当该处理模块15判定出该余数等于该储存索引值时,即代表需储存该除错讯息;当该处理模块15判定出该余数不等于该储存索引值时,即代表不需储存该除错讯息。举例来说,若该分存参数值为4,当前的该储存索引值为2,且当前输出第19笔除错讯息(亦即,该输出讯息数为19),则输出讯息数除以该分存参数值的余数为3,由于此时该储存索引值为2,余数3不等于该储存索引值2,因此此次不需储存第19笔除错讯息。
在步骤206中,该处理模块15将该除错讯息储存于该些储存区块中,并更新该输出讯息数(亦即,将该输出讯息数加上一)。值得一提的是,在本实施例中,每次在储存该除错讯息时,皆是将当前所储存的该除错讯息附加在前一笔储存的该除错讯息之后。每次在储存该除错讯息后,该处理模块15即会更新一讯息长度,使得下次下一笔除错讯息要储存至该些储存区块时,该处理模块15 即将该下一笔除错讯息储存在一基地址加上该讯息长度后的地址,接着将该讯息长度加上该下一笔除错讯息的长度,以更新该讯息长度。
在步骤209中,该处理模块15根据该讯息总数、该输出讯息数及该些储存区块剩余的储存空间判定是否需压缩该些储存区块所储存之除错讯息。当该处理模块15判定出需压缩该些储存区块所储存之除错讯息时,流程进行步骤210;当该处理模块15判定出不需压缩该些储存区块所储存之除错讯息时,流程回到步骤202。
值得一提的是,步骤209包含以下子步骤(见图7)。
在子步骤501中,该处理模块15根据该讯息总数、该输出讯息数计算出一待存讯息比例。该处理模块15系将该讯息总数减掉该输出讯息数以获得一待存讯息数,接着将该待存讯息数除以该讯息总数以获得该待存讯息比例。
在子步骤502中,该处理模块15根据该些储存区块剩余的储存空间与该些储存区块全部的储存空间计算出一剩余储存空间比例。该处理模块15系将该些储存区块剩余的储存空间除以该些储存区块全部的储存空间以获得该剩余储存空间比例。
在子步骤503中,该处理模块15判定该剩余储存空间比例是否小于该待存讯息比例,以判定是否需压缩该些储存区块所储存之除错讯息。其中,当判定出该剩余储存空间比例小于该待存讯息比例时,即代表需压缩该些储存区块所储存之除错讯息,故流程进行步骤210;当判定出该剩余储存空间比例不小于该待存讯息比例时,即代表不需压缩该些储存区块所储存之除错讯息,故流程进行步骤202。
在步骤210中,该处理模块15压缩该些储存区块中所储存之未压缩过的除错讯息,并记录经压缩后的压缩讯息长度,且回到步骤202。
在步骤207中,该处理模块15更新该输出讯息数(亦即,将该输出讯息数加上一),且回到步骤202。
在步骤208中,该处理模块15将该除错讯息输出例程所输出的该除错讯息储存于该第二储存模块13,并回到步骤202。
在步骤211中,该处理模块15判定该下一基本输入输出系统例程是否为一驱动阶段(亦即,DXE阶段,其中DXE之全名为Driver Execution Environment)的起始例程。当该处理模块15判定出该下一基本输入输出系统例程为该驱动阶段的起始例程时,流程进行步骤212;当该处理模块15判定出该下一基本输入输出系统例程不为该驱动阶段的起始例程时,流程进行步骤213。
在步骤212中,该处理模块15将储存于该些储存区块中的所有除错讯息储存至该第二储存模块13,并重设该暂存模块11所储存之数据,且回到步骤202。在本实施例中,该处理模块15系将该暂存模块11所储存之数据删除以重设该暂存模块11所储存之数据。值得一提的是,在该计算机装置1进入DXE阶段后,即表示该第二储存模块13的初始化已完成而可使用,故可将储存于该些储存区块中的所有除错讯息转存至该第二储存模块13中。
另值得一提的是,步骤212还包含以下子步骤(见图8)。
在子步骤601中,该处理模块15根据每次压缩时所记录的压缩讯息长度,对该些储存区块中所储存之经压缩后的除错讯息进行解压缩。在本实施例中,该处理模块15系使用一数组来储存每一经压缩后之除错讯息的压缩讯息长度。
在子步骤602中,该处理模块15将经解压缩后的所有除错讯息储存至该第二储存模块13,并重设该暂存模块11所储存之数据,且回到步骤202。
值得一提的是,在本实施例中,解压缩之流程系在步骤601进行;然而,在其他实施例中,解压缩之流程亦可在开机后该管理者欲查看除错讯息时才进行,如此可以省下开机过程中解压缩的时间,此时,在步骤212中,该处理模块15系将储存于该些储存区块中的所有除错讯息及每次压缩时所记录的压缩讯息长度储存至该第二储存模块13,以供后续解压缩时使用。
在步骤213中,该处理模块15判定该下一基本输入输出系统例程是否为一加载操作系统例程。当该处理模块15判定出该下一基本输入输出系统例程为该加载操作系统例程时(亦即,基本输入输出系统例程已结束),流程进行步骤214;当该处理模块15判定出该下一基本输入输出系统例程不为该加载操作系统例程时,流程回到步骤202。
在步骤214中,该处理模块15判定该分存参数值是否为一。当该处理模块15判定出该分存参数值为1时,流程结束(亦即,开机自我检测(Power-On Self-Test,简称POST)流程结束);当该处理模块15判定出该分存参数值不为1时,流程进行步骤215。
在步骤215中,该处理模块15还判定该储存索引值是否等于该分存参数值减1。当该处理模块15判定出该储存索引值等于该分存参数值减1时(此时表示,需要分次储存的除错讯息已经储存完成),流程进行步骤216;当该处理模块15判定出该储存索引值不等于该分存参数值减一时(此时表示,需要分次储存的除错讯息尚未储存完成),流程进行步骤217。
在步骤216中,该处理模块15将储存于该第三储存模块14的该储存索引值重设为零,并结束开机自我检测流程。
在步骤217中,该处理模块15将储存于该第三储存模块14的该储存索引值加一,以更新该储存索引值,并结束开机自我检测流程。
值得别说明的是,当该分存参数值不为1时,即代表在该初始化阶段产生的除错讯息需分次储存,以确保所有在该初始化阶段产生的除错讯息皆能完整地被保留下来,由于该些储存区块之储存空间有限,当在该初始化阶段产生的除错讯息过多时,即需分次储存。举例来说,若在初始化阶段所产生的所有除错讯息共有1000笔,且该分存参数值被设定为2,则代表要分两次才能储存完所有在初始化阶段产生的除错讯息,因此第一次进行本发明储存基本输入输出系统之除错讯息的方法的步骤时,该储存索引值被设定为0,故所储存的除错讯息即为第2n笔被输出的除错讯息,n=1,2,3,…,499,500,亦即第一次进行储存基本输入输出系统之除错讯息时所储存的除错讯息为第2,4,6,8,…笔除错讯息,接着,在该计算机装置1重新启动以再次(亦即,第二次)进行本发明储存基本输入输出系统之除错讯息的方法的步骤时,该储存索引值被设定为1,故所储存的除错讯息即为第2m+1笔被输出的除错讯息,m=0,1,2,…,498,499,亦即第二次进行储存基本输入输出系统之除错讯息时所储存的除错讯息为第1,3,5,7,…笔除错讯息。在BIOS程序代码没有经过修改的情况下,除错讯息即具有再现性,相同的除错讯息在下一次重新启动时还是会再度出现,故第一次进行本发明储存基本输入输出系统之除错讯息的方法仅先储存在该初始化阶段所产生之除错讯息的一半,亦即,储存第2,4,6,8,…笔除错讯息,且在第一次进行储存基本输入输出系统之除错讯息的步骤215时,该分存参数值为2,且该储存索引值为0,由于该储存索引值等于零而不等于该分存参数值减一(2-1=1),此时表示需要分次储存的除错讯息尚未储存完成,因此流程会进行步骤217,以将该储存索引值加一(0+1=1),在下次重新启动而第二次进行本发明储存基本输入输出系统之除错讯息的方法时才将在该初始化阶段所产生之除错讯息的另一半存完,亦即,储存第1,3,5,7,…笔除错讯息,且在第二次进行储存基本输入输出系统之除错讯息的步骤215时,该分存参数值为2,且该储存索引值为1,由于该储存索引值等于一而等于该分存参数值减一(2-1=1),此时表示需要分次储存的除错讯息已经储存完成,因此流程会进行步骤216,以将该储存索引值重设为零,借由上述分次储存的方式即可在满足该些储存区块之储存空间的限制下完整地储存该初始化阶段所产生之所有的除错讯息,换句话说,重复进行本发明储存基本输入输出系统之除错讯息的方法之次数达该分存参数值时,即可完整地储存该初始化阶段所产生之所有的除错讯息。另值得一提的是,在本实施例中,该处理模块15还会进行步骤209~210以压缩该些储存区块所储存之除错讯息;然而,在本发明之其他实施例中,该处理模块15亦可不进行步骤209~210,且在步骤201中不设定该讯息总数,而单纯借由分存方式来完整地储存该初始化阶段所产生之所有的除错讯息。本发明的一重要目的为「将bios程序代码在开机过程的所有除错讯息存到该第二储存模块13」,因此在步骤设计上,本发明包含了二大储存程序,由于在刚开机时该第二储存模块13(亦即,主存储器)尚未初始化完成的阶段,也就是PEI阶段。在PEI阶段中,本发明进行第一储存程序,在第一储存程序中先将除错讯息暂存于该些储存区块(HOB),在该第二储存模块13完成初始化之后的阶段,也就是DXE阶段,本发明即进入第二储存程序,在进入DXE阶段后即可将暂存于该些储存区块的除错讯息储存到该第二储存模块13中。而进入到DXE阶段后,由于该第二储存模块13已经完成初始化,因此往后输出的除错讯息皆可储存在该第二储存模块13中。
参阅图4,本发明储存基本输入输出系统之除错讯息的方法的一第二实施例系借由另一计算机装置1来实施,该另一计算机装置1大致上与该计算机装置1相同,其差别在于该计算机装置1不需包含该第三储存模块14。
参阅图4、图5与图6,本发明储存基本输入输出系统之除错讯息的方法的一第二实施例包含下列步骤。
在步骤401中,该处理模块15进行一初始化基本输入输出系统例程,以在该第一储存模块12建立多个储存区块,并将该些储存区块之地址储存于该暂存模块11,且设定一预计的讯息总数,并初始化一输出讯息数。
在步骤402中,该处理模块15进行下一基本输入输出系统例程。
在步骤403中,该处理模块15判定该下一基本输入输出系统例程是否为该除错讯息输出例程。当该处理模块15判定出该下一基本输入输出系统例程为该除错讯息输出例程时,流程进行步骤404;当该处理模块15判定出该下一基本输入输出系统例程不为该除错讯息输出例程时,流程进行步骤409。
在步骤404中,该处理模块15根据该暂存模块11所储存之数据判定该基本输入输出系统是否处于该初始化阶段(亦即,pre-EFI阶段,简称PEI阶段,其中EFI之全名为Extensible Firmware Interface)。当该处理模块15判定出该基本输入输出系统处于该初始化阶段时,流程进行步骤405;当该处理模块15判定出该基本输入输出系统不处于该初始化阶段时,流程进行步骤408。其中,该处理系借由判定该暂存模块11是否存有该些储存区块之地址,以判定该基本输入输出系统是否处于该初始化阶段模块。当该处理判定出该暂存模块11储存有该些储存区块之地址时,该处理模块15即判定该基本输入输出系统处于该初始化阶段;当该处理判定出该暂存模块11不储存有该些储存区块之地址时,该处理模块15即判定该基本输入输出系统不处于该初始化阶段。
在步骤405中,该处理模块15将该除错讯息输出例程所输出的一除错讯息储存于该些储存区块中,并更新该输出讯息数。
在步骤406中,该处理模块15根据该讯息总数、该输出讯息数及该些储存区块剩余的储存空间判定是否需压缩该些储存区块所储存之除错讯息。当该处理模块15判定出需压缩该些储存区块所储存之除错讯息时,流程进行步骤407;当该处理模块15判定出不需压缩该些储存区块所储存之除错讯息时,流程回到步骤402。
类似于第一实施例,步骤406包含子步骤501~503(见图7),差异仅在于,当判定出该剩余储存空间比例小于该待存讯息比例时,流程进行步骤407;当判定出该剩余储存空间比例不小于该待存讯息比例时,流程进行步骤402。
在步骤407中,该处理模块15压缩该些储存区块中所储存之未压缩过的除错讯息,并记录经压缩后的压缩讯息长度,且回到步骤402。
在步骤408中,该处理模块15将该除错讯息输出例程所输出的该除错讯息储存于该第二储存模块13,并回到步骤402。
在步骤409中,该处理模块15判定该下一基本输入输出系统例程是否为该驱动阶段(亦即,DXE阶段)的起始例程。当该处理模块15判定出该下一基本输入输出系统例程为该驱动阶段的起始例程时,流程进行步骤410;当该处理模块15判定出该下一基本输入输出系统例程不为该驱动阶段的起始例程时,流程进行步骤411。
在步骤410中,该处理模块15将储存于该些储存区块中的所有除错讯息储存至该第二储存模块13,并重设该暂存模块11所储存之数据,且回到步骤402。
类似于第一实施例,步骤410包含子步骤601~602(见图8),差异仅在于,进行完步骤602后流程回到步骤402。
在步骤411中,该处理模块15判定该下一基本输入输出系统例程是否为该加载操作系统例程。当该处理模块15判定出该下一基本输入输出系统例程为该加载操作系统例程时,流程结束(亦即,POST流程结束);当该处理模块15判定出该下一基本输入输出系统例程不为该加载操作系统例程时,流程回到步骤402。
综上所述,本发明储存基本输入输出系统之除错讯息的方法,借由该计算机装置1透过建立多个储存区块并利用分次储存或压缩技术来储存所有在该初始化阶段产生的除错讯息,并在该驱动阶段的起始例程即将储存于该些储存区块中的所有除错讯息转存至该第二储存模块13,而在该驱动阶段产生的除错讯息也储存在该第二储存模块13中,使得不论是该初始化阶段产生的除错讯息还是该驱动阶段产生的除错讯息皆可自该第二储存模块13取得,不需经由串行埠输出到另一台计算机,借此,所取得的除错讯息系为完整且真实反映的除错讯息,此外,本发明的除错讯息取得方式相较于过往使用一条串行线来与另一台计算机连接以收集除错讯息而言不仅非常有效率也非常便利,故确实能达成本发明的目的。
惟以上所述者,仅为本发明的实施例而已,当不能以此限定本发明实施的范围,凡是依本发明权利要求书及专利说明书内容所作的简单的等效变化与修饰,皆仍属本发明专利涵盖的范围内。

Claims (13)

1.一种储存基本输入输出系统之除错讯息的方法,借由一计算机装置来实施,该计算机装置包含一第一储存模块、一第二储存模块及一电连接该第一储存模块与该第二储存模块的处理模块,其特征在于,该储存基本输入输出系统之除错讯息的方法包含以下步骤:
(A)借由该处理模块进行一初始化基本输入输出系统例程,以在该第一储存模块建立多个储存区块,且设定一指示出除错讯息之分存次数的分存参数值及一储存索引值,并初始化一输出讯息数;
(B)借由该处理模块进行下一基本输入输出系统例程;
(C)当该下一基本输入输出系统例程为一除错讯息输出例程,同时该基本输入输出系统处于一初始化阶段时,借由该处理模块根据该分存参数值、该储存索引值及该输出讯息数判定是否储存该除错讯息输出例程所输出的一除错讯息;
(D)当该处理模块判定出需储存该除错讯息时,借由该处理模块将该除错讯息储存于该些储存区块中,并更新该输出讯息数,且回到步骤(B);
(E)当该处理模块判定出不需储存该除错讯息时,借由该处理模块更新该输出讯息数,并回到步骤(B);
(F)当该下一基本输入输出系统例程为一驱动阶段的起始例程时,借由该处理模块将储存于该些储存区块中的所有除错讯息储存至该第二储存模块,并回到步骤(B);
(G)当该下一基本输入输出系统例程为一加载操作系统例程时,借由该处理模块判定该分存参数值是否为1;及
(H)当该处理模块判定出该分存参数值不为1时,借由该处理模块更新该储存索引值。
2.如权利要求1所述的储存基本输入输出系统之除错讯息的方法,该计算机装置还包含一电连接该处理模块的暂存模块,其特征在于:
在步骤(A)中,该处理模块还将该些储存区块之地址储存于该暂存模块;
在步骤(C)中,该处理模块系借由判定该暂存模块是否存有该些储存区块之地址,以判定该基本输入输出系统是否处于该初始化阶段;及
在步骤(F)中,该处理模块还重设该暂存模块所储存之数据。
3.如权利要求2所述的储存基本输入输出系统之除错讯息的方法,其特征在于,在步骤(C)中,当该基本输入输出系统不处于该初始化阶段时,该处理模块将该除错讯息输出例程所输出的该除错讯息储存于该第二储存模块,并回到步骤(B)。
4.如权利要求1所述的储存基本输入输出系统之除错讯息的方法,其特征在于,在步骤(C)中,该处理模块系借由计算出该输出讯息数除以该分存参数值的一余数,并判定该余数是否等于该储存索引值以判定是否储存该除错讯息输出例程所输出的一除错讯息。
5.如权利要求4所述的储存基本输入输出系统之除错讯息的方法,在步骤(G)与步骤(H)之间,其特征在于,还包含以下步骤:
(I)当该处理模块判定出该分存参数值不为一时,借由该处理模块还判定该储存索引值是否等于该分存参数值减一;及
(J)当该处理模块判定出该储存索引值等于该分存参数值减一时,借由该处理模块将该储存索引值重设为零;
其中,在步骤(H)中,当该处理模块判定出该分存参数值不为一,同时该储存索引值不等于该分存参数值减一时,该处理模块将该储存索引值加一,以更新该储存索引值。
6.如权利要求1所述的储存基本输入输出系统之除错讯息的方法,其特征在于,在步骤(A)中,该处理模块进行该初始化基本输入输出系统例程还设定一预计的讯息总数,而步骤(D)还包含以下子步骤:
(D-1) 当该处理模块判定出需储存该除错讯息时,借由该处理模块将该除错讯息储存于该些储存区块中,并更新该输出讯息数;
(D-2) 借由该处理模块根据该讯息总数、该输出讯息数及该些储存区块剩余的储存空间判定是否需压缩该些储存区块所储存之除错讯息;及
(D-3)当该处理模块判定出需压缩该些储存区块所储存之除错讯息时,借由该处理模块压缩该些储存区块中所储存之未压缩过的除错讯息,并记录经压缩后的压缩讯息长度,且回到步骤(B)。
7.如权利要求6所述的储存基本输入输出系统之除错讯息的方法,其特征在于,步骤(D-2)包含以下子步骤:
(D-2-1)该处理模块根据该讯息总数、该输出讯息数计算出一待存讯息比例;
(D-2-2)该处理模块根据该些储存区块剩余的储存空间与该些储存区块全部的储存空间计算出一剩余储存空间比例;及
(D-2-3)该处理模块判定该剩余储存空间比例是否小于该待存讯息比例,以判定是否需压缩该些储存区块所储存之除错讯息。
8.如权利要求7所述的储存基本输入输出系统之除错讯息的方法,其特征在于,步骤(F)包含以下子步骤:
(F-1)当该下一基本输入输出系统例程为该驱动阶段的起始例程时,借由该处理模块根据每次压缩时所记录的压缩讯息长度,对该些储存区块中所储存之经压缩后的除错讯息进行解压缩;及
(F-2)该处理模块将经解压缩后的所有除错讯息储存至该第二储存模块,并回到步骤(B)。
9.一种储存基本输入输出系统之除错讯息的方法,借由一计算机装置来实施,该计算机装置包含一第一储存模块、一第二储存模块及一电连接该第一储存模块与该第二储存模块的处理模块,其特征在于,该储存基本输入输出系统之除错讯息的方法包含以下步骤:
(A)借由该处理模块进行一初始化基本输入输出系统例程,以在该第一储存模块建立多个储存区块,且设定一预计的讯息总数,并初始化一输出讯息数;
(B)借由该处理模块进行下一基本输入输出系统例程;
(C)当该下一基本输入输出系统例程为一除错讯息输出例程,同时该基本输入输出系统处于一初始化阶段时,该处理模块将该除错讯息输出例程所输出的一除错讯息储存于该些储存区块中,并更新该输出讯息数;
(D) 借由该处理模块根据该讯息总数、该输出讯息数及该些储存区块剩余的储存空间判定是否需压缩该些储存区块所储存之除错讯息;
(E)当该处理模块判定出需压缩该些储存区块所储存之除错讯息时,借由该处理模块压缩该些储存区块中所储存之未压缩过的除错讯息,并记录经压缩后的压缩讯息长度,且回到步骤(B);及
(F)当该下一基本输入输出系统例程为一驱动阶段的起始例程时,借由该处理模块将储存于该些储存区块中的所有除错讯息储存至该第二储存模块,并回到步骤(B)。
10.如权利要求9所述的储存基本输入输出系统之除错讯息的方法,该计算机装置还包含一暂存模块,其特征在于:
在步骤(A)中,该处理模块还将该些储存区块之地址储存于该暂存模块;
在步骤(C)中,该处理模块系借由判定该暂存模块是否存有该些储存区块之地址,以判定该基本输入输出系统是否处于该初始化阶段;及
在步骤(F)中,该处理模块还重设该暂存模块所储存之数据。
11.如权利要求9所述的储存基本输入输出系统之除错讯息的方法,其特征在于,在步骤(C)中,当该基本输入输出系统不处于该初始化阶段时,该处理模块将该除错讯息输出例程所输出的该除错讯息储存于该第二储存模块,并回到步骤(B)。
12.如权利要求9所述的储存基本输入输出系统之除错讯息的方法,其特征在于,步骤(D)包含以下子步骤:
(D-1)该处理模块根据该讯息总数、该输出讯息数计算出一待存讯息比例;
(D-2)该处理模块根据该些储存区块剩余的储存空间与该些储存区块全部的储存空间计算出一剩余储存空间比例;及
(D-3)该处理模块判定该剩余储存空间比例是否小于该待存讯息比例,以判定是否需压缩该些储存区块所储存之除错讯息。
13.如权利要求9所述的储存基本输入输出系统之除错讯息的方法,其特征在于,步骤(F)包含以下子步骤:
(F-1)当该下一基本输入输出系统例程为该驱动阶段的起始例程时,借由该处理模块根据每次压缩时所记录的压缩讯息长度,对该些储存区块中所储存之经压缩后的除错讯息进行解压缩;及
(F-2)该处理模块将经解压缩后的所有除错讯息储存至该第二储存模块,并回到步骤(B)。
CN202010490308.4A 2020-06-02 2020-06-02 储存基本输入输出系统之除错讯息的方法 Pending CN113760585A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010490308.4A CN113760585A (zh) 2020-06-02 2020-06-02 储存基本输入输出系统之除错讯息的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010490308.4A CN113760585A (zh) 2020-06-02 2020-06-02 储存基本输入输出系统之除错讯息的方法

Publications (1)

Publication Number Publication Date
CN113760585A true CN113760585A (zh) 2021-12-07

Family

ID=78782841

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010490308.4A Pending CN113760585A (zh) 2020-06-02 2020-06-02 储存基本输入输出系统之除错讯息的方法

Country Status (1)

Country Link
CN (1) CN113760585A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW526411B (en) * 2001-08-17 2003-04-01 Mediatek Inc Debugging device
US20060075286A1 (en) * 2004-10-06 2006-04-06 Hunt Hodge System and method for logging hardware usage data, and uses for such logged hardware usage data
CN108874447A (zh) * 2018-06-05 2018-11-23 上海兆芯集成电路有限公司 处理器电路及其操作方法
CN109086156A (zh) * 2018-07-27 2018-12-25 郑州云海信息技术有限公司 一种服务器除错方法、装置、设备及计算机可读存储介质
TWI726616B (zh) * 2020-02-13 2021-05-01 神雲科技股份有限公司 儲存基本輸入輸出系統之除錯訊息的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW526411B (en) * 2001-08-17 2003-04-01 Mediatek Inc Debugging device
US20060075286A1 (en) * 2004-10-06 2006-04-06 Hunt Hodge System and method for logging hardware usage data, and uses for such logged hardware usage data
CN108874447A (zh) * 2018-06-05 2018-11-23 上海兆芯集成电路有限公司 处理器电路及其操作方法
CN109086156A (zh) * 2018-07-27 2018-12-25 郑州云海信息技术有限公司 一种服务器除错方法、装置、设备及计算机可读存储介质
TWI726616B (zh) * 2020-02-13 2021-05-01 神雲科技股份有限公司 儲存基本輸入輸出系統之除錯訊息的方法

Similar Documents

Publication Publication Date Title
US8078586B2 (en) Accessing file data stored in non-volatile re-programmable semiconductor memories
US7406592B1 (en) Method, system, and apparatus for efficient evaluation of boolean expressions
US8719810B2 (en) Program upgrade system and method for over the air-capable mobile terminal
US8732446B2 (en) Selectively compressing blocks of a bootable snapshot image during booting
EP1634170A2 (en) Method for firmware variable storage with eager compression, fail-safe extraction and restart time compression scan
CN108052643B (zh) 基于LSM Tree结构的数据存储方法、装置及存储引擎
CN105302663B (zh) 一种镜像开机方法和终端设备
CN115098190A (zh) 一种提高ssd系统启动速度的方法、装置、终端及存储介质
US6961848B2 (en) System and method for supporting legacy operating system booting in a legacy-free system
CN110825419A (zh) 一种固件刷新方法、装置及电子设备和存储介质
CN111290773B (zh) 系统升级方法、设备及可读存储介质
CN115269025A (zh) 一种内核快速启动方法、装置、电子设备及存储介质
CN110162573B (zh) 一种分布式序列生成方法、装置及系统
US10970206B2 (en) Flash data compression decompression method and apparatus
TWI726616B (zh) 儲存基本輸入輸出系統之除錯訊息的方法
CN113760585A (zh) 储存基本输入输出系统之除错讯息的方法
CN112269601B (zh) 一种bmc及其部件资产信息管理方法、装置和存储介质
CN115794132A (zh) 操作系统部署方法、装置、设备及存储介质
JPH118547A (ja) 再構成可能演算装置
CN110928582B (zh) 信息处理设备和配置信息处理设备的目标装置的方法
CN115190084B (zh) 一种以太网交换模块的启动方法及系统
CN111858494B (zh) 文件获取方法、装置、存储介质及电子设备
CN113626092A (zh) 嵌入式系统启动方法与soc芯片
CN114726719B (zh) 网元操作系统部署方法、装置、电子设备及存储介质
CN115185884A (zh) 一种文件转储方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination