CN114996042A - 存储除错信息的系统及方法 - Google Patents

存储除错信息的系统及方法 Download PDF

Info

Publication number
CN114996042A
CN114996042A CN202110748106.XA CN202110748106A CN114996042A CN 114996042 A CN114996042 A CN 114996042A CN 202110748106 A CN202110748106 A CN 202110748106A CN 114996042 A CN114996042 A CN 114996042A
Authority
CN
China
Prior art keywords
debug information
memory
firmware
memory device
rom
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
CN202110748106.XA
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.)
Quanta Computer Inc
Original Assignee
Quanta Computer Inc
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 Quanta Computer Inc filed Critical Quanta Computer Inc
Publication of CN114996042A publication Critical patent/CN114996042A/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
    • G06F11/0787Storage of error reports, e.g. persistent data storage, storage using memory protection
    • 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/0751Error or fault detection not based on redundancy
    • 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
    • G06F11/0778Dumping, i.e. gathering error/state information after a fault for later diagnosis
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开一种存储除错信息的系统及方法,使除错数据得以在初始化速度不坠的情况下所存储。该系统包含处理器、固件只读存储器(ROM),以及耦接至固件ROM的第一存储器装置。固件ROM可以是BIOS ROM。第一存储器装置设置以在处理器上运行操作系统之前,存储来自该固件ROM的除错信息。以固件ROM将除错信息存储在第一存储器装置上,使关联于固件的除错信息得以轻易地存取,而毋须除错固件或缆线以接收除错固件的输出。

Description

存储除错信息的系统及方法
技术领域
本公开广泛地涉及抓取运算系统中的除错信息(debug information),特别涉及将除错信息存储在运算系统的本地存储装置上的系统及方法。
背景技术
运算系统被使用于不同情境中广泛的功能。某些运算系统是靠电池所运作,而可能需要低功率的运作以节省电池上的电量。另一方面,某些运算系统可插入电源插座,而低功率的运作不如运算效能重要。许多运算系统在效能与电力消耗之间维持平衡,即使是在插入电源插座时。无论所使用的运算系统是什么类型,运算系统通常是在启动时被初始化。拥有较多可用资源的运算系统进行初始化步骤,通常会比拥有较少可用资源的运算系统快。举例来说,拥有较快速度的处理器及较快速度的硬盘的桌上型计算机,其启动的速度,会比拥有较慢速度的处理器及较慢速度的硬盘的桌上型计算机快。某些时候,特定的硬件元件可能是运算系统初始化能够多快的限制因素。举例来说,拥有固态硬盘(SSD)的桌上型计算机,其启动的速度,会比拥有磁盘的桌上型计算机快。
使运算系统的启动时间或初始化时间极小化,是运算产业的目标。运算系统的使用者并不喜欢等待运算系统初始化,因为初始化所损失的每一分每一秒,都意味着生产力的损失。此外,拥有一般注意力广度(attention span)的使用者会忘记当初运算系统被初始化的原因。因此,运算系统通常是被优化,以快速启动的。减少启动时间的另一个动机,是使停机时间(downtime)极小化,因为运算系统在启动的期间是被列为停机的。离线的运算系统并无法为使用者的生产力带来强化的效果或是贡献。举例来说,离线的运算系统并无处理运算工作。于是,已提交的运算工作,要不就是需要等待服务器上线,要不就是被发送给另一台服务器。
运算系统中所使用的固件与子系统,或者是其他嵌入式系统,通常皆具有与以上所讨论运算系统类似的停机问题。因此,这些系统的启动时间,也是被优化的。在优化启动时间时,并没有产生除错信息。若固件进行初始化时发生问题,除错信息通常是无法取得的,直到固件的操作系统已在运行中。因此,几乎没有对技术员或使用者提供解决可能发生在初始化阶段的问题的指引。运算系统的制造商通常会建立两个版本的系统,除错版本(debug version)以及发行版本(release version)。所建立的发行版本是将除错信息屏蔽,而所建立的除错版本则是将除错信息输出。发行版本的启动速度比除错版本快,因为启动程序已将除错信息排除。本公开直指解决的问题,涉及在维持合理的启动时间的同时抓取发行版本中的除错信息。
发明内容
“实施例”一词及类似的词汇旨在广泛地指代本发明及以下请求项的所有申请标的。包含这些词汇的陈述不应被理解为限制在此所述的申请标的或限制以下的请求项的含义或范围。在此所涵盖的本公开的实施例,是由以下的请求项而非本发明内容所限定。本发明内容是本公开的各方面的高阶综述,并且介绍了一些概念,这些概念在以下实施方式的段落中会进一步描述。本发明内容并不旨在标识出所请求的申请标的的必要特征,也不旨在单独用于决定所请求的申请标的的范围。藉由参考本发明的整个说明书的适当部分、任何或所有的图式,以及每个请求项,应当理解本申请标的。
本公开的某些实施例提供一种系统,包含处理器、固件只读存储器(ROM),以及耦接至固件ROM的第一存储器装置。第一存储器装置设置以在处理器上运行操作系统之前,存储来自固件ROM的除错信息。在一实施例中,上述系统还包含芯片组,经由第一总线耦接至处理器,并经由第二总线耦接至固件ROM及第一存储器装置。在一实施例中,第一存储器装置为电子可抹除可编程ROM(EEPROM),或是或非快闪(NOR flash)ROM。在一实施例中,除错信息是存储在第一存储器装置上连续的存储器位置。在一实施例中,除错信息包含第一除错信息及第二除错信息,而存储在第一存储器装置上的第一除错信息被第二除错信息所部分地覆写。
在一实施例中,除错信息包含离线倾印(offline dump)。在一实施例中,上述系统还包含网络接口,设置以将第一存储器装置上的除错信息发送至外部装置。在一实施例中,上述系统还包含第二存储器装置,具有比第一存储器装置更高的容量。第二存储器装置设置以存储操作系统所产生的系统事件日志(system event logs)。在一实施例中,第二存储器装置包含随机存取存储器或硬盘,或者包含随机存取存储器及硬盘。在一实施例中,固件ROM为基本输入输出系统(BIOS)ROM。
本公开的某些实施例包含一种嵌入式系统。上述嵌入式包含微处理器、固件只读存储器(ROM),以及耦接至固件ROM的存储器装置。存储器装置设置以在初始化微处理器之前,存储来自固件ROM的除错信息。在一实施例中,存储器装置为电子可抹除可编程ROM(EEPROM),或是或非(NOR)快闪ROM。在一实施例中,除错信息是存储在存储器上连续的存储器位置中。在一实施例中,除错信息包含第一除错信息及第二除错信息。存储在存储器装置上的第一除错信息被第二除错信息所部分地覆写。
本公开的某些实施例提供一种将除错信息存储在运算系统上的方法。使用运算系统的固件只读存储器(ROM)产生除错信息。将所产生的除错信息存储在运算系统的存储器装置上,存储器装置可被固件ROM所存取。使用运算系统的网络接口,将所存储的除错信息发送给外部装置。在一实施例中,除错信息是存储在存储器上连续的存储器位置中。在一实施例中,使用固件ROM产生随后的除错信息。藉由部分地覆写除错信息,存储随后的除错信息。在一实施例中,存储器装置为电子可抹除可编程ROM(EEPROM),或是或非(NOR)快闪ROM。在一实施例中,固件ROM为基本输入输出系统(BIOS)ROM。
以上发明内容并非意图代表本公开的每个实施例或每个观点。反之,前述的发明内容仅提供在此列举的某些新颖的观念及特征的范例。以上特征及优点,以及本公开的其他特征及优点,当关联于搭配的图式及附加的请求项,从以下用来实施本发明的代表性实施例及模式的详细叙述中,将立即清晰可见。
附图说明
本公开将可从以下示范的实施例的叙述搭配附带的图式更佳地理解。
图1绘示现有技术中的一种除错设置。
图2A是根据本公开的某些实施例的一种主机板的第一方块图。
图2B是根据本公开的某些实施例的一种主机板的第二方块图。
图3是根据本公开的某些实施例所绘示存取所存储的除错信息的流程图。
图4A根据本公开的某些实施例绘示附加存储器在第一启动对话之后的第一状态。
图4B绘示图4A的附加存储器在第二启动对话之后的第二状态。
图5是根据本公开的某些实施例提供不同装置设置之间的启动时间的比较的表格。
本公开可接受各式各样的修改及替代的形式。某些代表性的实施例,已被图式中的范例所显示,并将在此被详细地叙述。然而,应被理解的是,本发明并非意图限定于所公开的特定形式。反之,本公开涵盖所有的修改、均等物,以及落在如附加的请求项所定义的本发明的范围与精神之内的替代方案。
【符号说明】
100:设置
102:除错装置
104:缆线
106:外部装置
200:主机板
201:运算系统
202:处理器
204:北桥
206:南桥
208:GPU/视频接口
210:RAM
212:HD接口
214:I/O接口
216:BIOS ROM
218:电源
220:附加存储器
203:运算系统
205:主机板
202b:处理器
207:芯片组
233,235:总线
300:流程图
302:系统运行时间输出
304:可存取非易失性空间
306:运行时读取操作
308:预设计命令
310:离线倾印
312:浏览工具
314:其他方法
400:状态
402:第一存储器位置
404:第二存储器位置
410:第五存储器位置
401:状态
406:第三存储器位置
408:第四存储器位置
具体实施方式
本发明可以许多不同的形式所实施。代表性的实施例被附图所显示,并将在此被详细地叙述。本公开为本发明的原则的范例或图解,且并非意图将本公开的广泛的观点限制于绘示的实施例。在此基础上,例如在摘要、发明内容及实施方式等段落中被公开,但并未明确地在请求项中列举的元件及限制,不应被单独地、集体地、暗示地、推论地或其他方式地并入至请求项中。为了本详细叙述的目的,除非被具体地否认,否则单数形包含复数形,反之亦然;且“包含”一词意指“无限制地包含”。此外,表近似的词汇,例如“约”、“几乎”、“大体上”、“大概”及类似的词汇,能在此被用来意指“在”、“近”、“近于”、“3-5%的范围内”或“可接受的制造公差内”,或者其任何的逻辑组合。
关于本公开,“运算装置”、“运算系统”、“计算机系统”或“计算机”等词汇,是指任何一种电动的或电池供电的设备,具有硬件、软件和/或固件元件,其中软件和/或固件元件可设置以运作装置上的功能。
运算系统的正式发行的基本输入输出系统(basic input output system;BIOS)通常不会输出讯息或除错信息,因为输出除错信息会大幅影响运算系统的启动时间。此外,使用者可能并非总是将来自运算系统的输出讯息记录下来。除错信息通常在判断错误发生的情况有助益。将错误信息作为指引,则造成错误的情况可以在运算系统的除错版本上被复制出来。运算系统的发行版本预先定义的系统事件日志,却是有限的。在错误或例外发生,而错误或例外缺乏相对应定义的系统事件日志的情况下,追溯失败发生的根本原因是很困难的。因此,将造成错误的情况重现出来,会是很困难的。在缺乏除错信息的情况下,使用者会耗费大量时间试图为运算系统进行除错。当运算系统启动时,硬件的发行版本通常在BIOS运作的期间并不包含错误信息的输出。如此一来,使用者会很难向远端的服务技术员传达BIOS运作期间所发生的错误。
本公开的实施例所提供的系统,出于除错的目的而抓取关于BIOS活动的信息。虽然是使用BIOS作为范例,本公开的某些实施例可用于任何可被除错的固件(例如基板管理控制器)。
图1绘示现有技术中的一种除错设置。除错装置102使用缆线104连接至外部装置106。除错装置102及外部装置106皆为运算装置。除错装置102输出讯息与除错信息。这些讯息与除错信息可经由缆线104而被传输至外部装置106以供分析。当使用者求助于服务技术员并叙述所遭遇的问题时,使用者通常是使用运算装置的发行版本,而服务技术员则可存取运算装置的除错版本(即除错装置102)。服务技术员使用除错装置102来尝试重现使用者在运算装置的发行版本所遭遇的问题。发行版本通常不会产生足够的除错信息给服务技术员,故使用者无法将除错信息或者遭遇问题之前所产生的原始数据发送给服务技术员。服务技术员必须仅依靠使用者的叙述。
不同于依靠使用者的叙述以重现故障或错误的情况,本公开的某些实施例提供抓取信息的存储装置,其所抓取的信息可提供给服务技术员,以协助解决问题。根据本公开的某些实施例,图2A是范例运算系统201中的主机板200的方块图。主机板200在此是作为范例所用。任何在嵌入式系统中的印刷电路板皆可受益于本公开的实施例。电源218被提供给主机板200中的元件时,主机板200进行运作。主机板200可包含处理器202、北桥204以及南桥206。处理器202虽然是被列举为单独的方块,然其可包含多个处理器。处理器202可以是通用的或特殊用途的处理器,或者是微处理器。处理器202也可为多内核处理器。
在某些实施例中,主机板200并不包含北桥204,而北桥204的功能是由处理器202所实作。根据本公开的某些实施例,图2B提供一种范例系统203,范例系统203具有主机板205,主机板205并不包含南桥与北桥。替代地,由处理器202b实作北桥204(图2A)的功能。芯片组207被提供来实作类似于南桥206(图2A)的功能。图2A及图2B所提供的主机板架构,可受益于本公开的某些实施例。主机板200与主机板205的架构仅为范例,而并非限制可受益于本公开的系统。
关于图2A,北桥204是直接连接至总线230的芯片,总线230可存取处理器202。北桥204连接与处理器202进行通信时需要高速或高效能的元件。举例来说,在图2A中,主机板200包含随机存取存储器(random access memory;RAM)210,以及连接至北桥204的图形处理单元(graphics processing unit;GPU)和/或视频接口(video interface)208。RAM 210可包含双倍数据率同步动态随机存取存储器(double data rate synchronous dynamicrandom access memory;DDR SDRAM)的双直插存储器模块(dual inline memory modules;DIMMs)。GPU和/或视频接口208使屏幕(未在图式中示出)得以连接至主机板200。视频处理及辅助存储器(secondary memory)存取通常需要高速的运作以及对于处理器202的存取,因此GPU和/或视频接口208及RAM 210连接至北桥204。在某些实施例中,GPU和/或视频接口208的范例包含快速周边元件互连(peripheral component interconnect express;PCIe)接口或加速图形端口(accelerated graphics port;AGP)。反之,在图2B中,处理器202b直接连接至GPU和/或视频接口208,以及RAM 210。
再回到图2A,南桥206是经由总线232而直接连接至北桥204的芯片,并且对相较于连接至北桥204的元件以较慢速度进行通信的元件提供存取。举例来说,南桥206可连接硬盘(HD)接口212、输入/输出(I/O)接口214,以及BIOS只读存储器(ROM)216。HD接口212可包含串行进阶技术附接(serial advanced technology attachment;SATA)接口、整合装置电子(integrated drive electronics;IDE)接口、周边元件互连(peripheral componentinterconnect;PCI)接口等。I/O接口214可包含串行端口、并行端口、键盘接口、鼠标接口、通用串行总线(universal serial bus;USB)、以太网络、音频编解码器(audio codec)等。BIOS ROM 216可包含快闪ROM、电子可抹除可编程ROM(EEPROM)等。主机板200包含总线234,总线234使BIOS ROM 216得以连接至南桥206。
反之,在图2B中,芯片组207实作类似于图2A的南桥206的功能。芯片组207经由总线233而连接至处理器202b,并且连接至其他接口(例如HD接口212、I/O接口214等)。总线235可用以连接至其他的接口。虽然图2A及图2B指示了BIOS RAM 216,在其他实施例中,例如在嵌入式系统中,此方块可被概括地指示为固件ROM。
在某些实施例中,附加存储器(additional memory)220(图2A)可被提供于主机板200之中,以抓取除错信息。附加存储器220可以是为一或多个启动对话(boot session)(例如两个启动对话、三个启动对话等)抓取除错信息的低容量存储器。藉由提供附加存储器220,可抓取关联于BIOS ROM 216的除错信息。举例来说,当电源218被提供给主机板200时,首先BIOS ROM 216会被初始化。在BIOS ROM 216开始进行启动程序的同时,除错信息被抓取到附加存储器220上。若使用主机板200的运算装置201在启动会化的期间故障,则关于启动对话的除错信息会被抓取到附加存储器220上。在某些范例中,除错信息可包含固件(例如BIOS)所安装或处理的协议(protocols)和/或软件模块。于是,除错信息可包含固件详细的进度信息。除错信息可包含被固件所更新至基板管理控制器(Baseboard ManagementController;BMC)、系统管理BIOS(System Management BIOS;SMBIOS)或任何其他目标的部分数据。除错信息可包含系统(例如运算系统201、运算系统203)中由固件所进行初始化中的一或多个装置。上述这些在除错信息中的范例项目并未包含在系统事件日志中,因为这需要承担过量的信息。系统事件日志包含预先定义且可认定的事件,而除错信息则包含运算系统运作的巨细靡遗的细节,并不容易增添至可认定的态样。
附加存储器220在某些实施例中是至关重要的,因为在BIOS运作的期间,处理器202尚未被初始化并运行操作系统。操作系统是一种进阶的软件,可为预先定义的事件抓取系统事件日志。在某些案例中,系统事件日志可作为除错信息,以协助解决使用者的问题。系统事件日志可产生于遍及运算系统200的初始化的不同阶段。举例来说,在载入操作系统之前,操作系统无法产生系统事件日志。所抓取的最初的系统事件日志是由固件(例如BIOS、BMC等)所产生,并可被存储在有限的固件存储器(例如BIOS ROM 216)中。载入操作系统后,额外的系统事件日志于是由操作系统所产生,并且被存储在硬盘中。固件存储器或许是足够抓取有限的系统事件日志,但却不足以抓取错误信息。因此,在主机板200上提供附加存储器220,可允许抓取涉及关联于BIOS ROM 216的活动的除错信息。否则,关于BIOS活动(例如开机自我测试(power-on self-test;POST)活动)的情境信息未被抓取,也就无法在使用者遭遇问题时供除错之用。提供附加存储器220可降低服务技术员协助使用者解决问题的相关成本与时间。
提供附加存储器220简化了提供除错信息的运算系统201的设计。图1的现有技术设置100需要外部装置106,外部装置106抓取除错装置102所产生的除错信息。除错装置102需要特殊的固件,并且不同于运算系统201的发行版本。因此,除错装置102与发行版本并不相同,且在使用者所遭遇并传达给服务技术员的内容,以及服务技术员所能用除错装置102重现的内容,这两者之间可能会有落差。除错装置102上的特殊固件,在除错信息正在产生的同时,输出除错信息。
本公开的某些实施例并不需要外部装置106来抓取除错信息。此外,特殊固件、缆线或者除错装置对于存取除错信息而言,并非必要。
图2A中的附加存储器220,以非易失性存储装置为较佳。在故障或系统重新启动的事件中,易失性的存储装置可能会损失数据,而非易失性存储装置则可防止数据损失。附加存储器200的范例包含或非(NOR)快闪、EEPROM、非易失性DIMM、数据中心永久性存储器模块(data center persistent memory modules;DCPMMs)、非易失性RAM等。非易失性存储装置之所以较佳,是因为除错信息一旦被存储,则可随时存取,而无须启用特殊的除错固件。藉由安装附加存储器220,图1中的缆线104便不再需要抓取除错信息。
根据本公开的某些实施例,图3是绘示如何存取所存储的除错信息的流程图300。举例来说,带有主机板200(图2A)的运算系统201(图2A)在运作时,提供系统运行时间输出(system runtime output)302。系统运行时间输出302可包含:(i)在载入运算系统201的操作系统前所取得的除错信息;(ii)在载入运算系统201的操作系统后的除错信息与系统事件日志;或者(i)及(ii)两者皆包含。系统运行时间输出302被存储在可存取非易失性空间304中。可存取非易失性空间304可包含一或多个存储器装置(例如图2中供载入操作系统之前所取得的除错信息的用的附加存储器220、一或多个连接至HD接口212和/或I/O接口214等的硬盘)。系统运行时间输出302被存储在可存取非易失性空间304中,直到已准备使用。
存储在可存取非易失性空间304中的系统运行时间输出302,可使用运行时读取操作306、预设计命令(designed command)308、离线倾印(offline dump)310、浏览工具(access through tool)312,或者任何其他方法314所存取。存取系统运行时间输出302的方法取决于内含可存取非易失性空间304的装置的类型。运行时读取操作306包含当系统运行时间输出302已产生,显示或存取被存储在可存取非易失性空间304上的系统运行时间输出302。在某些实施例中,举例来说,函数spi_read()是用以存储来自可存取非易失性空间304的系统运行时间输出302。函数spi_read()存取存储系统运行时间输出302的特定存储器装置(例如图2A或图2B的附加存储器220)。函数spi_read()可被呼叫于运行时读取操作306的期间。在某些实施例中,使用了预设计命令308。预设计命令308类似于经修改过的函数spi_read(),或者某些其他定制的读取函数。在某些实施例中,离线倾印310包含存取非易失性空间304上的原始数据倾印映像档。在某些实施例中,浏览工具312包含具有一种工具(例如除错工具),使来自非易失性空间304的设定或数据得以倾印至存储装置(例如串行并行接口(serial parallel interface)快闪装置),或者得以使用系统或固件接口将来自非易失性空间304的设定或数据打印在纸张上或显示在屏幕上。非易失性空间304使服务技术员得以存取使用者机器上的除错信息及其他讯息。服务技术员可使用使用者机器上的网络接口来存取除错信息。
根据本公开的某些实施例,图4A绘示附加存储器220在第一启动对话之后的存储器状态,而图4B则绘示附加存储器220在第二启动对话之后的存储器状态。所选择作为附加存储器(例如图2B的附加存储器220)的存储器类型,可具有读取与写入速度及容量的暗示。在某些实施例中,附加存储器(图2B)可在有限次数的启动对话(例如两个启动对话、三个启动对话等)期间内,保有除错信息。附加存储器220的状态400是在存储第一启动对话的除错信息之后的一种范例存储器状态。第一启动对话的除错信息是被存储在第一存储器位置402与第二存储器位置404之间。在附加存储器220的状态400中,第二存储器位置404之后的存储器位置并没有存储任何信息。
如图4B中所示,在第二启动对话之后,附加存储器220的状态从状态400变为状态401。第二启动对话的除错信息所存储的位置,是从第三存储器位置406开始。附加存储器220并不具有足够的闲置空间以存储第二启动对话的所有除错信息,因此第一启动对话的第一部分除错信息是被覆写的。于是,第二启动对话的除错信息被存储在第三存储器位置406与第四存储器位置408之间。第一启动对话的第二部分除错信息并未被覆写,而被留在第五存储器空间410与第二存储器空间404之间的存储器上。举例来说,当下一次存储器为了第三启动对话而被写入,第三启动对话的除错信息所存储的位置,将会从第五存储器位置410开始。
在某些实施例中,保存最后一部分的除错信息是有价值的,因为在启动的期间,最近的数据会比较为久远的数据更有价值。举例来说,当运算系统启动且抛出一个例外时,被写入存储器最后一部分除错信息将属于所抛出的例外,以及导致所抛出的例外的步骤,或者在所抛出的例外之前的步骤。随着较早写入的数据与所抛出的例外所属数据之间的期间增加,比起所抛出的例外所属的数据较早写入的数据,可以是较不重要的。举例来说,当相继启动时,USB控制器首先被初始化且初始化正确,接着SATA控制器被初始化且初始化正确,但接下来风扇控制器则初始化失败。在下一次启动的期间,属于USB控制器的成功初始化的数据被覆写,但之后所存储属于风扇控制器的数据并未被覆写。如此一来,仅藉由判断供写入附加存储器220(图2B)的存储器存储方案,即可保存错误。图4A及图4B提供拥有足够容量的一种存储器装置,以存储一个启动对话的除错信息,以及部分第二启动对话的除错信息。这仅作为范例之用,并且取决于存储器装置的容量。
已知EEPROM的存储容量有限,如此一来,EEPROM可使用图4中所提供的存储方案。在某些实施例中,NOR快闪及EEPROM为较佳,因为这些存储器装置并不需要等待其他装置进行初始化,因而当电源开启时,可供存储除错信息。此外,NOR快闪及EEPROM并不需要额外的芯片和/或装置。通常,在图1的现有技术设置100中,输出到外部装置106(图1)的BIOS除错讯息被限制在上限约为每秒14千字节(KB)的传输速率(baud rate)。举例来说,AMI BIOS输出约1.8百万字节(MB)的除错信息,为POST程序增添了约165秒的时间。传达除错信息给外部装置106的输出速度缓慢,是图1的设置100的瓶颈。
增添附加存储器220(图2B)以存储除错信息,相较于图1的现有技术设置100,可提供两倍到三倍的效能提升。根据本公开的某些实施例,图5是提供不同装置设置之间的启动时间的比较的表格。除错BIOS属于图1的现有技术设置100,其POST时间约需耗费3分45秒,而输出约1.8MB的除错信息。正式BIOS属于发行版本,其POST时间约需耗费1分钟,但并无输出任何除错信息。如此可见,提供除错信息会使启动时间增加到接近原本的4倍。
某些设置尝试藉由不输出过多信息而却有可接受的POST时间的部分除错BIOS,在除错BIOS与正式BIOS之间取得平衡。部分除错BIOS显示出,以约1分30秒的POST时间,输出约0.3MB。如所指示的,产生输出给外部装置106(图1)会大幅影响POST时间。在图5中,传达除错信息的输出速度约为11KB/s。藉由采用本公开的某些实施例,除错讯息可使用更快的接口所存储,因而避免关联于图1的设置100的瓶颈。举例来说,带有EEPROM的正式BIOS可提供约1分45秒的预期POST时间。图5中所提供的预期POST时间,可基于用以抓取除错信息的存储器装置的类型而改变。
本公开的实施例在传统系统之上提供了改进,可在没有缆线(例如图1的缆线104)的情况下产生除错信息与讯息。在没有图1的缆线104的情况下,除错信息与讯息通常是无法取得的。因此,本公开的实施例提供附加存储器(例如附加存储器220),以抓取此信息。由于上述信息是存储在非易失性空间上,除错信息与所产生的讯息可取决于用来存储信息的存储器的类型,而以不同的方式所存取。
如本申请中所使用的“元件”、“模块”、“系统”或类似的词汇,通常指与计算机相关的实体,可以是硬件(例如电路)、硬件与软件的组合、软件,或者与运作机器相关、具有一种或更多种特定功能的实体。举例而言,元件可以是但不限于在处理器(例如数字信号处理器)上执行的程序、处理器、物件、可执行文件、线程(thread of execution)、程序,和/或计算机。作为示例,在控制器上执行的应用,以及控制器本身,皆可为元件。一个或更多个元件可常驻于程序和/或线程之内,且一个元件可被局限在一台计算机上和/或分散在两台或更多台计算机之间。此外,“装置”可出自于特殊设计的硬件的形式;藉由执行其上使硬件能执行特定功能的软件所特制出的通用硬件;存储在计算机可读取介质上的软件;或者其组合。
虽然本发明的各种实施例已被叙述如上,应被理解的是,该等实施例仅被呈现来作为范例,而非限制。即使本发明已参考一种或更多种实施方式所绘示及叙述,当阅读及理解本说明书及附加的图式时,均等的替换及修改将可被其他本领域技术人员想到或知晓。此外,虽然本发明的特定的特征可仅被数个实施例的其中之一所公开,这种特征可与其他实施例的一个或更多个其他特征进行组合,而此其他特征对于任何给定的或特定的应用可能是期望的或有利的。因此,本发明的广度及范围不应受限于任何以上叙述的实施例。反之,本发明的范围应根据以下的请求项及其均等物所定义。
在此所使用的术语仅以叙述特定的实施例为目的,而并非意图限制本发明。如在此所使用的,单数形“一”及“该”意图亦包含复数形,除非文意明显另有所指。此外,倘若“包含”、“具有”一词或者其变形,被使用在实施方式和/或请求项中,这类词汇意图被包含在类似于“包括”一词的方式中。
除非另有定义,在此所使用的所有词汇(包含技术性及科学性的词汇),与本技术领域的普通技术的人一般所理解的,具有相同的含意。此外,像是被定义在一般所使用的字典中的词汇,应被解读为具有与它们在相关技术的文意中一致的含意,且除非在此被明确地如此定义,否则该等词汇不会被解读为理想化或过度正式的概念。

Claims (10)

1.一种存储除错信息的系统,包括:
处理器;
固件只读存储器;以及
第一存储器装置,耦接至该固件只读存储器,该第一存储器装置设置以在该处理器上运行操作系统之前,存储来自该固件只读存储器的除错信息。
2.如权利要求1所述的系统,还包括:
芯片组,经由第一总线耦接至该处理器,并经由第二总线耦接至该固件只读存储器及该第一存储器装置。
3.如权利要求1所述的系统,其中该第一存储器装置为电子可抹除可编程ROM(EEPROM),或是或非快闪(NOR flash)ROM。
4.如权利要求1所述的系统,其中该除错信息是存储在该第一存储器装置上连续的存储器位置;
其中该除错信息包含第一除错信息及第二除错信息,其中存储在该第一存储器装置上的该第一除错信息被该第二除错信息部分地覆写。
5.如权利要求1所述的系统,其中该除错信息包含离线倾印(offline dump)。
6.如权利要求1所述的系统,还包括:
第二存储器装置,具有比该第一存储器装置更高的容量,该第二存储器装置设置以存储该操作系统所产生的系统事件日志(system event logs);
其中该第二存储器装置包含随机存取存储器或硬盘,或者包含该随机存取存储器及该硬盘两者。
7.如权利要求1所述的系统,其中该固件只读存储器为基本输入输出系统(BIOS)ROM。
8.一种嵌入式系统,包括:
微处理器;
固件只读存储器;以及
存储器装置,耦接至该固件只读存储器,该存储器装置设置以在初始化该微处理器之前,存储来自该固件只读存储器的除错信息。
9.一种将除错信息存储在运算系统上的方法,包括:
使用该运算系统的固件只读存储器产生除错信息;
将所产生的该除错信息存储在该运算系统的存储器装置上,该存储器装置可被该固件只读存储器所存取;以及
使用该运算系统的网络接口,将所存储的该除错信息发送给外部装置。
10.如权利要求9所述的方法,还包括:
使用该固件只读存储器产生随后的除错信息;以及
藉由部分地覆写该除错信息,存储该随后的除错信息;
其中该除错信息是存储在该存储器上连续的存储器位置中。
CN202110748106.XA 2021-03-02 2021-07-02 存储除错信息的系统及方法 Pending CN114996042A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/190,147 US11275638B1 (en) 2021-03-02 2021-03-02 Systems and methods for storing debug information
US17/190,147 2021-03-02

Publications (1)

Publication Number Publication Date
CN114996042A true CN114996042A (zh) 2022-09-02

Family

ID=80683442

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110748106.XA Pending CN114996042A (zh) 2021-03-02 2021-07-02 存储除错信息的系统及方法

Country Status (3)

Country Link
US (1) US11275638B1 (zh)
CN (1) CN114996042A (zh)
TW (1) TWI779630B (zh)

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7698487B2 (en) * 2004-06-30 2010-04-13 Intel Corporation Share resources and increase reliability in a server environment
JP4720926B2 (ja) * 2009-03-26 2011-07-13 ブラザー工業株式会社 処理装置
US9262298B2 (en) * 2012-02-16 2016-02-16 Microsoft Technology Licensing, Llc Debugging object abstractions
US9268681B2 (en) * 2012-08-30 2016-02-23 Apple Inc. Heterogeneous data paths for systems having tiered memories
US9355024B2 (en) * 2012-10-10 2016-05-31 Apple Inc. Systems and methods for nonvolatile memory performance throttling
US9934045B1 (en) * 2013-03-15 2018-04-03 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9678682B2 (en) * 2015-10-13 2017-06-13 International Business Machines Corporation Backup storage of vital debug information
US9898385B1 (en) * 2016-10-11 2018-02-20 Green Hills Software, Inc. Systems, methods, and devices for vertically integrated instrumentation and trace reconstruction
US11073885B2 (en) * 2017-07-25 2021-07-27 Dell Products, L.P. Battery architecture for variable loads and output topologies in an information handling system
US10890923B2 (en) * 2017-08-23 2021-01-12 Textron Innovations Inc. Methods and systems for charge control
US10706948B2 (en) * 2018-07-12 2020-07-07 Allegro Microsystems, Llc Multi-level memory safety of a sensor integrated circuit
US11409544B2 (en) * 2019-05-07 2022-08-09 Microsoft Technology Licensing, Llc Dynamically-configurable baseboard management controller

Also Published As

Publication number Publication date
TWI779630B (zh) 2022-10-01
TW202236092A (zh) 2022-09-16
US11275638B1 (en) 2022-03-15

Similar Documents

Publication Publication Date Title
CN107122321B (zh) 硬件修复方法、硬件修复系统以及计算机可读取存储装置
US8560686B2 (en) Communicating with an in-band management application through an out-of-band communications channel
US7234050B2 (en) Techniques for initializing a device on an expansion card
US20050223291A1 (en) Methods and apparatus to provide an execution mode transition
US8595552B2 (en) Reset method and monitoring apparatus
JP2007516535A (ja) システム構成の遠隔修正のための方法および装置
JP2015518615A (ja) レガシーos環境から統合拡張可能ファームウェア・インターフェース(uefi)ブート前環境への復元を行うための方法およびシステム、ならびにコンピュータ・プログラム
US20210263868A1 (en) System and method to reduce host interrupts for non-critical errors
US10606677B2 (en) Method of retrieving debugging data in UEFI and computer system thereof
US20190004818A1 (en) Method of UEFI Shell for Supporting Power Saving Mode and Computer System thereof
US10866881B1 (en) Firmware debug trace capture
US20210011706A1 (en) Memory device firmware update and activation without memory access quiescence
WO2013088818A1 (ja) 仮想計算機システム、仮想化機構、及びデータ管理方法
US8521950B2 (en) Booting an operating system from a virtual hard disk
US10474517B2 (en) Techniques of storing operational states of processes at particular memory locations of an embedded-system device
US20040225874A1 (en) Method for reduced BIOS boot time
US20040243731A1 (en) Upgrading a memory subsystem
TWI779630B (zh) 儲存除錯資訊的系統及方法
US8146056B1 (en) Debugging a computer program by interrupting program execution in response to access of unused I/O port
US7103767B2 (en) Method and apparatus to support legacy master boot record (MBR) partitions
CN114765051A (zh) 内存测试方法及装置、可读存储介质、电子设备
JPH1165898A (ja) 電子計算機の保守方式
CN111176735B (zh) 一种心电图机启动加速方法
TWI794997B (zh) 固態硬碟裝置的除錯方法及裝置以及電腦程式產品
CN113646745A (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