首页> 中国专利> 开机自我测试中的除错方法及开机自我测试中的除错装置

开机自我测试中的除错方法及开机自我测试中的除错装置

摘要

一种开机自我测试中的除错方法及开机自我测试中的除错装置。该开机自我测试中的除错方法由一处理单元执行,该开机自我测试中的除错方法包括:设定一阶段编号,用以指出进入开机自我测试的一阶段;从一排程队列选择一驱动程序;取得上述驱动程序的一全局唯一识别码;储存或输出上述阶段编号以及上述全局唯一识别码,使得当执行到上述驱动程序中的一断点时,可辨认是上述阶段中的上述驱动程序发生中断;以及执行上述驱动程序。本发明的开机自我测试中的除错方法及开机自我测试中的除错装置可以避免执行到检查点时错认发生中断的驱动程序。

著录项

  • 公开/公告号CN105487956A

    专利类型发明专利

  • 公开/公告日2016-04-13

    原文格式PDF

  • 申请/专利权人 纬创资通股份有限公司;

    申请/专利号CN201410690235.8

  • 发明设计人 谢旻桦;陈俞宏;

    申请日2014-11-26

  • 分类号G06F11/28(20060101);

  • 代理机构北京嘉和天工知识产权代理事务所(普通合伙);

  • 代理人严慎;支媛

  • 地址 中国台湾新北市汐止区新台五路一段88号21楼

  • 入库时间 2023-12-18 15:29:11

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-12-22

    授权

    授权

  • 2016-05-11

    实质审查的生效 IPC(主分类):G06F11/28 申请日:20141126

    实质审查的生效

  • 2016-04-13

    公开

    公开

说明书

技术领域

本发明涉及一种除错技术,特别是一种开机自我测试中的除错方法及开机自我测试中 的除错装置。

背景技术

开机自我测试(POST,Power-OnSelf-Test)是一种在计算器设备开机后马上由固件或 软件例程(firmwareorsoftwareroutine)执行的程序,而测试结果可显示于显示面板,输 出至外部装置或储存起来供诊断工具将来存取。通常,在开机自我测试中为不同硬件所执 行的驱动程序由不同的供应商提供,例如,基本输入输出(BIOS,BasicInputOutputSystem) 厂商、芯片组(chipset)厂商、代工制造商(OEM,OriginalEquipmentManufacturer)等, 而每个供应商都会在提供的驱动程序中插入检查点(checkpoints)。然而,由于不同供应 商为不同硬件所提供的驱动程序的识别编号可能重复,而造成执行到检查点时错认发生中 断的驱动程序。因此,需要一种开机自我测试中的除错方法以及使用该方法的装置,用以 避免如上所述的问题。

发明内容

本发明的实施例提出一种开机自我测试中的除错方法,该开机自我测试中的除错方法 由一处理单元执行,该开机自我测试中的除错方法包括:设定一阶段编号,用以指出进入 开机自我测试的一阶段;从一排程队列选择一驱动程序;取得上述驱动程序的一全局唯一 识别码;储存或输出上述阶段编号以及上述全局唯一识别码,使得当执行到上述驱动程序 中的一断点(interrupt)时,可辨认是上述阶段中的上述驱动程序发生中断;以及执行上 述驱动程序。

本发明的实施例提出一种开机自我测试中的除错装置,该开机自我测试中的除错装置 包括:一易失性存储器;以及一处理单元,该处理单元包括一高速缓存,耦接于上述易失 性存储器,设定一阶段编号,用以指出进入开机自我测试的一阶段;从一排程队列选择一 驱动程序;取得上述驱动程序的一全局唯一识别码;储存或输出上述阶段编号以及上述全 局唯一识别码,使得当执行到上述驱动程序中的一断点时,可辨认是上述阶段中的上述驱 动程序发生中断;以及执行上述驱动程序。

本发明的开机自我测试中的除错方法及开机自我测试中的除错装置可以避免执行到 检查点时错认发生中断的驱动程序。

附图说明

图1是依据本发明实施例的运算装置的系统架构图。

图2是依据本发明实施例的开机自我测试的示意图。

图3是依据本发明实施例的开机自我测试中的除错方法流程图。

图4是依据本发明实施例的核心分配模块的储存示意图。

图5是依据本发明实施例的阶段编号以及驱动程序的全局唯一识别码的储存示意图。

主要组件符号说明:

110处理单元

120显示单元

130输入装置

140非易失性存储器

150易失性存储器

160连接接口

210核心分配模块

230_1~230_n驱动程序

250回叫记录处理模块

P21安全阶段

P23前扩展固件接口初始阶段

P25驱动程序执行环境阶段

S311~S391方法步骤

210_1、210_2、210_3核心分配模块

510a、510b、530a、530b非易失性存储器中的区域

具体实施方式

以下说明是为完成发明的较佳实现方式,其目的在于描述本发明的基本精神,但并不 用以限定本发明。实际的发明内容必须参考所附的权利要求范围。

必须了解的是,使用于本说明书中的“包含”、“包括”等词,是用以表示存在特定 的技术特征、数值、方法步骤、作业处理、元件和/或组件,但并不排除可加上更多的技 术特征、数值、方法步骤、作业处理、元件、组件或以上的任意组合。

在权利要求中使用如“第一”、“第二”、“第三”等词是用来修饰权利要求中的元 件,并非用来表示之间具有优先权顺序、先行关系,或者是一个元件先于另一个元件,或 者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的元件。

图1是依据本发明实施例的运算装置的系统架构图。该系统架构可实施于桌上型计算 机、笔记本型计算机、平板计算机、手机等,至少包含处理单元110。处理单元110可使 用多种方式实施,例如以专用硬件电路或通用硬件(例如,单处理器、具有并行处理能力 的多处理器、图形处理器或其他具有运算能力的处理器),并且在执行固件或软件时,提 供之后所描述的功能。系统架构还包含非易失性存储器140,例如只读存储器(ROM,Read OnlyMemory)、可擦除可编程只读存储器(EPROM,ErasableProgrammableReadOnly Memory)、非易失性随机存取存储器(NVRAM,Non-VolatileRandomAccessMemory) 等,用以储存由不同厂商提供于开机自我测试为不同硬件所执行的驱动程序;易失性存储 器150,例如动态随机存取存储器(DRAM,DynamicRandomAccessMemory),用以储 存执行过程中需要的数据,例如,变量、数据表(datatables)、驱动程序等;以及寄存 器,用以储存目前正执行以及上一个执行的驱动程序的全局唯一识别码(GUID,Globally UniqueIdentifier)。在此须注意的是,非易失性存储器140和/或寄存器可整合至处理单元 110中,本发明并不因此受限。系统架构还包含连接接口160,让处理单元110可藉以跟 其他电子装置进行沟通。连接接口160可以是通用串行总线(USB,UniversalSerialBus) 接口、元件端口(COMport)等。输入装置130可包含键盘、鼠标、触控面板等。使用者 可按压键盘上的硬键来输入字符,藉由操作鼠标来控制光标,或者是在触控面板制造手势 来控制执行中的应用程序。手势可包含单击、双击、单指拖拽、多指拖拽等,但不限定于 此。显示单元120可包含显示面板(例如,薄膜液晶显示面板、有机发光二极管面板或其 他具有显示能力的面板),用以显示输入的字符、数字、符号、拖拽鼠标的移动轨迹、绘 制的图案或应用程序所提供的画面,提供给使用者观看。

第2图是依据本发明实施例的开机自我测试的示意图。开机自我测试至少包含三个阶 段:安全阶段(SEC,Security)P21、前扩展固件接口初始阶段(PEI,Pre Extensible-firmware-interfaceInitialization)P23以及驱动程序执行环境阶段(DXE,Driver ExecutionEnvironment)P25。这三个阶段又可统称为平台初始化(platforminitialization), 而每个阶段会使用一个特定的核心分配模块来协调所有的硬件初始化操作。在每个阶段的 一开始,处理单元110会载入并执行该阶段的核心分配模块(CoreDispatcher)210。处理 单元110在执行核心分配模块210时从排程队列(ScheduledQueue)选择并储存一个驱动 程序至处理单元110中的高速缓存(cache,未显示)或易失性存储器150,例如驱动程序 230_1至230_n中的一者,n为大于0的整数(该操作又可称为载入驱动程序)。每个驱 动程序拥有一个全局唯一识别码。全局唯一识别码为独一无二的参考数字,用来作为驱动 程序230_1至230_n的识别码。全局唯一识别码可使用128位储存,并且可表示为使用连 字符隔开的几组十六进制数字,例如{21EC2020-3AEA-4069-A2DD-08002B30309D}。在载 入驱动程序后,处理单元110还呼叫并执行回叫记录处理模块(CallbackRecordHandle) 250。当执行回叫记录处理模块250时,处理单元110可储存或输出阶段编号以及该驱动 程序的全局唯一识别码。在一个范例,处理单元110可将阶段编号以及该驱动程序的全局 唯一识别码储存于非易失性存储器140。在另一个范例,处理单元110可将阶段编号以及 该驱动程序的全局唯一识别码写入端口80(port80)的寄存器,使得阶段编号以及该驱动 程序的全局唯一识别码可显示于显示单元120。在又另一个范例,处理单元110可将阶段 编号以及该驱动程序的全局唯一识别码写入连接接口160的寄存器,使得阶段编号以及该 驱动程序的全局唯一识别码可输出到其他电子装置。执行完回叫记录处理模块250后,处 理单元110开始提取并执行储存的驱动程序的指令,用以完成指定硬件的初始化操作。处 理单元110反复执行核心分配模块210,用以从排程队列载入下一个驱动程序,呼叫并执 行回叫记录处理模块250,以及执行载入的驱动程序,直到该阶段中所有驱动程序都执行 完为止。在此须注意的是,当执行到任何的断点时,使用者可通过浏览显示单元120上的 信息,通过连接接口160取得最近输出的阶段编号及全局唯一识别码,或读取易失性存储 器150的最新阶段编号及全局唯一识别码来辨认是哪个阶段中的哪个驱动程序发生中断。

通过安全阶段P21的核心分配模块的执行,例如,可完成设定处理单元110中的高速 缓存(未显示),使得高速缓存可用以储存微指令(microcode),或设定处理单元110 中的其他元件等。通过前扩展固件接口初始阶段P23的核心分配模块的执行,例如,可完 成初始化易失性存储器150,使得易失性存储器150可用以储存驱动程序,或初始化特定 的芯片组、通用型输入输出(GPIO,GeneralPurposeInputOutput)装置等。通过驱动程序 执行环境阶段P25的核心分配模块的执行,例如,可完成初始化变量、显示单元120、通 用串行总线装置、外围部件互连(PCI,PeripheralComponentInterconnect)装置等。

图3是依据本发明实施例的开机自我测试中的除错方法流程图。该方法由处理单元 110在载入并执行相关固件时实施。该流程反复载入并执行(下)一个阶段的核心分配模 块(步骤S311),直到完成整个平台初始化,并且在执行的核心分配模块的控制下,完 成各阶段中所需的硬件初始化操作(步骤S331至S371)。第4图是依据本发明实施例的 核心分配模块的储存示意图。非易失性存储器140储存三个核心分配模块210_1至210_3, 用以在处理单元110执行时分别管理安全阶段P21、前扩展固件接口初始阶段P23以及驱 动程序执行环境阶段P25中所需硬件的初始化操作。在特定核心分配模块的控制下,处理 单元110首先设定阶段编号(步骤S331)。例如,当核心分配模块210_1执行时,变量 “ProgressCode”设为“01”,用以代表进入安全阶段P21;当核心分配模块210_2执行 时,变量“ProgressCode”设为“02”,用以代表进入前扩展固件接口初始阶段P23;以 及当核心分配模块210_3执行时,变量“ProgressCode”设为“03”,用以代表进入驱动 程序执行环境阶段P25。接着,处理单元110反复执行一个循环(步骤S333至S371), 直到完成该阶段中所有相关硬件的初始化操作。详细来说,处理单元110从排程队列选择 并储存一个驱动程序至处理单元110中的高速缓存(未显示)或易失性存储器150(步骤 S333),取得该驱动程序的全局唯一识别码(步骤S335),呼叫并执行回叫记录处理模 块250(步骤S337),执行储存于高速缓存(未显示)或易失性存储器150中的驱动程序 (步骤S339),以及判断是否执行完该阶段中所有的驱动程序(步骤S351)。若是,则 继续进行下一个判断(步骤S371);否则,继续从排程队列选择下一个驱动程序进行处 理(步骤S333)。在步骤S333,当处理单元110中的高速缓存已初始化完成但易失性存 储器150尚未初始化时,驱动程序可被储存于处理单元110中的高速缓存。另外,当易失 性存储器150初始化完成时,驱动程序可被储存于处理单元110中的易失性存储器150。 在步骤S337,当执行回叫记录处理模块250时,处理单元110可储存或输出阶段编号以 及该驱动程序的全局唯一识别码。在此须注意的是,回叫记录处理模块250执行完毕后, 执行控制权(executioncontrol)回到核心分配模块以接着进行步骤S339的处理。在步骤 S339,驱动程序执行完毕后,执行控制权回到核心分配模块以接着进行步骤S351的判断。

当执行完该阶段中所有的驱动程序后(步骤S351中“是”的路径),判断是否执行 完整个平台初始化操作,亦即,是否完成以上所述的三个阶段P21、P23及P25(步骤S371)。 若是,则执行操作系统开机(OSboot)(步骤S391);否则,载入并执行下一个阶段的 核心分配模块,用以继续下一个阶段的硬件初始化操作(步骤S311)。

驱动程序中断后,使用者可能会重开机(reboot)而重新执行核心分配模块。当处理 单元110在步骤S337将中断前的阶段编号以及该驱动程序的全局唯一识别码储存于非易 失性存储器140时,重新执行的核心分配模块可能会将新取得的阶段编号以及该驱动程序 的全局唯一识别码覆盖掉中断前的阶段编号以及该驱动程序的全局唯一识别码。为了避免 以上的问题,重开机的程序中包含一个步骤,用以复制中断前的阶段编号以及该驱动程序 的全局唯一识别码至新的位置。图5是依据本发明实施例的阶段编号以及驱动程序的全局 唯一识别码的储存示意图。非易失性存储器140中的区域510a储存最新取得的阶段编号, 并且区域510b储存最新取得的代表驱动程序的全局唯一识别码。当执行重开机的程序时, 处理单元110将非易失性存储器140中的区域510a及510b的值(亦即中断前的阶段编号 以及代表驱动程序的全局唯一识别码)分别复制到区域530a及530b。

虽然图1中包含了以上描述的元件,但不排除在不违反发明精神的情况下,使用更多 其他的附加元件,已达到更佳的技术效果。此外,虽然图3的方法流程图采用特定的顺序 来执行,但是在不违法发明精神的情况下,本领域的技术人员可以在达到相同效果的前提 下,修改这些步骤间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。

虽然本发明使用以上实施例进行说明,但需要注意的是,这些描述并非用以限缩本发 明。相反地,本发明涵盖了对本领域的技术人员来说显而易见的修改与相似设置。所以, 申请权利要求范围须以最宽广的方式解释来包含所有显而易见的修改与相似设置。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号