具有故障定位器的多处理器系统的制作方法

文档序号:6405546阅读:208来源:国知局
专利名称:具有故障定位器的多处理器系统的制作方法
技术领域
本发明一般地涉及多处理器系统,在该系统中多个处理器与公用系统总线相连以便交换数据,本发明特别涉及在一多处理器系统中的故障定位。
多处理器系统的传统的故障定位技术包括检测公用系统总线入口点上一输出信号中源处理器的误差及检测由系统总线进入系统的输入信号中的目标处理器的误差。然而,如果这些误差出现在多处理器的诸如源处理器的总线驱动器、目标处理器的总线接收器和系统总线中时,则现行的技术将不能检测出其故障的位置。另外,在该系统给的一个给定的点上,一个由故障引起的信号数据误差常常可被一些处理器作为处理的数据而处理并且在不同的时间被这些处理器检测。但是,这些多次检测给识别故障位置造成了极大的困难并最终导致一系统故障。
因而本发明的一个目的是要提供一种能确定故障位置的可靠的多处理器系统,该故障可能会影响整个系统的操作。
在本发明的多处理器系统的每个处理器中,在数据被传送到一系统总线时检测一误差以及在来自系统总线的数据被接收时检测一误差。相应于数据被传送时误差的检测和相应于数据被接收时误差的检测,一个传输误差毕特和一个接收误差毕特被存贮在传输和接收误差毕特寄存器中。相应于数据被传输和接收的任一情况的误差的检测,源和目标处理器的识别编号被存贮在源和目标处理编号寄存器。多处理器系统包括一个故障定位器,该故障定位器与每个处理器的传输和接收误差毕特寄存器相连并且还与每个处理器的源和目标处理器编号寄存器相连。故障定位器分析每个处理器的传输和接收误差毕特寄存器的内容以及每个处理器的源和目标处理器编号寄存器的内容;根据所分析的结果确定该系统中的一个故障。
本发明的一个特别之处是,该故障位置的分析是依据至少三个处理器的传输和接收误差毕特寄存器的内容依据大多数的判断而作出的。这三个处理器,一个是一个源处理器,第二个是一个目标处理器以及第三个是一个处理器,该处理器如像被目标处理器所接收的那样也接收相同数据和相同的源和目标识别编号。
本发明将参照附图进一步详细描述。


图1是本发明的多处理器系统的示意框图;
图2A,2B和2C分别是图1所示的处理器A,B和C的框图;
图3是表明图2C所示的故障定位器所执行的指令序的流程图;
图4是当数据从处理器A传输到处理器B的一些典型情况的误差毕特和处理器标号的表。
现在参见附图1,附图1示出了一个本发明的多处理器系统的实施例。在这个系统中,处理器A,B,C,D和E与系统总线1相连,系统总线1是用于将来自一个源处理器的数据传送到一个目标处理器的公用传输媒介。处理器A,B,D和E的结构完全相同处理器C结构与它们的不同之处是在处理器C中增加了一个故障定位器4。每一个处理器都有一个误差指示单元2和一个诊断单元3以及处理器C的故障定位器4,该故障定向器接收来自其它处理器的误差指示单元2a,2b,2d,和2e和来自本身处理器的误差指示单元2c的信号。
处理器A的接口部分示于图2A。处理器A包括一个控制单元5a,当处理器A发送数据给一个目标处理器时,该控制单元5a产生一个传输请求信号(逻辑1)。算术逻辑单元6a提供传输数据给传输缓冲单元,传输缓冲单元包括有用来暂时寄存计算数据、目标处理器编号和源处理器编号的传输数据寄存器7a、目标处理器编号(DPN)寄存器8a和源处理器编号(SPN)寄存器9a。寄存器7a、8a和9a的输出端连接到总线驱动器10a和奇偶校验器11a。当总线驱动器10a响应来自控制单元5a的传输请求信号,同时,奇偶校验器11a对由寄存器7a发送到系统总线1的传输数据的一个误差的奇偶性进行校验时,则存贮在寄存器7a、8a和9a的传输信号被转送到系统总线1。响应于该传输请求信号,选择器12a分别从DPN和SPN寄存器8a和9a接收目标和源处理器编号,以便分别耦合到误差指示单元2a的误差指示寄存器15a和16a。如果传输数据中的一个误差被指示,则一个传输误差毕特(逻辑1)从奇偶校验器11a经过或门17a被加到寄存器15a和16a的启动端,以便分别在其中存贮目标处理器编号(DPN)和源处理器编号(SPN)。该传输误差毕特也被加到误差指示单元2a的一个传输误差毕特(TEB)寄存器14a,以便在其中存贮一个逻辑1去表明在该传输数据中有一个误差存在。
处理器A通过总线接收器18a从系统总线,由包括有一个接收的数据寄存器19a、一个目标处理器编号(DPN)寄存器20a和一个源处理器编号(SPN)寄存器21a的接收缓冲单元来接收信号。存贮在寄存器19a,20a和21a中的所有数据都被送到算术逻辑单元6a以便对存贮在寄存器19a中的数据进行计算进而送到奇偶校验器22a。当需要将数据写入其中时,则奇偶校验器22a响应来自算术逻辑单元6a的一个信号。如果在寄存器19a中该数据中的一个误差被检测,则奇偶校验器22a将一个逻辑1接收误差毕特加到一个接收误差毕特(REB)寄存器13a,同时通过或门17a加到寄存器15a,16a的启动端。在这种条件下,控制单元5a的传输请求端是逻辑O,因而来自寄存器20a和21a的DPN和SPN通过选择器12a分别加到误差指示寄存器15a和16a。
为了进行误差分析,误差指示器单元2a的寄存器13a、14a、15a和16a与诊断单元3a相连并通过各自的标志端REB(A),TEB(A),DPN(A)和SPN(A)连接到处理器C的故障定位器4。
如图2B所示,处理器B包括用以表明在REB,TEB,DPN和SPN数据中的一个误差的误差指示寄存器13b、14b、15b和16b,它们被提供给诊断单元3b并且通过各自的标志端REB(B)、TEB(B)、DPN(B)和SPN(B)提供给处理器C的故障定位器4。
在图2c中,处理器C包括用来分别存贮REB,TEB,DPN和SPN数据的误差指示寄存器13c、14c、15c和16c,它们被馈送至诊断单元3c并且分别通过各自的标志端REB(C)、TEB(C)、DPN(C)和SPN(C)馈送至处理器C的故障定位器4。处理器C中所提供的故障定位器4接收来自处理器D的REB(D)、TEB(D)、DPN(D)和SPN(D)数据并且接收来自处理器E的REB(E)、TEB(E)、DPN(E)和SPN(E)数据。
如像图3流程图所描述的,该故障定位器4被编程去执行图3所描述的图象。该程序由判断框30执行起始,该判断框30用检测REB(C)和TEB(C)毕特位的逻辑状态而确定在处理器C中传输或接收数据中是否存在一个误差。如果答案是肯定的,则该REB(C)或TEB(C)毕特位处于逻辑1,并控制程序至判断框31,判断框31确定由所识别的寄存器15(即DPN(C))中存贮的指定的目标处理器所接收的数据中是否存在一个误差。这是由检测用DPN(C)识别的REB毕特中的一个是否等于1而完成的,也就是判断是否REB(DPN(C))=1。如果答案是否定的,则处理器C被认为是处于故障状态,如果在判断框31中答案是肯定的,则程序执行至判断框32,判断框32确定被来自寄存器16c〔即SPN(C)〕中所识别的存贮的编号所指定的源处理器所传输的数据中是否存在一个误差。这是由检测被SPN(C)所识别的TEB毕特中的一个是否等于1而完成的,也就是检测是否TEB(DPN(C))=1。如果在判断框32中答案是肯定的,则执行判断框33,来检测在任何其它处理器所接收的数据中是否存在一个误差。在这种检测中,确定除了由DPN(C)所指定的处理器之外的处理器的每个REB毕特是否置于1。如果在判断框33中答案是否定的,故障定位器决定由SPN(C)所识别的源处理器是失效的。如果在框33中答案是肯定的,则控制过程至判断框34,在判断框34中,检测可疑处理器的源处理器编号是否等于源处理器编号SPN(C)。如果在框34中答案是否定的,则故障定位器确定该系统总线1是怀疑的故障。如果在框34中的决定是肯定的,则控制确定由SPN(C)所识别的源处理器是被怀疑的故障。
如果在框32的决定是否定的,则控制过程决定到框35,框35检测SPN(C)是否等于由DPN(C)所识别的一个源处理器的识别编号。如果答案是否定的,则该决定不予考虑并且控制转到框30,如果答案是肯定的,则执行到框36,框36确定在由另外的处理器所接收的数据中是否存在一个误差,也就是,在另外的处理器中该REB毕特是否置于等于1。如果是1,则控制到达框34,如果不是,则控制确定在源处理器或系统总线1的传输部分存在一个故障。
如果在框30中的判定是否定的,则继续执行至判断框37,该判断框37确定在来自任何处理器A、B、D或E的被传输的数据中是否存在一个误差,也就是说,任何这些处理器的TEB毕特是否是1。如果答案是肯定的,则控制转到框30,如果答案是否定的,则控制执行判断框38去检测在这些处理器中任一个所接收的数据中是否存在一个误差,也就是,是否这些处理器的REB毕特位被置于1。如果答案是否定的,则控制转到框30。如果答案是肯定的,则故障定位器判定该目标处理器是被怀疑的故障。
假定处理器A通过系统总线1传送数据到处理器B,这样使得存贮到数据寄存器19b和识别编号为ID=A和ID=B处理器的传输数据被分别存贮入识别寄存器20b和21b。相同的数据和处理器识别编号被处理器C接收并被分别存贮入寄存器19C、20C和21C。对一些典型的情况,参考图3和图4将会更好地说明该故障定位器的操作。
情况1如果在来自处理器A的传输数据中存在一个误差,源处理器A则被怀疑为故障,在接收误差毕特寄存器13b和13c中规定置于逻辑1并且该源处理器编号寄存器16c识别该处理器A。在这种情况下,程序控制过程通过框30、31、32和33,并且在框33中作出否定的判决。
情况2如果在来自处理器A的传输数据中不存在一个误差,目标处理器B(特别是,处理器B的接收部分)则被怀疑为故障,在接收误差毕特寄存器13b规定置于逻辑1并且在任何其它处理器的误差毕特寄存器中没有误差毕特置位。在这种情况下,该程序控制过程通过框30和37到框38,在框38中作出肯定的判决。
情况3如果在被处理器C所接收的数据中存在一个误差,使得接收误差毕特寄存器13c被置为1,则处理器C被怀疑为故障,在任何其余的误差毕特寄存器中规定没有误差毕特被置位。在这种情况下,该程序控制过程通过框30到框31,因为在由寄存器15C所识别的处理器B的接收误差寄存器13b中没有误差毕特被置位,所以在框31中作出了否定的判决。
情况4如果在接收误差毕特寄存器13b和13C中误差毕特被置位,则源处理器A的传输部分被怀疑为故障,在传输误差毕特寄存器14a中没有误差毕特被置位。在这种情况下;程序控制过程通过框30、31、32和35到36,在框36中作出否定的判决。
权利要求
1.一种多处理机系统,在该系统中,多个处理器与一系统总线相连接,以便交换数据和在所说的处理器之间交换源和目的处理器识别编号,其中每个所说的处理器包括用来在传输到所说系统总线的数据中检测一误差和在从所说的系统总线接收的数据中检测一误差的装置;用来在所说的传输数据中依据所检测的误差存贮一个传输误差毕特和在所说的接收数据中依据所检测的误差存贮一接收误差毕特的传输和接收误差毕特寄存器装置;用来在所说的二种数据的任何一种数据中依据所检测的所说的误差来存贮从所说的系统总线所接收的的源和目标处理器的识别编号的源和目标处理编号寄存器装置。在所说的多处理器系统中所包括的故障定位装置和每一个所说处理器的传输和接收误差毕特寄存器装置相连接并和每一个所说处理器的源和目标处理器编号寄存器装置相连接,用以分析每一个所说处理器的传输和接收误差毕特寄存器装置的内容和每一个所说处理器的源和目标处理器编号寄存器的内容,并依据所说的分析结果对所说系统中的一个故障进行定位。
2.根据权利要求1所要求的一种多处理器系统,其中所说的故障定位装置鉴于大多数的判决分析至少三个所说处理器的传输和接收误差毕特寄存器装置的内容。
3.根据权利要求1或2所要求的一种多处理器系统,其中所说的故障定位装置是由检测在源处理器的传输误差毕特寄存器装置中和在所说目标处理器的接收误差毕特寄存装置中以及一个第三处理器中所出现的误差毕特来确定在所说的源处理器中存在一个故障状态。
4.根据权利要求1,2或3所要求的一种多处理器,其中所说的故障定位装置是被安置在所说的第三处理器中。
5.根据上述任何权利要求所要求的一种多处理器系统,其中所说的故障定位装置是由检测在所说的目标处理器的接收误差毕特寄存器中所存在的所说误差毕特和由检测在所说第三处理器的接收误差毕特寄存器装置中缺少所说误差毕特来确定在所说目标处理器中存在一个故障状态。
6.根据上述任何权利要求所要求的一种多处理器系统,其中所说的故障定位装置由检测在所说第三处理器的接收误差毕特寄存装置中,所说误差毕特的存在和由检测在所说目标处理器的接收误差毕特寄存器装置中缺少所说误差毕特来确定在所说第三处理器中存在一种故障状态。
7.根据上述任何权利要求所要求的一种多处理器系统,其中所说的故障定位器装置由检测在源处理器的传输误差毕特寄存器装置中所说误差毕特的缺少和检测在所说目标处理器和所说第三处理器的接收误差毕特寄存器装置中所说误差毕特的存在来确定在所说源处理器存在一故障状态。
全文摘要
一多处理器系统中至少有三处理器连接一系统总线相连,在源和目标处理器之间交换系统总线数据和源和目标处理器识别编号。按传输数据中检测的误差,传输误差毕特存贮在一传输误差毕特寄存器;按接收数据中检测的误差,接收误差毕特存贮在接收误差毕特寄存器。按检测的误差,处理器ID编号也存贮到各处理器的寄存器。一故障定位器连到各处理器的传输和接收误差毕特寄存器和各处理器的ID编号寄存器去分析寄存器内容,基于大多数判定对该系统故障定位。
文档编号G06F15/16GK1040692SQ89104718
公开日1990年3月21日 申请日期1989年5月23日 优先权日1988年5月23日
发明者上原出之 申请人:日本电气株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1