CN105204965A - 用于多节点环境中的动态节点修复的方法和装置 - Google Patents
用于多节点环境中的动态节点修复的方法和装置 Download PDFInfo
- Publication number
- CN105204965A CN105204965A CN201510404027.1A CN201510404027A CN105204965A CN 105204965 A CN105204965 A CN 105204965A CN 201510404027 A CN201510404027 A CN 201510404027A CN 105204965 A CN105204965 A CN 105204965A
- Authority
- CN
- China
- Prior art keywords
- node
- interface
- pch
- parts
- failure
- 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
Links
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/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/2023—Failover techniques
- G06F11/2033—Failover techniques switching over of hardware resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- 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/2002—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 interconnections or communication control functionality are redundant
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- 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/142—Reconfiguring to eliminate the error
- G06F11/1428—Reconfiguring to eliminate the error with loss of hardware functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/845—Systems in which the redundancy can be transformed in increased performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/85—Active fault masking without idle spares
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)
- Hardware Redundancy (AREA)
Abstract
用于多节点环境中的动态节点修复的方法和装置。多节点平台控制器中心(MN-PCH)被配置为通过使用专用接口和部件以及共享能力来支持多个节点。接口和部件可以被配置为由相应的节点使用,或者可以被配置为支持增强的恢复作为冗余的主和备用接口和部件。响应于检测到有故障或有故障的主接口或部件,MN-PCH自动地执行故障转移操作以利用备用接口或部件来替换主接口或部件。此外,故障转移操作对运行在平台节点上的操作系统是透明的。
Description
背景技术
数据中心的发展以及向着百亿亿级高性能计算的驱动创建了向着增加的节点密度的长期的平台趋势。需要将多个CPU(中央处理单元)节点容纳在公共的板、卡或甚至封装衬底中。为了实现平台成本、密度和功率效率,需要将更多的平台能力吸收到更少的部件中。当前,计算架构要求每CPU节点专用的平台控制器中心(PCH),这迫使在具有多个CPU或CPU联合体的共享板上的PCH的多个实例。
将现有的平台架构缩至密集规格会使得在每一个计算节点中大量功能的不必要的重复,并且会产生密集规格平台所特有的一些新的问题。对未来系统解决方案的高密度值的主张由每节点专用的PCH的需要影响。通过将PCH功能单片集成到CPU管芯中来消除PCH不是功率高效/面积高效的,并且也没有提供可扩展的解决方案。因此,存在对将降低或消除平台上的冗余并且满足密集平台的要求的改进的平台架构的需求。
一种增加规格密度的方法是采用多节点感知的平台控制器中心(MN-PCH)。在这种方案下,单个MN-PCH被配置为替换由常规的多节点共享的板架构下的多个PCH所提供的功能。较长期数据指示从传统的8插槽无胶合服务器或4个插槽服务器转移到2个插槽的具有更高RAS(可靠性、可用性和服务能力)的系统的基于关键任务的计算的值。这不会降低5-9’s可靠性标准,但是要求较新的系统架构不能遭受芯片组互连的故障。为了实现这种较可靠的系统,该系统架构需要确保当芯片组部件耦合到MN-PCH时支持这种使用。
附图说明
当结合附图时,通过参考以下具体实施方式,本发明的上述方面以及许多伴随的优势将变得更容易意识到,同时也会变得更好理解,其中,在各种视图中,类似的附图标记指代类似的部件,除非另做指定:
图1是包括被配置为支持没有冗余的4个节点的MN-PCH的示例性多节点平台架构的示意图;
图1a是包括被重新配置为支持使用冗余的主接口和部件以及备份接口和部件的两个节点的图1的MN-PCH的示例性多节点平台架构的示意图;
图2是示出了根据一个实施例的图1的MN-PCH的内部结构的示意图;
图2a是示出了在被重新配置为支持冗余的主和备份接口及部件之后的图2的MN-PCH的内部结构的示意图;
图3a、3b和3c共同地包括示出了根据一个实施例的用于响应于检测到接口和部件故障或有故障条件而实现自动节点修复的操作及逻辑的流程图;
图4是示出了根据一个实施例的采用被配置为支持动态节点修复的MN-PCH的多节点计算平台的系统架构400的示意图;以及
图4a是示出了根据一个实施例的对在其中处理器支持其DMI接口的动态修复的系统架构400进行扩充的示意图。
具体实施方式
本文描述了用于多节点环境中的动态节点修复的方法和装置的实施例。在以下描述中,阐述了大量具体细节以提供对本文公开并示出的实施例的充分理解。然而,相关领域的技术人员应当意识到,本发明可以在没有所述具体细节中的一个或多个,或者利用其他方法、部件、材料等的情况下实施。在其他实例中,没有示出或具体描述公知的结构、材料或操作,以避免使本发明的多个方面难以理解。
为了清楚,本文附图中的单独部件还可以通过其在附图中的标签而不是特定的附图标记来进行指代。另外,指代特定类型的部件的附图标记(与特定部件不同)可以使用后带表示“典型”的“(typ)”的附图标记示出。应当理解的是,这些部件的配置是可能存在但为了简洁及清楚而未在附图中示出的类似部件的典型配置,或者未用单独的附图标记进行标记的类似部件的典型配置。相反,“(typ)”不应被解释为表示该部件、元件等典型地用于其所公开的功能、实现、目的等。
图1示出了根据一个实施例的包括被配置为支持4个节点(节点1、节点2、节点3和节点4)的MN-PCH102的平台架构100。除了支持所示的4个节点之外,架构100通常可以扩展为支持N个节点,例如但不限于6个节点、8个节点等。在一个实施例中,MN-PCH102支持用于与其连接的每一个CPU联合体进行带内通信的DMI(直接媒体接口)链路,如由DMI链路104、105、106和107、以及相应的DMI接口104i、105i、106i和107i所描绘的。另外,当将信令聚集到平台的其余部分时,MN-PCH2支持用于每个节点进行带外通信的一组专用的信号。
通常,MN-PCH102被配置为支持与专用PCH提供给多个节点中每一个的功能相类似的功能,但是使用单个的集成PCH而不是独立的专用PCH。这包括用于针对节点1、节点2、节点3和节点4的每一个实现各种类型的I/O互连和链路的装置,例如,USB(通用串行总线)控制器106、串行高级技术附件(SATA)控制器108、串行管理总线(SMB)控制器110以及多组传统(legacy)装置(iLB)112。
MN-PCH102进一步包括管理引擎(ME)114、创新引擎(IE)116和管理(MGB)子系统117。在一个实施例中,ME114被实现为聚合的安全和管理引擎(CSME)。在一些实施例中,原始设备制造商(OEM)可能希望使用定制的功能来对ME114提供的装置进行扩充。这些可以通过IE116来实现,IE116也被称为OEM创新引擎。通常,使用IE116是可选的。MGB子系统与ME114和IE116(如果使用)交互操作,以执行平台管理操作。
在针对每一个CPU使用专用PCH的传统平台架构的情况下,可以使用合适的控制器(例如,经由串行外围接口(SPI)总线控制器或增强的SPI(eSPI)控制器)来访问固件存储设备及其他外围设备。在一个实施例中,使用与传统PCH提供的控制器和接口类似的控制器和接口,除了在节点之间共享控制器和/或接口之外。例如,在一个实施例中,包括用于所有节点的BIOS启动映像的固件被包含在单个闪存设备中,所述单个闪存设备可以位于MN-PCH本地,如经由互连119耦合到SPI控制器120的闪存存储设备118所描绘的,或与其远程附连的(例如,在基板管理控制器(BMC)(未示出)后面)。SPI闪存设备可以支持用于每一个节点的独立BIOS区域,或者支持用于所有节点的公共基础BIOS,加上用于个性化的每节点的额外的BIOS区域。MN-PCH102支持每节点的专用启动驱动,或者公共的共享启动驱动。在一个实施例中,MN-PCH102还支持动态硬件分区。
如所示出的,闪存存储设备118的地址空间被划分为多个区域,包括:其中设置有芯片组软程序的闪存描述符0(FD0)区域122;以及用于存储管理控制单元固件(MCUFW)124、IE固件126、节点1固件128、节点2固件130、节点3固件132、节点4固件134和公共节点固件136的区域。使用单个SPI控制器和闪存存储设备互连消除了对用于每一个节点的独立的SPI控制器和/或闪存存储设备的需求。
MN-PCH102提供了专用的一组传统装置(iLB),例如,在每节点基础上的中断控制器、计时器、GPIO和SMBus。MN-PCH102支持隔离的错误处理和恢复,使得沿着一个节点的数据路径检测到的错误不会影响任何其他节点,除非是不可恢复的全局重置情况。
MN-PCH102利用每节点的专用带内和带外管理通信信道来支持用于所有节点的公共管理引擎。MN-PCH还提供OEMFW(原始设备制造商固件)(例如,创新引擎)的放置点,以用于多节点管理。
图2示出了根据一个实施例的说明了MN-PCH102的进一步细节的内部架构图。MN-PCH102支持的能力由包括高带宽根结构200和低带宽子结构202的内部主干结构互连。该内部主干结构被配置为对多个正交寻址空间进行处理,MN-PCH102有效地利用该主干结构以进一步在部件级实现对能力的聚合。此外,多根空间(multi-rootspace)感知的内部主干结构将这些正交寻址空间保持为隔离,并且保证公共的交换结构可以由多个相干系统共享。
多节点PCH架构支持用于到独立节点的专用上行链路连接的多个DMI链路。对于示例性的4个节点的情况,其包括耦合到高带宽根构造200的4个DMI接口104i、105i、106i和107i,它们为节点1、节点2、节点3和节点4的每一个提供相应的DMI接口。
在一个实施例中,由耦合到子结构202的部件提供了启动和传统能力(重置/定序、启动、中断、计时器、GPIO等)。在所示出的实施例中,这些部件包括在节点间共享的功率管理控制器(PMC)208和SPI控制器210,以及用于节点1、节点2、节点3和节点4的每一个的相应的一组传统IO装置212。重置和启动块支持用于与每一个节点中的单独的根空间进行通信的多个PCI报头。PMC208增强了单节点定序逻辑,以能够独立地处理每一个节点的重置定序。同样地,SPI控制器210提供到启动映像的路径、支持每节点专用报头、并且控制对启动设备内的隔离区域的访问。由传统IO块212支持的多个传统能力使用固定的存储器或IO地址,并且被重复多次以覆盖MN-PCH102所支持的所有节点。
在一个实施例中,MN-PCH102支持每节点专用的平台级别信号,以用于每节点功率传送控制。其结果是,单独的节点可以执行状态转变和主机分区重置,而不影响其他节点。用于单独的节点的重置定序流是相互独立的,并且可以由PMC208交错进行。
用于节点1、节点2、节点3和节点4的每一个的相应组的高速IO(HSIO)控制器214附连到高带宽根结构200。在所示出的实施例中,每一个HSIO控制器214包括PCIe控制器216、SATA控制器218和USB控制器220。除了所示的HSIO控制器之外,还可以提供其他类型的高速控制器和/或接口,例如,可扩展主控制器接口(XHCI)。此外,HSIO控制器可以包括相关联的接口的一个或多个实例(例如,多个PCIe、SATA和/或USB接口)。
MN-PCH102的高速IO能力(例如,由PCIe控制器216、SATA控制器218和USB控制器220提供的)在一组通用物理通道(lane)中是高度可配置的。这些通道可以被灵活地映射到各种集成IO控制器(未示出)。另外,在初始启动序列期间,每一个控制器可以被配置给任意节点。这允许客户在系统支持的节点中划分IO能力。在一个举例示出性的配置中,可以对该I/O通道进行划分,以向每一个节点提供各种IO协议的相等数量的通道。在另一配置中,通过将所有SATA分配给单个节点,一个节点可以被配置用于最小启动支持,而另一节点被配置用于容量存储。具有较少节点的系统甚至可以对未用的上行链路进行重设,以支持下游设备。此外,用于主HSIO控制器的通道的数量可以与用于备用HSIO控制器的通道的数量不同,如以下将描述及示出的。这种按照每系统需求灵活地使用可用数量的通道的能力大大地扩展了客户专用配置的可能性。
MN-PCH102还支持基于附加的微控制器的子系统,以提供平台、框架和/或装置级别管理能力。这包括ME222和IE224。ME222包括微控制器226和管理子系统228。类似地,IE224包括微控制器230和管理子系统232。在一个实施例中,这些ME和IE管理子系统具有主机接口,但是也可以独立于主机操作。
管理引擎(ME/CSME/IE)同样支持用于每一个节点的专用接口,同时在每节点的基础上提供对管理传感器和IO的访问。运行在微控制器226和230上的固件(例如,MCU固件124和IE固件126)是多节点感知的,并且允许ME和/或IE的单个实例对系统中的所有节点进行服务。按照每客户需求,ME/IE可以与单个多节点感知的BMC进行通信或者与每节点的专用BMC通信。
在一些实施例中,多节点PCH可以被重新配置为支持冗余能力以提高可靠性。例如,这样的多节点PCH可以使用冗余能力来支持动态节点修复,其中,MN-PCH可以被动态地重新配置,使得利用相对应的备用接口或部件来替换故障或者失效的主接口或部件。
图1a示出了根据一个实施例的包括被配置为支持对两个节点(节点1和节点2)进行动态节点修复的MN-PCH102a的平台架构100a。除了支持所示的两个节点外,架构100可以被扩展为支持M个节点。在一些实施例中,MN-PCH可以被配置为支持没有冗余的N个节点,或者支持具有冗余的N/2个(或更少的)节点。例如,在一个实施例中,MN-PCH102和MN-PCH102a包括相同的部件、互连和逻辑,然而MN-PCH102被配置为支持4个节点,而MN-PCH102a被配置为支持2个节点,其中,被移除的节点(节点3和节点4)的(当前)未用的部件和互连被用作被配置为经由相关联的故障转移操作来替换主部件和互连的备用部件和互连。
如图1a和2a所示出的,MN-PCH102中的DMI链路104、105、106和107在MN-PCH102a中被重新配置提供用于节点1和节点2的每一个的主DMI链路和接口以及备用DMI链路和接口。在重新配置后,这些链路和接口被描绘为主DMI链路104p和106p、主DMI接口104ip和106ip、备用DMI链路104s和106s、以及备用DMI接口104ip和106ip。出于举例说明性目的,以浅灰色描绘备用接口和部件,以将它们与主部件相区别。如图1a进一步所示的,在MN-PCH102中的用于节点1、节点2、节点3和节点4的USB控制器106、SATA控制器108和SMB控制器110在MN-PCH102a中被重新配置为提供用于节点1和节点2的每一个的主和备用控制器,如进一步包含备用USB控制器106s、备用SATA控制器108s和备用SMB控制器110s所描绘的。此外,针对节点1和节点2的每一个提供一组主要传统能力和备用传统能力(如图1a描绘为备用iLB接口112s并在图2中进一步详述的)。按照类似方式,用于MN-PCH102的节点3和节点4的HSIO控制器214被重新配置为用于MN-PCH102a的节点1和节点2的每一个的备用HSIO控制器214s。
通常,对多节点PCH上的各种部件和接口的重新配置可以经由嵌入在PCH上的交换电路和控制逻辑或者从多节点PCH到CPUI/O接口的不同芯片组互连来实现。此外,具有系统管理模式(SMM)支持的多节点PCH芯片组可以动态地改变链路,同时保存系统上下文并且不需要操作系统(OS)重置。另外,对这种功能的支持不需要任何OS改变,并且向需要标准OS耐久性和支持的MN-PCH中的任何部件提供自我修复。此外,其向包括高速和传统接口和控制器两者的MN-PCH中的其他非关键部件提供恢复能力。
在用于实现自我修复的一个方面中,MN-PCH为每一个能够通过对错误设定阈值而进行故障转移的部件提供错误计数器。这为可能失效并且需要相对应的备用/修复操作的部件提供了预通知。MN-PCH还为灾难性的不可修正的错误提供了边带和带内信令。在很多情况下,这种类别的错误将与近来引入的增强的MCA(机器校验架构)特性相耦合。这允许正确的固件先进行建模,并且当SoC处理器(使用片上系统架构的处理器)的集成IO(IIO)中的DMI链路的“北侧”具有错误时,将在该领域中使用。在这些情况下,如以下描述的流程所描绘的,CPU联合体触发系统管理中断(SMI)而不是触发MN-PCH。
SMM是用于处理全系统功能的特定模式,并且仅是要用于系统固件,而非由OS或应用程序使用。当通过SMI调用SMM时,处理器(例如,节点CPU)保存其当前状态,并且切换到包含在系统管理随机存取存储器(SMRAM)中或者在类似的保护存储区域中的单独的操作环境。当处于SMM中时,处理器执行SMI处理程序代码以实施操作。当SMI处理程序完成其操作时,其执行恢复指令。这个指令使得处理器重新加载其保存的状态,切换回保护模式或真实模式,并且恢复执行中断的应用程序或OS任务。在一个实施例中,这样的SMI处理程序代码可以存储在闪速存储设备118中作为节点的固件映像的一部分,或者存储在单独的区域中(例如,作为共享节点固件136的一部分)。
在图3a、3b和3c中的流程图部分300a、300b和300c中示出了根据一个实施例的用于实现动态节点修复的处理流程。处理流程开始于描绘系统运行的起始块302。例如,在包括MN-PCH芯片组的多节点平台上的处理器在没有错误的正常操作条件下进行操作。在块304,检测到错误并且进行了断言。存在用于在平台上断言错误的多种公知的机制,例如,通过使用硬软中断或软中断、带内或带外传送消息、管理代理等。类似地,存在用于检测错误的公知的机制。
响应于所断言的错误,在判定块306中确定该错误是致命的或者不可修正的。如果答案是否,则流程继续进行到块308,其中,递增部件失效计数器。例如,在各种实施例中,可以存在用于单独的部件或者用于部件的聚合的部件失效计数器。更具体地,部件失效计数器被实现用于支持故障转移的部件或部件的聚合。这样的部件通常可以包括服务于专用功能的接口、控制器、以及部件,其中,该部件的备用或故障转移实例可用作替换。
结合在块308中递增部件故障计数器,在判定块310中确定失效计数器是否超过阈值。例如,在一个实施例中,针对相对应的部件设置单独的故障计数器阈值,使得一旦该部件的错误被检测出给定的次数,则将采取动作。在该实例中,当超过阈值时,对判定块310的答复为是,并且流程继续进行到启动部件故障转移的块320。如果判定块310的答复为否,则流程循环回到起始块302以重复该操作的循环。
返回判定块306,如果错误是致命的或者不可修正的,则对判定块306的答案为是,并且流程继续进行到块312,块312指示需要系统响应或节点将失效。然后在判定块314中确定出错的部件、接口、链路等是否是可修复的。如果不是,则流程继续进行到结束块316,其中,相对应的错误事件被断言为OEMBMC,以进行错误取回分析。如果对判定块314的答案为是,则流程继续进行到块320以启动部件故障转移。
在块320中启动部件故障转移之后,流程继续进行到判定块322,其中,确定可适用的CPU链路是否是可使用的。例如,该CPU链路可以是诸如DMI链路的带内链路或是带外链路。如果对判定块322的答复为是,则流程继续进行到块324,其中,SMI虚拟传统线(VLW)被发送到具有已失效或正在失效的部件的节点的CPU,以启动SMI。如果对判定块322的答复为否,则在一个实施例中,边带中断被断言为中断CPU联合体来启动SMI。然后,该流程继续进行到图3b的流程部分300b的顶部。
流程部分300b开始于SMI在起始块328中被触发。作为响应,在判定块330中确定该SMI是否由芯片组故障转移通知(例如,由MN-PCH所启动的故障转移通知)所导致。SMI也可以由本文中将其称作可选SMI源的其他系统部件来触发。在这些情况下,对判定块330的答复为否,并且基于被配置为被实现用于可选SMI源的SMI处理程序,在块332执行合适的SMI工作。
如果对判定块330的答复为是,则通过使用边带接口或芯片组互连来确定有故障部件的源,如块334所描述的。在判定块336中,确定是否需要处理器静止。一些处理器支持静止模式,其中,接口和其他部件是静止的(例如,进入休眠模式)。因此,如果对判定块336的答复为是,则流程继续进行到块338,其中,在SMI中启动静止模式,以确保停止所有的I/O业务。
如果对判定块336的答复为否或者在完成块338的操作后(如果流程经过这个块),则在块340中启动可用的芯片组部件中的故障转移。这可以包括使用SMM来对由平台或节点启动期间的POST或者OS启动期间或OS运行时期间的OS建立的I/O地址进行重编程,如块344所描述的。可替换地,通过MN-PCH中的可自配置部件来对I/O地址进行重新编程。在图3的流程部分300c示出了阶段3故障转移操作的进一步细节,如以下所述。
在一些实例中,节点修复可以由作为芯片组的一部分的处理器全部实现。在这种情况中,不执行阶段3。因此,如在块344中所示的,在块342的操作之后,节点已经被修复,并且恢复剩余的SMM操作,以在结束块346中将控制返回到OS。如上文所描述的,SMM发出恢复指令,使处理器重新加载其保存的状态,切换回保护模式或真实模式,并且恢复执行被中断的应用或OS任务。
转向与阶段3相对应的图3c的流程部分300c,处理流程开始于起始块348,其描绘了从SMM启动故障转移。在判定块350中,确定该故障是DMI故障或者节点故障。如果答复为否,则流程继续进行到块352,其中,识别出故障部件。在判定块354,确定故障转移是否是控制器故障转移。如果答复为是,则该流程继续进行到块354,其中,禁用发生故障的控制器并启用故障转移控制器(例如,备用控制器)。随后在块356中重新配置互连层次结构,使得芯片组被修复,如块358所描绘的。如果对判定块354的答复为否,则该故障转移与有故障的非DMI链路相对应,其被禁用并且启用适当的故障转移链路(以及相关联的链路接口),如块360所示。
回到判定块350,在一个实施例中,如果对判定块350的答复为是,则流程继续进行到块362,其中,将DMI链路置于降低功率状态,例如,L2或L3状态。在块364中,确定节点或节点控制器是否有故障或已失效。如果节点或控制器被检测为有故障/已失效,则对判定块364的答复为是,并且流程继续进行到块366,其中,禁用有故障/已失效的控制器,并启用故障转移控制器。如果对判定块364的答复为否,则故障是DMI链路故障,并且流程继续进行到块368,其中,禁用失效的DMI链路,并启用相对应的备用的故障转移DMI链路。
该流程接下来从块366或368继续进行到块370,其中,重新配置内部解码路径。在这之后,DMI链路返回到正常功率和操作状态,这需要(除其他之外)进行块372所示的DMI链路再训练操作。这使得芯片组被修复,如块358所描绘的。如前,在结束块374中,SMM发出恢复,并且处理器操作返回到OS。
图4a示出了使用MN-PCH102a的多节点计算平台的系统架构400。该系统包括主板402,其上安装有各种部件,直接地(例如,经由回流焊接等)或者安置于安装在主板402上的插槽、连接器或类似类型的机械接口中。主板402还包括通过被配置为与各种部件互连的板层迹线(trace)和通孔实现的布线,以使电信号传送数据能够在部件之间进行传递。为了清楚,在图4a中未示出这样的布线,但是本领域技术人员应当理解,这样的布线是多节点计算平台的固有特征。
在图4a所示出的实施例中,如之前,系统架构400包括被标记为节点1和节点2的一对节点。出于说明性目的,节点2被描绘为简单的块,而更详细地示出了节点1;应当理解的是,节点1和节点2都具有与节点1所描绘的类似的配置。
节点1和节点2的每一个都包括处理器404和本地系统存储器406。在所示出的实施例中,处理器404被实现为包括CPU408的SoC,CPU408包括多个核心,每一个都与L1和L2高速缓存相关联。这些核心和L1/L2高速缓存耦合到相干的高带宽互连410,相干的高带宽互连410与存储器接口412和IIO块413相耦合。在一些SoC架构的情况下,IIO可以连接到单独的互连,所述单独的互连经由桥等耦合到互连410。最后一层高速缓存(LLC)414也被描绘为耦合到互连410。存储器406、相干互连410和L1/L2高速缓存、以及LLC414的组合构成了相干的存储域。
IIO块413提供了CPU408与SoC上的各种IO块和部件之间的接口,这些IO块和部件包括与一对PCIe接口418和420耦合的PCIe启动联合体416、以及DMI接口422。DMI接口422经由主板402上的布线连接到主DMI接口104ip和备用DMI接口104is,所述主板402上的布线将处理器404上的适用的管脚与MN-PCH102a相耦合。在所示出的实施例中,配置布线使得由DMI接口422使用的单组管脚耦合到由主DMI接口104ip和备用DMI接口104is所使用的相应组的管脚。在一个实施例中,使用多达4个双向通道的多通道链路来实现DMI2.0链路。在可替换的配置下,单组接线被用于处理器404和MN-PCH102之间的DMI链路,并且接线被内部地多路复用,并且选择性地耦合到主DMI接口104ip和备用DMI接口104is。
通常,可以经由在多节点计算平台上载有的一个或多个存储设备访问和/或通过网络来下载包括操作系统和软件应用的软件。在所示出的实施例中,多节点计算平台包括其上分别存储有软件部件428和439的集合的一对固态驱动(SSD)424和426。如所示出的,SSD424耦合到节点1的主SATA控制器,而SSD426耦合到节点2的主SATA控制器。在另一配置下,由多个节点使用的软件可以被存储在单个存储设备(诸如,SSD)上,并且经由共享的SATA接口进行访问。作为另一选项,软件部件可以通过经由网络接口控制器(NIC)432和434访问的网络下载,网络接口控制器(NIC)432和434耦合到MN-PCH102a上的主PCIe接口436和438。
在平台启动期间(或者可替换地,节点的启动),从闪速存储设备118读取用于节点1、节点2和MN-PCH102a的每一个的固件,并且将其加载到适当的存储地址空间中。例如,对于节点1,可以将节点1的固件128的全部或一部分加载到存储器406的保护区域中,同时将MCU固件124的全部或一部分加载到可由ME114的微控制器(未示出)访问的存储器中。可选地,可以将一些固件加载到嵌在处理器404(未示出)上的存储器中。用于启动平台节点的固件一般被称为启动固件和/或BIOS,其被用于初始化各种系统部件以准备加载由节点使用的操作系统实例。除了这种软件,用于SMM的固件还可以被加载到描绘为“SMRAM”的存储器406的保护部分中,或者可以加载到处理器404上的嵌入式存储器中。这部分的启动过程包括对各种控制器和接口的配置,所述各种控制器和接口例如SATA控制器和NIC432(如果OS通过网络启动)。随后,包括操作系统实例的软件部件将被加载到存储器404的保护区域中。在OS启动之后,用于软件应用的软件部件可以加载到由OS分配用于应用的存储器406的用户空间区域中。
图4a示出了可替换的配置,其中,处理器404a包括经由单独的接线集合分别耦合到主DMI接口104ip和备用DMI接口104is的主DMI接口422p和备用DMI接口422s。在这种配置下,可以响应于主DMI接口422p的故障或检测到的失效,通过故障转移到备用DMI接口422s来对处理器404a上的DMI接口装置进行修复。
通常,在实现动态节点修复的多节点平台架构的实施例中的节点可以被配置为具有仅可由给定的节点访问的资源(例如,存储器)的单独集合的离散的节点,或者可以实现NUMA(非一致存储器访问)架构,其中与给定节点相关联的处理器能够访问另一节点的本地的存储器。例如,在多插槽平台中,这可以通过插槽至插槽互连(例如,插槽之间的快速通道互连TM(QPI)的插槽至插槽互连)来实现。
本文中实施例提供的动态节点修复能力进一步增强了多节点PCH的固有优势。通过结合自动的故障检测和故障转移向选择的接口和部件提供冗余,显著地增强了平台的可靠性和恢复力。此外,由于故障转移以对由多节点平台处理器托管的操作系统而言是透明的方式来执行,因此能够解决MN-PCH故障,而不需要使受影响的节点或者整个平台下线。
在以下编号的条款中阐述本文描述的主题的进一步的方面:
1、一种多节点平台控制器中心(MN-PCH),包括:
多个节点接口,其被配置为与计算平台上的多个节点实施通信;
内部互连;
接口,其耦合到所述内部互连,并且被配置为耦合到所述计算平台上的存储设备,所述计算平台包含用于多个节点的每一个节点的固件以及由MN-PCH中的嵌入部件所使用的固件;
耦合到所述内部互连的高速输入输出(IO)控制器的多个集合,每一个都可配置为专用于由相应的节点使用;
耦合到所述内部互连的传统IO装置的多个集合,传统IO装置的集合中的每一个都可配置为专用于由相应的节点使用;以及
管理引擎,其通过多个节点共享。
2、如条款1所述的MN-PCH,其中,所述多个节点接口和所述高速IO控制器的多个集合是可重新配置的,使得它们能够被配置为节点的主接口或控制器以及备用接口或控制器,并且其中,所述传统IO装置的多个集合是可重新配置的,使得它们能够被配置为节点的传统IO装置的主集合和传统IO装置的备用集合。
3、如条款2所述的MN-PCH,其中,所述MN-PCH被启用以经由电路和逻辑执行动态节点修复,其被配置为:
检测到主接口或部件失效或者有故障;
自动执行故障转移,其中,利用相对应的备用接口或部件来替换所述主接口或部件;以及
使用所述备用接口或部件来恢复所述MN-PCH的操作。
4、如条款3所述的MN-PCH,其中,以对运行在所述多个节点的每一个上的操作系统而言透明的方式来执行所述动态节点修复。
5、如条款3或4所述的MN-PCH,其中,所述动态节点修复使用处理器系统管理模式(SMM),其中,响应于检测到有故障或失效的接口或部件来触发系统管理中断(SMI),使得使用有故障或失效的接口或部件的处理器进入SMM,其中,当处理器在SMM中时,执行用于有故障或失效的接口或部件的故障转移操作,并且在完成故障转移操作之后,该处理器从SMM返回到正常操作模式。
6、如条款3-5中的任一项所述的MN-PCH,其中,所述多个节点接口包括直接媒体接口(DMI)接口,并且所述MN-PCH被配置为执行对被检测为有故障或失效的DMI接口的动态节点修复。
7、如条款3-6中的任一项所述的MN-PCH,其中,该MN-PCH被配置为:
检测部件的错误;
判断所述错误是否是致命的或者不可修正的;
如果所述错误被确定为不是致命的或者不可修正的,则递增部件的部件故障计数器;
确定部件的故障计数是否超过所述阈值;以及
响应于确定部件的故障计数超过阈值,则启动部件故障转移。
8、如条款3-7中的任一项所述的MN-PCH,其中,该MN-PCH被配置为:
检测部件的错误;
确定所述错误是致命的或者不可修正的;
如果所述错误被确定为致命的或不可修正的,则确定使用具有所述错误的部件的节点是否是可修复的;以及
如果节点是可修复的,则启动部件故障转移。
9、如条款2-8中的任一项所述的MN-PCH,其中,所述MN-PCH可以选择性地被配置为实现针对以下的PCH装置:
N个节点,每一个节点包括至少一个中央处理单元(CPU)或CPU联合体;以及
具有冗余的N/2个节点,其中,未被使用的N/2个节点的PCH装置被重新配置为耦合到所述MN-PCH的N/2个节点的备用PCH装置。
10、如条款9所述的MN-PCH,其中,所述MN-PCH可以进一步被选择性地配置为实现针对2N个节点的PCH装置。
11、如前述条款中的任一项所述的MN-PCH,其中,高速IO控制器的每一个集合包括至少一个快速外围部件互连(PCIe)控制器、至少一个通用串行总线(USB)控制器、以及至少串行高级技术附件(SATA)控制器。
12、如前述条款中的任一项所述的MN-PCH,其中,所述内部互连包括高带宽根结构和低带宽子结构,其中,所述高速IO控制器耦合到所述高带宽根架构,并且所述传统IO装置的多个集合连接到所述低带宽子结构。
13、如前述条款中的任一项所述的MN-PCH,进一步包括耦合到所述内部互连并且在节点间共享的创新引擎,其中,所述创新引擎被配置为使初始设备制造商(OEM)能够定制管理装置。
14、一种在多节点计算平台上实现的方法,所述多节点计算平台包括耦合到多节点平台控制器中心(MN-PCH)的多个节点,所述方法包括:
针对多个节点的每一个,在MN-PCH上将第一多个部件和接口配置为被实现为专用于由该节点使用的主部件和接口;
将所述MCH上的第二多个部件和接口配置为被用作备用部件和接口;
检测到主部件或接口有故障或失效;以及
自动执行故障转移操作以将所述MN-PCH重新配置为利用相对应的备用部件或接口来替换主部件或接口。
15、如条款14所述的方法,其中,该MN-PCH包括多个直接媒体接口(DMI)接口,所述方法进一步包括:
将所述多个DMI接口配置为主DMI接口和备用DMI接口;
在相应的主DMI接口处,经由在MN-PCH处耦合的主DMI链路,将多个节点的每一个通信地耦合到该MN-PCH;
检测到主DMI接口有故障或失效;
将耦合到检测出有故障或失效的DMI接口的DMI链路置于降低功率状态;
执行DMI链路故障转移,其中,MN-PCH被重新配置为使用被实现为故障转移DMI链路的备用DMI接口来替换有故障或失效的DMI接口;
重新训练故障转移DMI链路;以及
使用所述故障转移DMI链路来恢复节点和所述MN-PCH之间的通信。
16、如条款14或15所述的方法,其中,以对由所述多个节点托管的操作系统而言透明的方式来执行所述故障转移操作。
17、如条款16所述的方法,进一步包括:
针对被配置为由相对的应节点使用的MN-PCH中的部件来启动部件故障转移;
触发系统管理中断(SMI),以使得与节点相关联的并且以正常工作模式操作的处理器进入系统管理模式(SMM);
在MN-PCH上执行部件故障转移操作,以利用相对应的故障转移部件来替换有故障或失效部件;以及
向处理器发出SMM恢复指令,以使得处理器退出SMM并且返回到正常操作模式。
18、如条款17所述的方法,进一步包括使得节点在执行部件故障转移操作之前进入静止状态。
19、如条款14-18中的任一项所述的方法,进一步包括:
检测部件的错误;
确定所述错误是否是致命的或者不可修正的;
如果该错误被确定为不是致命的或不可修正的,则递增该部件的部件故障计数器;
确定部件的故障计数是否超过阈值;以及
响应于确定部件的故障计数超过阈值,启动部件故障转移。
20、如条款14-19中的任一项所述的方法,进一步包括:
检测部件的错误;
确定所述错误是否是致命的或者不可修正的;
如果所述错误被确定为致命的或不可修正的,则确定使用具有所述错误的部件的节点是否是可修复的;以及
如果节点是可修复的,则启动部件故障转移。
21、如条款14-20所述的方法,其中,所述第一多个部件和接口包括用于每一个节点的高速输入输出(IO)接口和控制器的集合以及用于每一个节点的传统IO装置的集合。
22、如条款14-21所述的方法,进一步包括:
对于MN-PCH上的接口的一部分的每一个,检测该接口是否耦合到节点;以及
如果该接口耦合到节点,则自动地将该接口配置为主接口,
否则,自动地将该接口配置为备用接口。
23、一种系统,包括:
主板,其具有安装在其上的多个部件,并且具有连接来自多个部件的信号的布线;
多个处理器节点,每一个都包括处理器;
系统存储器,包括耦合到每一个处理器节点的存储器的相应部分;
第一存储设备;
多节点平台控制器中心(MN-PCH),包括:
多个节点通信接口,每一个都可配置为通信地耦合到处理器节点;
内部互连,其包括高带宽根结构和低带宽子结构;
接口,其耦合到所述内部互连并且被配置为经由链路耦合到主板上的固件存储设备,所述固件存储设备包含用于处理器节点的每一个的固件和由所述MN-PCH中的嵌入式部件所使用的固件;
耦合到高速根结构的高速输入输出(IO)控制器的多个集合,每一个可配置为专用于由相应的节点使用,高速控制器的每一个集合包括至少一个快速外围部件互连(PCIe)控制器、至少一个通用串行总线(USB)控制器、以及包括耦合到第一存储设备的SATA控制器的至少串行高级技术附件(SATA)控制器;以及
耦合到低带宽子架构的传统IO装置的多个集合,所述传统IO装置的集合中的每一个可配置为专用于由相应的处理器节点使用。
24、如条款23所述的系统,其中,所述多个节点通信接口和所述高速IO控制器的多个集合是可重新配置的,使得它们能够被配置为处理器节点的主接口或控制器以及备用接口或控制器,并且其中,所述传统IO装置的多个集合是可重新配置的,使得它们能够被配置为处理器节点的传统IO装置的主集合和传统IO装置的备用集合。
25、如条款24所述的系统,其中,该MN-PCH能够经由电路和逻辑来执行动态节点修复,其被配置为:
检测到主接口或部件失效或者故障;
自动执行故障转移,其中,利用相对应的备用接口或部件来替换主接口或部件;以及
使用备用接口或部件来恢复MN-PCH的操作。
26、如条款25所述的系统,其中,所述第一存储设备包括操作系统或者所述系统被配置为经由网络加载操作系统,并且其中,当系统操作时,所述MN-PCH被配置为以对运行在每一个处理器节点上的操作系统透明的方式来执行动态节点修复。
27、如条款25或26所述的系统,其中,所述动态节点修复使用处理器系统管理模式(SMM),其中,响应于检测到有故障或失效的接口或部件,触发系统管理中断(SMI),使得使用所述有故障或失效的接口或部件的处理器节点的处理器进入SMM,其中,当处理器处于SMM中时,执行针对有故障或失效的接口或部件的故障转移操作,并且在所述故障转移操作完成后,所述处理器从SMM返回到正常操作模式。
28、如条款25-27中的任一项所述的系统,其中,所述多个节点通信接口包括直接媒体接口(DMI)接口,并且所述MN-PCH被配置为执行对被检测为有故障或失效的DMI接口的动态节点修复。
29、如条款23-28中的任一项所述的系统,其中,所述多个节点通信接口包括直接媒体接口(DMI)接口,并且至少一个处理器包括主DMI接口和备用DMI接口,并且被配置为:
检测到主DMI接口的故障;以及
对备用DMI接口执行自动故障转移。
30、一种多节点平台控制器中心(MN-PCH),其被配置为在包括多个节点的多节点计算平台上实现,包括:
多个节点接口,每一个被配置为有助于与相应的节点进行通信;
内部互连;
耦合到所述内部互连的高速输入输出(IO)控制器的多个集合,其中,所述高速控制器的第一部分被配置为被实现为相应节点的主高速控制器,并且所述高速控制器的第二部分被配置为被实现为相应节点的备用高速控制器;
耦合到所述内部互连的传统IO装置的多个集合,其中,传统IO装置的每一个集合包括被配置用于由相应的节点使用的主传统IO装置和备用传统IO装置;
管理引擎,其在多个节点间共享;以及
接口,其耦合到该内部互连,并且被配置为耦合到所述计算平台上的存储设备,所述存储设备包含被配置用于由多个节点使用的固件以及被配置为由包括管理引擎的MN-PCH中的嵌入部件使用的固件。
31、如条款30所述的MN-PCH,其中,所述MN-PCH能够经由电路和逻辑来执行动态节点修复,其被配置为:
检测到主接口或部件失效或者故障;
自动执行故障转移,其中,利用相对应的备用接口或部件来替换该主接口或部件;以及
使用备用接口或部件来恢复MN-PCH的操作。
32、如条款32所述的MN-PCH,其中,以对运行在多个节点的每一个上的操作系统透明的方式来执行动态节点修复。
33、如条款31或32所述的MN-PCH,其中,所述动态节点修复使用处理器系统管理模式(SMM),其中,响应于检测到有故障或失效接口或部件,来触发系统管理中断(SMI),使得使用有故障或失效的接口或部件的处理器进入SMM,其中,当所述处理器处于SMM中时,执行针对有故障或失效的接口或部件的故障转移操作,并且在所述故障转移操作完成后,所述处理器从SMM返回到正常操作模式。
34、如条款31-33中的任一项所述的MN-PCH,其中,所述多个节点接口包括直接媒体接口(DMI)接口,并且所述MN-PCH被配置为执行对被检测为有故障或失效的DMI接口的动态节点修复。
35、如条款31-34中的任一项所述的MN-PCH,其中,所述MN-PCH被配置为:
检测部件的错误;
确定所述错误是否是致命的或者不可修正的;
如果所述错误被确定为不是致命的或不可修正的,则递增部件的部件故障计数器;
确定部件的故障计数是否超过阈值;以及
响应于确定部件的故障计数超过阈值,则启动部件故障转移。
36、如条款31-35中的任一项所述的MN-PCH,其中,所述MN-PCH被配置为:
检测部件的错误;
确定所述错误是否是致命的或者不可修正的;
如果所述错误被确定为致命的或不可修正的,则确定使用具有所述错误的部件的节点是否是可修复的;以及
如果节点是可修复的,则启动部件故障转移。
37、如条款30-36中的任一项所述的MN-PCH,其中,高速IO控制器的每一个集合包括至少一个快速外围部件互连(PCIe)控制器、至少一个通用串行总线(USB)控制器、以及至少串行高级技术附件(SATA)控制器。
38、如条款30-37中的任一项所述的MN-PCH,其中,所述内部互连包括高带宽根结构和低带宽子结构,其中,所述高速IO控制器耦合到所述高带宽根结构,并且所述传统IO装置的集合连接到所述低带宽子架构。
尽管参照特定实现描述了一些实施例,但是根据一些实施例,其他实现是可能的。另外,附图中所示出的和/或本文所描述的元件或其他特征的布置和/或顺序没有必要按照所示出和描述的特定方式进行布置。根据一些实施例,多种其他布置是可能的。
在附图所示的每一个系统中,在一些情况中,元件的每一个可以具有相同的附图标记或者不同的附图标记,以表明所表示的元件可以是不同的和/或类似的。然而,元件可以足够灵活以具有不同的实现,并且与本文所示出或所描述的一些或全部系统一起工作。附图中所示的各种元件可以是相同或不同的。哪一个被称为第一元件以及哪一个被称为第二元件是随意的。
在说明书和权利要求书中,可以使用术语“耦合”和“连接”以及它们的派生词。应该理解的是,这些术语并不是指彼此的同义词。相反,在特定的实施例中,“连接”用于指示两个或多个元件彼此是直接的物理或电接触。“耦合”可以指两个或多个元件直接物理或电接触。但是,“耦合”还可以表示两个或多个元件彼此没有直接接触,但是彼此仍然协作或交互。
在本文中并且通常,算法被认为是得出期望结果的一系列自相容的动作或操作。这包括对物理量的物理操作。这些量通常但未必一定采取能够被存储、转移、合并、比较以及否则操纵的电或磁信号的形式。已经不断地证明,主要是出于常用的原因,这些信号被称为位、值、元素、符号、字符、项、数字等。但是应当记住,所有的这些术语和类似的术语都将与适当的物理量相关联,并且它们只是应用于这些量的方便标签。
实施例是本发明的实现或示例。说明书中提到的“实施例”、“一个实施例”、“一些实施例”或“其他实施例”表示结合实施例描述的特定特征、架构或特性被包括在至少一些实施例中,而不必被包括在本发明的所有实施例中。“实施例”、“一个实施例”或“一些实施例”的各种出现不必全都指代相同的实施例。
不是本文描述及示出的所有部件、特征、架构、特性等都需要被包括在特定实施例或多个实施例中。例如,如果说明书陈述了部件、特征、架构或特性“可以”、“可能”、“会”或者“可能会”被包括,则该具体部件、特征、架构或特性并不需要被包括。如果说明书或权利要求提到了“一”或“一个”元件,则并非指仅有一个元件。如果说明书或权利要求提到了“额外的”元件,则并不排除存在超过一个的额外的元件。
如上所述,可以通过相对应的软件和/或固件部件和应用(例如,运行在节点处理器上的软件,或者由嵌入式处理器等执行的软件和/或固件等)而有助于本文实施例的多个方面。因此,本发明的实施例可以用作或用于支持软件程序、软件模块、固件和/或在某种形式的处理核心(例如,计算机的CPU,多核处理器的一个或多个核心)上执行的分布式软件、运行在处理器或核心等上或另外被实现或实行在计算机可读或机器可读的非暂时性存储介质上或内的虚拟机器。计算机可读或机器可读非暂时性存储介质包括用于存储或传送以机器(例如,计算机)可读形式的信息的任何机制。例如,计算机可读或机器可读非暂时性存储介质包括提供(即,存储和/或发送)由计算机或计算机器(例如,计算设备、电子系统等)可访问的形式的信息的任何机制,例如,可记录/不可记录介质(例如,只读存储器(ROM)、随机访问存储器(RAM)、磁盘存储介质、光存储介质、闪速存储设备等)。内容可以是直接可执行的(“目标”或“可执行”形式)、源代码或差分代码(“增量”(delta)或“插入”代码)。计算机可读或机器可读非暂时性存储介质还可以包括可以从中下载内容的存储器或数据库。计算机可读或机器可读非暂时性存储介质还可以包括具有出售或交付时存储于其上的内容的设备或产品。因此,交付具有存储的内容的设备或者提供用于在通信介质上下载的内容可以被理解为提供了包括具有本文所述内容的计算机可读或机器可读非暂时性存储介质的制品。
本文描述的上面被称为处理器、服务器或工具的各种部件可以是用于执行所述功能的单元。本文描述的各种部件执行的操作和功能可以通过运行在处理元件上的软件、经由嵌入式硬件等、或者硬件和软件的任何组合来实现。这样的部件可以被实现为软件模块、硬件模块、特殊用途硬件(例如,专用硬件、ASIC、DSP等)、嵌入式控制器、硬连线的电路、硬件逻辑等。软件内容(例如,数据、指令、配置信息等)可以经由包括计算机可读或机器可读非暂时性存储介质的制品被提供,这些存储介质提供表示可以被执行的指令的内容。所述内容可以使得计算机执行本文描述的各种功能/操作。
所本文所使用的,由术语“至少一个”连接的术语列表可以是指所列术语的任意组合。例如,词语“A、B或C的至少一个”可以指A;B;C;A和B;B和C;或者A、B和C。
使用斜体字母(例如,在前述的具体实施方式和权利要求中的“M”和“N”等)来描述整数,并且特定字母的使用并不限于特定的实施例。此外,相同字母可以用于不同的权利要求中,以表示不同的整数,或者可以使用不同的字母。另外,在具体实施方式中使用的特定字母可以与或者可以不与涉及具体实施方式中相同主题的权利要求中使用的字母相匹配。
对包括摘要中描述的内容的本发明的举例示出性实施例的以上描述不是要成为详尽的,或者是要将本发明限制为所公开的确切形式。虽然本文出于举例示出性的目的描述了本发明的具体实施例和示例,但是,本领域的那些技术人员将意识到,在本发明的范围内进行各种等价修改是可能的。
可以根据以上的具体实施方式来对本发明做出这些更改。下文的权利要求中使用的术语不应被解释为要将本发明限制为说明书和附图所公开的具体实施例。相反,本发明的范围将完全由下文的权利要求来进行确定,应该根据已建立的权利要求的解释原则来对权利要求进行解释。
Claims (25)
1.一种多节点平台控制器中心(MN-PCH),包括:
多个节点接口,其被配置为有助于与计算平台上的多个节点进行通信;
内部互连;
接口,其耦合到所述内部互连,并且被配置为耦合到所述计算平台上的存储设备,所述存储设备包含用于所述多个节点中的每一个的固件以及由所述MN-PCH中的嵌入式部件所使用的固件;
高速输入输出(IO)控制器的多个集合,其耦合到所述内部互连,所述高速输入输出(IO)控制器的多个集合中的每一个能够配置为专用于由相应的节点使用;
耦合到所述内部互连的传统IO装置的多个集合,所述传统IO装置的集合中的每一个能够配置为专用于由相应的节点使用;以及
管理引擎,其在所述多个节点之间共享。
2.如权利要求1所述的MN-PCH,其中,所述多个节点接口和所述高速IO控制器的多个集合能够重新配置,使得它们能够被配置为节点的主接口或控制器以及备用接口或控制器,并且其中,所述传统IO装置的多个集合能够重新配置,使得它们能够被配置为节点的传统IO装置的主集合和传统IO装置的备用集合。
3.如权利要求2所述的MN-PCH,其中,所述MN-PCH被启用以经由电路和逻辑来执行动态节点修复,所述电路和逻辑被配置为:
检测到主接口或部件有故障或者已失效;
自动执行故障转移,其中,利用相对应的备用接口或部件来替换所述主接口或部件;并且
使用所述备用接口或部件来恢复所述MN-PCH的操作。
4.如权利要求3所述的MN-PCH,其中,以对运行在所述多个节点中的每一个上的操作系统透明的方式来执行所述动态节点修复。
5.如权利要求3或4所述的MN-PCH,其中,所述动态节点修复采用处理器系统管理模式(SMM),其中,响应于检测到有故障或失效的接口或部件而触发系统管理中断(SMI),使得使用所述有故障或失效的接口或部件的处理器进入SMM,其中,当所述处理器处于SMM中时,执行针对所述有故障或失效的接口或部件的故障转移操作,并且在完成所述故障转移操作之后,所述处理器从SMM返回到正常操作模式。
6.如权利要求3-5中的任一项所述的MN-PCH,其中,所述多个节点接口包括直接媒体接口(DMI)接口,并且所述MN-PCH被配置为执行对被检测为有故障或已失效的DMI接口的动态节点修复。
7.如权利要求3-6中的任一项所述的MN-PCH,其中,所述MN-PCH被配置为:
检测部件的错误;
确定所述错误是否是致命的或者不能修复的;
如果所述错误被确定为不是致命的或不是不能修复的,则递增所述部件的部件故障计数器;
确定所述部件的故障计数是否超过阈值;并且
响应于确定所述部件的故障计数超过所述阈值,启动部件故障转移。
8.如权利要求3-7中的任一项所述的MN-PCH,其中,所述MN-PCH被配置为:
检测部件的错误;
确定所述错误是否是致命的或者不能修复的;
如果所述错误被确定为是致命的或不能修复的,则确定采用具有所述错误的部件的节点是否是能够修复的;并且
如果所述节点是能够修复的,则启动部件故障转移。
9.如权利要求2-8中的任一项所述的MN-PCH,其中,所述MN-PCH能够选择性地被配置为实现针对以下的PCH装置:
N个节点,每一个节点包括至少一个中央处理单元(CPU)或CPU联合体;以及
具有冗余的N/2个节点,其中,针对未被使用的所述N/2个节点的PCH装置被重新配置为针对耦合到所述MN-PCH的所述N/2个节点的备用PCH装置。
10.如权利要求9所述的MN-PCH,其中,所述MN-PCH能够进一步选择性地被配置为实现针对2N个节点的PCH设备。
11.一种在多节点计算平台上实现的方法,所述多节点计算平台包括耦合到多节点平台控制器中心(MN-PCH)的多个节点,所述方法包括:
对于所述多个节点中的每一个,将所述MN-PCH上的第一多个部件和接口配置为被实现作为专用于由所述节点使用的主部件和接口;
将所述MN-PCH上的第二多个部件和接口配置为被用作备用部件和接口:
检测到主部件或接口有故障或已失效;并且
自动执行故障转移操作以重新配置所述MN-PCH,来利用相对应的备用部件或接口来替换所述主部件或接口。
12.如权利要求11所述的方法,其中,所述MN-PCH包括多个直接媒体接口(DMI)接口,所述方法进一步包括:
将所述多个DMI接口配置为主DMI接口和备用DMI接口;
在相应的主DMI接口处,经由在所述MN-PCH处耦合的主DMI链路,将所述多个节点中的每一个通信地耦合到所述MN-PCH;
检测到主DMI接口有故障或已失效;
将耦合到被检测为有故障或已失效的DMI接口的所述DMI链路置于降低功率状态;
执行DMI链路故障转移,其中,所述MN-PCH被重新配置为利用被实现为故障转移DMI链路的备用DMI接口来替换有故障或失效的DMI接口;
重新训练所述故障转移DMI链路;并且
使用所述故障转移DMI链路来恢复所述节点和所述MN-PCH之间的通信。
13.如权利要求11或12所述的方法,其中,以对由所述多个节点托管的操作系统透明的方式来执行所述故障转移操作。
14.如权利要求13所述的方法,进一步包括:
启动针对被配置为由相对应的节点使用的所述MN-PCH中的部件的部件故障转移;
触发系统管理中断(SMI),以使与所述节点相关联并且以正常操作模式操作的处理器进入系统管理模式(SMM);
对所述MN-PCH执行部件故障转移操作,以利用相对应的故障转移部件来替换有故障或失效的部件;并且
向所述处理器发出SMM恢复指令,以使所述处理器退出SMM并且返回所述正常操作模式。
15.如权利要求14所述的方法,进一步包括使所述节点在执行所述部件故障转移操作之前进入静止状态。
16.如权利要求11-15中的任一项所述的方法,进一步包括:
检测部件的错误;
确定所述错误是否是致命的或者不能修复的;
如果所述错误被确定为不是致命的或不是不能修复的,则递增所述部件的部件故障计数器;
确定所述部件的故障计数是否超过阈值;并且
响应于确定所述部件的故障计数超过所述阈值,启动部件故障转移。
17.如权利要求11-16中的任一项所述的方法,进一步包括:
检测部件的错误;
确定所述错误是否是致命的或者不能修复的;
如果所述错误被确定为致命的或不能修复的,则确定采用具有所述错误的部件的节点是否是能够修复的;并且
如果所述节点是能够修复的,则启动部件故障转移。
18.如权利要求11-17中的任一项所述的方法,其中,所述第一多个部件和接口包括用于每一个节点的高速输入输出(IO)接口和控制器的集合以及用于每一个节点的传统IO装置的集合。
19.如权利要求11-18中的任一项所述的方法,进一步包括:
针对所述MN-PCH上的接口的一部分中的每一个,检测所述接口是否耦合到节点;并且
如果所述接口耦合到节点,则自动地将所述接口配置为主接口,
否则,自动地将所述接口配置为备用接口。
20.一种系统,包括:
主板,其具有安装在其上的多个部件,并且具有连接来自所述多个部件的信号的布线;
多个处理器节点,每一个都包括处理器;
系统存储器,其包括耦合到每一个处理器节点的存储器的相应部分;
第一存储设备;
多节点平台控制器中心(MN-PCH),包括,
多个节点通信接口,每一个能够配置为通信地耦合到处理器节点;
内部互连,其包括高带宽根结构和低带宽子结构;
接口,其耦合到所述内部互连并且被配置为经由链路耦合到主板上的固件存储设备,所述主板上的固件存储设备包含用于处理器节点中的每一个的固件和由所述MN-PCH中的嵌入式部件使用的固件;
耦合到所述高速根结构的高速输入输出(IO)控制器的多个集合,所述高速输入输出(IO)控制器的多个集合中的每一个能够配置为专用于由相应的节点使用,高速IO控制器的每一个集合包括至少一个快速外围部件互连(PCIe)控制器、至少一个通用串行总线(USB)控制器、以及包括耦合到所述第一存储设备的串行高级技术附件(SATA)控制器的至少SATA控制器;以及
耦合到所述低带宽子结构的传统IO装置的多个集合,所述传统IO装置的集合中的每一个能够配置为专用于由相应的处理器节点使用。
21.如权利要求20所述的系统,其中,所述多个节点通信接口和所述高速IO控制器的多个集合能够重新配置,使得它们能够被配置为处理器节点的主接口或控制器以及备用接口或控制器,并且其中,所述传统IO装置的多个集合能够重新配置,使得它们能够被配置为处理器节点的传统IO装置的主集合和传统IO装置的备用集合。
22.如权利要求21所述的系统,其中,所述MN-PCH被启用以经由电路和逻辑来执行动态节点修复,所述电路和逻辑被配置为:
检测到主接口或部件有故障或者已失效;
自动执行故障转移,其中,利用相对应的备用接口或部件来替换所述主接口或部件;并且
使用所述备用接口或部件来恢复所述MN-PCH的操作。
23.如权利要求22所述的系统,其中,所述第一存储设备包括操作系统或者所述系统被配置为经由网络来加载操作系统,并且其中,当所述系统操作时,所述MN-PCH被配置为以对运行在所述处理器节点中的每一个上的操作系统透明的方式来执行动态节点修复。
24.如权利要求22或23所述的系统,其中,所述动态节点修复采用处理器系统管理模式(SMM),其中,响应于检测到有故障或失效的接口或部件而触发系统管理中断(SMI),使得使用所述有故障或失效的接口或部件的处理器节点的处理器进入SMM,其中,当所述处理器处于SMM中时,执行针对所述有故障或失效的接口或部件的故障转移操作,并且在完成所述故障转移操作之后,所述处理器从SMM返回到正常操作模式。
25.如权利要求22-24中的任一项所述的系统,其中,所述多个节点通信接口包括直接媒体接口(DMI)接口,并且所述MN-PCH被配置为执行对被检测为有故障或已失效的DMI接口的动态节点修复。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/310,835 | 2014-06-20 | ||
US14/310,835 US9477564B2 (en) | 2014-06-20 | 2014-06-20 | Method and apparatus for dynamic node healing in a multi-node environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105204965A true CN105204965A (zh) | 2015-12-30 |
CN105204965B CN105204965B (zh) | 2018-11-16 |
Family
ID=54768036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510404027.1A Active CN105204965B (zh) | 2014-06-20 | 2015-05-20 | 用于多节点环境中的动态节点修复的方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9477564B2 (zh) |
CN (1) | CN105204965B (zh) |
DE (1) | DE102015107990A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105868133A (zh) * | 2016-04-29 | 2016-08-17 | 中国人民解放军国防科学技术大学 | 一种用于多结点主板的串口远程集中管理方法 |
CN107085459A (zh) * | 2016-02-14 | 2017-08-22 | 华为技术有限公司 | 一种电源管理方法以及系统 |
CN111045845A (zh) * | 2019-11-29 | 2020-04-21 | 苏州浪潮智能科技有限公司 | 一种数据回传方法、装置、设备及计算机可读存储介质 |
CN111309449A (zh) * | 2020-03-17 | 2020-06-19 | 上海蓝载信息科技有限公司 | 面向元编程、交互式编程和区块链互操作的与编程语言无关的虚拟机 |
CN111324070A (zh) * | 2020-03-04 | 2020-06-23 | 明峰医疗系统股份有限公司 | 基于fpga的ct串行探测器模块集群的调试方法 |
CN114448779A (zh) * | 2021-12-30 | 2022-05-06 | 锐凌无线有限责任公司 | 无线通信模组及其功能恢复方法、电子设备和存储介质 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9582366B2 (en) * | 2014-11-21 | 2017-02-28 | International Business Machines Corporation | Detecting and sparing of optical PCIE cable channel attached IO drawer |
US20160188503A1 (en) * | 2014-12-25 | 2016-06-30 | Intel Corporation | Virtual legacy wire |
US9990327B2 (en) | 2015-06-04 | 2018-06-05 | Intel Corporation | Providing multiple roots in a semiconductor device |
US10157160B2 (en) * | 2015-06-04 | 2018-12-18 | Intel Corporation | Handling a partition reset in a multi-root system |
US11983138B2 (en) | 2015-07-26 | 2024-05-14 | Samsung Electronics Co., Ltd. | Self-configuring SSD multi-protocol support in host-less environment |
US9846623B2 (en) * | 2015-08-20 | 2017-12-19 | Qsigma, Inc. | Simultaneous multi-processor apparatus applicable to acheiving exascale performance for algorithms and program systems |
KR102092660B1 (ko) | 2015-12-29 | 2020-03-24 | 후아웨이 테크놀러지 컴퍼니 리미티드 | Cpu 및 다중 cpu 시스템 관리 방법 |
US10116750B2 (en) * | 2016-04-01 | 2018-10-30 | Intel Corporation | Mechanism for highly available rack management in rack scale environment |
US11461258B2 (en) * | 2016-09-14 | 2022-10-04 | Samsung Electronics Co., Ltd. | Self-configuring baseboard management controller (BMC) |
US10210123B2 (en) | 2016-07-26 | 2019-02-19 | Samsung Electronics Co., Ltd. | System and method for supporting multi-path and/or multi-mode NMVe over fabrics devices |
US10346041B2 (en) | 2016-09-14 | 2019-07-09 | Samsung Electronics Co., Ltd. | Method for using BMC as proxy NVMeoF discovery controller to provide NVM subsystems to host |
WO2020036824A2 (en) * | 2018-08-13 | 2020-02-20 | Stratus Technologies Bermuda, Ltd. | High reliability fault tolerant computer architecture |
GB2586279B (en) * | 2019-08-16 | 2022-11-23 | Siemens Ind Software Inc | Routing messages in a integrated circuit chip device |
US11874787B2 (en) | 2020-02-13 | 2024-01-16 | Intel Corporation | Platform controller hub (PCH) chipsets in platforms as extended IO expander(s) |
US11816220B2 (en) * | 2020-09-25 | 2023-11-14 | Intel Corporation | Phased boot process to dynamically initialize devices in a verified environment |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6240526B1 (en) * | 1996-05-16 | 2001-05-29 | Resilience Corporation | Triple modular redundant computer system |
US6327675B1 (en) * | 1998-07-31 | 2001-12-04 | Nortel Networks Limited | Fault tolerant system and method |
US20050172164A1 (en) * | 2004-01-21 | 2005-08-04 | International Business Machines Corporation | Autonomous fail-over to hot-spare processor using SMI |
CN1773943A (zh) * | 2004-11-10 | 2006-05-17 | 华为技术有限公司 | 通信网节点故障监测方法 |
CN103064759A (zh) * | 2012-12-18 | 2013-04-24 | 华为技术有限公司 | 数据修复的方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7206836B2 (en) * | 2002-09-23 | 2007-04-17 | Sun Microsystems, Inc. | System and method for reforming a distributed data system cluster after temporary node failures or restarts |
US8776050B2 (en) * | 2003-08-20 | 2014-07-08 | Oracle International Corporation | Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes |
US7660314B2 (en) * | 2004-04-02 | 2010-02-09 | Samsung Electronics Co., Ltd. | Apparatus and method for multi-protocol route redistribution in a massively parallel router |
US7426657B2 (en) * | 2004-07-09 | 2008-09-16 | International Business Machines Corporation | System and method for predictive processor failure recovery |
US9229825B2 (en) * | 2013-06-28 | 2016-01-05 | International Business Machines Corporation | Quick failover of blade server |
US9280426B2 (en) * | 2013-07-24 | 2016-03-08 | Solar Turbines Incorporated | System and method for server redundancy |
-
2014
- 2014-06-20 US US14/310,835 patent/US9477564B2/en active Active
-
2015
- 2015-05-20 DE DE102015107990.9A patent/DE102015107990A1/de active Pending
- 2015-05-20 CN CN201510404027.1A patent/CN105204965B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6240526B1 (en) * | 1996-05-16 | 2001-05-29 | Resilience Corporation | Triple modular redundant computer system |
US6327675B1 (en) * | 1998-07-31 | 2001-12-04 | Nortel Networks Limited | Fault tolerant system and method |
US20050172164A1 (en) * | 2004-01-21 | 2005-08-04 | International Business Machines Corporation | Autonomous fail-over to hot-spare processor using SMI |
CN1773943A (zh) * | 2004-11-10 | 2006-05-17 | 华为技术有限公司 | 通信网节点故障监测方法 |
CN103064759A (zh) * | 2012-12-18 | 2013-04-24 | 华为技术有限公司 | 数据修复的方法及装置 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107085459A (zh) * | 2016-02-14 | 2017-08-22 | 华为技术有限公司 | 一种电源管理方法以及系统 |
CN111488048A (zh) * | 2016-02-14 | 2020-08-04 | 华为技术有限公司 | 一种电源管理方法以及系统 |
US10782770B2 (en) | 2016-02-14 | 2020-09-22 | Huawei Technologies Co., Ltd. | Power management method and system |
US11442526B2 (en) | 2016-02-14 | 2022-09-13 | Huawei Technologies Co., Ltd. | Power management method and system |
CN111488048B (zh) * | 2016-02-14 | 2023-05-16 | 华为技术有限公司 | 一种电源管理方法以及系统 |
CN105868133A (zh) * | 2016-04-29 | 2016-08-17 | 中国人民解放军国防科学技术大学 | 一种用于多结点主板的串口远程集中管理方法 |
CN105868133B (zh) * | 2016-04-29 | 2018-07-24 | 中国人民解放军国防科学技术大学 | 一种用于多结点主板的串口远程集中管理方法 |
CN111045845A (zh) * | 2019-11-29 | 2020-04-21 | 苏州浪潮智能科技有限公司 | 一种数据回传方法、装置、设备及计算机可读存储介质 |
CN111324070A (zh) * | 2020-03-04 | 2020-06-23 | 明峰医疗系统股份有限公司 | 基于fpga的ct串行探测器模块集群的调试方法 |
CN111309449A (zh) * | 2020-03-17 | 2020-06-19 | 上海蓝载信息科技有限公司 | 面向元编程、交互式编程和区块链互操作的与编程语言无关的虚拟机 |
CN111309449B (zh) * | 2020-03-17 | 2023-09-08 | 上海蓝载信息科技有限公司 | 面向元编程、交互式编程和区块链互操作的与编程语言无关的虚拟机 |
CN114448779A (zh) * | 2021-12-30 | 2022-05-06 | 锐凌无线有限责任公司 | 无线通信模组及其功能恢复方法、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
DE102015107990A1 (de) | 2015-12-24 |
CN105204965B (zh) | 2018-11-16 |
US20150370661A1 (en) | 2015-12-24 |
US9477564B2 (en) | 2016-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105204965A (zh) | 用于多节点环境中的动态节点修复的方法和装置 | |
US9859974B2 (en) | Rerouting bus data signals from faulty signal carriers to existing healthy signal carriers | |
TWI446161B (zh) | 處理一多處理器資訊處理系統之一故障處理器的裝置及方法 | |
JP2005500622A (ja) | データ転送ルーティングメカニズムを用いるコンピュータシステムパーティショニング | |
CN102388366B (zh) | 实现不同处理器兼容的方法及装置 | |
US20170147456A1 (en) | PCIe NETWORK SYSTEM WITH FAIL-OVER CAPABILITY AND OPERATION METHOD THEREOF | |
JP6034990B2 (ja) | サーバ制御方法及びサーバ制御装置 | |
TWI521441B (zh) | 運用rfid之多插槽伺服器管理技術 | |
US7043666B2 (en) | System and method for recovering from memory errors | |
CN102110035B (zh) | 多处理器计算机系统中的dmi冗余 | |
CN101589370A (zh) | 大规模并行计算机系统上的故障恢复以处理节点故障而不结束执行的作业 | |
CN105408862A (zh) | 用于微型服务器和群集化片上系统部署的可管理性冗余 | |
KR20090081405A (ko) | 파티션 유닛을 교체하는 방법 및 컴퓨터 판독가능 매체 | |
CN103403689A (zh) | 一种资源故障管理方法、装置及系统 | |
CN107430564A (zh) | 具有多个独立微控制器的微控制器装置 | |
US20240103971A1 (en) | Systems and methods for error recovery in rebootless firmware updates | |
WO2023121775A1 (en) | System, method, apparatus and architecture for dynamically configuring device fabrics | |
JP2012128697A (ja) | 情報処理装置 | |
CN112868013B (zh) | 经由边带接口恢复场域可程序门阵列固件的系统及方法 | |
CN103475514A (zh) | 无bmc的节点、集群系统及bios修复和升级方法 | |
JP6135403B2 (ja) | 情報処理システム、情報処理システムの障害処理方法 | |
CN109725940A (zh) | 用于计算系统启动的方法和计算系统 | |
US20240103836A1 (en) | Systems and methods for topology aware firmware updates in high-availability systems | |
CN104657240A (zh) | 多内核操作系统的失效控制方法及装置 | |
CN107291653B (zh) | 一种多处理器系统及配置多处理器系统的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |