CN117435255A - 系统启动方法及装置、存储介质及电子装置 - Google Patents

系统启动方法及装置、存储介质及电子装置 Download PDF

Info

Publication number
CN117435255A
CN117435255A CN202311459133.0A CN202311459133A CN117435255A CN 117435255 A CN117435255 A CN 117435255A CN 202311459133 A CN202311459133 A CN 202311459133A CN 117435255 A CN117435255 A CN 117435255A
Authority
CN
China
Prior art keywords
processing unit
bad
central processing
started
cores
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
CN202311459133.0A
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.)
Suzhou Metabrain Intelligent Technology Co Ltd
Original Assignee
Suzhou Metabrain Intelligent Technology Co Ltd
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 Suzhou Metabrain Intelligent Technology Co Ltd filed Critical Suzhou Metabrain Intelligent Technology Co Ltd
Priority to CN202311459133.0A priority Critical patent/CN117435255A/zh
Publication of CN117435255A publication Critical patent/CN117435255A/zh
Pending legal-status Critical Current

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
    • 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
    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Hardware Redundancy (AREA)

Abstract

本申请实施例提供了一种系统启动方法及装置、存储介质及电子装置,其中,该系统启动方法包括:在检测到第一系统启动的情况下,确定第一系统是否为冷启动;在确定第一系统为冷启动的情况下,通过内存自检算法对中央处理器进行检测,以确定中央处理器中是否存在坏核,其中,坏核用于指示中央处理器中损坏的从处理单元,第一系统与中央处理器中的主处理单元同时启动、且第一系统用于控制主处理单元;在中央处理器中存在坏核的情况下,将中央处理器中的坏核进行隔离,并启动第二系统和中央处理器中的其他从处理单元,其中,第二系统用于控制主处理单元和其他从处理单元,其他从处理单元为中央处理器中坏核之外的从处理单元。

Description

系统启动方法及装置、存储介质及电子装置
技术领域
本申请实施例涉及计算机领域,具体而言,涉及一种系统启动方法及装置、存储介质及电子装置。
背景技术
随着数字经济与科学技术的不断发展,市场对服务器的使用和依赖程度逐渐增加。使用服务器的厂家和公司也很多,他们分别来自于金融、银行、通信、航天、科研、制造等多个领域。很多企业对服务器的持续可靠运行有很高的要求,典型的如银行、互联网、通信、医疗等领域,一旦服务器长时间宕机或者发生运行故障,除了造成客户业务受阻,还有可能造成客户业务数据积压和流失,引发安全问题,对客户公司造成不可挽回的损失。
服务器是多CPU多核系统,通常一个CPU包含几十个CPU核(即处理单元),服务器长期运行后,可能会出现单个或者多个CPU核损坏的情况。BIOS(Basic lnput OutputSystem,基本输入输出系统)是单核单线程系统。BIOS启动时,CPU中只有一个核在运行。所以CPU中产生坏核后,通常对BIOS影响不大。BIOS启动时运行的这个CPU核称为主核,其余CPU核称为从核。BIOS启动完成后,BIOS将CPU的控制权交给OS(Operating System,操作系统)。OS是多核多线程系统,OS在启动时,主核会将系统中其他的CPU从核启动,如果系统中存在CPU坏核,CPU坏核在被主核拉起是,会发生总线错误或者其他异常,导致系统挂死。
针对相关技术中,OS(第二系统)在启动时会将系统中的CPU从核启动,如果系统中存在CPU坏核,坏核启动则会引发总线错误或其他异常,导致系统挂死的技术问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种系统启动方法及装置、存储介质及电子装置,以至少解决相关技术中OS(第二系统)在启动时会将系统中的CPU从核启动,如果系统中存在CPU坏核,坏核启动则会引发总线错误或其他异常,导致系统挂死的问题。
根据本申请的一个实施例,提供了一种系统启动方法,包括:在检测到第一系统启动的情况下,确定所述第一系统是否为冷启动,其中,所述冷启动用于指示所述第一系统为上电之后第一次启动;在确定所述第一系统为冷启动的情况下,通过内存自检算法对中央处理器进行检测,以确定所述中央处理器中是否存在坏核,其中,所述坏核用于指示所述中央处理器中损坏的从处理单元,所述第一系统与所述中央处理器中的主处理单元同时启动、且所述第一系统用于控制所述主处理单元;在所述中央处理器中存在坏核的情况下,将所述中央处理器中的坏核进行隔离,并启动第二系统和所述中央处理器中的其他从处理单元,其中,所述第二系统用于控制所述主处理单元和所述其他从处理单元,所述其他从处理单元为所述中央处理器中所述坏核之外的从处理单元。
在一个示例性实施例中,所述确定所述第一系统是否为冷启动,包括:读取所述第一系统的寄存器中存储的状态值;在确定所述状态值为第一值的情况下,确定所述第一系统为冷启动,并将所述状态值更新为第二值,其中,所述第一值为所述状态值的默认值;在确定所述状态值不为所述第一值的情况下,确定所述第一系统不为冷启动。
在一个示例性实施例中,所述通过内存自检算法对中央处理器进行检测,以确定所述中央处理器中是否存在坏核,包括:确定所述内存自检算法对应的检测对象,其中,所述检测对象包括多个所述从处理单元的存储器;根据所述检测对象配置所述内存自检算法的参数信息,其中,所述参数信息包括:测试模式,测试时间;根据所述检测对象的规格参数和地址信息生成检测向量;执行所述检测向量,以对所述多个从处理单元的存储器进行检测;将检测结果和所述检测向量对应的预设检测结果进行比对分析,得到检测数据;对所述检测数据进行解析,以确定所述中央处理器中是否存在坏核,以及确定所述坏核在所述多个从处理单元中的编号信息。
在一个示例性实施例中,所述将所述中央处理器中的坏核进行隔离,并启动第二系统和所述中央处理器中的其他从处理单元,包括:将所述其他从处理单元的编号信息存储至启动配置信息中,并将所述启动配置信息发送给所述第二系统,以指示所述第二系统根据所述启动配置信息进行启动,其中,所述启动配置信息用于所述第二系统确定待启动的从处理单元。
在一个示例性实施例中,所述将所述中央处理器中的坏核进行隔离,并启动第二系统和所述中央处理器中的其他从处理单元之前,所述方法还包括:确定所述坏核的数量是否超过预设阈值;在确定所述坏核的数量超过所述预设阈值的情况下,禁止所述第二系统和所述其他从处理单元启动,并停止所述第一系统和所述主处理单元运行;在确定所述坏核的数量未超过所述预设阈值的情况下,将所述坏核进行隔离,并启动所述第二系统和所述其他从处理单元。
在一个示例性实施例中,所述禁止所述第二系统和所述其他从处理单元启动,并停止所述第一系统和所述主处理单元运行之后,所述方法还包括:将告警信息发送给基板管理控制器,以指示所述基板管理控制器将所述告警信息存储到控制器日志中,其中,所述告警信息包括:所述坏核的数量,所述坏核的编号信息;所述控制器日志用于第一对象查看所述告警信息。
在一个示例性实施例中,所述将所述坏核进行隔离,并启动所述第二系统和所述其他从处理单元之后,所述方法还包括:将所述坏核的编号信息显示在第一页面,以及将所述编号信息通过所述第一系统的管理系统发送给所述第二系统,以提示第一对象所述中央处理器中存在坏核。
根据本申请的另一个实施例,提供了一种系统启动装置,包括:确定模块,用于在检测到第一系统启动的情况下,确定所述第一系统是否为冷启动,其中,所述冷启动用于指示所述第一系统为上电之后第一次启动;检测模块,用于在确定所述第一系统为冷启动的情况下,通过内存自检算法对中央处理器进行检测,以确定所述中央处理器中是否存在坏核,其中,所述坏核用于指示所述中央处理器中损坏的从处理单元,所述第一系统与所述中央处理器中的主处理单元同时启动、且所述第一系统用于控制所述主处理单元;启动模块,用于在所述中央处理器中存在坏核的情况下,将所述中央处理器中的坏核进行隔离,并启动第二系统和所述中央处理器中的其他从处理单元,其中,所述第二系统用于控制所述主处理单元和所述其他从处理单元,所述其他从处理单元为所述中央处理器中所述坏核之外的从处理单元。
根据本申请的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本申请,在检测到第一系统(BIOS)启动时,先确定是否为冷启动,若不是冷启动则不需要进行坏核检测,若是冷启动则先通过内存自检算法对中央处理器进行检测,确定是否存在坏核,若确定中央处理器中存在坏核,则对坏核进行隔离处理,从而保证第二系统的正常运行;采用上述方案,解决了相关技术中OS(第二系统)在启动时会将系统中的CPU从核启动,如果系统中存在CPU坏核,坏核启动则会引发总线错误或其他异常,导致系统挂死的问题;从而避免了CPU坏核引起CPU异常宕机的事故,使得客户机器可以继续正常运行,提升了公司产品的安全性,可用性和可维护性,极大提升了产品的质量品质。
附图说明
图1是根据本申请实施例的一种系统启动方法的AMD服务器的硬件结构框图;
图2是根据本申请实施例的系统启动方法的流程图;
图3是根据本申请实施例的一种可选的系统启动方法的流程示意图;
图4是根据本申请实施例的系统启动装置的结构框图(一);
图5是根据本申请实施例的系统启动装置的结构框图(二)。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语″第一″、″第二″等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在AMD服务器或者类似的运算装置中执行。以运行在AMD服务器上为例,图1是本申请实施例的一种系统启动方法的AMD服务器的硬件结构框图。如图1所示,AMD服务器可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述AMD服务器还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述AMD服务器的结构造成限定。例如,AMD服务器还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的系统启动方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至AMD服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括AMD服务器的通信供应方提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(RadioFrequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种系统启动方法,图2是根据本申请实施例的系统启动方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,在检测到第一系统启动的情况下,确定所述第一系统是否为冷启动,其中,所述冷启动用于指示所述第一系统为上电之后第一次启动;
需要说明的是,冷启动是指BIOS(相当于上述第一系统)在上电之后,第一次启动,BIOS启动完成后,再执行重启这类不断电的操作,引起BIOS重新启动的行为,不属于冷启动。
步骤S204,在确定所述第一系统为冷启动的情况下,通过内存自检算法对中央处理器进行检测,以确定所述中央处理器中是否存在坏核,其中,所述坏核用于指示所述中央处理器中损坏的从处理单元,所述第一系统与所述中央处理器中的主处理单元同时启动、且所述第一系统用于控制所述主处理单元;
步骤S206,在所述中央处理器中存在坏核的情况下,将所述中央处理器中的坏核进行隔离,并启动第二系统和所述中央处理器中的其他从处理单元,其中,所述第二系统用于控制所述主处理单元和所述其他从处理单元,所述其他从处理单元为所述中央处理器中所述坏核之外的从处理单元。
通过上述步骤,在检测到第一系统(BIOS)启动时,先确定是否为冷启动,若不是冷启动则不需要进行坏核检测,若是冷启动则先通过内存自检算法对中央处理器进行检测,确定是否存在坏核,若确定中央处理器中存在坏核,则对坏核进行隔离处理,从而保证第二系统的正常运行;采用上述方案,解决了相关技术中OS(第二系统)在启动时会将系统中的CPU从核启动,如果系统中存在CPU坏核,坏核启动则会引发总线错误或其他异常,导致系统挂死的问题;从而避免了CPU坏核引起CPU异常宕机的事故,使得客户机器可以继续正常运行,提升了公司产品的安全性,可用性和可维护性,极大提升了产品的质量品质。
其中,上述步骤的执行主体可以为AMD服务器等,但不限于此。
步骤S202和步骤S204的执行顺序是可以互换的,即可以先执行步骤S204,然后再执行S202。
以下对本申请中出现的专业名词进行解释说明:
SMBIOS:System Management BIOS,BIOS管理系统;
MBIST:Memory Buitlln Self Test,内存自测试技术;
BMC:Baseboard Management Controller,基板管理控制器;
RAM:Random Access Memory,随机存取存储器;
IPMI:Intelligent Platform Management Interface,智能平台管理界面;
ACPI:Advanced Configuration and Power Management Interface,高级配置和电源管理界面。
在一个示例性实施例中,执行上述步骤S202:所述确定所述第一系统是否为冷启动,包括以下步骤:读取所述第一系统的寄存器中存储的状态值;在确定所述状态值为第一值的情况下,确定所述第一系统为冷启动,并将所述状态值更新为第二值,其中,所述第一值为所述状态值的默认值;在确定所述状态值不为所述第一值的情况下,确定所述第一系统不为冷启动。
可以通过以下方式来确定第一系统是否为冷启动,先读取第一系统的寄存器中存储的状态值,状态值默认为第一值,即在第一系统下电后再重新上电时,状态值会默认恢复为第一值,若当前状态值为第一值,则确定第一系统为冷启动,然后将寄存器中的状态值更新为第二值;若当前状态值不为第一值,则确定该第一系统不为冷启动。
需要说明的是,在确定第一系统不为冷启动时,则不需要对中央处理器进行坏核检测,避免浪费处理资源。
通过上述实施例,在第一系统启动时先判断是否为冷启动,仅在冷启动时进行坏核检测,从而降低坏核检测的频率,进而减少处理资源的浪费。
可选的,可以通过以下实施例来实现上述步骤S204:所述通过内存自检算法对中央处理器进行检测,以确定所述中央处理器中是否存在坏核所记载的技术方案,包括:确定所述内存自检算法对应的检测对象,其中,所述检测对象包括多个所述从处理单元的存储器;根据所述检测对象配置所述内存自检算法的参数信息,其中,所述参数信息包括:测试模式,测试时间;根据所述检测对象的规格参数和地址信息生成检测向量;执行所述检测向量,以对所述多个从处理单元的存储器进行检测;将检测结果和所述检测向量对应的预设检测结果进行比对分析,得到检测数据;对所述检测数据进行解析,以确定所述中央处理器中是否存在坏核,以及确定所述坏核在所述多个从处理单元中的编号信息。
先确定内存自检算法对应的检测对象为多个从处理单元的存储器,即为内存自检算法配置待检测对象;然后根据该检测对象的检测需求配置该内存自检算法的参数信息,参数信息至少包括测试模式和测试时间;然后根据检测对象的规格参数和地址信息生成检测向量,执行该检测向量以完全对该多个从处理单元的存储器的检测,将检测结果和该检测向量对应的预设检测结果进行比对分析,得到检测数据;对检测数据进行解析,从而确定出中央处理器中是否存在坏核,若存在坏核,则一并可以得到坏核的编号信息。
通过上述实施例,通过内存自检算法可以快速精确的找到中央处理器中存在的坏核,并及时进行处理,以避免OS在运行过程中因坏核的存在而异常宕机,给客户带来更大的损失。
在一个示例性实施例中,上述步骤S206:所述将所述中央处理器中的坏核进行隔离,并启动第二系统和所述中央处理器中的其他从处理单元,可以通过以下方式来实现,包括:将所述其他从处理单元的编号信息存储至启动配置信息中,并将所述启动配置信息发送给所述第二系统,以指示所述第二系统根据所述启动配置信息进行启动,其中,所述启动配置信息用于所述第二系统确定待启动的从处理单元。
BIOS对坏核隔离,是指BIOS不将坏核记录到ACPI表(相当于上述启动配置信息)中,ACPI表是BIOS传递系统信息给OS的一种方式,ACPI表中包含系统中所有可用的CPU核。OS启动时,OS读取ACPI表来获取CPU核数,由于坏核未被记录到ACPI表,OS感知不到坏核的存在,也就不会对坏核进行启动,进而避免了CPU坏核引起CPU异常宕机事故。
通过上述实施例,在检测到中央处理器中存在坏核时,对坏核进行隔离,从而避免OS启动时对坏核进行启动,导致坏核运行使CPU异常宕机。
可选的,执行上述步骤S206:所述将所述中央处理器中的坏核进行隔离,并启动第二系统和所述中央处理器中的其他从处理单元之前,所述方法还包括:确定所述坏核的数量是否超过预设阈值;在确定所述坏核的数量超过所述预设阈值的情况下,禁止所述第二系统和所述其他从处理单元启动,并停止所述第一系统和所述主处理单元运行;在确定所述坏核的数量未超过所述预设阈值的情况下,将所述坏核进行隔离,并启动所述第二系统和所述其他从处理单元。
在检测到中央处理器(CPU)中存在坏核时,先判断坏核的数量是否超过了预设阈值,若超过了预设阈值,即使对坏核进行隔离,也会严重影响服务器的性能水平,甚至会影响服务器的正常运行。因此,若坏核超过预设阈值,则禁止该第二系统和该其他从处理单元启动,并停止BIOS的运行;若坏核数量未超过阈值,则可以对坏核进行隔离,从而保证OS的正常启动运行。
通过上述实施例,根据坏核的数量采取不同的应对措施,从而最大可能地降低坏核对系统运行的影响。
基于上述步骤,禁止所述第二系统和所述其他从处理单元启动,并停止所述第一系统和所述主处理单元运行之后,所述方法还包括:将告警信息发送给基板管理控制器,以指示所述基板管理控制器将所述告警信息存储到控制器日志中,其中,所述告警信息包括:所述坏核的数量,所述坏核的编号信息;所述控制器日志用于第一对象查看所述告警信息。
如果坏核数量超过允许阈值,即使对CPU坏核进行隔离,也会严重影响服务器的性能水平,因此会禁止机器继续运行,且也会停止BIOS的运行;BIOS还会对此作出告警,在显示器提醒CPU坏核数量超过阈值,显示CPU坏核数量和允许的坏核阈值,以及CPU坏核编号等信息。同时BIOS可以通过IPMI命令发送告警信息给BMC,BMC将CPU坏核告警信息记录到BMC(相当于上述基板管理控制器)的日志,之后用户可以在BMC WEB或者使用命令查看BMC日志,均可以看到CPU坏核相关的信息。IPMI是BISOS和BMC之间用于通信,互相传输数据的一种协议接口。
基于上述步骤,将所述坏核进行隔离,并启动所述第二系统和所述其他从处理单元之后,所述方法还包括:将所述坏核的编号信息显示在第一页面,以及将所述编号信息通过所述第一系统的管理系统发送给所述第二系统,以提示第一对象所述中央处理器中存在坏核。
对坏核进行隔离,并继续启动第二系统和其他从处理单元之后,BIOS将CPU坏核编号显示到BIOS SETUP界面,同时将CPU坏核编号通过SMBIOS传递到OS,技术人员或者客户(相当于上述第一对象)通过查看BIOS的SETUP界面,或者使用查看SMBIO的dmidecode命令,均可以查看CPU是否存在坏核。
通过上述实施例,当客户机器CPU发生坏核时,只需要查看BIOS SETUP或者OS的SMBIOS即可确认是否存在CPU坏核,避免了与客户公司人员多次沟通确认问题现象,极大地提升了客户对公司产品的体验感,同时也避免了技术人员去现场定位分析的繁杂过程,极大地节省了公司的人力成本。
一个示例性的实施例中,本申请提供了一种可选的系统启动方法,包括以下步骤:
步骤1、BIOS启动并判断是否是冷启动,冷启动是指上电之后,BIOS第一次启动。BIOS启动完成后,再执行reboot这类不断电的操作,引起BIOS重新启动的行为,不属于冷启动;
步骤2、如果BIOS是冷启动,BIOS执行CPU MBIST测试程序(相当于上述内存自检算法),并将检测数据存储到FALSH。如果BIOS不是冷启动,BIOS不执行CPU MBIST测试程序。通过MBIST对CPU核的RAM进行检测,以判断CPU是否产生了坏核;
需要说明的是,MBIST的全称是Memory Built ln Self Test,是一种用于集成电路中内置测试存储器的技术,以便检测集成电路中存储器的缺陷。MBIST硬件功能模块集成在CPU内部,可以在BIOS中开启MBIST和指定对特定RAM的检测,以判断RAM是否损坏。
步骤3、BIOS从FLASH读取CPU MBIST检测数据,并解析CPU是否存在坏核;
步骤4、BIOS如果解析出CPU不存在坏核,BIOS直接继续运行至完成;
步骤5、BIOS如果解析出CPU存在坏核,BIOS判断CPU坏核数量是否超过允许阈值(相当于上述实施例中的预设阈值),如果超过允许阈值,即使对CPU坏核进行隔离,也会严重影响服务器的性能水平,甚至会影响服务器的正常运行。BIOS对此作出告警,BIOS在显示器提醒CPU坏核数量超过阈值,显示CPU坏核数量和允许的坏核阈值,以及CPU坏核编号等信息。同时BIOS通过IPMI命令,发送告警信息给BMC,BMC将CPU坏核告警信息记录到BMC的日志,之后在BMC WEB或者使用命令查看BMC日志,均可以看到CPU坏核相关的信息。IPMI是BIOS和BMC之间用于通信,互相传输数据的一种协议接口。CPU坏核数量超过阈值的情况下,BIOS不允许机器继续运行,之后BIOS停止运行;
步骤6、BIOS如果检测到CPU存在坏核,并且坏核数量未超过允许阈值,BIOS对坏核进行隔离。BIOS对坏核隔离,是指BIOS不将坏核记录到ACPI表(相当于上述启动配置信息)中。ACPI表是BIOS传递系统信息给OS的一种方式,ACPI表中包含系统中所有可用的CPU核。OS启动时,OS读取APCI表来获取CPU核数,由于坏核未被记录到ACPI表,OS感知不到坏核的存在,也就不会对坏核进行启动,进而避免了CPU坏核引起CPU异常宕机事故。之后BIOS将CPU坏核编号显示到BIOS SETUP界面(相当于上述第一页面),同时将CPU坏核编号通过SMBIOS传递到OS,技术人员或者客户,通过查看BIOS的SETUP界面,或者使用查看SMBIOS的dmidecode命令,均可以查看CPU是否存在坏核。
通过上述实施例,在BIOS在冷启动时,执行CPU MBIST检测程序,如果检测到CPU存在坏核,且坏核数量未超过允许阈值,BIOS不将坏核记录进ACPI表,OS启动时,从APCI表读取CPU核数,由于坏核未被记录进ACPI表,OS感知不到坏核,避免了启动CPU坏核引起CPU异常宕机的事故。且BISO将坏核编号记录在BIOS的SETUP并且通过SMBIOS传递给OS,通过查看BIOS的SETUP界面或者使用查看SMBIO的dmidecode命令,均可以查看CPU是否存在坏核。当客户机器CPU发生坏核时,只需要查看BIOS SETUP或者OS的SMBIOS即可确认是否存在CPU坏核,避免了与客户公司人员多次沟通确认问题的现象,极大地提升了客户对公司产品的体验感,同时也避免了技术人员去现场定位分析的繁琐过程,极大地节省了公司的人力成本。
可选的,本申请还提供了一种可选的系统启动方法,如图3所示,包括以下步骤:
步骤S301、BIOS启动;
步骤S302、判断BIOS是否是冷启动,若是则执行步骤S303,若否则执行步骤S304;
步骤S303、BIOS执行CPU MBIST测试程序,并将检测数据存储到FLASH;
步骤S304、BIOS从FLASH读取CPU MBIST测试数据;
步骤S305、BIOS分析CPU是否存在坏核,若是则执行步骤S306,若否则执行步骤S310;
步骤S306、确定CPU坏核数量是否超过阈值,若否则执行步骤S307,若是则执行步骤S311;
步骤S307、BIOS执行CPU坏核隔离;
步骤S308、BIOS将坏核编号显示到SETUP界面;
步骤S309、BIOS将坏核编号通过SMBIOS传递到OS;
步骤S310、BIOS继续启动至完成;
步骤S311、BIOS在显示器和KVM显示告警信息,并通过IPMI发送告警信息给BMC;
步骤S312、BIOS停止启动。
通过上述方案,当BIOS检测到客户机器产生CPU坏核,且坏核数量未超过允许阈值时,BIOS会将坏的CPU坏核隔离,避免了CPU坏核引起CPU异常宕机的事故,使得客户机器可以继续正常运行,避免了客户业务中断,使客户的业务损失减到最小,提升了公司产品的安全性,可用性和可维护性,极大地提升了公司产品的质量品质。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在本实施例中还提供了一种系统启动装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语″模块″可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图4是根据本申请实施例的系统启动装置的结构框图,如图4所示,该装置包括
确定模块42,用于在检测到第一系统启动的情况下,确定所述第一系统是否为冷启动,其中,所述冷启动用于指示所述第一系统为上电之后第一次启动;
需要说明的是,冷启动是指BIOS(相当于上述第一系统)在上电之后,第一次启动,BIOS启动完成后,再执行重启这类不断电的操作,引起BIOS重新启动的行为,不属于冷启动。
检测模块44,用于在确定所述第一系统为冷启动的情况下,通过内存自检算法对中央处理器进行检测,以确定所述中央处理器中是否存在坏核,其中,所述坏核用于指示所述中央处理器中损坏的从处理单元,所述第一系统与所述中央处理器中的主处理单元同时启动、且所述第一系统用于控制所述主处理单元;
启动模块46,用于在所述中央处理器中存在坏核的情况下,将所述中央处理器中的坏核进行隔离,并启动第二系统和所述中央处理器中的其他从处理单元,其中,所述第二系统用于控制所述主处理单元和所述其他从处理单元,所述其他从处理单元为所述中央处理器中所述坏核之外的从处理单元。
通过上述装置,在检测到第一系统(BIOS)启动时,先确定是否为冷启动,若不是冷启动则不需要进行坏核检测,若是冷启动则先通过内存自检算法对中央处理器进行检测,确定是否存在坏核,若确定中央处理器中存在坏核,则对坏核进行隔离处理,从而保证第二系统的正常运行;采用上述方案,解决了相关技术中OS(第二系统)在启动时会将系统中的CPU从核启动,如果系统中存在CPU坏核,坏核启动则会引发总线错误或其他异常,导致系统挂死的问题;从而避免了CPU坏核引起CPU异常宕机的事故,使得客户机器可以继续正常运行,提升了公司产品的安全性,可用性和可维护性,极大提升了产品的质量品质。
可选的,上述确定模块42,还用于读取所述第一系统的寄存器中存储的状态值;在确定所述状态值为第一值的情况下,确定所述第一系统为冷启动,并将所述状态值更新为第二值,其中,所述第一值为所述状态值的默认值;在确定所述状态值不为所述第一值的情况下,确定所述第一系统不为冷启动。
可以通过以下方式来确定第一系统是否为冷启动,先读取第一系统的寄存器中存储的状态值,状态值默认为第一值,即在第一系统下电后再重新上电时,状态值会默认恢复为第一值,若当前状态值为第一值,则确定第一系统为冷启动,然后将寄存器中的状态值更新为第二值;若当前状态值不为第一值,则确定该第一系统不为冷启动。
需要说明的是,在确定第一系统不为冷启动时,则不需要对中央处理器进行坏核检测,避免浪费处理资源。
通过上述实施例,在第一系统启动时先判断是否为冷启动,仅在冷启动时进行坏核检测,从而降低坏核检测的频率,进而减少处理资源的浪费。
可选的,上述检测模块44,还用于确定所述内存自检算法对应的检测对象,其中,所述检测对象包括多个所述从处理单元的存储器;根据所述检测对象配置所述内存自检算法的参数信息,其中,所述参数信息包括:测试模式,测试时间;根据所述检测对象的规格参数和地址信息生成检测向量;执行所述检测向量,以对所述多个从处理单元的存储器进行检测;将检测结果和所述检测向量对应的预设检测结果进行比对分析,得到检测数据;对所述检测数据进行解析,以确定所述中央处理器中是否存在坏核,以及确定所述坏核在所述多个从处理单元中的编号信息。
先确定内存自检算法对应的检测对象为多个从处理单元的存储器,即为内存自检算法配置待检测对象;然后根据该检测对象的检测需求配置该内存自检算法的参数信息,参数信息至少包括测试模式和测试时间;然后根据检测对象的规格参数和地址信息生成检测向量,执行该检测向量以完全对该多个从处理单元的存储器的检测,将检测结果和该检测向量对应的预设检测结果进行比对分析,得到检测数据;对检测数据进行解析,从而确定出中央处理器中是否存在坏核,若存在坏核,则一并可以得到坏核的编号信息。
通过上述实施例,通过内存自检算法可以快速精确的找到中央处理器中存在的坏核,并及时进行处理,以避免OS在运行过程中因坏核的存在而异常宕机,给客户带来更大的损失。
可选的,上述启动模块46,还用于将所述其他从处理单元的编号信息存储至启动配置信息中,并将所述启动配置信息发送给所述第二系统,以指示所述第二系统根据所述启动配置信息进行启动,其中,所述启动配置信息用于所述第二系统确定待启动的从处理单元。
BIOS对坏核隔离,是指BIOS不将坏核记录到ACPI表(相当于上述启动配置信息)中,ACPI表是BIOS传递系统信息给OS的一种方式,ACPI表中包含系统中所有可用的CPU核。OS启动时,OS读取ACPI表来获取CPU核数,由于坏核未被记录到ACPI表,OS感知不到坏核的存在,也就不会对坏核进行启动,进而避免了CPU坏核引起CPU异常宕机事故。
通过上述实施例,在检测到中央处理器中存在坏核时,对坏核进行隔离,从而避免OS启动时对坏核进行启动,导致坏核运行使CPU异常宕机。
可选的,上述确定模块42,还用于确定所述坏核的数量是否超过预设阈值;在确定所述坏核的数量超过所述预设阈值的情况下,禁止所述第二系统和所述其他从处理单元启动,并停止所述第一系统和所述主处理单元运行;在确定所述坏核的数量未超过所述预设阈值的情况下,将所述坏核进行隔离,并启动所述第二系统和所述其他从处理单元。
在检测到中央处理器(CPU)中存在坏核时,先判断坏核的数量是否超过了预设阈值,若超过了预设阈值,即使对坏核进行隔离,也会严重影响服务器的性能水平,甚至会影响服务器的正常运行。因此,若坏核超过预设阈值,则禁止该第二系统和该其他从处理单元启动,并停止BIOS的运行;若坏核数量未超过阈值,则可以对坏核进行隔离,从而保证OS的正常启动运行。
通过上述实施例,根据坏核的数量采取不同的应对措施,从而最大可能地降低坏核对系统运行的影响。
可选的,上述系统启动装置,还包括发送模块48,如图5所示,用于将告警信息发送给基板管理控制器,以指示所述基板管理控制器将所述告警信息存储到控制器日志中,其中,所述告警信息包括:所述坏核的数量,所述坏核的编号信息;所述控制器日志用于第一对象查看所述告警信息。
如果坏核数量超过允许阈值,即使对CPU坏核进行隔离,也会严重影响服务器的性能水平,因此会禁止机器继续运行,且也会停止BIOS的运行;BIOS还会对此作出告警,在显示器提醒CPU坏核数量超过阈值,显示CPU坏核数量和允许的坏核阈值,以及CPU坏核编号等信息。同时BIOS可以通过IPMI命令发送告警信息给BMC,BMC将CPU坏核告警信息记录到BMC(相当于上述基板管理控制器)的日志,之后用户可以在BMC WEB或者使用命令查看BMC日志,均可以看到CPU坏核相关的信息。IPMI是BISOS和BMC之间用于通信,互相传输数据的一种协议接口。
可选的,上述发送模块48,还用于将所述坏核的编号信息显示在第一页面,以及将所述编号信息通过所述第一系统的管理系统发送给所述第二系统,以提示第一对象所述中央处理器中存在坏核。
对坏核进行隔离,并继续启动第二系统和其他从处理单元之后,BIOS将CPU坏核编号显示到BIOS SETUP界面,同时将CPU坏核编号通过SMBIOS传递到OS,技术人员或者客户(相当于上述第一对象)通过查看BIOS的SETUP界面,或者使用查看SMBIO的dmidecode命令,均可以查看CPU是否存在坏核。
通过上述实施例,当客户机器CPU发生坏核时,只需要查看BIOS SETUP或者OS的SMBIOS即可确认是否存在CPU坏核,避免了与客户公司人员多次沟通确认问题现象,极大地提升了客户对公司产品的体验感,同时也避免了技术人员去现场定位分析的繁杂过程,极大地节省了公司的人力成本。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本申请的实施例还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种系统启动方法,其特征在于,包括:
在检测到第一系统启动的情况下,确定所述第一系统是否为冷启动,其中,所述冷启动用于指示所述第一系统为上电之后第一次启动;
在确定所述第一系统为冷启动的情况下,通过内存自检算法对中央处理器进行检测,以确定所述中央处理器中是否存在坏核,其中,所述坏核用于指示所述中央处理器中损坏的从处理单元,所述第一系统与所述中央处理器中的主处理单元同时启动、且所述第一系统用于控制所述主处理单元;
在所述中央处理器中存在坏核的情况下,将所述中央处理器中的坏核进行隔离,并启动第二系统和所述中央处理器中的其他从处理单元,其中,所述第二系统用于控制所述主处理单元和所述其他从处理单元,所述其他从处理单元为所述中央处理器中所述坏核之外的从处理单元。
2.根据权利要求1所述的方法,其特征在于,
所述确定所述第一系统是否为冷启动,包括:
读取所述第一系统的寄存器中存储的状态值;
在确定所述状态值为第一值的情况下,确定所述第一系统为冷启动,并将所述状态值更新为第二值,其中,所述第一值为所述状态值的默认值;
在确定所述状态值不为所述第一值的情况下,确定所述第一系统不为冷启动。
3.根据权利要求1所述的方法,其特征在于,
所述通过内存自检算法对中央处理器进行检测,以确定所述中央处理器中是否存在坏核,包括:
确定所述内存自检算法对应的检测对象,其中,所述检测对象包括多个所述从处理单元的存储器;
根据所述检测对象配置所述内存自检算法的参数信息,其中,所述参数信息包括:测试模式,测试时间;
根据所述检测对象的规格参数和地址信息生成检测向量;
执行所述检测向量,以对所述多个从处理单元的存储器进行检测;
将检测结果和所述检测向量对应的预设检测结果进行比对分析,得到检测数据;
对所述检测数据进行解析,以确定所述中央处理器中是否存在坏核,以及确定所述坏核在所述多个从处理单元中的编号信息。
4.根据权利要求3所述的方法,其特征在于,
所述将所述中央处理器中的坏核进行隔离,并启动第二系统和所述中央处理器中的其他从处理单元,包括:
将所述其他从处理单元的编号信息存储至启动配置信息中,并将所述启动配置信息发送给所述第二系统,以指示所述第二系统根据所述启动配置信息进行启动,其中,所述启动配置信息用于所述第二系统确定待启动的从处理单元。
5.根据权利要求1所述的方法,其特征在于,
所述将所述中央处理器中的坏核进行隔离,并启动第二系统和所述中央处理器中的其他从处理单元之前,所述方法还包括:
确定所述坏核的数量是否超过预设阈值;
在确定所述坏核的数量超过所述预设阈值的情况下,禁止所述第二系统和所述其他从处理单元启动,并停止所述第一系统和所述主处理单元运行;
在确定所述坏核的数量未超过所述预设阈值的情况下,将所述坏核进行隔离,并启动所述第二系统和所述其他从处理单元。
6.根据权利要求5所述的方法,其特征在于,
所述禁止所述第二系统和所述其他从处理单元启动,并停止所述第一系统和所述主处理单元运行之后,所述方法还包括:
将告警信息发送给基板管理控制器,以指示所述基板管理控制器将所述告警信息存储到控制器日志中,其中,所述告警信息包括:所述坏核的数量,所述坏核的编号信息;所述控制器日志用于第一对象查看所述告警信息。
7.根据权利要求5所述的方法,其特征在于,
所述将所述坏核进行隔离,并启动所述第二系统和所述其他从处理单元之后,所述方法还包括:
将所述坏核的编号信息显示在第一页面,以及将所述编号信息通过所述第一系统的管理系统发送给所述第二系统,以提示第一对象所述中央处理器中存在坏核。
8.一种系统启动装置,其特征在于,包括:
确定模块,用于在检测到第一系统启动的情况下,确定所述第一系统是否为冷启动,其中,所述冷启动用于指示所述第一系统为上电之后第一次启动;
检测模块,用于在确定所述第一系统为冷启动的情况下,通过内存自检算法对中央处理器进行检测,以确定所述中央处理器中是否存在坏核,其中,所述坏核用于指示所述中央处理器中损坏的从处理单元,所述第一系统与所述中央处理器中的主处理单元同时启动、且所述第一系统用于控制所述主处理单元;
启动模块,用于在所述中央处理器中存在坏核的情况下,将所述中央处理器中的坏核进行隔离,并启动第二系统和所述中央处理器中的其他从处理单元,其中,所述第二系统用于控制所述主处理单元和所述其他从处理单元,所述其他从处理单元为所述中央处理器中所述坏核之外的从处理单元。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至7任一项中所述的方法的步骤。
10.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现所述权利要求1至7任一项中所述的方法的步骤。
CN202311459133.0A 2023-11-03 2023-11-03 系统启动方法及装置、存储介质及电子装置 Pending CN117435255A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311459133.0A CN117435255A (zh) 2023-11-03 2023-11-03 系统启动方法及装置、存储介质及电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311459133.0A CN117435255A (zh) 2023-11-03 2023-11-03 系统启动方法及装置、存储介质及电子装置

Publications (1)

Publication Number Publication Date
CN117435255A true CN117435255A (zh) 2024-01-23

Family

ID=89545870

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311459133.0A Pending CN117435255A (zh) 2023-11-03 2023-11-03 系统启动方法及装置、存储介质及电子装置

Country Status (1)

Country Link
CN (1) CN117435255A (zh)

Similar Documents

Publication Publication Date Title
CN109670319B (zh) 一种服务器flash安全管理方法及其系统
WO2018095107A1 (zh) 一种bios程序的异常处理方法及装置
CN109670349B (zh) 可信计算机的硬件架构及计算机的可信启动方法
WO2023115999A1 (zh) 设备状态监控方法、装置、设备及计算机可读存储介质
CN110445638B (zh) 一种交换机系统故障保护方法及装置
CN103257922B (zh) 一种快速测试bios与os接口代码可靠性的方法
CN112286709A (zh) 一种服务器硬件故障的诊断方法、诊断装置及诊断设备
CN114116280A (zh) 交互式bmc自恢复方法、系统、终端及存储介质
CN112035285A (zh) 基于高通平台的硬件看门狗电路系统及其监控方法
CN113672306B (zh) 服务器组件自检异常恢复方法、装置、系统及介质
US20090049336A1 (en) Processor controller, processor control method, storage medium, and external controller
CN106909382B (zh) 输出不同类型系统启动信息的方法及装置
CN113608930A (zh) 系统芯片和电子设备
CN117499412A (zh) 一种基于高可用链路的集群优化处理方法及其相关设备
CN117453036A (zh) 调整服务器中的设备的功耗的方法、系统及装置
CN117435255A (zh) 系统启动方法及装置、存储介质及电子装置
CN114461142B (zh) 一种读写Flash数据的方法、系统、装置及介质
JP2021086528A (ja) 情報処理装置、管理プログラム、管理方法、および、情報処理システム
CN117215859B (zh) 主备bios自动切换方法、自动切换装置和计算机
US20240159812A1 (en) Method for monitoring in a distributed system
CN114328044B (zh) 一种AIC+box拓扑的测试方法、装置和系统
JP7207595B2 (ja) 情報処理装置、管理プログラム、管理方法、および、情報処理システム
CN115454744A (zh) 测试控制方法、系统、装置、计算机设备和存储介质
CN115756648A (zh) 一种双基板管理控制器芯片的主动恢复方法及终端
CN117687821A (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