CN101334744B - 一种检测多处理器系统故障的方法、系统和装置 - Google Patents
一种检测多处理器系统故障的方法、系统和装置 Download PDFInfo
- Publication number
- CN101334744B CN101334744B CN2008100893646A CN200810089364A CN101334744B CN 101334744 B CN101334744 B CN 101334744B CN 2008100893646 A CN2008100893646 A CN 2008100893646A CN 200810089364 A CN200810089364 A CN 200810089364A CN 101334744 B CN101334744 B CN 101334744B
- Authority
- CN
- China
- Prior art keywords
- processor
- primary processor
- fault
- testing result
- self
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
- Debugging And Monitoring (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种检测多处理器系统故障的方法、系统和装置,该方法包括:多处理器系统中被选定的主处理器生成检测指令,并向所述主处理器自身和/或至少一个从处理器发送所述检测指令;所述主处理器接收所述主处理器自身和/或至少一个从处理器发送的检测结果;所述主处理器分析所述检测结果,并提取所述主处理器自身和/或至少一个从处理器中有故障处理器的故障信息。通过本发明实施例实现了主要通过软件检测多处理器系统的故障,降低了多处理器系统的硬件复杂性和系统成本,增强了故障检测能力,扩大了故障检测的范围。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种检测多处理器系统故障的方法、系统和装置。
背景技术
多处理器系统是指具备多个微处理器的计算机系统,当多个微处理器集成在同一个集成电路基片上时也称为多处理器系统。在多处理器系统中,由于多个微处理器能够同时进行计算处理,所以其处理能力比普通单处理器的计算机要强大很多。
对于多处理器系统来说,系统中的任何一个处理器发生故障都可能影响整个系统的正常运行。尤其随着多处理器系统中处理器数量的增加,系统发生故障的概率也将随之增加,而对于多处理器系统而言,系统中任何一个处理器发生故障都可能影响整个系统的正常运行。在这种情况下,对多处理器系统进行故障管理就是非常必要的了。
对多处理器系统进行故障管理的主要内容包括故障检测和故障恢复。故障检测是指在某个或某些处理器发生故障之后,感知并提取故障处理器的位置和故障的特征信息,以便掌握多处理器系统的当前运行情况,并及时采取应对措施。而故障恢复,则是在系统发生故障后,通过各种手段使得系统能够继续维持运行。
目前常见的一种故障检测方法是,发生故障的微处理器由于运行状态异常,而触发硬件的中断或异常,然后通过多处理器系统中的专门硬件(包括但不限于中断控制器、互联网络等),将中断或异常信息通知到专门的硬件单元和/或其他处理器上,完成故障的报告过程。其中,中断是计算机系统中一种打断软件正常运行过程、执行特定软件功能的常用方法,可以由软件或外部硬件触发,常用于处理硬件相关的事件或需要快速响应的事件。异常与中 断类似,但主要由微处理器内部的软件或硬件触发,常用于响应处理器的不正常状态。当处理器发生软硬件故障时,可能因为执行不正确的指令、访问错误的存储区域、硬件看门狗超时等原因触发中断或异常。
目前常用的另一种故障检测方法是,发生故障的微处理器由于运行状态异常,而触发硬件的中断或异常,该异常由故障处理器本身的中断或异常处理程序处理并提取相应的故障信息,然后通过系统互联发送到特定的硬件单元或其他处理器,完成故障的报告过程。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:现有技术的故障检测机制必须设置专门的硬件产生中断或异常信号,并将中断或异常信号送到特定的硬件单元或处理器上,因此其故障检测的能力和范围依赖于该硬件的设计。而硬件一般只能检测少数几种简单的故障,对于多处理器系统来说,该硬件比较复杂,而且当处理器发生比较严重的软件故障或硬件故障时,可能因无法执行中断或异常处理程序而无法完成故障检测。另外由于故障检测依赖于特定硬件,使得故障检测的方法无法移植到不同的系统中,且检测方法无法升级,系统投入运行后如果发现未知的故障模式,可能必须改动硬件才能检测出来,代价较大。
发明内容
本发明实施例提供一种检测多处理器系统故障的方法、系统和装置,以实现主要依靠软件进行故障检测,提高多处理器系统的故障检测能力,扩大多处理器系统的检测范围。
为达到上述目的,本发明实施例一方面提供一种检测多处理器系统故障的方法,包括:
多处理器系统中被选定的主处理器生成检测指令,并向所述主处理器自身和/或至少一个从处理器发送所述检测指令;
所述主处理器接收所述主处理器自身和/或至少一个从处理器发送的检测结果;其中,所述检测结果,是接收到所述检测指令的处理器执行所述检测指令得到的结果;
所述主处理器分析所述检测结果,根据所述检测结果,判断发送所述检测结果的处理器是否工作正常,若否,提取工作不正常的处理器的故障信息。
另一方面,本发明实施例还提供一种检测多处理器系统故障的系统,包括:主处理器和从处理器,
所述主处理器,包括:指令生成模块:用于多处理器系统中被选定的主处理器生成检测指令;指令发送模块:用于向所述主处理器自身和/或至少一个从处理器发送所述检测指令;检测结果接收模块:用于所述主处理器接收所述主处理器自身和/或至少一个从处理器发送的检测结果;故障判断模块:用于分析所述检测结果,根据所述检测结果,判断发送所述检测结果的处理器是否工作正常,若否,提取工作不正常的处理器的故障信息。
所述从处理器,包括:指令接收模块:用于接收所述主处理器发送的检测指令,故障检测模块:用于执行所述检测指令进行故障检测;检测结果发送模块:用于执行所述检测指令后向所述主处理器返回检测结果。
再一方面,本发明实施例还提供一种主处理器,包括:
指令生成模块,用于多处理器系统中被选定的主处理器生成检测指令;
指令发送模块,用于向所述主处理器自身和/或至少一个从处理器发送所述检测指令;
检测结果接收模块,用于所述主处理器接收所述主处理器自身和/或至少一个从处理器发送的检测结果;
故障判断模块,用于分析所述检测结果,根据所述检测结果,判断发送所述检测结果的处理器是否工作正常,若否,并提取工作不正常的处理器的故障信息。
再一方面,本发明实施例还提供一种从处理器,包括:
指令接收模块,用于接收主处理器发送的检测指令;
故障检测模块,用于根据所述检测指令执行所述检测指令进行故障检测;
检测结果发送模块,用于执行所述检测指令后向所述主处理器返回检测结果。
与现有技术相比,本发明实施例具有以下优点:本发明实施例实现了主要依靠软件进行故障检测,降低了多处理器系统的硬件复杂性和系统成本,增强了故障检测能力,扩大了故障检测的范围。
附图说明
图1为本发明实施例的方法流程图;
图2为本发明实施例中多处理器系统的结构示意图;
图3为本发明实施例中主处理器结构示意图;
图4为本发明实施例中从处理器结构示意图。
具体实施方式
本发明实施例提供一种检测多处理器系统故障的方法,多处理器系统中被选定的主处理器生成检测指令,并向所述主处理器自身和/或至少一个从处理器发送所述检测指令,接收所述主处理器自身和/或至少一个从处理器发送的检测结果并进行分析,提取所述主处理器自身和/或至少一个从处理器中有故障处理器的故障信息。该方法主要依靠软件进行故障检测,因而能够提高多处理器系统的故障检测能力,扩大多处理器系统的检测范围。
如图1所示,为本发明实施例的方法流程图,具体包括:
框图101,主处理器生成检测指令。多处理器系统的主处理器根据以下格式和语义生成检测指令,该检测指令的格式如表1所示:
表1
longword 0 | command1 |
longword 1 | param1 |
longword 2 | param2 |
longword 3 | retum1 |
其中,command1为检测命令,其语义如下:
0x1:检测通用寄存器;
0x2:检测数据cache;
0x3:检测控制寄存器;
0x4:检测外部存储器;
其他值无效。
其中,param1为待检测的寄存器或存储器的起始地址;
param2为待检测的寄存器或存储器的结束地址;
return1为保存检测结果的地址。
其中,上述检测指令包括所述主处理器自身和/或至少一个从处理器的检测方式、检测范围和/或检测结果的返回方式。从而实现对各种不同功能、各种不同存储区域、各种不同代码路径的检测,并且返回检测结果的方式也可以配置,例如预先约定所述主处理器和/或至少一个从处理器返回检测结果的时间。
其中,检测指令的生成时间间隔不作限定,可以根据需要定期或不定期生成,只要频繁程度满足相应系统的故障管理的需求即可。
其中,在多处理器系统上电复位时,上述主处理器由多处理器系统的系统管理器从所述多处理器系统中指定一个或多个处理器作为主处理器,并指定所述多处理器系统中除所述主处理器之外的处理器作为从处理器。
而在多处理器系统运行过程中,所述系统管理器还可以从所述多处理器系统中选择未标明自身有故障的一个或多个处理器作为主处理器,并指定所述多处理器系统中除所述主处理器之外的处理器作为从处理器,以避免由于主处理器自身故障而造成的检测功能失效。并且,所述系统管理器选择主处理器的时间不限定,可以是定时选择,也可以是在主处理器出现故障后选择等等。并且,所述系统管理器选择主处理器的方式不限定,可以是随机选择,也可以是轮换选择等等。
其中,当所述多个处理器同时作为主处理器时,故障判断按照多数一致原则进行判断。例如,多处理器系统的系统管理器指定第一处理器、第二处理器和第三处理器同时作为主处理器。当他们收到同一个处理器(第四处理器)返回的检测结果时,第一处理器和第二处理器各自通过分析所述检测结果判断第四处理器有故障,而第三处理器则通过分析所述检测结果判断第四处理器无故障,则主处理器最终的判断以第一处理器和第二处理器的判断结果为准,即主处理器判断第四处理器有故障。
步骤S102,主处理器发送检测指令。主处理器生成检测指令并将其发送,每次发送的检测指令的参数可以根据需要在发送前进行修改。在发送完毕后,主处理器一般等待一定的时间才能读取多处理器系统的主处理器自身和/或至少一个从处理器主处理器自身和/或至少一个从处理器发送的检测结果,在此 等待期间主处理器可以处理该多处理器系统的其他任务。
步骤S103,主处理器自身和/或至少一个从处理器根据检测指令执行故障检测。上述多处理器系统中收到检测指令的处理器根据该检测指令,可以采用软件查询的方式对本处理器或多处理器系统的其他设备执行故障检测,而具体的检测动作和检测时间则由该检测指令确定,具体为:收到检测指令的处理器,根据command1域的语义执行对应的寄存器或存储器检测动作,检测的范围由param1和param2参数确定,检测结果写入return1参数指定的地址中。另外,除对所述主处理器自身和/或至少一个从处理器检测之外,也可以对多处理器系统的其他设备进行检测。
其中,表1中描述的检测指令的格式只是一个示例,不构成对本发明的描述的限制。
步骤S104,主处理器自身和/或至少一个从处理器将故障检测的检测结果发送给主处理器。上述多处理器系统中收到检测指令的处理器在执行完故障检测后,根据收到的检测指令中预先约定的返回检测结果的方式将各自的检测结果发送给该主处理器。其中,若主处理器在检测过程中检测到自身有故障,则放弃本次检测的所有检测结果,并标明自身有故障,并在下次的主处理器的指定或更换时,不再当选主处理器。
步骤S105,主处理器根据检测结果提取故障信息。例如,主处理器可以在约定的时间内读取主处理器自身和/或至少一个从处理器发送的检测结果,根据检测结果是否符合预先约定的正常状态,以及是否按时收到检测结果,判断相应的处理器是否工作正常。如果有处理器工作不正常,则提取该处理器的故障信息,并进行相应的处理。
上述实施例中的主处理器也可以先向自身发送所述检测指令,并根据所述主处理器自身返回的检测结果分析并判断所述主处理器自身是否有故障,如果所述主处理器自身无故障,则再向所述至少一个从处理器发送所述检测指令,并进行下一步处理;如果自身有故障,则由系统管理器选定新的处理器,并重复上述步骤。
本发明实施例主要依靠软件进行故障检测,降低了多处理器系统的硬件 复杂性和系统成本,增强了故障检测能力,扩大了故障检测的范围。而且这种改进基本不影响系统的运行,不需要改动或增加硬件。
如图2所示,为本发明实施例中多处理器系统的结构示意图,包括:主处理器1和至少一个从处理器2,
其中,主处理器1,用于生成检测指令,向主处理器1和/或至少一个从处理器2发送所述检测指令,接收主处理器1和/或至少一个从处理器2发送的检测结果,分析所述检测结果,并提取主处理器1和/或至少一个从处理器2中有故障处理器的故障信息。
其中,从处理器2,用于接收主处理器1发送的检测指令,根据所述检测指令执行故障检测,并在执行故障检测后向主处理器1返回检测结果。
上述多处理器系统,还包括:系统管理器3,用于选定主处理器1和从处理器2。
如图3所示,为本发明实施例中主处理器的结构示意图,包括:指令生成模块11,用于生成检测指令。指令发送模块12,用于向主处理器1和/或至少一个从处理器2发送所述检测指令。检测结果接收模块13,用于接收主处理器1和/或至少一个从处理器2发送的检测结果。故障判断模块14,用于分析所述检测结果,并提取主处理器1和/或至少一个从处理器2中有故障处理器的故障信息。
上述主处理器,还包括:故障标明模块15,用于当主处理器1检测到自身有故障时,则放弃本次接收的所有检测结果,并标明自身有故障。
如图4所示,为本发明实施例中从处理器的结构示意图,包括:指令接收模块21,用于接收主处理器1发送的检测指令。故障检测模块22,用于根据所述检测指令执行故障检测。检测结果发送模块,用于向主处理器1返回检测结果。
本发明实施例的主处理器主要依靠软件进行故障检测,从而降低了多处理器系统的硬件复杂性和系统成本,并且所述故障检测软件易移植、可升级,能够增强和改进故障检测能力,有利于不断加强系统的可靠性,而且这种改进基本不影响系统的运行,不需要改动或增加硬件,另外,本发明实施例可 以在一定程度上覆盖未知的故障模式,这是硬件检测手段很难做到的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
本发明实施例主要依赖故障软件检测多处理器系统的故障,从而降低了多处理器系统的硬件复杂性和系统成本,并且所述故障检测软件易移植、可升级,能够增强和改进故障检测能力,有利于不断加强系统的可靠性,而且这种改进基本不影响系统的运行,不需要改动或增加硬件,另外,本发明实施例可以在一定程度上覆盖未知的故障模式,这是硬件检测手段很难做到的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (5)
1.一种检测多处理器系统故障的方法,其特征在于,包括:
多处理器系统中被选定的主处理器生成检测指令,并向所述主处理器自身和/或至少一个从处理器发送所述检测指令;
所述主处理器接收所述主处理器自身和/或至少一个从处理器发送的检测结果;其中,所述检测结果,是接收到所述检测指令的处理器执行所述检测指令得到的结果;
所述主处理器分析所述检测结果,根据所述检测结果,判断发送所述检
测结果的处理器是否工作正常,若否,提取工作不正常的处理器的故障信息。
2.如权利要求1所述检测多处理器系统故障的方法,其特征在于,还包括:
所述多处理器系统的系统管理器从所述多处理器系统中指定一个或多个处理器作为主处理器,并指定所述多处理器系统中除所述主处理器之外的处理器作为从处理器;
或者,所述系统管理器从所述多处理器系统中选择未标明自身有故障的一个或多个处理器作为主处理器,并指定所述多处理器系统中除所述主处理器之外的处理器作为从处理器。
3.如权利要求2所述检测多处理器系统故障的方法,其特征在于,还包括:
当所述多个处理器同时作为主处理器时,故障判断按照多数一致原则进行判断。
4.如权利要求1所述检测多处理器系统故障的方法,其特征在于,所述检测指令包括所述主处理器自身和/或至少一个从处理器的检测方式、检测范围和/或检测结果的返回方式。
5.如权利要求1或4所述检测多处理器系统故障的方法,其特征在于,还包括:
当所述主处理器检测到自身有故障时,则放弃本次接收的所有检测结果,并标明自身有故障。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100893646A CN101334744B (zh) | 2007-12-27 | 2008-04-15 | 一种检测多处理器系统故障的方法、系统和装置 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710198670 | 2007-12-27 | ||
CN200710198670.9 | 2007-12-27 | ||
CN2008100893646A CN101334744B (zh) | 2007-12-27 | 2008-04-15 | 一种检测多处理器系统故障的方法、系统和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101334744A CN101334744A (zh) | 2008-12-31 |
CN101334744B true CN101334744B (zh) | 2012-05-23 |
Family
ID=40197356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100893646A Expired - Fee Related CN101334744B (zh) | 2007-12-27 | 2008-04-15 | 一种检测多处理器系统故障的方法、系统和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101334744B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101635646B (zh) * | 2009-06-24 | 2012-11-28 | 中兴通讯股份有限公司 | 主/备板卡的倒换方法及系统 |
KR101582695B1 (ko) * | 2010-01-18 | 2016-01-06 | 엘에스산전 주식회사 | 이더넷 기반 전력기기의 통신오류 감시 시스템 및 그 방법 |
CN107533502B (zh) * | 2015-04-27 | 2022-06-10 | 瑞典爱立信有限公司 | 计算基础设施资源监控方法和实体 |
US10380341B2 (en) * | 2016-04-01 | 2019-08-13 | Qualcomm Incorporated | Adaptive systems and procedures for defending a processor against transient fault attacks |
CN108694103A (zh) * | 2017-04-11 | 2018-10-23 | 北京君正集成电路股份有限公司 | 一种检测cpu的方法及装置 |
CN107844392A (zh) * | 2017-10-24 | 2018-03-27 | 北京全路通信信号研究设计院集团有限公司 | 一种x86架构cpu寄存器在线故障检测方法及装置 |
CN107894742B (zh) * | 2017-11-09 | 2020-07-24 | 山东省计算中心(国家超级计算济南中心) | 一种快速配置硬件资源的安全plc实现方法 |
CN108681277A (zh) * | 2018-05-10 | 2018-10-19 | 中国人民解放军空军工程大学 | 通用型地面phm装置及其使用方法 |
-
2008
- 2008-04-15 CN CN2008100893646A patent/CN101334744B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101334744A (zh) | 2008-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101334744B (zh) | 一种检测多处理器系统故障的方法、系统和装置 | |
Gainaru et al. | Fault prediction under the microscope: A closer look into HPC systems | |
US8135988B2 (en) | Non-intrusive gathering of diagnostic data using asynchronous mechanisms | |
CN100440157C (zh) | 用于将可恢复的错误记入日志的系统和方法 | |
CN101625657B (zh) | 监控数据处理设备和概括监控数据 | |
CN103109276B (zh) | 系统测试方法 | |
CN103034575B (zh) | 崩溃分析方法和装置 | |
US20140195860A1 (en) | Early Detection Of Failing Computers | |
EP3591485B1 (en) | Method and device for monitoring for equipment failure | |
CN106919462B (zh) | 一种生成处理器故障记录的方法及装置 | |
CN103049373B (zh) | 一种崩溃的定位方法和装置 | |
US20030084376A1 (en) | Software crash event analysis method and system | |
US8065565B2 (en) | Statistical debugging using paths and adaptive profiling | |
Chen et al. | Hybrid context inconsistency resolution for context-aware services | |
CN105204977A (zh) | 一种系统异常的捕获方法、主系统、影子系统及智能设备 | |
CN106155826B (zh) | 用于在总线结构中检测及处理错误的方法和系统 | |
CN103731315A (zh) | 一种服务器故障检测方法 | |
CN113010341A (zh) | 一种故障内存定位的方法和设备 | |
Chen et al. | Design and Evaluation of an Online Anomaly Detector for Distributed Storage Systems. | |
TWI469573B (zh) | 系統錯誤處理方法與使用其之伺服器系統 | |
JP2016085496A (ja) | 計算機システムの異常予兆検出装置および方法 | |
Deconinck et al. | Fault tolerance in massively parallel systems | |
JPWO2008120383A1 (ja) | 情報処理装置、障害処理方法 | |
Jiang et al. | FLOMA: Statistical fault localization for mobile embedded system | |
Chang et al. | An architecture on proactive detecting, quarantining, and terminating resource leakage of Java-based applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120523 Termination date: 20160415 |