專利名稱:具有故障定位器的多處理器系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及多處理器系統(tǒng),在該系統(tǒng)中多個處理器與公用系統(tǒng)總線相連以便交換數(shù)據(jù),本發(fā)明特別涉及在一多處理器系統(tǒng)中的故障定位。
多處理器系統(tǒng)的傳統(tǒng)的故障定位技術(shù)包括檢測公用系統(tǒng)總線入口點上一輸出信號中源處理器的誤差及檢測由系統(tǒng)總線進入系統(tǒng)的輸入信號中的目標處理器的誤差。然而,如果這些誤差出現(xiàn)在多處理器的諸如源處理器的總線驅(qū)動器、目標處理器的總線接收器和系統(tǒng)總線中時,則現(xiàn)行的技術(shù)將不能檢測出其故障的位置。另外,在該系統(tǒng)給的一個給定的點上,一個由故障引起的信號數(shù)據(jù)誤差常??杀灰恍┨幚砥髯鳛樘幚淼臄?shù)據(jù)而處理并且在不同的時間被這些處理器檢測。但是,這些多次檢測給識別故障位置造成了極大的困難并最終導致一系統(tǒng)故障。
因而本發(fā)明的一個目的是要提供一種能確定故障位置的可靠的多處理器系統(tǒng),該故障可能會影響整個系統(tǒng)的操作。
在本發(fā)明的多處理器系統(tǒng)的每個處理器中,在數(shù)據(jù)被傳送到一系統(tǒng)總線時檢測一誤差以及在來自系統(tǒng)總線的數(shù)據(jù)被接收時檢測一誤差。相應(yīng)于數(shù)據(jù)被傳送時誤差的檢測和相應(yīng)于數(shù)據(jù)被接收時誤差的檢測,一個傳輸誤差畢特和一個接收誤差畢特被存貯在傳輸和接收誤差畢特寄存器中。相應(yīng)于數(shù)據(jù)被傳輸和接收的任一情況的誤差的檢測,源和目標處理器的識別編號被存貯在源和目標處理編號寄存器。多處理器系統(tǒng)包括一個故障定位器,該故障定位器與每個處理器的傳輸和接收誤差畢特寄存器相連并且還與每個處理器的源和目標處理器編號寄存器相連。故障定位器分析每個處理器的傳輸和接收誤差畢特寄存器的內(nèi)容以及每個處理器的源和目標處理器編號寄存器的內(nèi)容;根據(jù)所分析的結(jié)果確定該系統(tǒng)中的一個故障。
本發(fā)明的一個特別之處是,該故障位置的分析是依據(jù)至少三個處理器的傳輸和接收誤差畢特寄存器的內(nèi)容依據(jù)大多數(shù)的判斷而作出的。這三個處理器,一個是一個源處理器,第二個是一個目標處理器以及第三個是一個處理器,該處理器如像被目標處理器所接收的那樣也接收相同數(shù)據(jù)和相同的源和目標識別編號。
本發(fā)明將參照附圖進一步詳細描述。
圖1是本發(fā)明的多處理器系統(tǒng)的示意框圖;
圖2A,2B和2C分別是圖1所示的處理器A,B和C的框圖;
圖3是表明圖2C所示的故障定位器所執(zhí)行的指令序的流程圖;
圖4是當數(shù)據(jù)從處理器A傳輸?shù)教幚砥鰾的一些典型情況的誤差畢特和處理器標號的表。
現(xiàn)在參見附圖1,附圖1示出了一個本發(fā)明的多處理器系統(tǒng)的實施例。在這個系統(tǒng)中,處理器A,B,C,D和E與系統(tǒng)總線1相連,系統(tǒng)總線1是用于將來自一個源處理器的數(shù)據(jù)傳送到一個目標處理器的公用傳輸媒介。處理器A,B,D和E的結(jié)構(gòu)完全相同處理器C結(jié)構(gòu)與它們的不同之處是在處理器C中增加了一個故障定位器4。每一個處理器都有一個誤差指示單元2和一個診斷單元3以及處理器C的故障定位器4,該故障定向器接收來自其它處理器的誤差指示單元2a,2b,2d,和2e和來自本身處理器的誤差指示單元2c的信號。
處理器A的接口部分示于圖2A。處理器A包括一個控制單元5a,當處理器A發(fā)送數(shù)據(jù)給一個目標處理器時,該控制單元5a產(chǎn)生一個傳輸請求信號(邏輯1)。算術(shù)邏輯單元6a提供傳輸數(shù)據(jù)給傳輸緩沖單元,傳輸緩沖單元包括有用來暫時寄存計算數(shù)據(jù)、目標處理器編號和源處理器編號的傳輸數(shù)據(jù)寄存器7a、目標處理器編號(DPN)寄存器8a和源處理器編號(SPN)寄存器9a。寄存器7a、8a和9a的輸出端連接到總線驅(qū)動器10a和奇偶校驗器11a。當總線驅(qū)動器10a響應(yīng)來自控制單元5a的傳輸請求信號,同時,奇偶校驗器11a對由寄存器7a發(fā)送到系統(tǒng)總線1的傳輸數(shù)據(jù)的一個誤差的奇偶性進行校驗時,則存貯在寄存器7a、8a和9a的傳輸信號被轉(zhuǎn)送到系統(tǒng)總線1。響應(yīng)于該傳輸請求信號,選擇器12a分別從DPN和SPN寄存器8a和9a接收目標和源處理器編號,以便分別耦合到誤差指示單元2a的誤差指示寄存器15a和16a。如果傳輸數(shù)據(jù)中的一個誤差被指示,則一個傳輸誤差畢特(邏輯1)從奇偶校驗器11a經(jīng)過或門17a被加到寄存器15a和16a的啟動端,以便分別在其中存貯目標處理器編號(DPN)和源處理器編號(SPN)。該傳輸誤差畢特也被加到誤差指示單元2a的一個傳輸誤差畢特(TEB)寄存器14a,以便在其中存貯一個邏輯1去表明在該傳輸數(shù)據(jù)中有一個誤差存在。
處理器A通過總線接收器18a從系統(tǒng)總線,由包括有一個接收的數(shù)據(jù)寄存器19a、一個目標處理器編號(DPN)寄存器20a和一個源處理器編號(SPN)寄存器21a的接收緩沖單元來接收信號。存貯在寄存器19a,20a和21a中的所有數(shù)據(jù)都被送到算術(shù)邏輯單元6a以便對存貯在寄存器19a中的數(shù)據(jù)進行計算進而送到奇偶校驗器22a。當需要將數(shù)據(jù)寫入其中時,則奇偶校驗器22a響應(yīng)來自算術(shù)邏輯單元6a的一個信號。如果在寄存器19a中該數(shù)據(jù)中的一個誤差被檢測,則奇偶校驗器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數(shù)據(jù)中的一個誤差的誤差指示寄存器13b、14b、15b和16b,它們被提供給診斷單元3b并且通過各自的標志端REB(B)、TEB(B)、DPN(B)和SPN(B)提供給處理器C的故障定位器4。
在圖2c中,處理器C包括用來分別存貯REB,TEB,DPN和SPN數(shù)據(jù)的誤差指示寄存器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)數(shù)據(jù)并且接收來自處理器E的REB(E)、TEB(E)、DPN(E)和SPN(E)數(shù)據(jù)。
如像圖3流程圖所描述的,該故障定位器4被編程去執(zhí)行圖3所描述的圖象。該程序由判斷框30執(zhí)行起始,該判斷框30用檢測REB(C)和TEB(C)畢特位的邏輯狀態(tài)而確定在處理器C中傳輸或接收數(shù)據(jù)中是否存在一個誤差。如果答案是肯定的,則該REB(C)或TEB(C)畢特位處于邏輯1,并控制程序至判斷框31,判斷框31確定由所識別的寄存器15(即DPN(C))中存貯的指定的目標處理器所接收的數(shù)據(jù)中是否存在一個誤差。這是由檢測用DPN(C)識別的REB畢特中的一個是否等于1而完成的,也就是判斷是否REB(DPN(C))=1。如果答案是否定的,則處理器C被認為是處于故障狀態(tài),如果在判斷框31中答案是肯定的,則程序執(zhí)行至判斷框32,判斷框32確定被來自寄存器16c〔即SPN(C)〕中所識別的存貯的編號所指定的源處理器所傳輸?shù)臄?shù)據(jù)中是否存在一個誤差。這是由檢測被SPN(C)所識別的TEB畢特中的一個是否等于1而完成的,也就是檢測是否TEB(DPN(C))=1。如果在判斷框32中答案是肯定的,則執(zhí)行判斷框33,來檢測在任何其它處理器所接收的數(shù)據(jù)中是否存在一個誤差。在這種檢測中,確定除了由DPN(C)所指定的處理器之外的處理器的每個REB畢特是否置于1。如果在判斷框33中答案是否定的,故障定位器決定由SPN(C)所識別的源處理器是失效的。如果在框33中答案是肯定的,則控制過程至判斷框34,在判斷框34中,檢測可疑處理器的源處理器編號是否等于源處理器編號SPN(C)。如果在框34中答案是否定的,則故障定位器確定該系統(tǒng)總線1是懷疑的故障。如果在框34中的決定是肯定的,則控制確定由SPN(C)所識別的源處理器是被懷疑的故障。
如果在框32的決定是否定的,則控制過程決定到框35,框35檢測SPN(C)是否等于由DPN(C)所識別的一個源處理器的識別編號。如果答案是否定的,則該決定不予考慮并且控制轉(zhuǎn)到框30,如果答案是肯定的,則執(zhí)行到框36,框36確定在由另外的處理器所接收的數(shù)據(jù)中是否存在一個誤差,也就是,在另外的處理器中該REB畢特是否置于等于1。如果是1,則控制到達框34,如果不是,則控制確定在源處理器或系統(tǒng)總線1的傳輸部分存在一個故障。
如果在框30中的判定是否定的,則繼續(xù)執(zhí)行至判斷框37,該判斷框37確定在來自任何處理器A、B、D或E的被傳輸?shù)臄?shù)據(jù)中是否存在一個誤差,也就是說,任何這些處理器的TEB畢特是否是1。如果答案是肯定的,則控制轉(zhuǎn)到框30,如果答案是否定的,則控制執(zhí)行判斷框38去檢測在這些處理器中任一個所接收的數(shù)據(jù)中是否存在一個誤差,也就是,是否這些處理器的REB畢特位被置于1。如果答案是否定的,則控制轉(zhuǎn)到框30。如果答案是肯定的,則故障定位器判定該目標處理器是被懷疑的故障。
假定處理器A通過系統(tǒng)總線1傳送數(shù)據(jù)到處理器B,這樣使得存貯到數(shù)據(jù)寄存器19b和識別編號為ID=A和ID=B處理器的傳輸數(shù)據(jù)被分別存貯入識別寄存器20b和21b。相同的數(shù)據(jù)和處理器識別編號被處理器C接收并被分別存貯入寄存器19C、20C和21C。對一些典型的情況,參考圖3和圖4將會更好地說明該故障定位器的操作。
情況1如果在來自處理器A的傳輸數(shù)據(jù)中存在一個誤差,源處理器A則被懷疑為故障,在接收誤差畢特寄存器13b和13c中規(guī)定置于邏輯1并且該源處理器編號寄存器16c識別該處理器A。在這種情況下,程序控制過程通過框30、31、32和33,并且在框33中作出否定的判決。
情況2如果在來自處理器A的傳輸數(shù)據(jù)中不存在一個誤差,目標處理器B(特別是,處理器B的接收部分)則被懷疑為故障,在接收誤差畢特寄存器13b規(guī)定置于邏輯1并且在任何其它處理器的誤差畢特寄存器中沒有誤差畢特置位。在這種情況下,該程序控制過程通過框30和37到框38,在框38中作出肯定的判決。
情況3如果在被處理器C所接收的數(shù)據(jù)中存在一個誤差,使得接收誤差畢特寄存器13c被置為1,則處理器C被懷疑為故障,在任何其余的誤差畢特寄存器中規(guī)定沒有誤差畢特被置位。在這種情況下,該程序控制過程通過框30到框31,因為在由寄存器15C所識別的處理器B的接收誤差寄存器13b中沒有誤差畢特被置位,所以在框31中作出了否定的判決。
情況4如果在接收誤差畢特寄存器13b和13C中誤差畢特被置位,則源處理器A的傳輸部分被懷疑為故障,在傳輸誤差畢特寄存器14a中沒有誤差畢特被置位。在這種情況下;程序控制過程通過框30、31、32和35到36,在框36中作出否定的判決。
權(quán)利要求
1.一種多處理機系統(tǒng),在該系統(tǒng)中,多個處理器與一系統(tǒng)總線相連接,以便交換數(shù)據(jù)和在所說的處理器之間交換源和目的處理器識別編號,其中每個所說的處理器包括用來在傳輸?shù)剿f系統(tǒng)總線的數(shù)據(jù)中檢測一誤差和在從所說的系統(tǒng)總線接收的數(shù)據(jù)中檢測一誤差的裝置;用來在所說的傳輸數(shù)據(jù)中依據(jù)所檢測的誤差存貯一個傳輸誤差畢特和在所說的接收數(shù)據(jù)中依據(jù)所檢測的誤差存貯一接收誤差畢特的傳輸和接收誤差畢特寄存器裝置;用來在所說的二種數(shù)據(jù)的任何一種數(shù)據(jù)中依據(jù)所檢測的所說的誤差來存貯從所說的系統(tǒng)總線所接收的的源和目標處理器的識別編號的源和目標處理編號寄存器裝置。在所說的多處理器系統(tǒng)中所包括的故障定位裝置和每一個所說處理器的傳輸和接收誤差畢特寄存器裝置相連接并和每一個所說處理器的源和目標處理器編號寄存器裝置相連接,用以分析每一個所說處理器的傳輸和接收誤差畢特寄存器裝置的內(nèi)容和每一個所說處理器的源和目標處理器編號寄存器的內(nèi)容,并依據(jù)所說的分析結(jié)果對所說系統(tǒng)中的一個故障進行定位。
2.根據(jù)權(quán)利要求1所要求的一種多處理器系統(tǒng),其中所說的故障定位裝置鑒于大多數(shù)的判決分析至少三個所說處理器的傳輸和接收誤差畢特寄存器裝置的內(nèi)容。
3.根據(jù)權(quán)利要求1或2所要求的一種多處理器系統(tǒng),其中所說的故障定位裝置是由檢測在源處理器的傳輸誤差畢特寄存器裝置中和在所說目標處理器的接收誤差畢特寄存裝置中以及一個第三處理器中所出現(xiàn)的誤差畢特來確定在所說的源處理器中存在一個故障狀態(tài)。
4.根據(jù)權(quán)利要求1,2或3所要求的一種多處理器,其中所說的故障定位裝置是被安置在所說的第三處理器中。
5.根據(jù)上述任何權(quán)利要求所要求的一種多處理器系統(tǒng),其中所說的故障定位裝置是由檢測在所說的目標處理器的接收誤差畢特寄存器中所存在的所說誤差畢特和由檢測在所說第三處理器的接收誤差畢特寄存器裝置中缺少所說誤差畢特來確定在所說目標處理器中存在一個故障狀態(tài)。
6.根據(jù)上述任何權(quán)利要求所要求的一種多處理器系統(tǒng),其中所說的故障定位裝置由檢測在所說第三處理器的接收誤差畢特寄存裝置中,所說誤差畢特的存在和由檢測在所說目標處理器的接收誤差畢特寄存器裝置中缺少所說誤差畢特來確定在所說第三處理器中存在一種故障狀態(tài)。
7.根據(jù)上述任何權(quán)利要求所要求的一種多處理器系統(tǒng),其中所說的故障定位器裝置由檢測在源處理器的傳輸誤差畢特寄存器裝置中所說誤差畢特的缺少和檢測在所說目標處理器和所說第三處理器的接收誤差畢特寄存器裝置中所說誤差畢特的存在來確定在所說源處理器存在一故障狀態(tài)。
全文摘要
一多處理器系統(tǒng)中至少有三處理器連接一系統(tǒng)總線相連,在源和目標處理器之間交換系統(tǒng)總線數(shù)據(jù)和源和目標處理器識別編號。按傳輸數(shù)據(jù)中檢測的誤差,傳輸誤差畢特存貯在一傳輸誤差畢特寄存器;按接收數(shù)據(jù)中檢測的誤差,接收誤差畢特存貯在接收誤差畢特寄存器。按檢測的誤差,處理器ID編號也存貯到各處理器的寄存器。一故障定位器連到各處理器的傳輸和接收誤差畢特寄存器和各處理器的ID編號寄存器去分析寄存器內(nèi)容,基于大多數(shù)判定對該系統(tǒng)故障定位。
文檔編號G06F15/16GK1040692SQ89104718
公開日1990年3月21日 申請日期1989年5月23日 優(yōu)先權(quán)日1988年5月23日
發(fā)明者上原出之 申請人:日本電氣株式會社