一种检测多处理器系统故障的方法、系统和装置的利记博彩app

文档序号:6462030阅读:238来源:国知局
专利名称:一种检测多处理器系统故障的方法、系统和装置的利记博彩app
技术领域
本发明涉及通信技术领域,特别涉及一种检测多处理器系统故障的方法、 系统和装置。
背景技术
多处理器系统是指具备多个微处理器的计算机系统,当多个微处理器集 成在同一个集成电路基片上时也称为多处理器系统。在多处理器系统中,由 于多个微处理器能够同时进行计算处理,所以其处理能力比普通单处理器的 计算机要强大很多。对于多处理器系统来说,系统中的任何一个处理器发生故障都可能影响 整个系统的正常运行。尤其随着多处理器系统中处理器数量的增加,系统发 生故障的概率也将随之增加,而对于多处理器系统而言,系统中任何一个处 理器发生故障都可能影响整个系统的正常运行。在这种情况下,对多处理器 系统进行故障管理就是非常必要的了 。对多处理器系统进行故障管理的主要内容包括故障检测和故障恢复。故 障检测是指在某个或某些处理器发生故障之后,感知并提取故障处理器的位 置和故障的特征信息,以便掌握多处理器系统的当前运行情况,并及时采取 应对措施。而故障恢复,则是在系统发生故障后,通过各种手段使得系统能 够继续维持运行。目前常见的一种故障检测方法是,发生故障的微处理器由于运行状态异 常,而触发硬件的中断或异常,然后通过多处理器系统中的专门硬件(包括 但不限于中断控制器、互联网络等),将中断或异常信息通知到专门的硬件单 元和/或其他处理器上,完成故障的报告过程。其中,中断是计算机系统中一 种打断软件正常运行过程、执行特定软件功能的常用方法,可以由软件或外 部^f更件触发,常用于处理^5更件相关的事件或需要快速响应的事件。异常与中断类似,但主要由微处理器内部的软件或硬件触发,常用于响应处理器的不 正常状态。当处理器发生软硬件故障时,可能因为执行不正确的指令、访问 错误的存储区域、硬件看门狗超时等原因触发中断或异常。目前常用的另一种故障检测方法是,发生故障的微处理器由于运行状态 异常,而触发硬件的中断或异常,该异常由故障处理器本身的中断或异常处 理程序处理并提取相应的故障信息,然后通过系统互联发送到特定的硬件单 元或其他处理器,完成故障的报告过程。在实现本发明的过程中,发明人发现现有技术至少存在以下问题现有 技术的故障检测机制必须设置专门的硬件产生中断或异常信号,并将中断或 异常信号送到特定的硬件单元或处理器上,因此其故障检测的能力和范围依 赖于该硬件的设计。而硬件一般只能检测少数几种简单的故障,对于多处理 器系统来说,该硬件比较复杂,而且当处理器发生比较严重的软件故障或硬 件故障时,可能因无法执行中断或异常处理程序而无法完成故障检测。另外 由于故障检测依赖于特定硬件,使得故障检测的方法无法移植到不同的系统 中,且检测方法无法升级,系统投入运行后如果发现未知的故障模式,可能 必须改动硬件才能检测出来,代价较大。发明内容本发明实施例提供一种检测多处理器系统故障的方法、系统和装置,以 实现主要依靠软件进行故障检测,提高多处理器系统的故障检测能力,扩大 多处理器系统的检测范围。为达到上述目的,本发明实施例一方面提供一种检测多处理器系统故障 的方法,包括多处理器系统中被选定的主处理器生成检测指令,并向所述主处理器自 身和/或至少一个从处理器发送所述检测指令;所述主处理器接收所述主处理器自身和/或至少一个从处理器发送的;^测 结果;所述主处理器分析所述检测结果,并提取所述主处理器自身和/或至少一个从处理器中有故障处理器的故障信息。另一方面,本发明实施例还提供一种检测多处理器系统故障的系统,包括主处理器和从处理器,所述主处理器,用于生成4企测指令,向所述主处理器自身和/或至少一个 从处理器发送所述检测指令,接收所述主处理器自身和/或至少一个从处理器 发送的;^测结果,分析所述检测结果,并提取所述主处理器自身和/或至少一 个从处理器中有故障处理器的故障信息。所述从处理器,用于接收所述主处理器发送的检测指令,根据所述检测 指令执行故障检测,并在执行故障检测后向所述主处理器返回检测结果。再一方面,本发明实施例还提供一种主处理器,包括指令生成模块,用于生成检测指令;指令发送模块,用于向所述主处理器自身和/或至少一个从处理器发送所 述检测指令;检测结果接收模块,用于接收所述主处理器自身和/或至少一个从处理器 发送的检测结果;故障判断模块,用于分析所述检测结果,并提取所述主处理器自身和/或 至少一个从处理器中有故障处理器的故障信息。再一方面,本发明实施例还提供一种从处理器,包括指令接收模块,用于接收主处理器发送的检测指令;故障检测模块,用于根据所述检测指令执行故障检测;检测结果发送模块,用于向主处理器返回检测结果。与现有技术相比,本发明实施例具有以下优点本发明实施例实现了主 要依靠软件进行故障检测,降低了多处理器系统的硬件复杂性和系统成本, 增强了故障检测能力,扩大了故障检测的范围。


图1为本发明实施例的方法流程图;图2为本发明实施例中多处理器系统的结构示意图;图3为本发明实施例中主处理器结构示意图; 图4为本发明实施例中从处理器结构示意图。
具体实施方式
本发明实施例提供一种检测多处理器系统故障的方法,多处理器系统中 被选定的主处理器生成检测指令,并向所述主处理器自身和/或至少一个从处 理器发送所述检测指令,接收所述主处理器自身和/或至少一个从处理器发送 的;险测结果并进行分析,提取所述主处理器自身和/或至少一个从处理器中有 故障处理器的故障信息。该方法主要依靠软件进行故障检测,因而能够提高 多处理器系统的故障检测能力,扩大多处理器系统的检测范围。 如图1所示,为本发明实施例的方法流程图,具体包括 框图101,主处理器生成检测指令。多处理器系统的主处理器根据以下格 式和语义生成检测指令,该检测指令的格式如表1所示表1longword 0command 1longword 1paramllongword 2param2longword 3return 1其中,commandl为检测命令,其语义如下 0xl:;险测通用寄存器; 0x2:检测数据cache; 0x3:检测控制寄存器; 0x4: 4全测外部存储器; 其他值无效。其中,paraml为待检测的寄存器或存储器的起始地址;param2为待检测的寄存器或存储器的结束地址; returnl为保存4企测结果的地址。其中,上述^r测指令包括所述主处理器自身和/或至少一个从处理器的抬r 测方式、检测范围和/或4企测结果的返回方式。从而实现对各种不同功能、各 种不同存储区域、各种不同代码路径的检测,并且返回检测结果的方式也可 以配置,例如预先约定所述主处理器和/或至少一个从处理器返回4企测结果的 时间。其中,检测指令的生成时间间隔不作限定,可以根据需要定期或不定期 生成,只要频繁程度满足相应系统的故障管理的需求即可。其中,在多处理器系统上电复位时,上述主处理器由多处理器系统的系 统管理器从所述多处理器系统中指定一个或多个处理器作为主处理器,并指 定所述多处理器系统中除所述主处理器之外的处理器作为从处理器。而在多处理器系统运行过程中,所述系统管理器还可以从所述多处理器 系统中选择未标明自身有故障的一个或多个处理器作为主处理器,并指定所 述多处理器系统中除所述主处理器之外的处理器作为从处理器,以避免由于 主处理器自身故障而造成的检测功能失效。并且,所述系统管理器选择主处 理器的时间不限定,可以是定时选择,也可以是在主处理器出现故障后选择 等等。并且,所述系统管理器选择主处理器的方式不限定,可以是随机选择, 也可以是轮换选择等等。其中,当所述多个处理器同时作为主处理器时,故障判断按照多数一致 原则进行判断。例如,多处理器系统的系统管理器指定第一处理器、第二处 理器和第三处理器同时作为主处理器。当他们收到同一个处理器(第四处理 器)返回的检测结果时,第一处理器和第二处理器各自通过分析所述检测结 果判断第四处理器有故障,而第三处理器则通过分析所述^^测结果判断第四 处理器无故障,则主处理器最终的判断以第一处理器和第二处理器的判断结 果为准,即主处理器判断第四处理器有故障。步骤S102,主处理器发送检测指令。主处理器生成检测指令并将其发送, 每次发送的检测指令的参数可以根据需要在发送前进行修改。在发送完毕后, 主处理器一般等待一定的时间才能读取多处理器系统的主处理器自身和/或至 少一个从处理器主处理器自身和/或至少一个从处理器发送的检测结果,在此等待期间主处理器可以处理该多处理器系统的其他任务。步骤S103,主处理器自身和/或至少一个从处理器根据检测指令执行故障 检测。上述多处理器系统中收到检测指令的处理器根据该检测指令,可以采 用软件查询的方式对本处理器或多处理器系统的其他设备执行故障检测,而 具体的检测动作和检测时间则由该检测指令确定,具体为收到检测指令的 处理器,根据commandl域的语义执行对应的寄存器或存储器检测动作,检 测的范围由paraml和param2参数确定,检测结果写入returnl参数指定的地 址中。另外,除对所述主处理器自身和/或至少一个从处理器检测之外,也可 以对多处理器系统的其他设备进行检测。其中,表1中描述的检测指令的格式只是一个示例,不构成对本发明的 描述的限制。步骤S104,主处理器自身和/或至少一个从处理器将故障4企测的#企测结果 发送给主处理器。上述多处理器系统中收到检测指令的处理器在执行完故障 检测后,根据收到的检测指令中预先约定的返回检测结果的方式将各自的检 测结果发送给该主处理器。其中,若主处理器在;^测过程中检测到自身有故 障,则放弃本次检测的所有检测结果,并标明自身有故障,并在下次的主处 理器的指定或更换时,不再当选主处理器。步骤S105,主处理器根据检测结果提取故障信息。例如,主处理器可以 在约定的时间内读取主处理器自身和/或至少一个从处理器发送的检测结果, 根据检测结果是否符合预先约定的正常状态,以及是否按时收到检测结果, 判断相应的处理器是否工作正常。如果有处理器工作不正常,则提取该处理 器的故障信息,并进行相应的处理。上述实施例中的主处理器也可以先向自身发送所述检测指令,并根据所 述主处理器自身返回的检测结果分析并判断所述主处理器自身是否有故障, 如果所述主处理器自身无故障,则再向所述至少一个从处理器发送所述检测 指令,并进行下一步处理;如果自身有故障,则由系统管理器选定新的处理 器,并重复上述步骤。本发明实施例主要依靠软件进行故障检测,降低了多处理器系统的硬件复杂性和系统成本,增强了故障检测能力,扩大了故障检测的范围。而且这 种改进基本不影响系统的运行,不需要改动或增加硬件。如图2所示,为本发明实施例中多处理器系统的结构示意图,包括主 处理器1和至少一个从处理器2,其中,主处理器1,用于生成检测指令,向主处理器1和/或至少一个从 处理器2发送所述检测指令,接收主处理器1和/或至少一个从处理器2发送 的检测结果,分析所述检测结果,并提取主处理器1和/或至少一个从处理器 2中有故障处理器的故障信息。其中,从处理器2,用于接收主处理器l发送的检测指令,根据所述检测 指令执行故障;险测,并在执行故障4企测后向主处理器1返回检测结果。上述多处理器系统,还包括系统管理器3,用于选定主处理器l和从处 理器2。如图3所示,为本发明实施例中主处理器的结构示意图,包括指令生 成模块ll,用于生成检测指令。指令发送模块12,用于向主处理器l和/或至 少一个从处理器2发送所述检测指令。检测结果接收模块13,用于接收主处 理器1和/或至少一个从处理器2发送的检测结果。故障判断模块14,用于分 析所述检测结果,并提取主处理器1和/或至少一个从处理器2中有故障处理 器的故障信息。上述主处理器,还包括故障标明模块15,用于当主处理器l检测到自 身有故障时,则放弃本次接收的所有检测结果,并标明自身有故障。如图4所示,为本发明实施例中从处理器的结构示意图,包括指令接 收模块21,用于接收主处理器l发送的检测指令。故障检测模块22,用于根 据所述检测指令执行故障检测。检测结果发送模块,用于向主处理器1返回 检测结果。本发明实施例的主处理器主要依靠软件进行故障检测,从而降低了多处 理器系统的硬件复杂性和系统成本,并且所述故障检测软件易移植、可升级, 能够增强和改进故障检测能力,有利于不断加强系统的可靠性,而且这种改 进基本不影响系统的运行,不需要改动或增加硬件,另外,本发明实施例可以在一定程度上覆盖未知的故障模式,这是硬件检测手段很难做到的。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述 分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或 多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成 多个子才莫块。本发明实施例主要依赖故障软件检测多处理器系统的故障,从而降低了 多处理器系统的硬件复杂性和系统成本,并且所述故障检测软件易移植、可 升级,能够增强和改进故障检测能力,有利于不断加强系统的可靠性,而且 这种改进基本不影响系统的运行,不需要改动或增加硬件,另外,本发明实 施例可以在一定程度上覆盖未知的故障模式,这是硬件检测手段很难做到的。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发 明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件, 但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案 本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来, 该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算 机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实 施例所述的方法。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此, 任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
权利要求
1、一种检测多处理器系统故障的方法,其特征在于,包括多处理器系统中被选定的主处理器生成检测指令,并向所述主处理器自身和/或至少一个从处理器发送所述检测指令;所述主处理器接收所述主处理器自身和/或至少一个从处理器发送的检测结果;所述主处理器分析所述检测结果,并提取所述主处理器自身和/或至少一个从处理器中有故障处理器的故障信息。
2、 如权利要求1所述检测多处理器系统故障的方法,其特征在于,还包括所述多处理器系统的系统管理器从所述多处理器系统中指定一个或多个 处理器作为主处理器,并指定所述多处理器系统中除所述主处理器之外的处 理器作为从处理器;或者,所述系统管理器从所述多处理器系统中选择未标明自身有故障的 一个或多个处理器作为主处理器,并指定所述多处理器系统中除所述主处理 器之外的处理器作为从处理器。
3、 如权利要求2所述检测多处理器系统故障的方法,其特征在于,还包括当所述多个处理器同时作为主处理器时,故障判断按照多数一致原则进 行判断。
4、 如权利要求1所述检测多处理器系统故障的方法,其特征在于,所述 检测指令包括所述主处理器自身和/或至少一个从处理器的检测方式、检测范 围和/或4企测结果的返回方式。
5、 如权利要求1或4所述检测多处理器系统故障的方法,其特征在于, 还包括当所述主处理器检测到自身有故障时,则放弃本次接收的所有4企测结果, 并标明自身有故障。
6、 一种检测多处理器系统故障的系统,其特征在于,包括主处理器和至少一个^v处理器,所述主处理器,用于生成4企测指令,向所述主处理器自身和/或至少一个 从处理器发送所述检测指令,接收所述主处理器自身和/或至少一个从处理器 发送的检测结果,分析所述检测结果,并提取所述主处理器自身和/或至少一 个从处理器中有故障处理器的故障信息。所述从处理器,用于接收所述主处理器发送的检测指令,根据所述检测 指令执行故障检测,并在执行故障检测后向所述主处理器返回检测结果。
7、 如权利要求6所述检测多处理器系统故障的系统,其特征在于,还包括系统管理器,用于选定所述主处理器和从处理器。
8、 一种主处理器,其特征在于,包括 指令生成模块,用于生成检测指令;指令发送模块,用于向所述主处理器自身和/或至少一个从处理器发送所 述检测指令;检测结果接收模块,用于接收所述主处理器自身和/或至少一个从处理器 发送的检测结果;故障判断模块,用于分析所述斥企测结果,并提取所述主处理器自身和/或 至少一个从处理器中有故障处理器的故障信息。
9、 如权利要求8所述主处理器,其特征在于,还包括 故障标明模块,用于当所述主处理器检测到自身有故障时,则放弃本次接收的所有检测结果,并标明自身有故障。
10、 一种从处理器,其特征在于,包括 指令接收模块,用于接收主处理器发送的检测指令; 故障检测模块,用于根据所述检测指令执行故障检测; 检测结果发送模块,用于向主处理器返回检测结果。
全文摘要
本发明公开了一种检测多处理器系统故障的方法、系统和装置,该方法包括多处理器系统中被选定的主处理器生成检测指令,并向所述主处理器自身和/或至少一个从处理器发送所述检测指令;所述主处理器接收所述主处理器自身和/或至少一个从处理器发送的检测结果;所述主处理器分析所述检测结果,并提取所述主处理器自身和/或至少一个从处理器中有故障处理器的故障信息。通过本发明实施例实现了主要通过软件检测多处理器系统的故障,降低了多处理器系统的硬件复杂性和系统成本,增强了故障检测能力,扩大了故障检测的范围。
文档编号G06F11/00GK101334744SQ20081008936
公开日2008年12月31日 申请日期2008年4月15日 优先权日2007年12月27日
发明者锋 唐, 武绍芸, 薛蕴全, 亚 邓 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1