CN107111595A - 双用途引导寄存器 - Google Patents

双用途引导寄存器 Download PDF

Info

Publication number
CN107111595A
CN107111595A CN201480084540.0A CN201480084540A CN107111595A CN 107111595 A CN107111595 A CN 107111595A CN 201480084540 A CN201480084540 A CN 201480084540A CN 107111595 A CN107111595 A CN 107111595A
Authority
CN
China
Prior art keywords
early stage
processor
stage
register
host
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.)
Granted
Application number
CN201480084540.0A
Other languages
English (en)
Other versions
CN107111595B (zh
Inventor
S.斯瓦纳
S.瓦拉达拉詹萨哈斯拉纳马姆
N.S.萨洛塔吉
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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 Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN107111595A publication Critical patent/CN107111595A/zh
Application granted granted Critical
Publication of CN107111595B publication Critical patent/CN107111595B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/263Arrangements for using multiple switchable power supplies, e.g. battery and AC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/266Arrangements to supply power to external peripherals either directly from the computer or under computer control, e.g. supply of power through the communication port, computer controlled power-strips
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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/0706Error 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 the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error 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 the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • 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/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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/0793Remedial or corrective actions
    • 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
    • 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/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2284Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by power-on test, e.g. power-on self test [POST]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • 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
    • G06F9/4405Initialisation of multiprocessor systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Power Engineering (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

提供了用于检测早期引导错误的技术。在一个方面,主机处理器可以转换到早期引导过程的第一阶段。早期引导过程可以在主机处理器初始化主机处理器和管理控制器之间的主链路之前发生。随后,该主机处理器可以更新双重用途引导寄存器以存储对应于该第一阶段的早期引导阶段标识符以及对应于该第一阶段的早期引导状态标识符。

Description

双用途引导寄存器
背景技术
由于企业使用的计算机服务器的数量已经大幅增加,所以已经开发了许多技术来远程管理这种服务器的操作和库存。例如,大型数据中心经常使用各种不同的远程管理工具进行管理,远程管理工具例如包括简单终端连接、远程桌面应用,以及被用来对计算机硬件和软件这二者进行配置、监视和故障排除的复杂软件工具。
附图说明
图1是图示根据一个示例的可以采用用于跟踪早期引导错误的技术的计算机系统的框图;
图2是图示根据一个示例的用于主机处理器使用双重用途引导寄存器对早期引导错误进行信号通知的方法的流程图;
图3是图示根据一个示例的用于管理处理器对主机环境内发生的早期引导错误进行跟踪的方法的流程图;和
图4是根据一个示例的用于处理瞬时错误的方法的流程图。
具体实施方式
随着服务器商品化,先进的可靠性、可用性和可支持性(RAS)正在越来越多的关注产品的差异化。在许多情况下,服务器可能会在上电操作后没有任何事件踪迹的情况下发生故障。在开发以及现场这二者期间还报告有其它故障类型,其中一个或许多核心由于错误条件而没有对复位作出响应,从而导致服务器进入不可引导的状态。有时被称为“到达死机”或“复位死机”的这些类型的故障是常见的情形,并且在没有任何类型的日志/事件的情况下分析这些故障在绝大多数时候是试验和错误操作,这影响到服务器的可用性和可服务性。
一种跟踪服务器引导状态的尝试可以涉及到服务器的基本输入/输出系统(BIOS),该BIOS在引导周期期间初始化控制台/视频接口。这有助于检测在用于控制台/视频的驱动程序初始化后所发生的故障,但是却无助于检测在服务器引导过程的早期部分所发生的故障。此外,使用控制台/视频接口在主机系统和错误检测单元之间形成了耦合。
本文所讨论的示例可以提供一种通用的实时解决方案,该解决方案有助于针对在工厂和现场导致早期引导故障的根本原因来捕捉和分析来自服务器的管理处理器的早期引导日志和事件。这样的特征可以提高这些服务器的可用性和可支持性。如本文所使用的,早期引导过程可以是指在计算机系统的主机环境的主要通信接口被初始化之前所发生的引导计算机系统的主机环境的子过程。主要通信接口的示例可以包括但不限于这样的高速链路,诸如外围组件互连(PCI)、PCI扩展(PCI-e)、加速图形端口、PCI 快速(PCIe),或者由主机环境供电的任意其它适当的通信接口。
之前讨论的示例可以提供一种主机环境,该主机环境提供了一种用于在主机环境的双重用途寄存器中以信号通知早期引导阶段和状态的通用框架。例如,主机处理器可以转换至早期引导过程的第一阶段。该早期引导过程可能在主机处理器初始化主机处理器和管理控制器之间的主链路之前发生。随后,该主机处理器可以更新双重用途引导寄存器以存储对应于该第一阶段的早期引导阶段标识符以及对应于该第一阶段的早期引导状态标识符。
在另一个示例中,管理控制器可以访问双重用途寄存器来跟踪主机环境的引导阶段及其状态。这可能基本上实时地进行。例如,设备可以包括通信耦合到主机环境的边带接口,处理器(例如,管理处理器)以及耦合到该处理器的计算机可读存储设备。计算机可读存储设备可以包含指令,用以使得该处理器基于通过该边带接口对主机处理器的双重用途引导寄存器的访问来获得主机环境的引导阶段标识符和引导状态。该处理器可以将引导阶段标识符和早期引导状态标识符存储在早期引导进度日志中。该处理器还可以对该早期引导进度日志进行分析以检测在主机环境内发生的早期引导错误。在一些情况下,该处理器可以调用自我修复动作以缓解问题(例如,调用系统复位)。
现在对上文中的这些和其它示例进行描述。
例如,图1是图示根据一个示例的可以采用用于跟踪早期引导错误的技术的计算机系统100的框图。在一些情况下,计算机系统100可以表示网络设备,诸如服务器、路由器、交换机等。在其它情况下,网络设备可以表示任意适当的计算机设备,诸如台式机、膝上计算机、游戏机、机顶盒、平板电脑、移动电话等。参考图1,计算机系统100可以包括管理控制器140和主机环境150。
管理控制器140可以是基板管理控制器。 即使在计算机系统100的其余部分并未通电时,管理控制器仍然可以保持通电并且能够被客户端所访问。因此,即使在计算机系统100的其余部分不可用时,客户端仍然可以访问管理控制器140。此外,可以通过与用于和主机环境150通信的通信路径不同的通信路径来访问管理控制器140。因此,管理控制器可以被称为可带外访问。
管理控制器140可以包括管理处理器141和计算机可读存储设备142。管理处理器141可以是适于读取并执行处理器可执行指令的设备,诸如CPU或集成电路。处理器可执行指令可以使得管理处理器141实施本文所描述的技术。例如,管理处理器141可以执行用于检测计算机系统100中的引导故障的指令。
管理处理器141可以耦合到计算机可读存储设备142。计算机可读存储设备142可以在其上包含指令集合,该指令集合在被管理处理器141所执行时使得管理处理器141实施本文所描述的技术。例如,介质可以包括引导进度监视器指令144和引导进度分析器指令145。完全或部分地执行这些指令可以使得管理处理器141检测计算机系统100中发生的引导错误。例如,引导进度监视器指令144可以收集并监视在主机环境150内发生的早期引导过程的进度。
在一些情况下,引导进度分析器指令145可以基于平台抽象定义对引导进度日志进行解码,并且执行在线分析以检测早期引导中的故障,上述故障包括核心未对用例作出响应。在一些情况下,如果引导进度日志分析器检测到引导进度由于基于该阶段而被认为是瞬时的错误条件而停止,则引导进度分析器145可以通过通知引导进度看门狗组件以在可配置时间后触发系统复位来采取适当动作。该复位将有助于从某些瞬时的不可校正错误中恢复,从而有助于提高系统可用性。引导进度分析器指令145可以从第一BIOS指令检查引导进度寄存器更新,以隔离硬件、供电子系统和处理器初始化代码之间的问题。在一些情况下,引导进度分析器指令145可以验证主机环境150的核心是否已成功初始化。使用引导进度日志中记录的错误所指定的错误代码和阶段,引导进度分析器指令145可以向客户和/或支持工程师提供适当的原因和动作建议。引导进度分析器指令145可以设计为在脱机(使用存储在持久存储器中的日志)和在线模式下这二者之下运行。分析结果能够被存储在非易失性存储器中。
如图1所示的计算机可读存储设备142还可以存储早期引导进度日志146。早期引导进度日志146可以是由管理控制器所记录的、跟踪主机环境150的早期引导阶段以及那些早期引导阶段的相对应状态的数据。因此,该管理控制器能够将早期引导进度日志146存储在持久存储器中。
主机环境150可以包括支持计算机系统100的底层执行环境的设备。例如,在计算机系统100是服务器的情况下,主机环境150可以包括被用来提供服务器的底层执行环境的设备。在一些情况下,该设备可以是可选的或者能够被以其它方式移除和/或添加的设备。因为并非计算机系统100的每种配置都可以包括这些类型的设备,所以这些设备可以被称为附加设备。为了便于描述,仅示出了一个附加设备180。然而应当理解的是,主机环境150可以包括任意数量的附加设备180。示例性附加设备可以包括网络接口控制器、主机总线适配器、固件、输入/输出卡、存储设备、应用程序,或者可以由管理控制器140所控制或以其它方式与管理控制器140进行通信的任意其它类型的设备或资源。在系统引导期间,主机环境150可以初始化附加设备。
主机环境150还可以包括主机处理器181和计算机可读存储设备182。主机处理器181可以是适于读取和执行处理器可执行指令的设备,诸如CPU或集成电路。处理器可执行指令可以使得主机处理器181实施本文所描述的技术。例如,主机处理器181可以执行用于捕捉和更新引导进度阶段的指令。主机处理器可以包括双重用途引导寄存器183。双重用途引导寄存器183可以是处理器中被指定存储指示计算机系统100的早期引导阶段期间的引导阶段(例如,引导阶段标识符)和引导状态的数据的寄存器。在早期引导阶段完成之后,主机处理器181可以将双重用途引导寄存器183用作通用暂存(scratch)寄存器。双重用途引导寄存器183可以是指定的引导进度模式特定寄存器(MSR)、控制和状态寄存器(CSR)、通用寄存器等的任意组合。在主机环境150是英特尔®处理器架构的情况下,这些MSR/CSR可以是能够从处理器外部访问的非核心硬件的一部分。对于不支持这样的指定引导进度寄存器的处理器架构而言,主机处理器的示例能够使用通用寄存器来利用用于捕捉引导进度的架构位模式来捕捉早期进度事件。为了捕捉处理器插槽中所有核心的引导进度日志,主机处理器可以具有核心到引导进度寄存器的1-1映射。对于不支持核心到MSR/CSR的1对1映射的处理器架构,示例能够使用这些寄存器内的可用位数来捕捉核心特定的引导进度信息(例如,将位的范围映射到核心)。
主机处理器181可以耦合到计算机可读存储设备182。计算机可读存储设备182可以在其上包含指令集,该指令集在被主机处理器181执行时使得主机处理器181执行本文所描述的技术。例如,计算机可读存储设备可以包括更新引导进度寄存器以反映引导阶段和状态的早期引导进度BIOS指令184。以这种方式,早期引导进度BIOS指令184能够被编程为通过在这些引导进度MSR/CSR中写入位模式以及任何相关联的错误代码而留下早期引导和硬件初始化的主要阶段的踪迹。在任意其它实施方式中,引导进度寄存器可以基于为初始化处理器、芯片组和相关联硬件所采取的步骤而由硬件自动编程。
对于支持架构寄存器和原子指令集的处理器而言,BIOS将作为第一条指令的一部分而更新这些指定的引导进度寄存器,以指示成功切换到BIOS复位向量。该信息将在“复位死机”和“到达死机情形”的分析期间被使用,并且将有助于隔离处理器微代码初始化以及供电子系统硬件为处理器和相关联硬件提供所需电压期间的问题。对于仅支持通用寄存器的处理器,我们定义了映射至引导主要阶段、引导次要阶段和可用核心数量的通用位模式。例如,在具有一个通用64位MSR和一个核心的处理器架构中,寄存器的低32位能够被用来指示32个早期主要引导阶段和次要阶段,其中每一位对应于特定的早期引导阶段/子阶段。在不同实施方式中,相同的32位能够被用作每个主要引导阶段的计数器,给出能够覆盖早期初始化的可能情况的总共2的32次方个阶段或者2的32次方个阶段。 高32位则能够被用来指示在该早期阶段所检测到的最严重的错误代码(如果有)。可替换地,错误代码的高32位可以进一步被拆分为4个8位错误代码段,用于检索与不同严重性级别(例如,警告、关键、致命等)相关联的错误代码。
计算机系统100可以包括计算机系统100的组件之间的通信接口。例如,管理控制器140和主机环境150可以包括用于管理控制器140读取或以其它方式访问双重用途引导寄存器的边带接口122。 边带接口122的一些示例是互联集成电路(I2C)、平台环境控制接口(PECI)和调试接口,作为示例,诸如联合测试动作组(JTAG)。边带接口122能够通过辅助电源进行访问,并且管理控制器能够使用该接口在早期引导期间实施对引导进度日志的实时监视和分析,直至BIOS对至管理控制器的主通信接口进行初始化。
计算机系统100还可以包括主通信接口124。主通信接口的示例可以包括但不限于这样的高速链路,诸如外围组件互连(PCI)、PCI扩展(PCI-e)、加速图形端口、PCI 快速(PCIe),或者由主机环境供电的任意其它适当的通信接口。主通信接口124可以是在主机环境150的引导期间被初始化的通信接口。
继续图1,管理控制器140和/或主机环境150可以耦合到计算机可读存储设备162。计算机可读存储设备162可以在其上包含与平台能力抽象定义164相关的数据。平台能力抽象定义 164可以指定处理器的能力,如通用引导阶段寄存器的数量、双重用途寄存器的地址、双重用途寄存器的物理接口、位模式,等等。平台能力抽象定义164能够被管理处理器用来读取和解码双重用途引导寄存器183的位模式。
所要理解到的是,图1示出了系统的一种示例部署形式,并且其它示例能够使用与图1所示不同的部署形式。例如,在一些示例中,平台能力抽象定义164可以被存储在计算机可读存储设备142或182中。此外,可以使用更多或更少的通信接口来连接计算机系统100的组件。
现在更为详细地描述用于检测早期引导错误的操作。例如,图2是图示根据一个示例的用于主机处理器使用双重用途引导寄存器对早期引导错误进行信号通知的方法200的流程图。方法200可以由图1所示的模块、组件、系统来执行,并且因此在这里仅通过对其的参考而被加以描述。例如,方法200可以在执行早期引导进度BIOS指令184时由主机处理器181所执行。将要理解到的是,方法200可以在任意适当的硬件上执行。
当主机处理器转换到早期引导过程的阶段时,方法200可以在操作202开始。例如,主机处理器可以在系统复位时转换到早期引导过程的阶段,这导致主机处理器执行到BIOS复位向量的切换。
在操作204,基于转换至该阶段,主机处理器可以更新双重用途引导寄存器以存储早期引导阶段标识符和早期引导状态标识符。在一些情况下,可以基于平台能力抽象定义来规定早期引导阶段标识符和早期引导状态标识符的表示。[不同位模式/表示的讨论]
如以上所讨论的,该双重用途寄存器可以由管理控制器通过边带接口进行访问。因此,如以下所讨论的,管理控制器可以轮询或读取双重用途寄存器来跟踪早期引导进度和状态。
方法200可以继续进行操作202和204的循环,直到早期引导阶段完成。如以上所讨论的,早期引导阶段在主机系统初始化完成并且主机环境和管理控制器之间的高速链路得以建立时完成。方法200的每次迭代可以对应于早期引导进度BIOS指令中的原子指令。
在方法200完成且早期引导过程已经成功完成之后,主机处理器可以将该双重用途寄存器用作或以其它方式视为暂存寄存器。
如刚才所讨论的,主机处理器的示例可以更新双重用途引导寄存器以指示早期引导阶段和状态信息。管理控制器可以读取或轮询双重用途引导寄存器以跟踪早期引导阶段和状态,现在对此进行描述。图3是图示根据一个示例的用于管理处理器对主机环境内发生的早期引导错误进行跟踪的方法300的流程图。方法300可以由图1所示的模块、组件、系统来执行,并且因此在这里仅通过对其的参考而被加以描述。例如,方法300可以由管理处理器141在执行指令144、145时所执行。将要理解到的是,方法300可以在任意适当的硬件上执行。
方法300可以开始于操作302,其时管理处理器在执行引导进度监视器指令144时基于读取、轮询或以其它方式访问双重用途引导寄存器而获得主机环境的引导阶段标识符和早期引导状态标识符。管理处理器可以通过边带接口读取、轮询或以其它方式访问双重用途引导寄存器。
在操作304,在执行引导进度监视器指令时,管理控制器可以随后将引导阶段标识符和早期引导状态标识符存储在计算机可读存储设备中的早期引导进度日志中。
操作302可以在管理控制器检测到系统复位命令时被发起。此外,操作302和304一起可以进行迭代直至早期引导阶段完成,这能够通过主通信链路的成功初始化而被检测到。
在操作306,管理处理器在执行引导进度分析器指令时可以分析早期引导进度日志以检测在主机环境中发生的早期引导错误。在一些情况下,操作306可以涉及基于平台能力抽象定义而对早期引导进度日志进行解码。因此,在分析早期引导进度日志之前,管理处理器可以访问平台能力抽象定义。基于平台能力抽象定义,管理处理器能够确定寄存器值与引导阶段或引导状态代码之间的位映射。此外,基于平台能力抽象定义,管理处理器还可以确定处理器核心和寄存器位范围或寄存器之间的映射。
在一些情况下,操作306可以涉及管理处理器基于所检测到的错误来执行用户配置的动作。以这种方式,管理控制器包括用户(例如,管理员)配置管理处理器在早期引导过程期间检测到指定错误时所能够采取的动作的能力。这样的用户配置的动作可以被存储为包括触发条件和触发动作的错误规则。当来自早期引导进度日志的数据与触发条件匹配时,相对应的触发动作可以由管理处理器所执行。
除此之外或可替换地,操作306可以涉及管理处理器尝试从瞬时错误中恢复。如本文所使用的,瞬时错误可以是指间歇性地、可变地或者非确定性地出现的错误条件。瞬时错误的一个示例是其中位出于某些非确定性的原因而取不正确的数值(例如,取0值而不是1)。图4是根据一个示例的用于处理瞬时错误的方法400的流程图。
方法400可以开始于操作402,此时管理处理器检测到早期引导过程停止。在判定404处,管理处理器可以基于瞬时错误来确定早期引导过程是否停止。如果是,则管理处理器可以在操作406装载看门狗定时器以通过复位来恢复系统。否则,在操作408,管理处理器可以确定早期引导过程已经完成并且停止引导进度分析器。

Claims (15)

1.一种方法,包括:
由主机处理器转换到早期引导过程的第一阶段,该早期引导过程在主机处理器初始化主机处理器和管理控制器之间的主链路之前发生;以及
更新双重用途引导寄存器以存储对应于该第一阶段的早期引导阶段标识符以及对应于该第一阶段的早期引导状态标识符。
2.根据权利要求1所述的方法,进一步包括:
检测该早期引导过程的完成;以及
响应于该早期引导过程的完成,将该双重用途引导寄存器用作暂存寄存器。
3.根据权利要求1所述的方法,其中该双重用途引导寄存器能够由管理控制器通过边带接口进行访问。
4.根据权利要求3所述的方法,其中该边带接口由辅助电源供电。
5.根据权利要求1所述的方法,其中该第一阶段标识符映射至双重用途寄存器中的位的位置。
6.根据权利要求1所述的方法,其中该第一阶段标识符映射至双重用途寄存器的一部分中所存储的值。
7.根据权利要求1所述的方法,其中该早期引导阶段标识符和早期引导状态标识符根据平台抽象定义而被存储在该双重用途引导寄存器中。
8.根据权利要求1所述的方法,进一步包括:
由该主机处理器转换到该早期引导过程的第二阶段;以及
更新该双重用途引导寄存器以存储对应于该第二阶段的第二早期引导阶段标识符以及对应于该第二阶段的第二早期引导状态标识符。
9.一种设备,包括:
通信耦合至主机环境的边带接口;
耦合至该边带接口的处理器;以及
耦合至该处理器的计算机可读存储设备,该计算机可读存储设备包括指令以使得该处理器:
基于通过该边带接口访问主机处理器的双重用途引导寄存器而获得该主机环境的引导阶段标识符和引导状态;
将该引导阶段标识符和早期引导状态存储在早期引导进度日志中;以及
分析该早期引导进度日志以确定在该主机环境内发生的早期引导错误。
10.根据权利要求9所述的设备,其中该处理器用于基于根据平台能力抽象定义对该早期引导进度日志进行解码来分析该早期引导进度日志。
11.根据权利要求10所述的设备,其中平台能力抽象定义指定了该双重用途引导寄存器和该主机环境内的核心之间的映射。
12.根据权利要求9所述的设备,其中该处理器用于基于将该早期引导进度日志与用户所提供的错误规则相比较来分析该早期引导进度日志。
13.根据权利要求9所述的设备,其中该处理器进一步用于:
确定该早期引导进度日志指示瞬时错误;以及
装载看门狗计时器以通过复位恢复系统。
14.一种设备,包括:
通信耦合至管理控制器的边带接口;
耦合至该边带接口的处理器;以及
耦合至该处理器的计算机可读存储设备,该计算机可读存储设备包括指令以使得该处理器:
转换到早期引导过程的一个阶段,该早期引导过程在主机处理器初始化主机处理器和管理控制器之间的主链路之前发生;以及
更新双重用途引导寄存器以存储对应于第一阶段的早期引导阶段标识符以及对应于该第一阶段的早期引导状态标识符,该双重用途寄存器能够通过该边带接口进行访问。
15.根据权利要求14所述的设备,其中该边带接口由辅助电源供电。
CN201480084540.0A 2014-11-13 2014-11-13 用于检测早期引导错误的方法、设备及系统 Expired - Fee Related CN107111595B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IN2014/000719 WO2016075699A1 (en) 2014-11-13 2014-11-13 Dual purpose boot registers

Publications (2)

Publication Number Publication Date
CN107111595A true CN107111595A (zh) 2017-08-29
CN107111595B CN107111595B (zh) 2021-01-12

Family

ID=55953829

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480084540.0A Expired - Fee Related CN107111595B (zh) 2014-11-13 2014-11-13 用于检测早期引导错误的方法、设备及系统

Country Status (5)

Country Link
US (1) US10430202B2 (zh)
EP (1) EP3218818B1 (zh)
CN (1) CN107111595B (zh)
TW (1) TWI576706B (zh)
WO (1) WO2016075699A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10558250B2 (en) * 2016-12-23 2020-02-11 Oracle International Corporation System and method for coordinated link up handling following switch reset in a high performance computing network
US10572671B2 (en) * 2017-02-20 2020-02-25 Tsinghua University Checking method, checking system and checking device for processor security
US10684896B2 (en) 2017-02-20 2020-06-16 Tsinghua University Method for processing asynchronous event by checking device and checking device
US10642981B2 (en) 2017-02-20 2020-05-05 Wuxi Research Institute Of Applied Technologies Tsinghua University Checking method, checking device and checking system for processor
US10657022B2 (en) 2017-02-20 2020-05-19 Tsinghua University Input and output recording device and method, CPU and data read and write operation method thereof
KR102552463B1 (ko) * 2018-04-20 2023-07-06 삼성전자 주식회사 어플리케이션 프로세서, 시스템 온 칩 및 장치의 부팅 방법
JP7053979B2 (ja) * 2018-06-29 2022-04-13 株式会社Pfu 情報処理装置、情報処理方法、及びプログラム
US11372979B2 (en) 2019-12-17 2022-06-28 Hewlett Packard Enterprise Development Lp Computing device login failsafe

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020099971A1 (en) * 2001-01-25 2002-07-25 Merkin Cynthia M. System and method for providing a fault-resilient boot
US20050038981A1 (en) * 2003-08-15 2005-02-17 Connor Patrick L. System and method for accelerated device initialization
CN101322104A (zh) * 2005-12-30 2008-12-10 英特尔公司 多处理器系统中的故障恢复引导

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6233680B1 (en) 1998-10-02 2001-05-15 International Business Machines Corporation Method and system for boot-time deconfiguration of a processor in a symmetrical multi-processing system
US6807643B2 (en) 1998-12-29 2004-10-19 Intel Corporation Method and apparatus for providing diagnosis of a processor without an operating system boot
US6393586B1 (en) 1999-02-04 2002-05-21 Dell Usa, L.P. Method and apparatus for diagnosing and conveying an identification code in post on a non-booting personal computer
US20030070115A1 (en) * 2001-10-05 2003-04-10 Nguyen Tom L. Logging and retrieving pre-boot error information
US6973587B1 (en) 2002-05-03 2005-12-06 American Megatrends, Inc. Systems and methods for out-of-band booting of a computer
US20040177241A1 (en) 2003-03-04 2004-09-09 Chih-Wei Chen Booting method that detects memory modes
US7308569B2 (en) 2003-08-01 2007-12-11 American Megatrends, Inc. Method and system for specifying the boot order of mass storage devices in a computer system
JP4311287B2 (ja) 2004-06-25 2009-08-12 ソニー株式会社 ブートシステム及びブート方法及びこのブート方法を用いたデータ処理装置
US7734945B1 (en) 2005-04-29 2010-06-08 Microsoft Corporation Automated recovery of unbootable systems
WO2012087330A2 (en) * 2010-12-23 2012-06-28 Intel Corporation Test, validation, and debug architecture
TW201324115A (zh) 2011-12-15 2013-06-16 Inventec Corp 電腦系統及電腦系統的開機管理方法
CN103809989B (zh) 2012-11-08 2017-07-11 英华达(南京)科技有限公司 操作系统发生核心崩溃情况下读取完整核心日志的方法
US20140241071A1 (en) 2013-02-26 2014-08-28 Seagate Technology Llc Fast Power Loss Recovery By Swapping Boot and Recovery Data Sets in a Memory
US9946553B2 (en) * 2016-05-04 2018-04-17 America Megatrends, Inc. BMC firmware recovery

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020099971A1 (en) * 2001-01-25 2002-07-25 Merkin Cynthia M. System and method for providing a fault-resilient boot
US20050038981A1 (en) * 2003-08-15 2005-02-17 Connor Patrick L. System and method for accelerated device initialization
CN101322104A (zh) * 2005-12-30 2008-12-10 英特尔公司 多处理器系统中的故障恢复引导

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PETE DICE: ""引导英特尔架构系统第一部分:早期初始化"", 《因特网档案室》 *

Also Published As

Publication number Publication date
EP3218818A4 (en) 2017-11-22
WO2016075699A1 (en) 2016-05-19
US10430202B2 (en) 2019-10-01
CN107111595B (zh) 2021-01-12
EP3218818B1 (en) 2019-05-08
TW201633176A (zh) 2016-09-16
TWI576706B (zh) 2017-04-01
EP3218818A1 (en) 2017-09-20
US20170315818A1 (en) 2017-11-02

Similar Documents

Publication Publication Date Title
CN107111595A (zh) 双用途引导寄存器
CN105938450B (zh) 自动除错信息收集的方法及系统
US10579459B2 (en) Log events for root cause error diagnosis
TWI446161B (zh) 處理一多處理器資訊處理系統之一故障處理器的裝置及方法
CN107122321A (zh) 硬件修复方法、硬件修复系统以及计算机可读取存储装置
EP3616066B1 (en) Human-readable, language-independent stack trace summary generation
CN106603265A (zh) 管理方法、服务控制器装置以及非暂态计算机可读介质
CN104850485A (zh) 一种基于bmc远程诊断服务器开机故障的方法及系统
CN103201724A (zh) 在高可用性虚拟机环境中提供高可用性应用程序
CN111324192A (zh) 一种系统板卡电源检测方法、装置、设备及存储介质
US20200409810A1 (en) Failure analysis system for a distributed storage system
CN111414268A (zh) 故障处理方法、装置及服务器
CN104375915A (zh) 一种利用服务器主板bmc和cpld交互快速诊断主板时序的方法
CN105760241B (zh) 一种内存数据导出方法和系统
US20080270827A1 (en) Recovering diagnostic data after out-of-band data capture failure
CN111221800A (zh) 数据库迁移方法、装置、电子设备及存储介质
CN104598341A (zh) 用于确定在互连/控制器之间的故障的位置的方法和系统
CN105051692A (zh) 通过隔离的自动化故障处理
CN102609324B (zh) 一种虚拟机死锁后的恢复方法、装置及系统
CN111191861B (zh) 机台数量确定方法及装置、处理线、存储介质和电子设备
CN115599617B (zh) 总线检测方法、装置、服务器及电子设备
CN104571098B (zh) 基于Atom平台的远程自诊断方法
CN108241562A (zh) 一种应用于服务器的远程调试的设计方法
CN114968947A (zh) 一种故障文件保存方法及相关装置
CN100369009C (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
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20210112

CF01 Termination of patent right due to non-payment of annual fee