CN115129520A - 计算机***、计算机服务器及其启动方法 - Google Patents
计算机***、计算机服务器及其启动方法 Download PDFInfo
- Publication number
- CN115129520A CN115129520A CN202110806569.7A CN202110806569A CN115129520A CN 115129520 A CN115129520 A CN 115129520A CN 202110806569 A CN202110806569 A CN 202110806569A CN 115129520 A CN115129520 A CN 115129520A
- Authority
- CN
- China
- Prior art keywords
- bios
- routine
- hardware component
- computer system
- management controller
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0766—Error or fault reporting or storing
- G06F11/0787—Storage of error reports, e.g. persistent data storage, storage using memory protection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1417—Boot up procedures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2051—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant in regular structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/079—Root cause analysis, i.e. error or fault diagnosis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0766—Error or fault reporting or storing
- G06F11/0772—Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Debugging And Monitoring (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
Abstract
一种计算机***、计算机服务器及其启动方法方法,用于调整设定,以使重新启动在有硬件部件故障时仍得以进行。该***包括管理控制器,存储***错误记录。该计算机***包括硬件部件,与管理控制器通信。一种基本输入/输出***(BIOS),包括启动例程,当所有硬件部件皆可运作时成功完成。该启动例程根据***错误记录决定其中一硬件部件的错误。该例程关闭该硬件部件。该例程随后完成开机自我检测例程。
Description
技术领域
总体而言,本公开涉及例程(routines),用以增进计算机***的运作可靠度。具体而言,本公开的各态样涉及一例程,在启动(boot up)时关闭故障的部件而非关闭计算机***,以供故障排除(troubleshooting)之用。
背景技术
服务器(server)在高需求应用中被大量使用,例如基于网络的***(network-based system)或数据中心(data center)。云端运算(cloud computing)应用的出现,增加了对数据中心的需求。数据中心具有大量服务器,存储数据并运行应用程序,由远端连线的计算机装置使用者存取。典型的数据中心具有实体机架(rack)结构,伴随电源及通信连接。每一机架可固定多个运算服务器及存储服务器。一般而言,每一服务器包括硬件部件,例如处理器、存储器装置、网络接口卡、电源供应器、及其他专用硬件。一般而言,每一服务器包括基板管理控制器(BMC),管理该服务器的运作,并将运作数据通信至一中央管理站,该中央管理站管理该机架上的服务器。该BMC使该服务器的中央处理单元(CPU)毋须监控服务器运作。如同所有计算机***,服务器具有基本输入/输出***(BIOS),一般而言为一快闪存储器(Flash)芯片。在服务器启动前BIOS被执行,以测试该服务器各部件的基本输入及输出。
当计算机***中的存储器、CPU、周边装置或其他部件发生错误时,该***可能当机(crash)。在一次当机后,此一错误问题必须被分析,以决定可能的损毁或故障部件,进而使该损毁部件得以被替换。此一程序对计算机***操作员而言通常耗时而枯燥。例如,一计算机***可能因其CPU的灾难性错误事件(CATERR Event)而意外当机。若该故障CPU仍留存于该计算机***中,则该计算机***在随后的开机尝试中将无法开机。因此,该计算机***无法正常启动。根据已知技术,技术人员会将该计算机***关机,进行除错(debug)程序,并在数据中心现场(on-site)替换该故障CPU。然而,此程序将导致代价高昂的停机时间(downtime),因该服务器在此时段内无法运作。
另一种解决某些灾难性错误的方法,为提供一更新至BIOS,以促进除错程序。在此范例中,技术人员会将该计算机***关机,并使用一支持BMC更新一除错BIOS,以供除错之用。在此情况下,若该BMC不支持BIOS更新,则该计算机***仍无法启动至操作***(OS)。更新BIOS以供除错功能的用的唯一方法,为以一除错BIOS芯片替换现用BIOS芯片。此技术对远端解决方案而言并不合适,例如数据中心所需者,因技术人员必须在现场进行BIOS芯片的替换。即使此一解决方案可行,其亦不便且耗时。
图1为一流程图,显示计算机***的一次已知关机中被启动的程序,使技术人员得以对该计算机***进行故障排除。此程序在硬件部件(例如CPU、存储器、或周边装置)发生错误时触发(步骤10)。在开机自我检测(POST)例程中,该计算机***检测该错误并将该计算机***关机(步骤12)。技术人员接着必须对该错误的可能原因进行分析(步骤14)。技术人员接着藉由修复或替换该可能故障部件,处理该可能故障部件(步骤16)。重复执行前述程序,尝试对该***进行除错(步骤18)。当该可能故障部件修复后,故障排除程序完成(步骤20)。接着,该***可成功重新启动(步骤22)。然而,此程序由***关机阶段12至故障排除阶段20十分耗时,且会导致该服务器的停机时间。
因此,亟需一BIOS,用于计算机***,藉由自动关闭阻碍开机的部件,使***得以运作。更亟需一例程,其可进行除错程序时毋须更新BIOS。
发明内容
“实施例”一词及相似的词汇,乃意图广泛指称本公开及权利要求的所有标的。包含此等词汇的陈述,应被理解为并非用以限定本说明书中所述的标的、或用以限定权利要求的意义或范围。本公开所涵盖的各实施例乃由权利要求定义,而非以本节内容定义。本节内容乃本公开各态样的总体概述,并介绍部分概念,该等概念将在“实施方式”一节中进一步叙述。本节内容并非意图识别权利要求所请标的的关键或必要特征;亦非意图单独用于决定权利要求所请标的的范围。对该标的的理解,应参照本公开说明书全文中的适当部分、任何或全部附图及每一权利要求进行。
公开的一范例为一计算机***,其可避免因故障部件而导致的当机。该***包括一管理控制器,存储一***错误记录。该***包括多个硬件部件,每一部件皆与该管理控制器通信。该***包括基本输入/输出***(BIOS),该BIOS包括一启动例程,被配置为当所有该等硬件部件皆可运作时成功完成。该BIOS可运作以决定该***错误记录中自该等硬件部件之一记录的错误。该BIOS关闭对应于该记录错误的硬件部件。该BIOS调整该启动例程,以避开该已关闭硬件部件。该BIOS接着完成一开机自我检测例程。
该范例计算机***的一种进一步实施为一实施例,其中该管理控制器为基板管理控制器。另一实施为其中该计算机***为服务器。另一实施为其中该等硬件部件包括至少下列之一:一处理器、一存储器装置、一存储装置、及一扩展卡。另一实施为其中该BIOS包括一非易失性随机存取存储器(NVRAM),被配置为存储一指令,用以关闭该硬件部件。另一实施为其中该管理控制器于该硬件部件被关闭之前存储该BIOS的一镜像,该BIOS包括该等硬件部件。另一实施为其中该管理控制器被配置为检测一机壳开启事件。该管理控制器被配置为当该机壳开启事件被检测时,载入该已存储BIOS镜像。另一实施为其中该已存储BIOS镜像被使用于该启动例程。另一实施为其中该管理控制器传送一信号至一通用输入/输出(GPIO)引脚,以启用该BIOS关闭该硬件部件。
公开的另一范例为一种启动计算机***的方法,该计算机***具有多个硬件部件。使用一基本输入/输出***(BIOS)的一启动例程,分析一管理控制器的一***错误记录,以决定自该等硬件部件之一记录的一错误。对应于该记录错误的硬件部件被关闭。该启动例程被调整,以避开该已关闭硬件部件。一开机自我检测例程被完成。
该范例方法的另一实施为其中该管理控制器为基板管理控制器,且该计算机***为服务器。另一实施为其中该等硬件部件包括至少下列之一:一处理器、一存储器装置、一存储装置、及一扩展卡。另一实施为其中该BIOS包括一非易失性随机存取存储器(NVRAM),被配置为存储一指令,用以关闭该硬件部件。另一实施为其中该方法还包括于该硬件部件被关闭之前存储该BIOS的一镜像(image),该BIOS包括该等硬件部件。另一实施为其中该方法包括检测一机壳开启事件。当该机壳开启事件被检测时,该已存储BIOS镜像被载入。另一实施为其中该已存储BIOS镜像被使用于该启动例程。另一实施为其中该管理控制器传送一信号至一通用输入/输出(GPIO)引脚,以启用该BIOS关闭该硬件部件。
公开的另一范例为一计算机服务器,具有一处理器、一系列双列直插式存储器模块、及一扩展卡。一基板管理控制器耦接至该处理器、该双列直插式存储器模块、及该扩展卡。该基板管理控制器存储一***错误记录,该***错误记录具有一错误,对该处理器、存储器模块或扩展卡中至少之一记录。一基本输入/输出***(BIOS)包括一启动例程,该启动例程当所有该等硬件部件皆可运作时成功完成。该BIOS决定该***错误记录中自该处理器、该双列直插式存储器模块及该扩展卡中之一记录的错误。该BIOS关闭对应于该记录错误的处理器、双列直插式存储器模块或扩展卡。该BIOS调整该启动例程,以避开该已关闭处理器、双列直插式存储器模块或扩展卡。该BIOS完成一开机自我检测例程。
本节上述内容并非意图表示本公开的每一实施例或每一态样。反之,本节上述内容仅针对部分本说明书中所述的新颖态样及特征提供范例。上述特征及优点、及本公开的其他特征及优点,在阅读下文用以实施本发明的代表实施例及模式的详述、并搭配附随之图式及附录的权利要求一同阅读后,乃为明白易懂。
附图说明
下文的范例实施例叙述,在参照附随之附图一同阅读后,可达对本公开较佳的理解。其中:
图1为一流程图,显示一现有技术的例程,用于关闭计算机***,以供故障排除的用;
图2为一方块图,显示一范例计算机***,具有一例程,允许关闭部件而非关闭***;
图3为一流程图,显示进行错误分析时,用以维持图2所示的范例计算机***运作的一般程序;
图4为一流程图,显示启动例程程序,用以在***当机后关闭图2所示的计算机***中的部件;
图5为一流程图,显示关闭部件的程序,使POST例程得以成功执行;以及
图6为一流程图,显示重新启动计算机***的程序,使关闭部件或替换部件得以进行。
本公开可具有多种改良及替换形式。部分代表实施例已作为范例显示在附图中,并将在本说明书中详述。然而,应注意,本发明并非意图限制于已公开的特定形式。反之,本公开乃意图涵盖落于本发明精神及范围内的所有改良物、等效物及替换物,该精神及范围如附权利要求所定义。
【符号说明】
10,12,14,16,18,20,22:步骤
100:计算机***
110,112:中央处理单元(CPU)
114:双列直插式存储器模块(DIMM)
116:平台路径控制器(PCH)
120:串行先进技术附件(SATA)装置
122:开放运算计划(OCP)装置
124:通用串行总线(USB)装置
126:高速外设组件互连标准(PCIe)装置
130:基板管理控制器(BMC)
132:BMC存储器装置
134:BIOS存储器装置
136:***事件记录(SEL)
138:传感器数据记录
140:BMC现场替换单元(FRU)信息记录
150:BIOS镜像
152:启动区块
154:主要区块
156:非易失性随机存取存储器(NVRAM)区块
158:管理引擎(ME)区块
160:通道
162:通用输入/输出(GPIO)引脚
310,312,314,316:步骤
410,412,414,416:步骤
510-532:步骤
610-646:步骤
具体实施方式
本发明可以多种不同形式实施。代表实施例显示在附图中,并将在本说明书中详述。本公开乃其原理的范例或图示,而非意图将本公开的宽广面向限制于所示的实施例中。就此而言,于例如“发明摘要”、“发明内容”及“实施方式”等节中公开、但未在权利要求中明确陈述的元件及限制,不应以单独或集体、隐含、推论或其他形式被并入权利要求中。为本节叙述方便起见,除非特别声明,否则单数词汇皆包括复数词汇,反之亦然;“包括”一词意指“包括而不限于”。此外,表近似的词汇,例如“大约”、“近乎”、“基本上”、“近于”等,在本说明书中可意指例如“于”、“接近”或“近似于”、或“在3-5%误差范围内”、或“在容许的制造误差范围内”、或上述范围的任何逻辑组合。
本公开涉及一例程,该例程允许计算机***成功开机,即使一个或多个硬件部件并未正常运作。在启动时,当该范例例程***在存储器装置、PCIe装置、或CPU遭遇错误时,该计算机***将避免当机。该例程经由该计算机***的远端控制,关闭该故障硬件部件。此一配置使该计算机***(例如远端服务器)得以自动且成功开机,而不需要数据中心操作员的介入。
图2为一方块图,显示计算机***100的部件,该计算机***100运行一例程,该例程允许计算机***100开机,即使计算机***100具有故障的(faulty)硬件部件。在此范例中,计算机***100为服务器,然而任何合适的计算机装置皆可并入本说明书中所公开的原理。计算机***100具有二个中央处理单元(CPU)110及112。该二CPU 110及112可存取双列直插式存储器模块(DIMM)114。尽管图中仅显示二个CPU,然而计算机***100也可能支持额外的CPU。专用功能可由专用处理器进行,例如图形处理单元(GPU)或现场可编程逻辑门阵列(FPGA),安装在计算机***100的主机板或扩展卡上。
平台路径控制器(PCH)116促成CPU 110及112与其他硬件部件之间的通信,例如串行先进技术附件(SATA)装置120、开放运算计划(OCP)装置122、及通用串行总线(USB)装置124。SATA装置120可包括硬盘(HDD)。或者,其他记忆存储装置也可使用,例如固态硬盘(SSD)。其他硬件部件,例如高速外设组件互连标准(PCIe)装置126,可由CPU 110或112经由扩展插槽(未图示)直接存取。额外的PCIe装置126可包括网络接口卡(NIC)、磁盘阵列(RAID)卡、现场可编程逻辑门阵列(FPGA)卡、及处理器卡,例如图形处理单元(GPU)卡。
计算机***100的硬件部件在接受计算机***100的BIOS中的启动例程的检查时必须为正常运作,方能成功启动***。因此,该BIOS初始化并训练存储器装置及PCIe装置126。该BIOS亦分配所需的资源,供PCIe装置126使用。当机可能发生在该BIOS对每一该等硬件部件的初始化、训练或资源分配运作中。或者,致命(fatal)且无法修正的错误可能直接导致***当机。额外的硬件部件也可能正常运作,以供该BIOS成功启动计算机***100。
基板管理控制器(BMC)130管理计算机***100的运作,例如电源管理及温度管理。BMC 130可存取一专用BMC存储器装置132,该BMC存储器装置132可为快闪存储器装置。分离的BIOS存储器装置134为非易失性存储器,例如快闪存储器BIOS固件。存储器装置134可为一BIOS芯片。存储器装置132及134皆可经由PCH 116存取。
在此范例中,BMC存储器装置132存储***事件记录(SEL)136、传感器数据记录138、及BMC现场替换单元(FRU)信息记录140。BIOS存储器装置134可包括BIOS镜像150、启动区块152、主要区块154、非易失性随机存取存储器(NVRAM)区块156用于存储BIOS配置数据、及管理引擎(ME)区块158。BIOS存储器装置134中的该等区块促成计算机***100的启动例程。
在此范例中,BMC 130经由不同通道160与PCH 116通信,该等通道可包括***管理总线(SMbus)、低引脚数总线(LPC)、PCIe及USB线。PCH 116包括一系列通用输入/输出(GPIO)引脚162,用于与BMC 130及BIOS存储器装置134通信。BMC 130包括固件,自计算机***100中的硬件部件接收错误讯息。该等错误讯息被存储在***错误记录136中。
BIOS 134包括一范例例程,决定故障的硬件部件,并关闭该故障硬件部件。因此,该范例例程允许计算机***100运作,直到该故障硬件部件被替换或修复。当一硬件部件故障时,BMC 130会取得存储在***错误记录(SEL)136中关联于该故障部件的信息。在随后的开机中,SEL 136具有该故障硬件部件的信息,且BMC 130会传送关于该故障部件的信息至BIOS 134,以关闭该故障硬件部件。
图3为一流程图,显示一般程序,其使图2中的计算机***100即使在硬件部件故障时仍保持运作。该等硬件部件之一发生错误(步骤310)。该范例例程接着关闭该故障硬件部件(步骤312)。计算机***100接着可启动(步骤314)。使用者接着得知该硬件部件故障,使该故障硬件部件得以在一未来时间被修复或替换,且计算机***100仍然运作,直到进行该修复或替换(步骤316)。
图4为一流程图,显示范例例程,其允许计算机***100完成开机自我测试(POST)例程,即使硬件部件(例如SATA装置、PCIe装置、DIMM或CPU)故障。首先开启电源(步骤410)。该故障部件导致计算机***100在执行该POST例程时当机(步骤412)。计算机***100接着可重新启动(步骤410)。自***当机重新启动时,该范例例程关闭该故障硬件部件(步骤414)。由于该故障硬件部件被关闭,该POST例程可成功完成(步骤416)而不需要技术人员实体更换该损坏部件。
该范例例程使计算机***100得以复原,藉由关闭故障硬件部件,例如损坏的CPU、存储器或PCIe附加卡,使计算机***100正确启动。此一情形使计算机***100随后得以成功启动,并消除了当前对实体移除或替换该故障硬件部件的需求。该范例例程具有三个部分:分类故障硬件部件、藉由关闭故障硬件部件复原该计算机***、及BMC 130通知BIOS134防止对任何故障硬件部件的存取。BIOS 134接着可成功将计算机***100开机,并完成该POST例程。
对该故障硬件部件的检测,有赖于BMC 130管理的***错误记录136的分类。例如,处理器损坏通常导致处理器内部错误(IERR)或灾难性错误(CATERR)被记录,而存储器损坏导致无法修正的错误、训练失败或机器检查架构(MCA)错误被记录。
计算机***100在随后的开机例程中的复原,是经由关闭启动时检测到的每一故障硬件部件而达成。不同的硬件部件需要不同的关闭程序,每一种硬件部件有其专用程序。例如,若CPU的内核故障,则BIOS 134传送一16进位字的内核禁用位镜像(core disablebitmap),以关闭该CPU中的该(等)故障内核。此一位镜像可被提供,其中每一位代表CPU中的一内核。例如,若一CPU具有八个内核,则该八个内核的位镜像会指示该等内核中何者故障。如下文所述,BMC 130传送一OEM(原始设备制造商)IPMI(智能型平台管理接口)指令至BIOS 134,以关闭该位镜像中识别的故障内核。因此,在具有多个CPU的***中(其中每一CPU具有多个内核),每一CPU的对应位镜像可被提供,且个别的故障内核可被识别。藉由提供插槽及通道数据,以致能一16进位字位遮罩(bitmask)中代表故障存储器装置的一位,可关闭该存储器装置。例如,一CPU可具有多个通道。每一通道使该CPU得以存取多个DIMM。个别的DIMM具有一系列层级(ranks)。该位遮罩可被设定以通道及层级指示该故障存储器装置。如下文所述,BMC 130传送一OEM IPMI指令至BIOS 134,以关闭该位遮罩中识别的故障存储器装置。扩展卡(例如扩展插槽126中安装者)可藉由关闭PCIe根端口(root port)而关闭。
BMC 130基于SEL 136中的信息,过滤出该等故障硬件部件。BMC 130可经由GPIO引脚162传送一信号,以通知BIOS 134避免使用该故障硬件部件,并关闭该故障硬件部件。
图5为一流程图500,显示范例启动例程,其可藉由图2中的BMC 130、PCH 116及BIOS存储器装置134之间的互动,识别并避开故障硬件部件。图2中的计算机***100被开机(步骤510)。该例程遭遇计算机***100无法正确开机的情况,例如BIOS运作时有硬件部件故障、或发生灾难性错误(步骤512)。该例程随后检查***事件记录136是否指示来自一故障硬件部件的错误(步骤514)。该例程藉由已记录的错误,决定***事件记录136是否指示至少一特定故障硬件部件(步骤516)。例如,该等已记录错误可包括CPU的IERR/CATERR、存储器装置的MCE错误或存储器训练失败、或PCIe装置的PCIe资源耗尽(out-of-resource)错误。
若发现损坏部件(步骤516),则BMC 130存储当前BIOS设定在构成BMC存储器装置的BMC自存(self-storage)中(步骤518)。随后BMC 130使用OEM IPMI远端指令,传送关于损坏部件的数据至BIOS 134(步骤520)。该已存储远端指令包括对该故障硬件部件(例如CPU、DIMM或附加卡)而言合适的数据。BMC 130亦设定GPIO引脚162,使其传送一有效信号(assert signal)至PCH 116(步骤522)。BIOS存储器装置134自PCH 116检测该GPIO有效信号(步骤524)。BIOS存储器装置134随后自BMC 130写入该故障硬件部件的数据至BIOS存储器装置134的NVRAM区块156(步骤526)。该例程随后开始开机周期,包括具有已调整的BIOS的POST例程,该已调整BIOS基于存储在NVRAM区块156中的数据关闭该故障硬件部件。该例程随后检查计算机***100是否可在该开机周期后正确开机(步骤528)。若开机例程成功,则该例程到达POST例程的结束(步骤530)。若开机未能正确进行(步骤528)或BMC130无法找出特定故障硬件部件(步骤516),则***将认定当机原因为其他关联于固件、主机板或未知的问题(步骤532)。
当技术人员开启计算机***100的机壳,并替换故障硬件部件时,BMC 130可使用SEL 136中的机壳开启事件,对计算机***100进行检查。在此范例中,计算机***100将由关闭NVRAM 156区块中的故障硬件部件的已调整BIOS设定,切换至原先存储的BIOS设定,以正常重启计算机***100。
范例***100亦具有重试机制。因此,若该范例例程关闭某些故障硬件部件,则该重试机制将尝试开机数次。若重试失败数次,则计算机***100将认定当机原因为其他关联于固件、主机板或未知的问题。
图6为一例程600的范例,其为另一范例例程,允许计算机***100进行启动程序,该启动程序负责处理机壳开启的情形(此时技术人员替换部件)以及重试机制。图2中的计算机***100首先被开机(步骤610)。该例程遭遇计算机***100无法正确开机并当机的情况(步骤612)。当当机发生时,发生故障弹性启动2(FRB-2)逾时,且当前BIOS设定被存储在BMC 130。在此范例中,当前BIOS设定为使用者定义的预设BIOS设定。一般而言,BIOS的已调整选项存储于在NVRAM中。当计算机***100进行交流电(AC)或直流电(DC)开机周期时,BIOS设定选单的选项仍被存储。当除错程序,例如对新的BIOS芯片进行的刷机(flashing)发生时,BIOS设定会回复(roll back)至初始设定,使用者必须提供先前调整的BIOS设定选项。在此范例中,该等已调整BIOS设定选项被存储为使用者定义的预设BIOS设定。
在重新启动时(步骤610),该例程分析***事件记录136,以决定来自故障硬件部件的任何错误(步骤614)。该例程决定信息记录136是否指示至少一故障硬件部件(步骤616)。BMC 130随后决定计算机***100的机壳是否被开启(步骤618)。随后,开启的机壳指示技术人员已替换该故障硬件部件。若机壳已被开启(步骤618),则BMC 130关闭GPIO引脚162(步骤620)。BMC 130传送一“载入使用者预设BIOS设定”指令至BIOS 134(步骤622)。BIOS存储器装置134会使用来自BMC 130的该已载入使用者预设BIOS设定进行开机周期例程(步骤624)。以此方式,该使用者预设BIOS设定被存储及载入,避免了先前***中使用者设定BIOS的需求。因此,若使用者改变了大量的BIOS设定选项,则存储该使用者预设BIOS设定可避免数据中心内的冗长程序。
该例程随后决定计算机***100是否可开机(步骤626)。若计算机***100成功开机,则POST例程结束(步骤628)。随后操作***可运作(步骤630)。若计算机***100无法开机,则该例程回到开机程序(步骤610)。
若机壳未被开启,则BMC 130传送一OEM IPMI远端指令,以传送该对应故障硬件部件的数据(步骤632)。BMC 130存储该故障硬件部件的数据在BMC存储器装置134中(步骤634)。BMC 130亦设定GPIO输出之一传送一有效信号(步骤636)。当该GPIO有效信号被接收时,BIOS存储器装置134自BMC 130读取该故障硬件部件的数据(步骤638)。该例程随后开始开机周期,包括具有已调整BIOS的POST例程,其中该已调整BIOS基于并入该故障硬件部件数据的已调整设定选项,关闭该故障硬件部件。该例程随后检查计算机***100是否可在该开机周期后正确开机(步骤640)。若开机例程成功,则该例程到达POST例程的结束(步骤630)。
若开机未能正确进行(步骤640),则计算机***100会重试数次,以试图进行一次正确的开机周期(步骤642)。若该等开机周期中有一次成功,则BMC 130关闭GPIO引脚162,并进行开机周期例程(步骤644)。若该等重试未能造成一次成功开机,则计算机***100将认定当机原因为其他关联于固件、主机板或未知的问题(步骤646)。
图5及图6中的流程图代表范例机器可读指令,用以使POST例程得以成功完成,即使图2中的计算机***100具有故障硬件部件。在此范例中,该机器可读指令包括一算法,供下列装置执行:(a)一处理器;(b)一控制器:和/或(c)一个或多个其他合适的处理装置。该算法可以存储在有形介质(例如快闪存储器、CD-ROM、软盘、DVD或其他记忆装置)的软件实施。然而,本领域技术人员可轻易认识到,该算法整体和/或部分也可以处理器以外的装置执行,和/或以固件或专用硬件以已知方式实施(例如其可以特定应用集成电路(ASIC)、可编程逻辑装置(PLD)、现场可编程逻辑装置(FPLD)、现场可编程逻辑门阵列(FPGA)、离散逻辑门等实施)。例如,任何或所有该等接口的部件可以软件、硬件和/或固件实施。又,部分或全部由该等流程图代表的机器可读指令可以人工实施。更进一步地,尽管该范例算法乃参照图5及图6中的流程图而叙述,然而本领域技术人员可轻易认识到,多种其他实施该等范例机器可读指令的方法也可使用。例如,可改变各方块的执行顺序,和/或部分所述方块可被改变、除去或合并。
上文公开的原理可避免立即替换硬件部件的冗长程序,以避免产生计算机***的停机时间。该范例例程使计算机***得以运作而不减低效能,并提供技术人员远端除错信息。
本专利申请文件中所使用的“部件”、“模块”、“***”或相似词汇,一般而言指称一计算机相关实体,其可能为硬件(例如电路)、硬件及软件的组合、软件、或关联于一运作机器的实体,该运作机器具有一种或多种特定功能。例如,一部件可能但不限定为运作于一处理器(例如数字信号处理器)上的一程序、一处理器、一物件、一执行文件、一线程、一程序、和/或一计算机。举例而言,在一控制器上运行的一应用程序及该控制器皆可为一部件。一个或多个部件可能位于一程序和/或一线程内,且一部件可能位于一计算机内和/或分布在二个或更多计算机之间。更进一步地,一“装置”可以特定设计的硬件、特定化的通用硬件(经由在该硬件上执行软件,使该硬件得以进行特定功能)、存储在计算机可读介质上的软件、或上述各种实体的组合的形式实施。
尽管上文叙述了本发明的多个实施例,然而应注意,该等实施例的呈现仅作为范例之用,而非限制。尽管本发明的一种或多种实施已被图式及叙述,然而在本领域技术人员当可在阅读并理解本说明书及附随之图式后,知悉等效的改造或改良。此外,尽管本发明的一特定特征可能仅公开于数种实施中之一,然而若对于任何给定或特定的应用为所欲或有利,则该特征也可与一种或多种其他实施中的其他特征合并。因此,本发明的广度及范围不应限定于任何前述实施例之中。反之,本发明的范围应依据下列权利要求及其等效叙述而定义。
本说明书中使用的词汇,仅是为了叙述特定实施例,而非意图限制本发明。除非文中另有指称,否则本说明书中使用的单数词汇“一”、“一个”及“该”亦意图包括复数词汇。此外,在“实施方式”和/或权利要求中使用的“包括”、“包含”、“具有”、“有”等词汇,乃意图指称开放式(inclusive)意涵,与“含有”(comprising)一词相若。
除非另有定义,否则本说明书中使用的所有词汇(包括技术及科学词汇)的意义皆与本发明所属领域具通常技术的人所普遍知悉的意义相同。此外,各词汇,例如在常用辞典中有定义者,除非在本说明书中有明确定义,否则其意义应解读为与其在相关技术脉络中的意义一致者,而不应以理想化或过度正式的方式解读。
Claims (9)
1.一种计算机***,该***可避免因故障部件而导致的关机,该***包括:
管理控制器,存储***错误记录;
多个硬件部件,每一硬件部件与该管理控制器通信;
基本输入/输出***(BIOS),包括启动例程,被配置为当所有所述硬件部件皆可运作时成功完成,该BIOS可运作以:
决定该***错误记录中记录自所述硬件部件的错误;
关闭对应于该记录错误的该硬件部件;
调整该启动例程,以避开该已关闭硬件部件;以及
完成开机自我检测例程。
2.如权利要求1所述的***,其中该BIOS包括非易失性随机存取存储器(NVRAM),被配置为存储指令,用以关闭该硬件部件。
3.如权利要求1所述的***,其中:
该管理控制器被配置为在该硬件部件被关闭之前存储该BIOS的镜像,该BIOS包括所述硬件部件的设定;
该管理控制器被配置为检测机壳开启事件;以及
该管理控制器被配置为当该机壳开启事件被检测时,载入该已存储BIOS镜像;
其中该已存储BIOS镜像被使用于该启动例程。
4.如权利要求1所述的***,其中该管理控制器传送信号至通用输入/输出(GPIO)引脚,以启用该BIOS关闭该硬件部件。
5.一种启动计算机***的方法,该计算机***具有多个硬件部件,该方法包括:
使用基本输入/输出***(BIOS)的启动例程,分析管理控制器的***错误记录,以决定记录自所述硬件部件的错误;
关闭对应于该记录错误的该硬件部件;
调整该启动例程,以避开该已关闭硬件部件;以及
完成开机自我检测例程。
6.如权利要求5所述的方法,其中该BIOS包括非易失性随机存取存储器(NVRAM),被配置为存储指令,用以关闭该硬件部件。
7.如权利要求5所述的方法,还包括:
在关闭该硬件部件之前存储该BIOS的镜像,该BIOS包括所述硬件部件;
检测机壳开启事件;以及
当该机壳开启事件被检测时,载入该已存储BIOS镜像;
其中该已存储BIOS镜像被使用于该启动例程。
8.如权利要求5所述的方法,其中该管理控制器传送信号至通用输入/输出(GPIO)引脚,以启用该BIOS关闭该硬件部件。
9.一种计算机服务器,包括:
处理器;
系列双列直插式存储器模块;
扩展卡;
基板管理控制器,耦接至该处理器、所述双列直插式存储器模块、及该扩展卡,该基板管理控制器被配置为存储***错误记录,该***错误记录具有错误,对该处理器、存储器模块或扩展卡中至少之一记录;
基本输入/输出***(BIOS),包括启动例程,该启动例程当所有所述硬件部件皆可运作时成功完成,该BIOS可运作以:
决定该***错误记录中记录自该处理器、该双列直插式存储器模块及该扩展卡中的错误;
关闭对应于该记录错误的该处理器、双列直插式存储器模块或扩展卡;
调整该启动例程,以避开该已关闭处理器、双列直插式存储器模块或扩展卡;以及
完成开机自我检测例程。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/214,614 US11263083B1 (en) | 2021-03-26 | 2021-03-26 | Method and apparatus for selective boot-up in computing devices |
US17/214,614 | 2021-03-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115129520A true CN115129520A (zh) | 2022-09-30 |
Family
ID=80442500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110806569.7A Pending CN115129520A (zh) | 2021-03-26 | 2021-07-16 | 计算机***、计算机服务器及其启动方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11263083B1 (zh) |
CN (1) | CN115129520A (zh) |
TW (1) | TWI779682B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117950738A (zh) * | 2024-03-25 | 2024-04-30 | 深圳市磐鼎科技有限公司 | 显卡的自动控制方法、装置、设备及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230102099A1 (en) * | 2021-09-22 | 2023-03-30 | Texas Instruments Incorporated | Techniques for peripheral utilization metrics collection and reporting |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI446151B (zh) * | 2011-06-01 | 2014-07-21 | Wistron Corp | 電腦系統及其重新啟動方法 |
US9954727B2 (en) * | 2015-03-06 | 2018-04-24 | Quanta Computer Inc. | Automatic debug information collection |
US10127032B2 (en) * | 2015-11-05 | 2018-11-13 | Quanta Computer Inc. | System and method for unified firmware management |
US10541868B2 (en) * | 2017-02-24 | 2020-01-21 | Quanta Computer Inc. | System and method for automatically updating bios setup options |
US10806057B2 (en) * | 2017-08-09 | 2020-10-13 | Quanta Computer Inc. | Multi-node system-fan-control switch |
US10831606B2 (en) * | 2018-09-19 | 2020-11-10 | Hewlett Packard Enterprise Development Lp | Automatic diagnostic mode to determine potential cause of boot problem |
US11194589B2 (en) * | 2019-01-08 | 2021-12-07 | Dell Products L.P. | Information handling system adaptive component reset |
US11461178B2 (en) * | 2019-05-15 | 2022-10-04 | Dell Products L.P. | System and method to prevent endless machine check error of persistent memory devices |
US11513808B2 (en) * | 2019-06-28 | 2022-11-29 | Intel Corporation | Automatic switching and deployment of software or firmware based USB4 connection managers |
-
2021
- 2021-03-26 US US17/214,614 patent/US11263083B1/en active Active
- 2021-06-23 TW TW110122849A patent/TWI779682B/zh active
- 2021-07-16 CN CN202110806569.7A patent/CN115129520A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117950738A (zh) * | 2024-03-25 | 2024-04-30 | 深圳市磐鼎科技有限公司 | 显卡的自动控制方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
TW202238383A (zh) | 2022-10-01 |
US11263083B1 (en) | 2022-03-01 |
TWI779682B (zh) | 2022-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240012706A1 (en) | Method, system and apparatus for fault positioning in starting process of server | |
US7519866B2 (en) | Computer boot operation utilizing targeted boot diagnostics | |
WO2021169260A1 (zh) | 一种***板卡电源检测方法、装置、设备及存储介质 | |
US9218893B2 (en) | Memory testing in a data processing system | |
US6564348B1 (en) | Method and apparatus for storing and using chipset built-in self-test signatures | |
CN110928743B (zh) | 一种计算***、自动诊断方法及存储有其指令的介质 | |
CN110750396B (zh) | 一种服务器操作***兼容性测试方法、装置及存储介质 | |
US10691565B2 (en) | Storage control device and storage control method | |
US20030217256A1 (en) | Method and apparatus for disabling defective components in a computer system | |
TWI779682B (zh) | 電腦系統、電腦伺服器及其啟動方法 | |
CN114968382A (zh) | 预防停机的方法、***及bios芯片 | |
US6725396B2 (en) | Identifying field replaceable units responsible for faults detected with processor timeouts utilizing IPL boot progress indicator status | |
CN113366576A (zh) | 用于存储器***上的功率损耗操作的保持自测试 | |
US9343181B2 (en) | Memory module errors | |
US20220413962A1 (en) | Detecting and recovering a corrupted non-volatile random-access memory | |
US11360839B1 (en) | Systems and methods for storing error data from a crash dump in a computer system | |
US11742054B2 (en) | Memory power fault resilience in information handling systems | |
TWI777259B (zh) | 開機方法 | |
CN115248627A (zh) | 存储有限状态机状态数据的方法、***及计算机程序产品 | |
TWI781452B (zh) | 監控及復原異質性元件的系統及方法 | |
US11620199B1 (en) | Method and system for detection of post routine deviation for a network device | |
TWI840907B (zh) | 偵測偏差的電腦系統及方法,及非暫態電腦可讀取媒體 | |
CN115686905A (zh) | 一种内存储器spd信息恢复方法、装置及计算设备 | |
CN117234771A (zh) | 故障内存定位方法、***、装置、计算机设备及存储介质 | |
CN114385247A (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 |