一种多处理器系统故障恢复的方法及装置的制作方法

文档序号:6460176阅读:131来源:国知局
专利名称:一种多处理器系统故障恢复的方法及装置的制作方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种多处理器系统故障恢复的方法 及装置。
背景技术
多处理器系统是具备多个微处理器的计算机系统,包括传统的由多个单核 芯片组成的多处理器系统,单个多核芯片的多核系统和由多个多核芯片组成的 多处理器系统。在多处理器系统中,由于其多个^f敖处理器能够同时进行计算处 理,因此处理能力比普通单处理器系统要强大很多。多处理器系统也因其强大 的计算处理能力得到越来越广泛的应用。但是,随着多处理器系统中处理器数量的增加,系统发生故障的概率也将 随之增加,而对于多处理器系统而言,系统中任何一个处理器发生故障都可能 影响整个系统的正常运行。因此,有必要对多处理器系统进行故障管理。其中, 故障恢复是故障管理的重要组成部分,所述的故障恢复是指在系统发生故障 后,通过各种手段使系统能够继续运行。目前常见的一种故障管理方法是,预先准备若干个冗余的处理器作为备份处理器,在系统正常运行时,所述的冗余处理器不参与系统工作;当发现系统 中某个或某些处理器发生故障时,将故障处理器上的业务和数据切换到冗余处 理器上,使系统能够继续运行。这种故障管理方法中,通过将故障处理器上的 业务和数据切换到冗余处理器上的操作实现系统故障恢复,但是,由于所述的 冗余处理器在系统正常工作时不参与工作,因此这种故障恢复方法将造成对处 理器资源的浪费。另外,如果冗余处理器数量太少,当系统中出现故障的处理器较多时,由于冗余处理器数量不足而失去故障恢复能力;如果冗余处理器数 量过多,将造成资源浪费和成本提高。现有技术中还存在另外一种常见的故障管理方法,具体是在多个处理器上 运行相同的软件业务,在提供相同输入数据的情况下,各个处理器应产生相同 的数据输出。如果某个处理器发生故障,产生了异常的数据输出,则根据多数 原则进行判定,将异常的凄t据输出屏蔽掉。这种故障管理方法中,通过屏蔽故 障处理器输出的异常数据实现系统故障恢复,但是,由于系统中多个处理器运 行相同的软件业务,因此降低了多处理器系统的工作效率,浪费了处理器的处 理能力。发明人在实现本发明的过程中,发现现有技术中对多处理器系统故障恢复 的操作均存在浪费处理器的计算能力,以及多处理器系统工作效率低的问题。发明内容本发明的实施例提供了 一种多处理器系统故障恢复的方法及装置,从而避免对处理器资源的浪费。一种多处理器系统故障恢复的方法,其特征在于,包括 选定的主处理器对发生故障的硬件单元进行隔离,并将分配给所述发生故障的硬件单元的业务重新分配给系统中针对所述业务具备处理能力的正常硬件单元。一种多处理器系统故障恢复的装置,其特征在于,包括隔离模块,用于控制主处理器对发生故障的硬件单元进行隔离;业务分配模块,用于在获知所述对故障硬件单元进行隔离的操作成功后,控制主处理器将分配给所述发生故障的硬件单元的业务重新分配给系统中针对所述业务具备处理能力的正常硬件单元。由上述本发明的实施例提供的技术方案可以看出,由于本发明实施例中采用选定的主处理器对系统进行故障恢复操作,且充分利用系统中的每个处理器资源,提高了多处理器系统的工作效率,且降低了系统实现成本。


图1为本发明实施例的处理过程示意图;图2为本发明应用实施例的一种系统示意图;图3为本发明实施例提供的装置的结构示意图;图4为本发明实施例提供的用于确定主处理器的模块结构示意图。
具体实施方式
本发明实施例中,选定的主处理器对发生故障的硬件单元进行隔离,并将 分配给所述发生故障的硬件单元的业务重新分配给系统中针对所述业务具备 处理能力的正常硬件单元。所述主处理器对发生故障的硬件单元进行隔离的目 的在于防止故障硬件单元影响系统中其他正常硬件单元的运行,具体隔离方式 可以采用例如停止故障硬件单元工作、阻止其与其他处理器之间的通信等等方 式实现。其中,所述选定的主处理器对发生故障的硬件单元进行隔离的步骤前,该 方法还可以包括主处理器控制发生故障的硬件单元进行复位,且允许在复位 失败的情况下,重复对所述发生故障的硬件单元的复位操作,如果在预定次数 内复位成功,则对多处理器系统的故障恢复操作完成,不需要再继续进行后续 故障恢复操作。本发明实施例提供的方法还可以包括设置预定隔离次数,当主处理器对 发生故障的硬件单元进行隔离的操作失败时,在所述预定隔离次数内重试该操 作,若在预定隔离次数内未能成功隔离发生故障的硬件单元,则意味着通过主 处理器对多处理器系统的故障恢复才喿作失败。本发明实施例提供的方法还可以包括设置预定重分配次数,当主处理器将分配给所述发生故障的硬件单元的业务重新分配给针对所述业务具备处理 能力的正常硬件单元的操作失败时,在所述预定重分配次数内重试该搡作,若 在预定次数内成功将分配给发生故障的硬件单元的业务分配给系统中针对所述业务具备处理能力的正常硬件单元,多处理器系统故障恢复操作完成;否则, 意味着通过主处理器多处理器系统故障恢复操作失败。上述本发明实施例中,所述主处理器的确定可以通过以下任意一种方法实现(1 )指定系统中任意一个能够控制其他处理器工作的正常处理器为主处理器;(2 )通过选举算法按照预先设定的选举规则确定系统中的某个处理器为 主处理器。所述的选举规则可在实际应用过程中,根据需求进行设定。通过所 述选举算法确定的主处理器是能够控制其他处理器工作的正常处理器。其中,所述通过选举算法确定系统中的某个处理器为主处理器的操作具体 可以是当系统在启动,或者重启,或者发生故障时,通过选举算法按照预先 设定的选举规则确定系统中的某个处理器为主处理器;或者,在系统运行过程 中,当满足预定的触发条件时,则通过选举算法按照预先设定的选举规则更换 系统中的正常处理器作为主处理器。下面将结合附图对本发明实施例在实际应用过程中的具体实现方式进行 详细的^兌明。本发明实施例的处理过程如图1所示,当系统-险测到某处理器发生故障时, 主处理器对系统进行故障恢复操作,具体可以包括以下步骤步骤1、对所述故障处理器进行复位,具体可以是软件复位,也可以是硬 件复位;步骤2、判断所述步骤1的复位操作是否成功,如果成功,执行步骤8,否 则,执行步骤3;步骤3、判断所述复位操作次数是否达到预先设定的门限值n,如果是,执 行步骤4,否则,返回执行步骤1;所述的门限值n可以在实际应用过程中,由操作人员根据实际需要进行设置。步骤4、对所述故障处理器进行隔离,以使发生故障的处理器不影响系统 中其他正常处理器的运行,例如阻止故障处理器访问系统共享存储器、阻止 故障处理器与系统中其他处理器通信,等等;步骤5、判断所述步骤4的隔离操作是否成功,如果成功,执行步骤6,否 则,执行步骤9;步骤6、对所述故障处理器的软件业务和数据进行重新分配,将所述的软 件业务和数据分配给系统中针对其具备处理能力的正常工作的处理器,以维持 系统正常运行;步骤7、判断所述步骤6对软件业务和数据重新分配的操作是否成功,如果 成功,执行步骤8,否则,执行步骤9;步骤8、多处理器故障恢复完成,系统正常运行; 步骤9、多处理器故障恢复失败。其中,如果所述对故障处理器的隔离操作失败,则允许主处理器重复执行 步骤4,且当该重复操作次数达到预定的门限值时,若未成功对故障处理器进 行隔离,则表示所述通过主处理器对多处理器系统进行故障恢复失败。如果所述对故障处理器的软件业务和数据重新分配的操:作失败,则允许主 处理器重复执行步骤6,且当该重复操作次数达到预定的门限值时,若未成功 对软件业务及邀:据重新分配,则表示所述通过主处理器对多处理器系统进行故 障恢复失败。本发明应用实施例中,所述主处理器的确定可以通过以下任意一种方法实现(1 )指定系统中任意一个能够控制其他处理器工作的正常处理器为主处理器;所述的指定操作可以由才喿作人员在系统启动、重启、正常运行、或者发生 故障时完成,当指定的主处理器发生故障时,重新指定新的主处理器;也可以 在系统运行过程中,当满足预定的触发条件时,由操作人员控制,更换系统中 的指定处理器为主处理器。(2)通过选举算法按照预先设定的选举规则确定系统中的某个处理器为 主处理器。所述通过选举算法确定处理器的方法具体可以是,在系统启动,或者重启, 或者发生故障时,通过选举算法按照预先设定的选举规则确定系统中的某个处 理器为主处理器;或者,在系统运行过程中,当满足预定的触发条件时,通过 选举算法按照预先设定的选举规则更换系统中的正常处理器作为主处理器。具体可以但不仅限于采用例如自适应选举算法、分布式选举算法等现有技术中的 选举算法。为便于对上述通过选举算法确定主处理器处理过程的理解,下面将以在系 统发生故障时,和系统正常运行时为例,对主处理器的确定过程进行详细说明(1)当系统发生故障时,执行选举算法按照预先设定的选举规则确定主 处理器。其中,所述的选举规则可以但不仅限于包括处理器工作状态、处理权 限、运行速度等条件参数,还可以对所述的多个条件参数设置优先级别,例如 上述条件参数按优先级由高到低排列为<工作状态、处理权限、运行速度>,当 系统发生故障时,选举算法基于上述选举规则确定工作状态正常,即未发生故 障(基于第一优先级的工作状态参数)、能够控制系统中其他处理器工作(基 于第二优先级的处理权限参数)、能够控制发生故障的硬件单元及针对其业务 具备处理能力的硬件单元工作(基于第二优先级的处理权限参数)、且运行速 度在满足前两个优先级参数的处理器中最快(基于第三优先级的运行速度参数)的处理器为主处理器;(2)在系统运行过程中,当满足预定的触发条件时,通过选举算法按照 预先确定的选举^L则更换系统中的正常处理器作为主处理器。例如,以一定的 间隔时间作为预定的触发条件,所述的选举规则可以包括处理器工作状态、处 理权限、运行速度(按照优先级别由高到低排序)等条件参数,当达到预定的 间隔时间时,通过选举算法基于上述选举规则确定工作状态正常(基于第一优 先级的工作状态参数)、能够控制系统中其他处理器工作(基于第二优先级的 处理权限参数)、且运行速度在满足前两个优先级参数的处理器中最快(基于 第三优先级的运行速度参数)的处理器为主处理器。应当指出的是,上述两个关于主处理器确定过程的描述仅为本发明实施例 选定主处理器的实现方法中的两个具体实现方式,并不能理解为对本发明专利 范围的限定。其中选举MJ'J、触发条件等参数应根据应用中的实际需要具体确 定。上述本发明实施例提供的技术方案,不仅可以在处理器发生故障时对系统 进行故障恢复操作,当系统中其他可控的硬件单元发生故障时,也可以按照上 述步骤对系统进行故障恢复。当系统中其他硬件单元发生故障时,按照上述本 发明实施例提供的实现方案对所述硬件单元中的软件业务和数据进行重新分 配时,可将所述的软件业务和数据分配给系统中针对所述的软件和数据具备处 理能力的其他正常工作的硬件单元。例如,当系统中的存储器A发生故障时, 主处理器在对存储器A进行复位操作;当所述复位操作失败,对存储器A进行隔 离操作;所述隔离操作成功后,将分配给存储器A的数据重新分配到系统中其 他正常工作的存储器上。本发明实施例提供的故障恢复方法可以通过软件算法实现,减少了对特定 硬件的耦合,使其能适用于更多的硬件平台;而且无需设置冗余处理器,降低 了硬件设计复杂性及系统实现成本。本发明实施例提供的技术方案适用于各微处理器之间能够通过一定方法 通信,且选定的主处理器能够对其他处理器的软件、硬件运行进行控制的多处 理器系统。主处理器控制其他处理器的实现方法可以是,由主处理器直接访问 其他处理器中的控制寄存器,通过修改控制寄存器实现控制功能,例如控制其 他处理器复位、改变其状态、或停止其运行等。另外,各微处理器不要求具备 相同的结构及实现功能,且对各微处理器的空间分布无限制,即不要求各微处 理器集成在同一个集成电路基片上,或者安装在同一电路板上,或者放置在同一特定空间内,因此本发明实施例的应用范围很广泛。下面将以图2所示的多 核系统为例,详细描述通过主处理器控制系统中其他处理器完成系统故障恢复 的实现方案如图2所示,多个微处理器之间通过总线形式连接,实现通信;各微处理 器之间的处理权限不同,如处理器A实现对设备1的控制、处理器B实现对设备 1~7的控制等。步骤1、当处理器A发生故障时,通过选举算法确定处理器C为主处理器; 步骤2、主处理器C对处理器A进行复位操作;步骤3、判断所述复位操作是否成功,如果成功,所述故障恢复操作完成, 否则,执行步骤4;步骤4、判断所述复位操作是否达到预先设定的门限值n,如果是,执行步 骤5,否则执行步骤2;步骤5、主处理器C对处理器A进行隔离,所述的隔离可以是停止处理器A 工作,也可以是阻止处理器A访问设备1,等等;步骤6、判断步骤5的操作是否成功,如果成功,执行步骤7,否则,所述 通过主处理器对多处理器系统进行故障恢复的操作失败;步骤7、主处理器C将分配给处理器A的针对设备1的业务重新分配给处理 器B (处理器B针对设备1的业务具备处理能力);步骤8、判断步骤7的操作是否成功,如果成功,所述故障恢复操作完成,否则,所述通过主处理器对多处理器系统进行故障恢复的操作失败。本发明实施例还提供一种多处理器系统故障恢复的装置,其结构如图3所 示,具体实现结构可以包括(1) 隔离模块,用于控制主处理器对发生故障的硬件单元进行隔离,以 使发生故障的硬件单元不影响系统中其他硬件单元的正常工作,如果所述隔离 操作成功,则隔离模块发出信号告知所述业务分配模块可以开始工作,否则, 隔离模块发出信号告知系统故障恢复操作失败,所述业务分配模块不工作;所述主处理器对发生故障的硬件单元进行隔离的目的在于防止故障硬件 单元影响系统中其他正常硬件单元的运行,具体隔离方式可以采用例如停止故 障硬件单元工作、阻止其与其他处理器之间的通信等等方式实现。(2) 业务分配模块,用于在获知所述隔离所述故障硬件单元的操作成功 后,控制主处理器将分配给所述发生故障的硬件单元的业务重新分配给系统中 针对所述业务具备处理能力的正常硬件单元。其中,如果所述的对业务的重新 分配操作成功,则表示系统故障恢复操作成功,否则,表示系统故障恢复操作 失败。上述本发明实施例的装置中,还可以包括复位模块,用于控制主处理器对 发生故障的硬件单元进行软件或硬件复位,如果在预定次数内复位成功,所述 多处理器故障恢复操作完成;否则,通知所述隔离模块进行相应操作。上述本发明实施例的装置中,还可以包括图4所示的至少 一个用于确定主 处理器的模块,具体可以包括(1) 主处理器指定模块,用于指定系统中任意一个能够控制其他处理器 工作的正常处理器为主处理器;或者,(2) 选举算法模块,用于执行选举算法,按照预先设定的选举规则确定系统中的某个正常处理器为主处理器。其中还可以包括;f企测模块,用于当检测到系统启动、系统重启、系统发生 故障或在系统运行过程中符合预定的触发条件,则通知所述选举算法模块执行 选择主处理器的操作。在实际应用过程中,操作人员可以通过对所述条件触发 模块设置一个或多个触发条件,以实现相应的触发功能。综上所述,在本发明实施例提供的技术方案中,由于系统中所有正常处理 器均参与业务处理,且无需由多个处理器完成相同的数据处理工作,因此充分 利用各个处理器的处理能力,提高了多处理器系统的工作率及处理能力。以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局 限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易 想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护 范围应该以权利要求的保护范围为准。
权利要求
1、一种多处理器系统故障恢复的方法,其特征在于,包括选定的主处理器对发生故障的硬件单元进行隔离,并将分配给所述发生故障的硬件单元的业务重新分配给系统中针对所述业务具备处理能力的正常硬件单元。
2、 根据权利要求1所述的方法,其特征在于,所述选定的主处理器对发生 故障的硬件单元进行隔离的步骤前,该方法还包括主处理器控制发生故障的硬件单元进行复位,且如果在预定次数内复位成 功,所述多处理器系统故障恢复操作完成。
3、 根据权利要求2所述的方法,其特征在于,该方法还包括 设置预定隔离次数,当主处理器对发生故障的硬件单元进行隔离的操作失败,在所述预定隔离次数内重试该操作。
4、 根据权利要求2所述的方法,其特征在于,该方法还包括 设置预定重分配次数,当主处理器将分配给所述发生故障的硬件单元的业务重新分配给针对所述业务具备处理能力的正常硬件单元的操作失败,在所述 预定重分配次数内重试该操作。
5、 根据权利要求1 4任意一项所述的方法,其特征在于,所述选定的主处 理器的确定方式包括指定系统中任意一个能够控制其他处理器工作的正常处理器为主处理器; 或者,通过选举算法按照预先设定的选举规则确定系统中的某个正常处理器为 主处理器。
6、 根据权利要求5所述的方法,其特征在于,如果通过选举算法确定主处 理器,该方法还包括当系统启动时,通过选举算法按照预先设定的选举规则确定系统中的某个正常处理器为主处理器; 或者,当系统重启时,通过选举算法按照预先设定的选举规则确定系统中的某个 正常处理器为主处理器; 或者,当系统发生故障时,通过选举算法按照预先设定的选举规则确定系统中的 某个正常处理器为主处理器; 或者,在系统运行过程中,当满足预定的触发条件时,通过选举算法按照预先设 定的选举规则更换系统中的正常处理器作为主处理器。
7、 一种多处理器系统故障恢复的装置,其特征在于,包括隔离模块,用于控制主处理器对发生故障的硬件单元进行隔离; 业务分配模块,用于在获知所述对发生故障的硬件单元进行隔离的操作成功后,控制主处理器将分配给所述发生故障的硬件单元的业务重新分配给系统中针对所述业务具备处理能力的正常硬件单元。
8、 根据权利要求7所述的装置,其特征在于,该装置还包括 复位模块,用于控制主处理器对发生故障的硬件单元进行复位,如果在预定次数内复位成功,所述多处理器故障恢复操作完成;否则,通知所述隔离模 块执行隔离发生故障的硬件单元的操作。
9、 根据权利要求7或8任意一项所述的装置,其特征在于,该装置还包括 主处理器指定模块,用于指定系统中任意一个能够控制其他处理器工作的正常处理器为主处理器; 或者,选举算法模块,用于执行选举算法,按照预先设定的选举规则确定系统中的某个正常处理器为主处理器。
10、根据权利要求9所述的装置,其特征在于,如果采用选举算法模块, 该装置还包括检测模块,用于当检测到系统启动、系统重启、系统发生故障或 在系统运行过程中符合预定的触发条件,通知所述选举算法模块执行选择主处 理器的操作。
全文摘要
一种多处理器系统故障恢复的方法及装置,具体包括选定的主处理器对发生故障的硬件单元进行隔离,并将分配给所述发生故障的硬件单元的业务重新分配给系统中针对所述业务具备处理能力的正常硬件单元,以完成故障恢复操作。由于本发明实施例提供的技术方案通过选定的主处理器控制系统故障恢复操作,且系统中各处理器均参与数据处理工作,因此提高了系统资源利用率及工作效率。
文档编号G06F11/14GK101216793SQ20081005646
公开日2008年7月9日 申请日期2008年1月18日 优先权日2008年1月18日
发明者锋 唐, 武绍芸, 薛蕴全, 亚 邓 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1