CN1856772A - 用于确定一组健康的处理器和用来引导系统的关联固件的系统和方法 - Google Patents

用于确定一组健康的处理器和用来引导系统的关联固件的系统和方法 Download PDF

Info

Publication number
CN1856772A
CN1856772A CNA038188244A CN03818824A CN1856772A CN 1856772 A CN1856772 A CN 1856772A CN A038188244 A CNA038188244 A CN A038188244A CN 03818824 A CN03818824 A CN 03818824A CN 1856772 A CN1856772 A CN 1856772A
Authority
CN
China
Prior art keywords
processor
health status
abstraction
copy
group
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
CNA038188244A
Other languages
English (en)
Other versions
CN100498728C (zh
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN1856772A publication Critical patent/CN1856772A/zh
Application granted granted Critical
Publication of CN100498728C publication Critical patent/CN100498728C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明公开了一种系统和方法,用于确定一组健康的处理器和关联固件,以在重置事件后引导系统。对处理器专用固件的冗余拷贝的有效性进行检查。处理器确定它们自己的健康状态,并且一个处理器确定一组具有最佳可用健康状态的处理器。处理器间中断消息提供的通信机制使得可用一种算法来确定一组处理器以继续引导该系统。

Description

用于确定一组健康的处理器和用来引导系统的关联固件的系统和方法
技术领域
本发明一般地涉及微处理器系统,更具体地说涉及能够利用现场可升级固件进行多处理器操作的微处理器系统。
背景技术
微处理器系统内的处理器可能会依赖于固件来执行重置事件后的自检和启动操作。在多处理器系统中,即使是同一通用处理器系列中的处理器,由于处理器速度、步进版本级别(stepping level)、某种体系结构性的修改版本(revision)以及其他许多参数,也会彼此不同。因此,固件可能包含若干模块,这些模块对于一个通用处理器系列内的一组处理器是专用的。
另外,可能由于一些原因需要对这些固件模块进行现场升级。闪存或其他现场可升级存储器最初可包含初始固件模块,在以后的日期可用更新的固件模块对这些模块进行重写。然而,由于可对闪存模块进行写,因此它可能会被破坏。控制对固件进行更新的那个固件自身也可能会被破坏,因而不能对系统进行现场恢复。在此情形下,可能需要将系统返回给制造商,以将该闪存用包含未被破坏的固件的新闪存模块进行物理替换。
附图说明
在附图中以实施例而非限制性的方式示出了本发明,其中相同的标号表示相同的元件:
图1是根据一个实施方案的系统硬件组件的示意图。
图2根据一个实施方案示出了存储器中的软件组件。
图3是根据本发明的一个实施方案的组件间消息传递图。
图4的流程图根据本发明的一个实施方案,示出了本地处理器健康状况的导出。
图5的流程图根据本发明的一个实施方案,示出了健康处理器的选择和初始化。
具体实施方式
下面的描述说明了用于在多处理器系统中选择并初始化处理器的技术。在下面的描述中,给出了大量的具体细节,例如逻辑实现方式、软件模块分配、总线信令技术以及操作细节,以更透彻地理解本发明。然而,本领域的普通技术人员将会认识到,没有这些具体细节也可以实施本发明。在其他情形下,没有详细示出一些控制结构、门级电路和完整的软件指令序列,以免混淆本发明。利用在此包含的描述,本领域的普通技术人员将能实现合适的功能而无需过多的试验。本发明是以微处理器系统内的硬件的形式公开的。然而,本发明也可以其他形式的处理器来实施,例如数字信号处理器、微计算机或大型计算机。类似地,本发明是使用处理器间中断作为处理器间的信令传送方法而进行公开的。然而,本发明也可使用其他形式的信令传送来实施。
在一个实施方案中,每个处理器检查它自己的操作所需的固件模块,从而开始多处理器中健康处理器的选择和初始化。然后,每个处理器确定它自己的处理器健康状态。然后,一种确定性方法选择一个临时主处理器,该临时主处理器收集所述处理器的所有健康状态,并确定这样一组处理器,其中的所有处理器都具有最高的可用处理器健康状态。临时主处理器然后使能(enable)这一组中的处理器以继续引导操作,并对不是这一组的成员的处理器的执行进行停机或禁用它们(必要时,包括临时主处理器自己)。
现在参考图1,根据一个实施方案,示出了系统硬件组件的示意图。示出了若干处理器,即中央处理单元CPU A 110、CPU B 114、CPU C 118和CPU D 122。在其他实施方案中,可能只有一个处理器,或者有一对处理器或多于4个的处理器。在一个实施方案中,所述处理器可以与IntelItaniumTM处理器系列。诸如CPU A 110、CPU B 114、CPU C118和CPU D 122等的处理器可分别包括一个或更多中断请求寄存器(IRR),例如所示出的IRR 112、116、120和124。发送到处理器例如CPU A 110的典型中断可向IRR 112写一个值,其中IRR 112可包含一个向量,一般地描述了对该中断进行服务所需的存储器位置。CPU A 110可使能或禁用中断服务。当禁用中断服务时,IRR 112可以仍然接收所述向量,但CPU A 110可能不会自动对该中断进行服务。然而,CPU A 110可以仍然读包含在IRR 112中的向量。以这种方式对被禁用的中断服务进行操作经常被称为“轮询模式”。另外,每个处理器都包含称为LID的唯一ID。LID用作为该处理器在系统总线上的唯一地址。中断可具体地指向具有已知LID的处理器。LID值可存储在LID寄存器中,例如CPU A 110、CPU B 114、CPU C 118和CPU D 122各自的LID寄存器102、104、106和108。在其他实施方案中,LID值可存储在寄存器之外的其他电路元件中。
处理器CPU A 110、CPU B 114、CPU C 118和CPU D 122可通过系统总线130彼此连接,并与芯片组134相连。经由系统总线130和芯片组134的连接使得处理器可访问系统随机访问存储器(RAM)136、基本输入输出系统(BIOS)闪存138以及各种输入/输出(I/O)设备,例如图形控制器140和各种程序存储设备。这些程序存储设备可包括系统固定盘144和用于可拆卸介质146的驱动器。在各种实施方案中,用于可拆卸介质146的驱动器可以是磁带、可拆卸磁盘、软盘、电光盘或压缩盘-只读存储器(CD-ROM)或数字多功能盘-只读存储器(DVD-ROM)之类的光盘。I/O设备可以通过专用接口(例如高级图象端口(AGP)142)或通用接口连接到芯片组134,所述通用接口例如外围部件互连(PCI)总线(未示出)、通用串行总线(USB)(未示出)或集成驱动电子设备(IDE)总线148。其他的I/O设备可包括到局域网(LAN)150或广域网(WAN)152的连接。在其他实施方案中,可使用许多其他接口。
计算机系统100可在其体系结构中的某处包含硬件信号量(semaphore)寄存器。硬件信号量寄存器可被定义为这样的寄存器,其在重置事件后的首次读时返回一个值,并在所述首次读之后的读时返回另一个值。在一个实施方案中,芯片组134可包括硬件信号量寄存器的一个具体实施例,引导标志(BOFL)寄存器154。BOFL寄存器154在系统初始化期间可用来确定CPU A 110、CPU B 114、CPU C 118和CPU D 122中的哪个处理器可作为临时主处理器。在一个实施方案中,BOFL寄存器154可在重置事件后的首次读时返回一个值,并在之后的读时返回另一个值。在另一个实施方案中,重置事件后,处理器每一次读BOFL寄存器154时,都按预定顺序给出一个不同的数字。第一个读BOFL寄存器154的处理器接收值0。对BOFL寄存器154的后续读返回非零值。主处理器是成功地从BOFL读到值0的处理器。
在一个实施方案中,操作系统可被安装在系统固定盘144上,而操作系统的内核可被装载到系统RAM 136中。在其他实施方案中,操作系统可通过LAN 150或WAN 152而装载或执行。
现在参考图2,其根据一个实施方案,示出了存储器中的软件组件。在一个实施方案中,BIOS组件被示出为驻留在图1的BIOS闪存138中,但在其他实施方案中,BIOS可能驻留在其他形式的非易失性存储器中,或在其他形式的易失性存储器中。当软件组件驻留在非易失性存储器中时,它们可被称为固件。
BIOS可包括一般情况下与处理器相关的模块,例如处理器抽象层(PAL)固件,或者一般情况下非处理器相关的模块,例如系统抽象层(SAL)。不同的处理器可能需要不同修改版本或类型的PAL固件,这部分是因为处理器修改版本中的差别。如果可更新系统内的PAL或SAL固件的版本,并修改闪存以适应更新的版本,则可能是有优势的。
然而,试图更新闪存中的BIOS时可能会出现严重的问题。在一个简单的实施例中,如果在更新时电源被中断,则闪存可能会包含BIOS被破坏的拷贝,包括BIOS控制闪存写的那一部分。这一情况发生时,除了焊(solder)进包含正确代码的新闪存之外没有其他修复办法。为了降低这些问题的发生频度,在一个实施方案中,可对PAL代码和SAL进行划分。PAL代码可被划分为:系统初始化所需最低限度的PAL部分,称为PAL-A;以及其余代码,在一个实施方案中可称为PAL-B。而且,PAL-A然后可被细分为独立于处理器的基本PAL-A(通用PAL-A),以及给定处理器修改版本专用的PAL-A代码(专用PAL-A)。由于通用PAL-A独立于处理器,因此,它不需要被更新,因而可驻留在闪存中禁止进行更新的区域。类似地,可将SAL划分为SAL-A和SAL-B,其中SAL-A是系统初始化或恢复(包括闪存更新)所需的最低限度的SAL部分。SAL-A可进一步细分为将来不再会被更新的基本SAL-A(通用SAL-A)和可能不时需要更新的SAL-A(专用SAL-A)。为了避免更新期间的破坏,在一个实施方案中,通用PAL-A和通用SAL-A可以位于闪存不能被修改的保护部分中。
为了增加系统可用性和可靠性,专用PAL-A和专用SAL-A可以有多个拷贝。考虑这样一种系统,其中可包含两种修改版本级别的处理器,出于方便可标为类型1处理器和类型2处理器。在其他实施方案中,可能还有其他修改版本级别的其他处理器。在图2的实施方案中,对于类型1处理器,可以有通用PAL-A的一个拷贝220,但有专用PAL-A的两个拷贝(类型1基本专用PAL-A 230和类型1辅助专用PAL-A 240)。类似地,对于类型2处理器,可以有专用PAL-A的两个拷贝(类型2基本专用PAL-A 232和类型2辅助专用PAL-A 242)。还可以有通用SAL-A的一个拷贝222,以及专用SAL-A的两个拷贝,基本专用SAL-A 246和辅助专用SAL-A 260。在其他实施方案中,闪存中还可以有其他的固件拷贝和类型。在一个实施方案中,所述拷贝可以是精确的拷贝,但在其他实施方案中,所述拷贝可以具有类似的功能但不是精确的拷贝。
当一个处理器(例如一个类型1处理器)在重置事件后开始执行时,该处理器在通用PAL-A 220中的预定位置(称为重置向量)处开始执行。执行通用PAL-A 220的处理器可以使用基本固件接口表(FIT)224或辅助FIT 234来发现其他代码模块的位置。通用PAL-A 220代码通过位于固定位置基本FIT指针210和辅助FIT指针212中的向量来得知基本FIT 224和辅助FIT 234的入口点。在处理器上执行的通用PAL-A 220可使用这些FIT指针来定位FIT,然后使用FIT来定位并验证其他软件模块。例如,类型1处理器可使用基本FIT指针210来发现基本FIT 224的位置。然后,类型1处理器可使用基本FIT 224内的位置、大小、校验和以及其他参数来定位并检查类型1基本专用PAL-A 230。如果类型1处理器不能定位或验证类型1基本专用PAL-A 230,则它可以使用辅助FIT指针212和辅助FIT 234来定位并检查类型1辅助专用PAL-A 240。
如果类型1处理器定位并验证了类型1基本专用PAL-A 230或类型1辅助专用PAL-A 240,则类型1处理器然后可尝试定位并检查SAL-A。通用PAL-A 220定位类型1基本专用PAL-A 230或类型1辅助专用PAL-A 240的入口点并开始执行。然后,类型1基本专用PAL-A 230或类型1辅助专用PAL-A 240定位通用SAL-A 222,并将控制转交给它,通用SAL-A 222然后验证它自身和基本专用SAL-A 246或辅助专用SAL-A 260。在一个实施方案中,类型1处理器使用基本FIT指针210和基本FIT 224来定位并检查基本专用SAL-A 246。如果类型1处理器不能定位并验证基本专用SAL-A 246,则类型1处理器可使用辅助FIT指针212和辅助FIT 234来定位并检查辅助专用SAL-A 260。
在定位并验证初始化或恢复所需的这些PAL和SAL的部分后,在处理器上执行的通用SAL-A 222可确定与该处理器相关的处理器健康状态。健康状态的计算可由通用SAL-A 222基于各种固件有效性校验(包括校验和)来进行,在将控制转交给通用SAL-A222时还可基于通用PAL-A提供的转交状态码来进行。在确定哪种固件组件的组合具有令人满意的健康状态后,可对处理器健康状态进行排名。在一个实施方案中,如果发现并验证了基本专用PAL-A和基本专用SAL-A的拷贝,则处理器健康状态可被确定为较高。如果发现并验证了辅助专用PAL-A和辅助专用SAL-A的拷贝,则处理器健康状态可被确定为稍微较低。如果只发现并验证了基本专用PAL-A和辅助专用SAL-A、或辅助专用PAL-A和基本专用SAL-A的拷贝,则可确定甚至更低的处理器健康状态。最后,如果未发现并验证专用PAL-A或专用SAL-A的任何拷贝,则可确定最低或“致命性的”处理器健康状态。
现在参考图3,根据本公开的一个实施方案,示出了组件间消息传递图。在一个实施方案中,每一个所述消息都可携带在处理器间中断(IPI)中。在启动处理器的自检的重置事件之后,处理器可禁用中断。当处理器禁用中断时,或当处理器处于“轮询”中断模式时,向该处理器发送IPI仍可将一个向量写入到该处理器的IRR中。在此情形下,置于处理器的IRR中的向量可代表消息发送者的LID、相对健康值或其他数据。在其他实施方案中,可使用其他携带所述消息的方式,例如专用硬件处理器间的信号,或在数据总线上复用多个专用信号。在图3的实施方案中,示出了CPU A 302、CPU B 304和CPU C 306,但在其他实施方案中可有较多或较少的处理器参与到所述处理中。在重置事件后,三个处理器(CPU A 302、CPU B 304和CPU C 306)中的每一个都执行自检。在一个实施方案中,自检可包括确定处理器健康状态,如上结合图2所述。在每个处理器确定其自身的处理器健康状态后,可能希望只允许那些具有最佳可用处理器健康状态的处理器继续进行引导操作。在其他实施方案中,性能需求可能使得希望允许具有可接受的处理器健康状态的最大一组处理器继续引导操作。
在图3的实施例中,所有的3个处理器都确定了非致命性的处理器健康状态。每个处理器首先都假设它是主处理器,并给自己指定了主LID。需要这一步骤来确定不会丢失登记向量通信。在这一确定之后,每个处理器都读芯片组308的BOFL寄存器310。第一个确定其处理器健康状态的处理器(本实施例中是CPU B 304)在重置事件后作出对BOFL寄存器310的首次BOFL寄存器读312。因此,CPU B 304成为主处理器,并继续使用主LID来作为用于处理器间通信的标识符。在此实施例中,CPU A 302是第二个确定其处理器健康状态的处理器,并作出第二次BOFL寄存器读314。因此,CPU A 302成为从处理器,并使用唯一的非主LID(从1LID)作为用于处理器间通信的标识符。最后,在此实施例中,CPU C 306是第三个确定其处理器健康状态的处理器,并作出第三次BOFL寄存器读316。因此,CPU C 306成为从处理器,并使用唯一的非主LID(从2LID)作为用于处理器间通信的标识符。
当处理器确定它是从处理器时,它计算一个唯一的从LID,并向使用预定主LID的处理器发送登记消息,该消息代表了它自己的LID。在一个实施方案中,可使用从PAL传递到SAL的地理唯一的标识符来计算唯一的从LID。在一个实施方案中,PAL可根据从物理处理器封装上的一个或更多引脚上读取的值来确定这些标识符。在图3的实施例中,CPU A 302和CPU C 306分别向CPU B 304发送它们的登记消息320、322。在一个实施方案中,CPU B 304可以向发送了登记消息的处理器发出对应的健康请求消息来立即响应所述登记消息的接收。在其他实施方案中,CPU B 304在用健康请求消息进行响应之前,可等待一段预定时间以接收所有的登记消息。对于图3的实施例,CPU B 304分别向CPU A 302和CPU C 306发送健康请求消息330、332。然后,CPU A 302和CPU C 306分别以健康响应消息340、342的形式,将它们的处理器健康状态的拷贝发送到CPU B 304。在其他实施方案中,实际的健康状态可用与具体的健康状态值具有预定关系的向量来替换。
一旦具有主LID的处理器(此实施例中是CPU B 304)接收到所有响应处理器的处理器健康状态后,它可确定排名最高的可用处理器健康状态。这一组的共同处理器健康状态可称为组健康状态。在其他实施方案中,性能可能是一个问题,所确定的处理器组可能是这样的组,其具有最多数量的具有可接受的处理器健康状态的处理器。在这两类实施方案中,具有主LID的处理器(本实施例中是CPU B 304)然后发送发布(release)信号量(semaphore)消息到所有从处理器以及它自身。发布信号量可包括组健康状态的拷贝。在其他实施方案中,实际的组健康状态可用与组健康状态具有预定关系的向量来替换。
在图3的实施例中,CPU B 304分别发送发布信号量350、352和354到CPU A 302、CPU C 306以及它自身。每个处理器然后将由对应的发布信号量所代表的组健康状态与它自己的处理器健康状态进行比较。如果存在匹配,则该处理器进行引导操作。然而,如果不存在匹配,则该处理器停机或变为不活动,不进行引导操作。
现在参考图4,根据本公开的一个实施方案示出了导出局部处理器健康状态的流程图。在其他实施方案中,可进行其他固件测试、硬件测试或其某种组合来获得另一种形式的局部处理器健康状态。当图4的处理在方框410开始时,PAL在重置事件后立即获得控制,并在方框412计算PAL转交状态,将之存在寄存器中以供SAL使用。然后,PAL将控制转交给SAL。PAL可在进入恢复校验时提供这一转交状态,所述恢复校验可包括确定PAL是否与当前处理器兼容或处理器是否是完全可工作的。然后在方框414,SAL检查以前存储的PAL转交状态。PAL转交状态与SAL执行的其他测试一起被用来计算复合局部健康。PAL转交状态可传输多种可能的错误的信息。在一个实施方案中,所述可能的错误可与一组4种状态类别相关:利用基本固件拷贝的正常操作;利用辅助固件拷贝的故障恢复(failover)操作;非冗余或非关键固件组件中的故障;以及致命故障。
然后在方框418,可进行基本FIT指针和辅助FIT指针的边界校验。这可能是必要的,以防止对存储器地址空间中受保护或保留区域进行的意外访问,这些访问可能会导致系统挂起(hang)。在方框422,可对基本FIT和辅助FIT进行校验和测试。这些测试所返回的校验和可用来防止被破坏的代码的执行,或防止对被破坏的闪存表(flash table)的搜索。然后在方框426,可检查基本FIT和辅助FIT,以确定是否分别存在对应的基本专用SAL-A和辅助专用SAL-A。这一测试可确保存在合适的固件以支持任何必要的SAL-A测试。然后在方框430,可对在方框426中检测的专用SAL-A的拷贝进行校验和测试。这些测试所返回的校验和又可用来防止被破坏的代码的执行,或防止对被破坏的闪存表的搜索。
在方框434,前面的方框的结果可用来形成复合局部处理器健康状态。在一个实施方案中,可导出5个级别的处理器健康状态。在其他实施方案中,可导出其他级别的处理器健康状态。如果发现了有效的基本专用PAL-A和有效的基本专用SAL-A,则可确定最佳处理器健康状态。如果只发现了有效的辅助专用PAL-A和有效的辅助专用SAL-A,则可确定次佳处理器健康状态。如果只发现了有效的基本专用PAL-A和有效的辅助专用SAL-A,则可确定第三好的处理器健康状态。如果只发现了有效的辅助专用PAL-A和有效的基本专用SAL-A,则可确定第四好的处理器健康状态。最后,如果未发现PAL-A和SAL-A的有效组合,则可确定最坏的处理器健康状态,并且这一状态还可用其他严重错误条件来确定。
现在参考图5,根据本公开的一个实施方案示出了健康处理器的选择和初始化的流程图。系统内的每个处理器都可执行图5的处理。重置事件后所述处理开始于方框510。确定局部处理器健康状态后,处理器向自身指定主LID值,以确保不会丢失后续的登记事件。处理器然后在方框514读BOFL寄存器。然后在判断框518,处理器基于从BOFL读取的值来确定它是否已成为主处理器。如果是,则处理器通过“是”路径退出判断框518,并启动登记超时期间。在判断框522,处理器确定超时期间是否结束。如果未结束,则处理器通过“否”路径退出判断框522,并在方框526接收任何出现的登记消息(如果有的话)。处理器确定对应于登记消息的发送者的LID。在方框530,处理器通过向对应的从处理器发送健康请求消息来响应在方框526中发现的任何登记消息。然后处理器返回到判断框522。当超时期间结束时,处理器通过“是”路径退出判断框522。在方框534,处理器确定组健康状态,并向从所接收的登记消息中识别出的所有LID发送包含组健康状态的消息。然后在判断框538,处理器确定组健康状态是否与它自己的处理器健康状态匹配。如果是,则所述处理通过“是”路径退出判断框538,并且处理器在方框540继续引导操作。但是,如果不匹配,则所述处理通过“否”路径退出判断框538,并且处理器在方框544停机或变为不活动。
然而,如果在判断框518处理器确定它是从处理器,则处理器通过“否”路径退出判断框518。然后处理器向自身指定一个唯一的从LID。然后处理器在方框550向具有主LID的处理器发送代表了其LID值的登记消息。处理器然后等待,并在方框554接收对应的健康请求消息。然后在方框558,处理器在健康响应消息中发送它自己的处理器健康状态。在方框560,处理器等待并接收发布信号量消息。然后在判断框562,处理器确定组健康状态是否与其处理器健康状态匹配。如果是,则所述处理通过“是”路径退出判断框562,并且处理器在方框566继续引导操作。然而,如果不匹配,则所述处理通过“否”路径退出判断框562,并且处理器在方框544停机或变为不活动。
在前面的说明书中,己参考其具体的示例性实施方案来描述了本发明。然而,很明显可对其作出各种变体和改变而不会偏离如在所附权利要求书中表明的更宽的精神和范围。因此,本说明书和附图应被看作是说明性而非限制性的。

Claims (57)

1.一种系统,包括:
第一处理器;
在所述第一处理器上执行的通用固件;以及
第一处理器专用固件的第一拷贝;其中所述第一处理器利用所述第一处理器专用固件的所述第一拷贝来确定第一处理器健康状态。
2.如权利要求1所述的系统,还包括第一表,用于定位所述第一处理器专用固件的所述第一拷贝。
3.如权利要求2所述的系统,还包括所述第一处理器专用固件的第二拷贝,以及用于定位所述第一处理器专用固件的所述第二拷贝的第二表。
4.如权利要求3所述的系统,其中通过测试所述第一表和所述第二表来确定所述第一处理器健康状态。
5.如权利要求3所述的系统,还包括利用所述第一处理器专用固件的第二处理器。
6.如权利要求5所述的系统,其中所述第二处理器利用所述第一处理器专用固件的所述第一拷贝和所述第一处理器专用固件的所述第二拷贝来确定第二处理器健康状态。
7.如权利要求6所述的系统,其中所述第一处理器利用所述第一处理器健康状态和所述第二处理器健康状态来确定组健康状态。
8.如权利要求7所述的系统,其中所述第一处理器发送包含所述组健康状态的第二处理器发布消息。
9.如权利要求4所述的系统,还包括第三处理器、第三处理器专用固件的第一拷贝、以及所述第三处理器专用固件的第二拷贝。
10.如权利要求9所述的系统,其中所述第三处理器利用所述第三处理器专用固件的所述第一拷贝和所述第三处理器专用固件的所述第二拷贝来确定第三处理器健康状态。
11.如权利要求10所述的系统,其中所述第一处理器利用所述第一处理器健康状态和所述第三处理器健康状态来确定组健康状态。
12.一种系统,包括:
第一处理器,用于确定第一处理器健康状态;
耦合到所述第一处理器的第二处理器,用于确定第二处理器健康状态;以及
耦合到所述第一处理器和所述第二处理器的硬件信号量寄存器。
13.如权利要求12所述的系统,其中当所述第一处理器在所述第二处理器之前读所述硬件信号量寄存器时,所述第一处理器利用所述第一处理器健康状态和所述第二处理器健康状态来确定组健康状态。
14.如权利要求13所述的系统,其中所述第一处理器向所述第二处理器发送包含所述组健康状态的发布消息。
15.如权利要求14所述的系统,其中如果所述组健康状态对应于所述第二处理器健康状态,则所述第二处理器继续引导操作。
16.如权利要求14所述的系统,其中所述第一处理器从所述硬件信号量寄存器读第一值,并且所述第二处理器从所述硬件信号量寄存器读第二值。
17.如权利要求16所述的系统,其中所述第一处理器包括第一处理器中断请求寄存器,所述第二处理器包括第二处理器中断请求寄存器,其中所述第二处理器发送所述第二处理器健康状态到所述第一处理器中断请求寄存器。
18.如权利要求17所述的系统,其中所述第一处理器发送所述组健康状态到所述第二处理器中断请求寄存器。
19.一种方法,包括:
确定第一处理器健康状态;
确定第二处理器健康状态;
发送所述第二处理器健康状态到第一处理器;
根据所述第一处理器健康状态和所述第二处理器健康状态来确定组健康状态;以及
当所述组健康状态对应于所述第二处理器健康状态时,使能第二处理器以继续引导操作。
20.如权利要求19所述的方法,其中所述使能所述第二处理器的步骤包括发送所述组健康状态到所述第二处理器。
21.如权利要求20所述的方法,其中响应于健康状态请求而进行所述的发送所述第二处理器健康状态的步骤。
22.如权利要求21所述的方法,还包括在所述第二处理器读硬件信号量寄存器之前使所述第一处理器读该硬件信号量寄存器。
23.如权利要求22所述的方法,其中所述第一处理器读硬件信号量寄存器的步骤包括接收第一值。
24.如权利要求19所述的方法,其中所述确定所述第一处理器健康状态的步骤包括利用通用处理器抽象层检查第一固件接口表和第二固件接口表。
25.如权利要求24所述的方法,其中所述利用通用处理器抽象层包括检查第一处理器专用处理器抽象层的第一拷贝和第一处理器专用处理器抽象层的第二拷贝。
26.如权利要求24所述的方法,其中所述确定所述第一处理器健康状态的步骤包括确定第一处理器专用处理器抽象层的所述第一拷贝是否具有相关联的系统抽象层的第一拷贝,并且还包括确定第一处理器专用处理器抽象层的所述第二拷贝是否具有相关联的系统抽象层的第二拷贝。
27.如权利要求19所述的方法,其中所述发送所述第二处理器健康状态到第一处理器的步骤包括发送处理器间中断到所述第一处理器。
28.如权利要求27所述的方法,其中所述发送处理器间中断到所述第一处理器的步骤包括当所述第一处理器己禁用中断时,发送所述第二处理器健康状态到第一处理器中断请求寄存器。
29.如权利要求28所述的方法,其中所述确定组健康状态的步骤包括从所述第一处理器中断请求获取所述第二处理器健康状态。
30.如权利要求29所述的方法,还包括通过向所述第二处理器发送第二处理器发布消息来使能所述第二处理器,以继续引导操作。
31.如权利要求30所述的方法,其中所述使能所述第二处理器包括当所述第二处理器发布消息包括与所述第二处理器健康状态相匹配的所述组健康状态时,使能所述第二处理器。
32.一种装置,包括:
用于确定第一处理器健康状态的装置;
用于确定第二处理器健康状态的装置;
用于发送所述第二处理器健康状态到第一处理器的装置;
用于根据所述第一处理器健康状态和所述第二处理器健康状态来确定组健康状态的装置;以及
用于当所述组健康状态对应于所述第二处理器健康状态时,使能第二处理器以继续引导操作的装置。
33.如权利要求32所述的装置,其中所述用于使能所述第二处理器的装置包括用于发送所述组健康状态到所述第二处理器的装置。
34.如权利要求33所述的装置,其中所述用于发送所述第二处理器健康状态的装置对健康状态请求进行响应。
35.如权利要求34所述的装置,还包括用于在所述第二处理器读硬件信号量寄存器之前使所述第一处理器读该硬件信号量寄存器的装置。
36.如权利要求35所述的装置,其中所述用于使所述第一处理器读硬件信号量寄存器的装置包括用于接收第一值的装置。
37.如权利要求32所述的装置,其中所述用于确定所述第一处理器健康状态的装置包括用于利用通用处理器抽象层检查第一固件接口表和第二固件接口表的装置。
38.如权利要求37所述的装置,其中所述用于利用通用处理器抽象层的装置包括用于检查第一处理器专用处理器抽象层的第一拷贝和第一处理器专用处理器抽象层的第二拷贝的装置。
39.如权利要求38所述的装置,其中所述用于确定所述第一处理器健康状态的装置包括用于确定第一处理器专用处理器抽象层的所述第一拷贝是否具有相关联的系统抽象层的第一拷贝的装置,并且还包括用于确定第一处理器专用处理器抽象层的所述第二拷贝是否具有相关联的系统抽象层的第二拷贝的装置。
40.如权利要求39所述的装置,其中所述用于发送所述第二处理器健康状态到第一处理器的装置包括用于发送处理器间中断到所述第一处理器的装置。
41.如权利要求40所述的装置,其中所述用于发送处理器间中断到所述第一处理器的装置包括用于当所述第一处理器已禁用中断时,发送所述第二处理器健康状态到第一处理器中断请求寄存器的装置。
42.如权利要求41所述的装置,其中所述用于确定组健康状态的装置包括用于从所述第一处理器中断请求获取所述第二处理器健康状态的装置。
43.如权利要求42所述的装置,还包括用于通过向所述第二处理器发送第二处理器发布消息来使能所述第二处理器,以继续引导操作的装置。
44.如权利要求43所述的装置,其中所述用于使能所述第二处理器的装置包括用于当所述第二处理器发布消息包括与所述第二处理器健康状态相匹配的所述组健康状态时,使能所述第二处理器的装置。
45.一种计算机可读介质,其包含机器可执行的程序以执行包括下述步骤的处理:
确定第一处理器健康状态;
确定第二处理器健康状态;
发送所述第二处理器健康状态到第一处理器;
根据所述第一处理器健康状态和所述第二处理器健康状态来确定组健康状态;以及
当所述组健康状态对应于所述第二处理器健康状态时,使能第二处理器以继续引导操作。
46.如权利要求45所述的计算机可读介质,其中所述使能所述第二处理器包括发送所述组健康状态到所述第二处理器。
47.如权利要求46所述的计算机可读介质,其中响应于健康状态请求而进行所述的发送所述第二处理器健康状态。
48.如权利要求47所述的计算机可读介质,还包括在所述第二处理器读硬件信号量寄存器之前使所述第一处理器读该硬件信号量寄存器。
49.如权利要求48所述的计算机可读介质,其中所述第一处理器读所述硬件信号量寄存器包括接收第一值。
50.如权利要求45所述的计算机可读介质,其中所述确定所述第一处理器健康状态包括利用通用处理器抽象层检查第一固件接口表和第二固件接口表。
51.如权利要求50所述的计算机可读介质,其中所述利用通用处理器抽象层包括检查第一处理器专用处理器抽象层的第一拷贝和第一处理器专用处理器抽象层的第二拷贝。
52.如权利要求51所述的计算机可读介质,其中所述确定所述第一处理器健康状态包括确定第一处理器专用处理器抽象层的所述第一拷贝是否具有相关联的系统抽象层的第一拷贝,并且还包括确定第一处理器专用处理器抽象层的所述第二拷贝是否具有相关联的系统抽象层的第二拷贝。
53.如权利要求45所述的计算机可读介质,其中所述发送所述第二处理器健康状态到第一处理器包括发送处理器间中断到所述第一处理器。
54.如权利要求53所述的计算机可读介质,其中所述发送处理器间中断到所述第一处理器包括当所述第一处理器已禁用中断时,发送所述第二处理器健康状态到第一处理器中断请求寄存器。
55.如权利要求54所述的计算机可读介质,其中所述确定组健康状态包括从所述第一处理器中断请求获取所述第二处理器健康状态。
56.如权利要求55所述的计算机可读介质,还包括通过向所述第二处理器发送第二处理器发布消息来使能所述第二处理器,以继续引导操作。
57.如权利要求56所述的计算机可读介质,其中所述使能所述第二处理器包括当所述第二处理器发布消息包括与所述第二处理器健康状态相匹配的所述组健康状态时,使能所述第二处理器。
CNB038188244A 2002-06-11 2003-05-09 用于确定一组健康的处理器和用来引导系统的关联固件的系统和方法 Expired - Fee Related CN100498728C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/171,210 2002-06-11
US10/171,210 US7350063B2 (en) 2002-06-11 2002-06-11 System and method to filter processors by health during early firmware for split recovery architecture

Publications (2)

Publication Number Publication Date
CN1856772A true CN1856772A (zh) 2006-11-01
CN100498728C CN100498728C (zh) 2009-06-10

Family

ID=29711058

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038188244A Expired - Fee Related CN100498728C (zh) 2002-06-11 2003-05-09 用于确定一组健康的处理器和用来引导系统的关联固件的系统和方法

Country Status (9)

Country Link
US (1) US7350063B2 (zh)
JP (2) JP4263690B2 (zh)
KR (1) KR100828755B1 (zh)
CN (1) CN100498728C (zh)
AU (1) AU2003241420A1 (zh)
DE (1) DE10392810T5 (zh)
HK (1) HK1096744A1 (zh)
TW (1) TWI225204B (zh)
WO (1) WO2003104994A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102214114A (zh) * 2011-06-24 2011-10-12 深圳市江波龙电子有限公司 一种双cpu系统客户机程序的升级方法及系统

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0308708D0 (en) * 2003-04-15 2003-05-21 British Telecomm A computer system
US7673125B2 (en) * 2003-06-26 2010-03-02 Hewlett-Packard Development Company, L.P. Resetting multiple cells within a partition of a multiple partition computer system
US7434102B2 (en) * 2004-12-29 2008-10-07 Intel Corporation High density compute center resilient booting
US8214830B2 (en) * 2005-01-19 2012-07-03 Intel Corporation Performance in a virtualization architecture with a processor abstraction layer
US7971098B2 (en) * 2008-03-24 2011-06-28 Globalfoundries Inc. Bootstrap device and methods thereof
US8046631B2 (en) * 2009-04-29 2011-10-25 Lsi Corporation Firmware recovery in a raid controller by using a dual firmware configuration
US8364775B2 (en) 2010-08-12 2013-01-29 International Business Machines Corporation High availability management system for stateless components in a distributed master-slave component topology
US9015455B2 (en) * 2011-07-07 2015-04-21 Intel Corporation Processsor integral technologies for BIOS flash attack protection and notification
US8849647B2 (en) 2011-10-19 2014-09-30 Lsi Corporation Dual-firmware for next generation emulation
CN103279700A (zh) * 2013-06-08 2013-09-04 北京时代奥视数码技术有限公司 液晶监视器的固件版本验证方法和液晶监视器
KR102612842B1 (ko) 2018-09-17 2023-12-13 에스케이하이닉스 주식회사 메모리 시스템 내 펌웨어를 유지하는 방법 및 장치

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0821025B2 (ja) * 1986-09-29 1996-03-04 株式会社東芝 マルチプロセッサシステムおよび同システムの初期化方法
JPH03269759A (ja) * 1990-03-20 1991-12-02 Fujitsu Ltd マルチプロセッサ制御方式
JPH05324370A (ja) * 1992-05-21 1993-12-07 Yamatake Honeywell Co Ltd プログラム自己診断方法
JP3447404B2 (ja) * 1994-12-08 2003-09-16 日本電気株式会社 マルチプロセッサシステム
US5524209A (en) * 1995-02-27 1996-06-04 Parker; Robert F. System and method for controlling the competition between processors, in an at-compatible multiprocessor array, to initialize a test sequence
US6446199B1 (en) 1995-06-06 2002-09-03 International Business Machines Corporation Disk drive incompatible firmware recovery
US5724527A (en) * 1995-12-28 1998-03-03 Intel Corporation Fault-tolerant boot strap mechanism for a multiprocessor system
US5918047A (en) 1996-01-26 1999-06-29 Texas Instruments Incorporated Initializing a processing system
US5790850A (en) 1996-09-30 1998-08-04 Intel Corporation Fault resilient booting for multiprocessor computer systems
US5904733A (en) * 1997-07-31 1999-05-18 Intel Corporation Bootstrap processor selection architecture in SMP systems
US6058475A (en) * 1997-09-22 2000-05-02 Ncr Corporation Booting method for multi-processor computer
JPH11224244A (ja) * 1998-02-09 1999-08-17 Nec Corp 情報処理装置及びそのシステム構成情報の自動生成方法及び記録媒体
US6381693B2 (en) * 1998-12-31 2002-04-30 Intel Corp. Arrangements having firmware support for different processor types
US6601165B2 (en) * 1999-03-26 2003-07-29 Hewlett-Packard Company Apparatus and method for implementing fault resilient booting in a multi-processor system by using a flush command to control resetting of the processors and isolating failed processors
US6549961B1 (en) * 1999-10-27 2003-04-15 Infineon Technologies North America Corporation Semaphore access in a multiprocessor system
US6564348B1 (en) * 1999-11-04 2003-05-13 International Business Machines Corporation Method and apparatus for storing and using chipset built-in self-test signatures
WO2001057685A1 (en) * 2000-01-31 2001-08-09 Fujitsu Limited Server determining method and device
US6842857B2 (en) 2001-04-12 2005-01-11 International Business Machines Corporation Method and apparatus to concurrently boot multiple processors in a non-uniform-memory-access machine
US6889341B2 (en) * 2002-06-28 2005-05-03 Hewlett-Packard Development Company, L.P. Method and apparatus for maintaining data integrity using a system management processor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102214114A (zh) * 2011-06-24 2011-10-12 深圳市江波龙电子有限公司 一种双cpu系统客户机程序的升级方法及系统
CN102214114B (zh) * 2011-06-24 2014-06-04 深圳市江波龙电子有限公司 一种双cpu系统客户机程序的升级方法及系统

Also Published As

Publication number Publication date
TW200405173A (en) 2004-04-01
DE10392810T5 (de) 2005-07-14
AU2003241420A8 (en) 2003-12-22
JP4813442B2 (ja) 2011-11-09
HK1096744A1 (en) 2007-06-08
CN100498728C (zh) 2009-06-10
WO2003104994A3 (en) 2004-06-03
KR20050016545A (ko) 2005-02-21
AU2003241420A1 (en) 2003-12-22
JP2008117401A (ja) 2008-05-22
WO2003104994A2 (en) 2003-12-18
US7350063B2 (en) 2008-03-25
JP2005529406A (ja) 2005-09-29
US20030229775A1 (en) 2003-12-11
JP4263690B2 (ja) 2009-05-13
KR100828755B1 (ko) 2008-05-09
TWI225204B (en) 2004-12-11

Similar Documents

Publication Publication Date Title
JP4813442B2 (ja) システム起動処理のための良好な状態のプロセッサグループ及び関連するファームフェアを決定するシステム及び方法
JP3697178B2 (ja) ハードウェア・デバイスを管理する方法、システムおよびコンピュータ・プログラム・プロダクト
JP3954088B2 (ja) 論理分割された(lpar)計算機でシステム・ファームウェア更新を安全に実行する機構
CN101149701B (zh) 用于多线程系统中重定向中断的方法和设备
US6502208B1 (en) Method and system for check stop error handling
US6173417B1 (en) Initializing and restarting operating systems
EP1588260B1 (en) Hot plug interfaces and failure handling
US9207948B2 (en) Multi-BIOS circuit and switching method between multiple BIOS chips
US7007192B2 (en) Information processing system, and method and program for controlling the same
US7146512B2 (en) Method of activating management mode through a network for monitoring a hardware entity and transmitting the monitored information through the network
JP2017224272A (ja) ハードウェア障害回復システム
US8161322B2 (en) Methods and apparatus to initiate a BIOS recovery
JP2004342109A (ja) 入出力ファブリックにおけるハードウェア・エラーからの自動回復
JP2003323306A (ja) 論理パーティション・データ処理システムでのエラーまたはイベントを処理する方法、コンピュータ・プログラム、データ処理システム
US7984219B2 (en) Enhanced CPU RASUM feature in ISS servers
US7194614B2 (en) Boot swap method for multiple processor computer systems
US10824517B2 (en) Backup and recovery of configuration files in management device
CN113064745B (zh) 一种错误信息上报的方法、装置及介质
JP2003186697A (ja) 周辺デバイス試験システム及び方法
CN115408204A (zh) 芯片双固件备份启动方法、装置、电子设备及存储介质
JP2012038196A (ja) プログラム評価装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1096744

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1096744

Country of ref document: HK

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

Granted publication date: 20090610

Termination date: 20130509