DE69120104T2 - Fehlerbeseitigung für Superrechner - Google Patents
Fehlerbeseitigung für SuperrechnerInfo
- Publication number
- DE69120104T2 DE69120104T2 DE69120104T DE69120104T DE69120104T2 DE 69120104 T2 DE69120104 T2 DE 69120104T2 DE 69120104 T DE69120104 T DE 69120104T DE 69120104 T DE69120104 T DE 69120104T DE 69120104 T2 DE69120104 T2 DE 69120104T2
- Authority
- DE
- Germany
- Prior art keywords
- computer
- processor
- arithmetic processors
- arithmetic
- memory
- 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
- 238000013024 troubleshooting Methods 0.000 title 1
- 238000012360 testing method Methods 0.000 claims abstract description 4
- 238000000034 method Methods 0.000 claims description 22
- 230000004044 response Effects 0.000 claims description 6
- 238000011084 recovery Methods 0.000 abstract description 3
- 230000002349 favourable effect Effects 0.000 abstract 2
- 230000015556 catabolic process Effects 0.000 description 21
- 238000006731 degradation reaction Methods 0.000 description 21
- 238000013519 translation Methods 0.000 description 4
- 230000000593 degrading effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1417—Boot up procedures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0763—Error or fault detection not based on redundancy by bit configuration check, e.g. of formats or tags
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
- Complex Calculations (AREA)
- Processing Or Creating Images (AREA)
- Image Processing (AREA)
Description
- Die Erfindung betrifft Fehlerbeseitigungsverarbeitung für ein Datenverarbeitungssystem und insbesondere Fehlerbeseitigungsverarbeitung für Supercomputer, z.B. für Vektorprozessoren.
- Fehlerbehandlung in Mehrprozessorenanordnungen ist beispielsweise aus US-A-3 374 465 bekannt.
- Supercomputer können Daten mit Geschwindigkeiten verarbeiten, die eine Größenordnung höher ist als die Arbeitsgeschwindigkeit von Allzweckcomputern, und werden in großem Maße für wissenschaftliche Berechnungen für Forschungs- und Entwicklungsprojekte verwendet. Supercomputer werden normalerweise mit zwei Grundüberlegungen implementiert. Die eine ist eine Technik zum Verringern der Arbeitsgeschwindigkeit bei einer gegebenen Menge von Eingangsdaten. Dies wird insbesondere dadurch erreicht, daß der Taktzyklus verkürzt wird. Der Taktzyklus von Supercomputern ist im Vergleich zu Allzweckcomputern Jahr für Jahr verkürzt worden, und eine neue Version eines Supercomputers kann immerhin sechzehn 64-Bit-Register zum Ausführen von Fließkommarechenvorgängen in Taktintervallen von 2,9 ns realisieren. Diese Geschwindigkeit liegt eine Größenordnung höher als die Geschwindigkeit von Allzweckcomputern.
- Die zweite Überlegung betrifft die Verringerung der Häufigkeit des Zugriffs auf den Hauptspeicher. Da Supercomputer während jedes Prozesses eine große Menge von Daten verarbeiten, schränken häufige Zugriffe auf den Hauptspeicher die Arbeitsleistung des Supercomputers ein. Zu diesem Zweck sind Register in großen Mengen vorgesehen, um Daten zu speichern, deren Zugriffszeit im Vergleich zu der Zugriffszeit des Hauptspeichers deutlich verringert werden kann. Zur effizienten Ausnutzung solcher Register sind diese so ausgeführt, daß sie als "softwaresichtbare" Register, die programmiert werden können, fungieren.
- Da der Supercomputer einen kleinen Maschinenzyklus und eine große Menge von Softwaredaten hat, ist es unpraktisch, in softwaresichtbaren Registern gespeicherte Daten zu halten, um Anweisungswiederholungs- oder Prozessorentlastungsvorgänge ähnlich wie beim Fehlerbeseitigungsablauf, bei Allzweckcomputern abläuft, auszuführen. Daher könnte ein Fehler in irgendeinem Teil des Supercomputers zu einem totalen Systemausfall führen, was dazu führt, daß alle in Verarbeitung befindlichen Arbeitsaufgaben sowie alle nachfolgenden Arbeitsaufgaben abgebrochen werden.
- Daher ist es eine Aufgabe der Erfindung, die in den beigefügten Ansprüchen definiert ist, ein Fehlerbeseitigungsverfahren und einen Fehlerbeseitigungsprozessor für Hochgeschwindigkeitscomputer bereitzustellen, das bzw. der die Systemausfallzeit minimiert.
- In einem Hochgeschwindigkeitscomputer mit einem Speicher und mehreren Arithmetikprozessoren (AP), die in Gruppen eingeteilt sind, sind die Artithmetikprozessoren jeder Gruppe mit dem Speicher in hierarchischer Ordnung in einer Beziehung Hauptprozessor-untergeordneter Prozessor verbunden, wobei der Speicher und die Arithmetikprozessoren ein Alarmsignal erzeugen, das einen fehlerhaften Teil des Speichers und jedes der Arithmetikprozessoren anzeigt. Das Alarmsignal wird analysiert, um zu bestimmen, ob der Computer in einem möglicherweise wiederherstellbaren Zustand ist. Wenn der Computer in einem wiederherstellbaren Zustand ist, wird auf ihm ein Prüfprogramm ausgeführt, um zu bestimmen, ob er richtig funktioniert. Wenn das Prüfprogramm anzeigt, daß der Computer richtig funktioniert, wird er in einer Originalsystemkonfiguration neu gestartet. Andernfalls wird in Abhängigkeit vom Alarmsignal ein Teil der Arithmetikprozessoren vom Computer getrennt, um den Computer zu einer ersten degradierten Systemkonfiguration zu degradieren. Das Prüfprogramm wird auf dem Computer in der ersten degradierten Systemkonfiguration ausgeführt. Wenn das Ergebnis der zweiten Prüfung anzeigt, daß der Computer richtig funktioniert, wird er in der ersten degradierten Systemkonfiguration neu gestartet. Andernfalls werden in Abhängigkeit vom Alarmsignal ein oder mehrere Arithmetikprozessoren vom Computer getrennt, so daß der Computer zu einer zweiten degradierten Systemkonfiguration degradiert wird, damit der Computer in der zweiten degradierten Systemkonfiguration neu gestartet werden kann.
- In einer bevorzugten erfindungsgemäßen Ausführungsform weist jeder Arithmetikprozessor mehrere Vektorpipelines auf, und in Abhängigkeit von einem Ergebnis des Prüfprogramms wird jedem der Arithmetikprozessoren ein Gültig/ungültig-Code zugewiesen, wobei der Gültig/ungültig-Code jeden der Arithmetikprozessoren jeder Gruppe als mit dem Computer verbindbar oder vom Computer trennbar identifiziert. Die Gesamtanzahl der Vektorpipelines, die für eine Gruppe der Arithmetikprozessoren verfügbar ist, wird mit einer Gesamtanzahl von Vektorpipelines verglichen, die für die andere Gruppe der Arithmetikprozessoren verfügbar ist. Der Gültig/ungültig-Code, der dem Hauptarithmetikprozessor der Gruppe zugewiesen wird, wird gewählt, wenn diese Gruppe eine größere Anzahl von verfügbaren Vektorpipelines hat. Der Gültig/ungültig-Code, der jedem der Arithmetikprozessoren zugewiesen wird, wird mit dem gewählten Gültig/ungültig-Code verglichen, um zu bestimmen, ob die Vektorpipelines jedes der Arithmetikprozessoren vom Computer getrennt werden sollen oder jeder der Arithmetikprozessoren als Ganzes vom Computer getrennt werden soll.
- Die Erfindung wird nachstehend ausführlich mit Bezug auf die beigefügten Zeichnungen beschrieben. Dabei zeigen.
- Fig. 1 in Blockschaltbildform einen Pipeline- bzw. Vektorcomputer mit einem erfindungsgemäßen Fehlerbeseitigungsprozessor;
- Fig. 2 Einzelheiten eines Hauptarithmetikprozessors gemäß Fig. 1;
- Fig. 3A bis 3F in Ablaufplanform die programmierten Befehle, die vom erfindungsgemäßen Fehlerbeseitigungsprozessor ausgeführt werden;
- Fig. 4 eine Darstellung einer Translations- bzw. Umsetzungstabelle zum Zuweisen eines Gültig/ungültig-Codes zu jedem Arithmetikprozessor, um eine Vektorpipelinedegradierung durch zuführen; und
- Fig. 5 schematisch ein Computersystem, das entsprechend verschiedenen Systemausfällen neu konfiguriert worden ist.
- In Fig. 1 ist ein Vektorcomputer mit dem erfindungsgemäßen Fehlerbeseitigungsprozessor dargestellt. Der Vektorcomputer weist auf: einen Eingangs/Ausgangsprozessor 13 zum Steuern der peripheren Einheiten des Systems und einen Steuerprozessor 14, der die Gesamtsteuerung des Systems durchführt, indem er die OS-(Betriebssystem-)Programme und Steuerdaten, die im Hauptspeicher 11 gespeichert sind, ausführt, und die Neukonfigurierung des OS als Antwort auf ein Systemneukonfigurierungssignal, das von einem Fehlerbeseitigungsprozessor 17 kommt, ausführt. Außerdem fungiert der Steuerprozessor 14 als Supervisor zum Übersetzen und Verbinden von Anwenderprogrammen. Es sind mehrere Hochgeschwindigkeitsarithmetikprozessoren vorhanden, die in geradzahlige Einheiten 152i und ungeradzahlige Einheiten 152i+1 (wobei i 0, 1, 2 ...) gruppiert sind. Der Einfachheit halber ist jede der geradzahligen und ungeradzahligen Gruppen so dargestellt, als habe sie lediglich zwei Arithmetikprozessoren. In jeder Gruppe sind die Arithmetikprozessoren mit einer Schnittstelleneinheit (oder einem Systemcontroller) 10 verbunden, so daß der Prozessor 15, der mit einer Zahl mit einem niedrigstwertigen Index bezeichnet ist, als Hauptprozessor fungiert und der andere Prozessor der Gruppe ihm untergeordnet ist. In der dargestellten Ausführungsform sind die Prozessoren 15&sub0; und 15&sub1; Hauptprozessoren und die Prozessoren 15&sub2; und 15&sub3; untergeordnete Prozessoren. Jeder Arithmetikprozessor ist über eine Schnittstelleneinheit 10 einem Arithmetikspeicher 12 zugeordnet, um Arithmetik/Logikprogramme und Daten und Anwenderprogramme, die im Speicher 12 gespeichert sind, auszuführen. Der Arithmetikspeicher 12 ist in acht Speichereinheiten eingeteilt, die im Falle eines Fehlers einzeln diagnostiziert und identifiziert werden können.
- Eine Diagnoseeinheit 16 ist vorhanden, um Alarmsignale von der Schnittstelleneinheit 10, dem Hauptspeicher 11, dem Arithmetikspeicher 12, dem E/A-Prozessor 13, dem Steuerprozessor 14 und den Arithmetikprozessoren 150 bis 153 zu empfangen. Das Alarmsignal wird analysiert, um fehlerhafte Teile der die Warnung betreffenden Einheit zu identifizieren. Das Ergebnis der diagnostischen Analyse wird an den Fehlerbeseitigungsprozessor 17 übermittelt, in dem es als Fehlerprotokolldaten aufgezeichnet wird. Der Fehlerbeseitigungsprozessor 17 erzeugt ein Systemneukonfigurierungssignal, das einen fehlerhaften Teil identifiziert, der vom System getrennt werden kann, wenn es "degradierbar" ist, oder mit verringerten Leistungsniveaus betrieben werden kann, was später ausführlich beschrieben wird. Das Systemneukonfigurierungssignal wird an den Steuerprozessor 14 zur Neukonfigurierung des OS-Programms und an eine Systemkonfigurationseinheit 18 zum Degradieren des Arithmetikspeichers 12 und der Arithmetikprozessoren 15&sub0; bis 15&sub3; übergeben.
- Gemäß Fig. 2 weist der Hauptarithmetikprozessor jeder Gruppe im allgemeinen eine Vektoreinheit 20 und eine Skalareinheit 30 auf, die über einen Selektor 19 mit einer Schnittstelleneinheit 10 verbunden sind. Der Nebenprozessor ist mit dem Selektor 19 verbunden, so daß er dem Hauptprozessor in einer hierarchischen Ordnung untergeordnet ist. Eine Vektoreinheit 40 wird durch ein Maskenregister 22, eine Maskenausführungseinheit 23, die mit dem Register 22 gekoppelt ist, eine Vektorregistereinheit 21, mehrere Vektorarithmetikpipelines, die in vier Sätze 24, 25, 26, 27 eingeteilt sind, die jeweils zwei Addier/Schiebeeinheiten und zwei Multiplizier/Dividier/Logikeinheiten aufweisen. Die Skalareinheit 30 weist Skalarregister 32, einen 64 Kilobyte großen, zwei Ebenen aufweisenden Cache-Speicher 31 und eine Skalarpipeline 33 auf, die skalare Addier/Subtrahier-, Logik-, Schiebe- und Dividier/Multiplizierfunktionen aufweist.
- Das System wird mit Systemgenerierungsparametern konfiguriert, die auch festlegen, welche Modi der Fehlerbeseitigungsprozessor durchführen sollte. Sechs Modi sind verfügbar, nämlich ein Prüfprogrammausführungsmodus, ein AM-(Arithmetikspeicher-)/VP-(Vektorpipeline-)Degradiermodus, ein VP-Degradiermodus, ein Cache-Degradiermodus, ein AM-Degradiermodus und ein Automatik-Neustartmodus. Alle diese Modi können zweckmäßig kombiniert werden, um den Bedürfnissen eines Anwenders zu entsprechen, und die durchzuführenden Modi werden durch die Systemgenerierungsparametern festgelegt.
- Der Fehlerbeseitigungsprozessor 17 ist so programmiert, daß das erfindungsgemäße Fehlerbeseitigungsprogramm ausgeführt wird, wie in Fig. 3A bis 3F dargestellt.
- Gemäß Fig. 3A beginnt der Fehlerbeseitigungsablauf mit einem Unterprogramm 41, wenn eine Fehlermeldung von der Diagnoseeinheit 16 empfangen wird. Wenn die Fehlermeldung anzeigt, daß ein Fehler in der Schnittstelleneinheit 10 oder im Arithmetikspeicher 12 aufgetreten ist, wird er als möglicherweise beseitigbarer Systemfehler interpretiert, indem die fehlerhafte Einrichtung unter der Annahme verwendet wird, daß das System wiederhergestellt werden kann, indem der fehlerhafte Teil vom System getrennt wird (Schritt 41a). Wenn der Fehler in den Arithmetikprozessoren 15 ermittelt ist, geht der Ablauf weiter mit Schritt 41b, um zu bestimmen, ob für einen ordnungsgemäßen Betrieb des Systems noch richtig funktionierende Arithmetikprozessoren verfügbar sind, wenn der fehlerhafte Arithmetikprozessor vom System getrennt ist. Wenn die Antwort im Schritt 41b negativ ist, wird der fehlerhafte Zustand auch als möglicherweise wiederherstellbarer Systemfehler erkannt. Andernfalls wird die Fehlermeldung als lokaler Fehler erkannt, und der Ablauf geht weiter mit Schritt 42, um den fehlerhaften Prozessor zu identifizieren und diese Tatsache dem Steuerprozessor 14 und der Systemkonfigurationseinheit 18 zu melden, um den fehlerhaften Arithmetikprozessor abzutrennen und damit das System den Betrieb mit dem abgetrennten fehlerhaften Prozessor fortsetzen kann. Wenn der fehlerhafte Prozessor ein Hauptprozessor ist, wird sein untergeordneter Prozessor auch vom System getrennt. Wenn eine Anwenderaufgabe vom fehlerhaften Arithmetikprozessor oder von dessen untergeordnetem Prozessor ausgeführt wird, erfolgt ein Abbruch.
- Wenn ein solcher lokaler Fehler auftritt, läuft der Systembetrieb weiter, wenn die Fehlermeldung von der Diagnoseeinheit empfangen wird. Wenn dagegen ein Systemfehler auftritt, wird der Systembetrieb unterbrochen, wenn die Fehlermeldung empfangen wird, damit der Fehlerbeseitigungsprozessor das System im deaktivierten Zustand analysieren kann.
- Wenn der Fehler als möglicherweise beseitigbarer Systemfehler interpretiert wird, geht der Ablauf weiter mit Schritt 43, um zu prüfen, ob die Systemgenerierungsparameter festlegen, daß das Fehlerprüfprogramm FT ausgeführt werden soll. Wenn der Fehlerbeseitigungsablauf so festgelegt ist, daß das Prüfprogramm ausgeführt werden soll, geht der Ablauf weiter mit Schritt 44, um das FT-Programm auf allen aktiven Arithmetikprozessoren auszuführen, die richtig funktionierten und während der Zeit vor dem Auftreten des Fehlers mit dem System verbunden waren. Die Ergebnisse der Ausführung des Prüfprogramms zeigen an, ob der Fehler ein vorübergehender (nichtwiederholbarer) oder dauerhafter Systemfehler ist, und diese Tatsache wird dem Steuerungsprozessor 14 gemeldet.
- Der Ablauf geht dann weiter mit Schritt 45, um zu prüfen, ob das Fehlerprüfprogramm so oft wiederholt worden ist, wie festgelegt. Im einzelnen legen die Systemgenerierungsparameter acht FT-Ausführungen in acht Stunden als Entscheidungsschwellwert fest, um zu bestimmen, ob der Fehler von vorübergehender oder dauerhafter Art ist. Wenn dieser Schwellwert nicht überschritten wird, wird der Fehler als dauerhafter Systemfehler identifiziert, und der Ablauf geht weiter mit Schritt 46, um zu prüfen, ob der Fehlerbeseitigungsablauf so festgelegt ist, daß ein AM/VP-Degradiermodus durchgeführt wird. Wenn die Antwort negativ ist, geht der Ablauf weiter mit Schritt 86 (Fig. 3E), und wenn sie positiv ist, geht der Ablauf weiter mit Schritt 47, um zu prüfen, ob die Ergebnisse der FT-Ausführungen anzeigen, daß die aktiven Arithmetikprozessoren richtig funktionieren. Wenn die Antwort positiv ist, geht der Ablauf weiter mit Schritt 48, um zu bestimmen, daß der Fehler ein vorübergehender Systemfehler ist, und alle aktiven Arithmetikprozessoren als "gültig" (mit dem System verbindbar) zu identifizieren und diese Tatsache dem Steuerungsprozessor 14 und der SCU 18 zu melden. Wenn dies auftritt, geht der Ablauf weiter mit Schritt 101 (Fig. 3F), um das System mit allen angeschlossenen aktiven Arithmetikprozessoren neu zu starten.
- Wenn in Schritt 43 eine negative Entscheidung getroffen oder in Schritt 45 eine positive Entscheidung getroffen wird, geht der Ablauf weiter mit Schritt 102, um zu prüfen, ob der AM/VP-Degradiermodus durch die Systemgenerierungsparameter festgelegt worden ist. Wenn die Antwort negativ ist, geht der Ablauf weiter mit Schritt 103, um alle Arithmetikprozessoren als vom System trennbar zu identifizieren und diese Tatsache der CP 14 und SCU 18 zu melden, und der Beseitigungsablauf wird beendet.
- Wenn in Schritt 47 eine negative Entscheidung getroffen wird oder in Schritt 102 eine positive Entscheidung getroffen wird, geht der Ablauf weiter mit Schritt 49, um zu prüfen, ob der Fehlerbeseitigungsablauf so festgelegt ist, daß der VP(Vektorpipeline-)Degradiermodus durchgeführt wird. Wenn die Antwort negativ ist, geht der Ablauf weiter mit Schritt 72 (Fig. 3D), und wenn sie positiv ist, geht der Ablauf weiter mit Schritt 50, um zu prüfen, ob ein Arithmetikprozessor mit einem VP-degradierbaren Fehler vorhanden ist. Wenn nicht, geht der Ablauf weiter mit Schritt 72 (Fig. 3D), und wenn ja, geht der Ablauf weiter mit Schritt 51 (Fig. 3B), um jedem Arithmetikprozessor entsprechend den Fehlerprotokolldaten des Prozessors unter Verwendung der VP-Degradiertranslationstabelle gemäß Fig. 4 einen der Gültig/ungültig-Codes zuzuweisen. In Fig. 4 werden die Vektorpipelinesätze 24 bis 27 jedes Prozessors von den Fehlerprotokolldaten angezeigt, die in Schritt 44 abgeleitet werden. Richtig funktionierende Vektorpipelinesätze werden mit einer Gültig-Marke (binär 0) markiert, und fehlerhafte Pipelinesätze werden mit einer Ungültig-Marke (binär 1) markiert. Es wird angenommen, daß eine Hälfte der Gesamtanzahl der Pipelinesätze gesperrt ist, wenn einer der Sätze fehlerhaft wird. Somit wird jeder der fünf möglichen Eingangszustände in einen der drei Ausgangszustände umgesetzt. Insbesondere wenn alle Pipelinesätze eines gegebenen Prozessors richtig funktionieren, wird diesem Prozessor ein Gültig/ungültig-code "0000" zum Freigeben aller Sätze des Prozessors zugewiesen. Wenn der Pipelinesatz 24 oder 25 versagt, wird ein Code "1100" zum Sperren der Pipelinesätze 24 und 25 und zum Freigeben der Sätze 26 und 27 zugewiesen, und wenn der Pipelinesatz 26 oder 27 ausfällt, wird ein Code "0011" zum Freigeben der Sätze 24 und 25 und zum Sperren der Sätze 26 und 27 zugewiesen.
- Dann geht der Ablauf weiter mit Schritt 52, um zu prüfen, ob der geradzahlige Gruppenhauptprozessor 15&sub0; während der Zeit vor dem Systemausfall aktiv (mit dem System verbunden) war. Wenn die Antwort negativ ist, geht der Ablauf weiter mit Schritt 55, um den Gültig/ungültig-Code zu wählen, der dem ungeradzahligen Gruppenhauptprozessor 15&sub1; zugewiesen ist. Wenn die Antwort in Schritt 52 positiv ist, geht der Ablauf weiter mit Schritt 53, um zu prüfen, ob der ungeradzahliqe Gruppenhauptprozessor 15&sub1; während der Zeit vor dem Systemfehler aktiv war. Wenn die Antwort negativ ist, geht der Ablauf weiter mit Schritt 56, um den Gültig/ungültig-Code zu wählen, der dem geradzahligen Gruppenhauptprozessor 15&sub0; zugewiesen ist.
- Wenn die Antwort in Schritt 53 positiv ist, geht der Ablauf weiter mit Schritt 54, in dem die Gesamtanzahl (V&sub0;) der Vektorpipelinesätze, die von der Translationstabelle als für geradzahlige Prozessoren 15&sub2;&sub1; freigegeben identifiziert worden sind, und die Gesamtanzahl (V&sub1;) der Vektorpipelinesätze, die von der Translationstabelle als für ungeradzahlige Prozessoren 152i+1 identifiziert worden sind, gezählt werden und ein Vergleich zwischen V&sub0; und V&sub1; durchgeführt wird. Wenn V&sub0; < V&sub1;, geht der Ablauf weiter mit Schritt 55, und wenn V&sub0; > V&sub1;, wird Schritt 56 ausgeführt.
- Nun geht der Ablauf weiter mit Schritt 58, um ein Vektorpipeline-Degradierprüfprogramm auszulösen, indem eine Variable i auf null gesetzt wird, und der Ablauf geht weiter mit Schritt 59, um zu bestimmen, ob der ungeradzahlige Prozessor 152i aktiv war, bevor der Systemfehler auftrat. Wenn die Antwort positiv ist, geht der Ablauf weiter mit Schritt 60, um zu prüfen, ob der Prozessor 152i VP-degradierbar ist oder ob er mit dem System verbunden werden kann oder vom System getrennt werden muß, indem der Code, der jedem Prozessor zugewiesen ist, mit dem Code, der in Schritt 55 oder 56 gewählt wird, verglichen wird. Man beachte, daß es wegen der Vektorpipeline- Konfiguration erforderlich ist, daß die gleiche Gruppe von Arithmetikprozessoren entsprechend dem Code, der dem Hauptprozessor zugewiesen ist, in allen ihren Vektorpipelines gleichmäßig degradiert wird, solange er Degradierbarkeit anzeigt (nämlich wenn der Hauptprozessorcode "0011" oder "1100" ist), und zwar unabhängig vom Code, der dem untergeordneten Prozessor zugewiesen ist. Das heißt, die gleiche Anzahl von Vektorpipelines muß in jedem Prozessor einer gegebenen Gruppe entsprechend dem Code, der dem Hauptprozessor dieser Gruppe zugewiesen ist, gesperrt werden. Wenn andererseits der Code, der dem Hauptprozessor zugewiesen ist, nur aus Nullen besteht, kann der untergeordnete Prozessor nicht degradiert werden und muß vom System getrennt werden, wenn sein zugewiesener Code "0011" oder "1100" ist, und darf mit dem System verbunden bleiben, wenn der zugewiesene Code nur aus Nullen besteht. Die Entscheidung, die in Schritt 60 getroffen wird, berücksichtigt die eben beschriebene Regel.
- Wenn die Entscheidung in Schritt 60 "degradierbar" (nämlich mit einer VP-Degradierung verbindbar) oder ohne VP- Degradierung "verbindbar" ist, geht der Ablauf weiter mit Schritt 61, um den Prozessor 152i entsprechend der im Schritt 60 getroffenen Entscheidung zu identifizieren und diese Tatsache dem Zentralprozessor 14 und der SCU 18 zu melden, um die Fehlerprotokolldaten zu aktualisieren. Der Ablauf geht weiter mit Schritt 62, um i um 1 zu inkrementieren, und dann weiter mit Schritt 63, um zu prüfen, ob i = K&sub0; ist (wobei K&sub0; der Gesamtanzahl der geradzahligen Arithmetikprozessoren plus eins entspricht). Wenn i ≠ K&sub0; ist, geht der Ablauf weiter mit Schritt 59, um den Ablauf zu wiederholen. Wenn die Entscheidung in Schritt 60 vom System "trennbar" lautet, wird Schritt 64 ausgeführt, indem der Prozessor 152i und sein untergeordneter Prozessor als solche identifiziert werden und diese Tatsache dem Steuerprozessor 14 und der SCU 18 gemeldet wird, wobei die Fehlerprotokolldaten aktualisiert werden.
- Wenn in Schritt 63 oder im folgenden Schritt 64 i = K&sub0; ist, geht der Ablauf weiter mit Schritt 65, in dem die Variable i erneut auf null gesetzt wird, um die Schritte 66 bis 70 auf ungeradzahligen Prozessoren analog zu den Schritten 59 bis 63 abzuarbeiten.
- Insbesondere werden die Fehlerprotokolldaten geprüft, um zu bestimmten, ob der Prozessor 1521+1 aktiv war, bevor der Fehler auftrat (Schritt 66). Wenn die Antwort positiv ist, geht der Ablauf weiter mit Schritt 67, um zu prüfen, ob der Prozessor 152i+1 entsprechend der Regel&sub1; die mit Bezug auf Schritt 60 beschrieben worden ist, degradierbar, verbindbar oder trennbar ist. Wenn die Entscheidung in Schritt 67 "degradierbar" oder "verbindbar" lautet, geht der Ablauf weiter mit Schritt 68, um den Prozessor 152i+1 als solchen zu identifizieren und diese Tatsache dem Zentralprozessor 14 und der SCU 18 zu melden, um die Fehlerprotokolldaten zu aktualisieren. Wenn die Entscheidung in Schritt 67 "trennbar" lautet, wird Schritt 71 ausgeführt, indem der Prozessor 152i und sein untergeordneter Prozessor als solcher identifiziert werden und diese Tatsache dem Steuerprozessor 14 und der SCU 18 gemeldet wird, wobei die Fehlerprotokolldaten aktualisiert werden. Nach Schritt 68 wird die Variable i um eins inkrementiert (Schritt 69) und mit K&sub1; verglichen (Schritt 70), wobei K&sub1; der Gesamtzahl der ungeradzahligen Arithmetikprozessoren plus eins entspricht. Wenn i ≠ K&sub1; ist, geht der Ablauf weiter mit Schritt 66, um den Ablauf zu wiederholen. Wenn die Entscheidung in Schritt 67 "trennbar" lautet, wird Schritt 71 ausgeführt, indem der Prozessor 152i+1 und sein untergeordneter Prozessor als solche identifiziert werden und diese Tatsache dem Steuerprozessor 14 und der SCU 18 gemeldet wird, um die Fehlerprotokolldaten zu aktualisieren. Wenn im Schritt 70 oder im folgenden Schritt 71 i = K&sub1; ist, wird das Vektorpipeline- Degradierprüfprogramm beendet, und der Ablauf geht weiter mit Schritt 72, um ein Cache-Degradierprüfprogramm auszulösen.
- Es wird angenommen, daß alle Prozessoren 15&sub0; bis 15&sub3; aktiv waren, bevor ein Systemfehler auftrat, und daß festgestellt worden ist, daß der Prozessor 15&sub2; einen VP- degradierbaren Fehler hat (Schritt 50). Der Prozessor 15&sub2; bekommt den Gültig/ungültig-Code "1100" zugewiesen, während andere Arithmetikprozessoren 15&sub0;, 15&sub1; und 15&sub3; den Code "0000" zugewiesen bekommen (Schritt 51), und der Ablauf geht weiter mit den Schritten 52 und 53. Da die Vektorpipelinesätze 24 und 25 des Prozessors 15&sub2; gesperrt werden müssen, beträgt die Gesamtanzahl der Vektorpipelinesätze, die für die geradzahlige Gruppe verfügbar sind, sechs, während die der Pipelinesätze für die ungeradzahlige Gruppe acht beträgt. Es wird bestimmt, daß V&sub0; < Vi ist (Schritt 54), und der Code "0000", der dem Hauptprozessor 15i als Referenzcode zugewiesen ist, wird gewählt (Schritt 55). Der Ablauf geht weiter mit den Schritten 58, 59 und 60, in denen der Code "0000", der dem Prozessor 15&sub1; zugewiesen ist, mit dem Referenzcode "0000" verglichen wird. Es wird bestimmt, daß der Prozessor 15&sub0; mit dem System verbindbar ist, ohne daß Vektorpipelines degradiert werden (Schritt 61), da der zugewiesene Code nur aus Nullen besteht. Die Variable i wird dann inkrementiert (Schritt 65), und die Schritte 59 und 60 werden wiederholt, so daß die Entscheidung "trennbar" getroffen wird (Schritt 60), weil der Code, der dem Prozessor 15&sub2; zugewiesen ist, sich von dem Hauptprozessorcode "0000" unterscheidet. Der Prozessor 15&sub2; wird als vom System trennbar identifiziert (Schritt 64). Man erkennt, daß der Ablauf mit den Schritten 65 bis 70 weitergeht, die Prozessoren 15&sub1; und 15&sub3; als mit dem System verbindbar identifiziert werden, ohne daß Vektorpipelines degradiert werden, da ihre zugewiesenen Codes "0000" mit dem Hauptprozessorcode übereinstimmen. Wenn also das System in einer späteren Stufe des Fehlerbeseitigungsablaufs neu gestartet wird, wird der Prozessor 150 vom System getrennt, und der Ablauf wird von den anderen Prozessoren aufgenommen.
- Wenn festgelegt ist, daß der Fehlerbeseitigungsablauf den Cache-Degradiermodus durchführt, wird die Variable i erneut auf 0 gesetzt (Schritt 73), und der Ablauf geht weiter mit Schritt 74, um die Fehlerprotokolldaten zu prüfen, um festzustellen, ob der Prozessor 15i als mit dem System verbindbar identifiziert wird. Wenn die Antwort positiv ist, geht der Ablauf weiter mit Schritt 75, um die Fehlerprotokolldaten zu analysieren, um zu bestimmen, ob der Prozessor 15i einen Cache-degradierbaren Fehler hat. Wenn ja, geht der Ablauf weiter mit Schritt 76, um einen der beiden Ebenen seines Cache- Speichers in Abhängigkeit von den Fehlerprotokolldaten als vom System trennbar zu identifizieren. Die Variable i wird dann um eins inkrementiert (Schritt 77) und mit K&sub2; verglichen (wobei K&sub2; der Gesamtzahl der arithmetischen Prozessoren aller Gruppen plus eins entspricht. Wenn i ≠ K&sub2; ist, werden die Schritte 74 bis 77 wiederholt. Andernfalls geht es weiter mit dem Speicherdegradierprüfprogramm. Wenn die Antwort in Schritt 72 negativ ist, werden die Schritte 73 bis 78 übersprungen, und es geht weiter mit dem Speicherdegradierprüfprogramm.
- Wenn der Speicherdegradiermodus durch die Systemgenerierungsparameter festgelegt ist, geht der Ablauf weiter mit Schritt 80, um die Fehlerprotokolldaten zu analysieren, um zu bestimmen, ob der Arithmetikspeicher 12 einen speicherdegradierbaren Fehler hat. Wenn die Antwort positiv ist, wird Schritt 81 ausgeführt, indem vier der acht Teileinheiten des Speichers 12 als vom System trennbar identifiziert werden und diese Tatsache dem Steuerprozessor 14 und der SCU 18 gemeldet wird, wobei die Fehlerprotokolldaten aktualisiert werden.
- Wenn die Entscheidungen in den Schritten 79 und 80 negativ sind oder der Schritt 81 ausgeführt wird, geht der Ablauf weiter mit dem Entscheidungsschritt 82, um zu prüfen, ob mindestens eine Teileinheit des Systems vorhanden ist, die als degradierbar identifiziert wird, und zu prüfen, ob ein Arithmetikprozessor, der einen nichtdegradierbaren Fehler hat, vorhanden ist. Wenn die Antwort negativ ist, geht der Ablauf weiter mit Schritt 93, um die Arithmetikprozessoren aller Gruppen als vom System trennbar zu identifizieren und diese Tatsache dem Zentralprozessor 14 und der SCU 18 zu melden, wobei die Fehlerprotokolldaten aktualisiert werden und der Fehlerbeseitigungsablauf beendet wird.
- Wenn die Antwort in Schritt 82 positiv ist, geht der Ablauf weiter mit Schritt 83, um zu prüfen, ob der Fehlerbeseitigungsablauf den Automatik-Neustartmodus einschließt. Wenn die Antwort positiv ist, geht der Ablauf weiter mit Schritt 84, um zu prüfen, ob der Automatik-Neustart so oft wiederholt wurde, daß eine bestimmte Grenze überschritten wurde. Wenn die Antwort negativ ist, geht der Ablauf weiter mit Schritt 85, um die Fehlerprotokolldaten zu prüfen und das Prüfprogramm auf allen Arithmetikprozessoren auszuführen, die von den Fehlerprotokolldaten als mit dem System verbindbar identifiziert worden sind.
- Wenn in Schritt 83 eine negative Entscheidung oder in Schritt 84 eine positive Entscheidung gefällt wird, wird Schritt 93 ausgeführt, um das Fehlerbeseitigungsprogramm zu beenden.
- Wenn festgestellt wird, daß alle geradzahligen Prozessoren 152i geprüft worden sind (Schritt 86), wird die Variable i auf null zurückgesetzt (Schritt 87) und der Prozessor 152i wird geprüft, um festzustellen, ob er richtig funktioniert (Schritt 88). Wenn nicht, geht der Ablauf weiter mit Schritt 92, um den Prozessor 152i und dessen untergeordneten Prozessor als vom System trennbar zu identifizieren und diese Tatsache dem Zentralprozessor 14 und der SCU 18 zu melden, wobei die Fehlerprotokolldaten aktualisiert werden.
- Wenn der Prozessor 152i richtig funktioniert, geht der Ablauf weiter mit Schritt 89, um den Prozessor 152i als mit dem System verbindbar zu identifizieren. Die Variable i wird dann um eins inkrementiert (Schritt 90) und mit K&sub0; verglichen. Wenn i ≠ Ko ist, geht der Ablauf weiter mit Schritt 88, um den Ablauf zu wiederholen.
- Wenn 1 = K&sub0; ist, werden die Schritte 94 bis 100 analog zu den Schritten 86 bis 92 ausgeführt. Wenn festgestellt ist, daß alle ungeradzahligen Prozessoren 152i+1 geprüft worden sind (Schritt 94), wird die Variable i auf null zurückgesetzt (Schritt 95), und der Prozessor 152i+1 wird geprüft, um festzustellen, ob er richtig funktioniert (Schritt 96). Wenn nicht, geht der Ablauf weiter mit Schritt 100, um den Prozessor 152i+1 und dessen untergeordneten Prozessor als vom System trennbar zu identifizieren und diese Tatsache dem Zentralprozessor 14 und der SCU 18 zu melden, wobei die Fehlerprotokolldaten aktualisiert werden. Wenn der Prozessor 152i+1 richtig funktioniert, geht der Ablauf weiter mit Schritt 97, um den Prozessor 152i+1 als mit dem System verbindbar zu identifizieren. Die Variable i wird dann um eins inkrementiert (Schritt 98) und mit K&sub1; verglichen. Wenn i ≠ K1 ist, erfolgt eine Rückkehr zu Schritt 96, um diesen Ablauf zu wiederholen.
- Dann wird Schritt 101 ausgeführt, um das System in einer Konfiguration entsprechend den Fehlerprotokolldaten neu zu starten.
- Der Gesamtvorgang des Fehlerbeseitigungsablaufs wird besser verständlich mit Bezug auf Fig. 5. Es wird angenommen, daß das System arbeitet, während die geradzahligen Prozessoren 15&sub0; und 15&sub2; vom System getrennt sind und ein Fehler in einem oder beiden Prozessoren lsi und 153 auftritt. Es wird ferner angenommen, daß das Fehlerbeseitigungsprogramm so eingestellt ist, daß alle seine Betriebsmodi ausgeführt werden. Dabei sind die folgenden Fälle möglich:
- Wenn die Ausführung des Prüfprogramms (FT) ergibt, daß der Fehler ein VP-degradierbarer Fehler im Pipelinesatz 27 des Prozessors 15&sub1; ist, was zu einem Systemfehler führt. In diesem Fall werden die folgenden Punkte nacheinander ausgeführt:
- (1) Schritt 41 (positive Entscheidung)
- (2) Schritt 43 (positive Entscheidung)
- (3) Schritt 44 (FT-Ausführung)
- (4) Schritt 45 (negative Entscheidung)
- (5) Schritt 46 (positive Entscheidung)
- (6) Schritt 47 (negative Entscheidung)
- (7) Schritt 49 (positive Entscheidung)
- (8) Schritt 50 (positive Entscheidung)
- (9) Schritt 51 (Code "0011" wird dem Prozessor 15&sub1; Code "0000" dem Prozessor 15&sub3; zugewiesen)
- (10) Schritt 52 (negative Entscheidung
- (11) Schritt 55 (Code "0011" wird als Referenz gewählt)
- (12) Schritt 58 (i = 0)
- (13) Schritt 59 (negative Entscheidung)
- (14) Schritt 65 (i = 0)
- (15) Schritt 66 (positive Entscheidung)
- (16) Schritt 67 ("degradierbare" Entscheidung, da der Referenzcode "0011" ist)
- (17) Schritt 68 (Prozessor 15i wird als verbindbar identifiziert, wobei seine Vektorpipelines degradiert werden)
- (18) Schritt 69 (i = i + 1)
- (19) Schritt 70 (negative Entscheidung)
- (20) Schritt 66 (positive Entscheidung)
- (21) Schritt 67 (Entscheidung "degradierbar" wird getroffen)
- (22) Schritt 68 (es wird gemeldet, daß der Prozessor 15&sub1; als "degradierbar" identifiziert ist, und Fehlerprotokolldaten werden dementsprechend aktualisiert)
- (23) Schritt 69 (i = i + 1)
- (24) Schritt 70 (positive Entscheidung)
- (25) Schritt 72 (positive Entscheidung)
- (26) Schritt 73 (i = 0)
- (27) Schritt 74 (negative Entscheidung, die anzeigt, daß der Prozessor 15&sub0; mit dem System verbunden werden kann)
- (28) Schritt 77 (i = i + 1)
- (29) Schritt 78 (negative Entscheidung)
- (30) Schritt 74 (positive Entscheidung, die anzeigt, daß der Prozessor 15&sub1; nicht mit dem System verbunden werden kann)
- (31) Schritt 75 (negative Entscheidung)
- (32) Schritt 77 (i = i + 1)
- (33) Schritt 78 (positive Entscheidung)
- (34) Schritt 74 (negative Entscheidung, die anzeigt, daß der Prozessor 15&sub2; nicht mit dem System verbunden werden kann)
- (35) Schritt 77 (i = i + 1)
- (36) Schritt 78 (negative Entscheidung)
- (37) Schritt 74 (positive Entscheidung, die anzeigt, daß der Prozessor 153 mit dem System verbunden werden kann)
- (38) Schritt 75 (negative Entscheidung)
- (39) Schritt 77 (i = i + 1)
- (40) Schritt 78 (positive Entscheidung)
- (41) Schritt 79 (positive Entscheidung)
- (42) Schritt 80 (negative Entscheidung)
- (43) Schritt 82 (positive Entscheidung)
- (44) Schritt 83 (positive Entscheidung)
- (45) Schritt 84 (negative Entscheidung)
- (46) Schritt 85 (FT-Ausführung)
- (47) Schritt 86 (negative Entscheidung)
- (48) Schritt 94 (positive Entscheidung)
- (49) Schritt 95 (i = 0)
- (50) Schritt 96 (positive Entscheidung, die anzeigt, daß der Prozessor 15&sub1; richtig funktioniert)
- (51) Schritt 97 (Prozessor lsi wird als mit dem System verbindbar identifiziert)
- (52) Schritt 98 (i = i + 1)
- (53) Schritt 99 (negative Entscheidung)
- (54) Schritt 96 (positive Entscheidung, die anzeigt, daß der Prozessor 15&sub3; richtig funktioniert)
- (55) Schritt 97 (Prozessor 15&sub3; wird als mit dem System verbindbar identifiziert)
- (56) Schritt 98 (i = i + 1)
- (57) Schritt 99 (positive Entscheidung)
- (58) Schritt 101 (System wird neu gestartet, wobei die Prozessoren 15&sub1; und 15&sub3; verbunden sind, während ihre Vektorpipelinesätze degradiert sind)
- Wenn die Ausführung des Prüfprogramms (FT) ergibt, daß der Fehler ein VP-degradierbarer Fehler im Pipelinesatz 24 des Prozessors 15&sub3; ist, was zu einem Systemfehler führt. In diesem Fall werden die folgenden Punkte ausgeführt:
- (1) Schritt 41 (positive Entscheidung)
- (2) Schritt 43 (positive Entscheidung)
- (3) Schritt 44 (FT-Ausführung)
- (4) Schritt 45 (negative Entscheidung)
- (5) Schritt 46 (positive Entscheidung)
- (6) Schritt 47 (negative Entscheidung)
- (7) Schritt 49 (positive Entscheidung)
- (8) Schritt 50 (positive Entscheidung)
- (9) Schritt 51 (Dem Prozessor lsi wird Code "0000" und dem Prozessor 15&sub3; Code "1100" zugewiesen)
- (10) Schritt 52 (negative Entscheidung)
- (11) Schritt 55 (Code "0000" wird als Referenzcode gewählt)
- (12) Schritt 58 (i = 0)
- (13) Schritt 59 (negative Entscheidung)
- (14) Schritt 65 (i = 0)
- (15) Schritt 66 (positive Entscheidung)
- (16) Schritt 67 (Entscheidung "verbindbar", da sowohl der Referenzcode als auch der Code, der dem Prozessor 15&sub1; zugewiesen ist, "0000" ist)
- (17) Schritt 68 (Prozessor 15&sub1; wird als ohne Vektorpipeline-Degradierung verbindbar identifiziert)
- (18) Schritt 69 (i = i + 1)
- (19) Schritt 70 (negative Entscheidung)
- (20) Schritt 66 (positive Entscheidung)
- (21) Schritt 67 (Für Prozessor 15&sub3; wird Entscheidung "trennbar" getroffen, da der Referenzcode "0000" ist, jedoch der Code, der dem Prozessor 15&sub3; zugewiesen ist, "1100" ist)
- (22) Schritt 71 (es wird gemeldet, daß der Prozessor 15&sub3; als "trennbar" identifiziert ist, und Fehlerprotokolldaten werden dementsprechend aktualisiert)
- (23) Schritt 72 (positive Entscheidung)
- (24) Schritt 73 (i=0)
- (25) Schritt 74 (negative Entscheidung, die anzeigt, daß der Prozessor 150 nicht mit dem System verbunden werden kann)
- (26) Schritt 77 (i = i-1)
- (27) Schritt 78 (negative Entscheidung)
- (28) Schritt 74 (positive Entscheidung, die anzeigt, daß der Prozessor 15&sub1; mit dem System verbunden werden kann)
- (29) Schritt 75 (negative Entscheidung)
- (30) Schritt 77 (i = i + 1)
- (31) Schritt 78 (positive Entscheidung)
- (32) Schritt 74 (negative Entscheidung, die anzeigt, daß der Prozessor 15&sub2; nicht mit dem System verbunden werden kann)
- (33) Schritt 77 (i = i + 1)
- (34) Schritt 78 (negative Entscheidung)
- (35) Schritt 74 (positive Entscheidung, die anzeigt, daß der Prozessor 15&sub3; mit dem System verbunden werden kann)
- (36) Schritt 75 (negative Entscheidung)
- (37) Schritt 77 (i = i + 1)
- (38) Schritt 78 (positive Entscheidung)
- (39) Schritt 79 (positive Entscheidung)
- (40) Schritt 80 (negative Entscheidung)
- (41) Schritt 82 (positive Entscheidung)
- (42) Schritt 83 (positive Entscheidung)
- (43) Schritt 84 (negative Entscheidung)
- (44) Schritt 85 (FT-Ausführung)
- (45) Schritt 86 (negative Entscheidung)
- (46) Schritt 94 (positive Entscheidung)
- (47) Schritt 95 (i = 0)
- (49) Schritt 96 (positive Entscheidung, die anzeigt, daß der Prozessor 15&sub1; richtig funktioniert)
- (49) Schritt 97 (Prozessor 15&sub1; wird als mit dem System verbindbar identifiziert)
- (50) Schritt 98 (i = i + 1)
- (51) Schritt 99 (negative Entscheidung)
- (52) Schritt 96 (negative Entscheidung, die anzeigt, daß der Prozessor 15&sub3; nicht richtig funktioniert)
- (53) Schritt 100 (Prozessor 153 wird als "trennbar" identifiziert)
- (54) Schritt 101 (System wird neu gestartet, wobei der Prozessor 15&sub1; ohne Degradierung verbunden ist und der Prozessor 15&sub3; abgetrennt ist)
- Wenn die Ausführung des Prüfprogramms (FT) ergibt, daß der Prozessor 15&sub1; einen vorübergehenden Fehler hat. In diesem Fall werden die folgenden Punkte ausgeführt:
- (1) Schritt 41 (positive Entscheidung)
- (2) Schritt 43 (positive Entscheidung)
- (3) Schritt 44 (FT-Ausführung)
- (4) Schritt 45 (negative Entscheidung)
- (5) Schritt 46 (positive Entscheidung)
- (6) Schritt 47 (positive Entscheidung)
- (7) Schritt 48 (die Prozessoren 15&sub1; und 15&sub3; werden als richtig funktionierend identifiziert)
- (8) Schritt 101 (System wird neu gestartet, wobei die Prozessoren 15&sub1; und 15&sub3; verbunden sind)
- Wenn die Ausführung des Prüfprogramms (FT) ergibt, daß der Prozessor 153 einen dauerhaften Fehler nichtdegradierbarer Art hat. In diesem Fall werden die folgenden Punkte ausgeführt:
- (1) Schritt 41 (positive Entscheidung)
- (2) Schritt 43 (positive Entscheidung)
- (3) Schritt 44 (FT-Ausführung)
- (4) Schritt 45 (negative Entscheidung)
- (5) Schritt 46 (positive Entscheidung)
- (6) Schritt 47 (negative Entscheidung)
- (7) Schritt 49 (positive Entscheidung)
- (8) Schritt 50 (negative Entscheidung)
- (9) Schritt 72 (positive Entscheidung)
- (10) Schritt 73 (i = 0)
- (11) Schritt 74 (negative Entscheidung, die anzeigt, daß der Prozessor 150 nicht mit dem System verbunden werden kann)
- (12) Schritt 77 (i = i + 1)
- (13) Schritt 78 (negative Entscheidung)
- (14) Schritt 74 (positive Entscheidung, die anzeigt, daß der Prozessor 15&sub1; mit dem System verbunden werden kann)
- (15) Schritt 75 (negative Entscheidung)
- (16) Schritt 77 (i = i + 1)
- (17) Schritt 78 (positive Entscheidung)
- (18) Schritt 74 (negative Entscheidung, die anzeigt, daß der Prozessor 152 nicht mit dem System verbunden werden kann)
- (15) Schritt 77 (i = i + 1)
- (20) Schritt 78 (negative Entscheidung)
- (21) Schritt 74 (positive Entscheidung, die anzeigt, daß der Prozessor 15&sub1; mit dem System verbunden werden kann)
- (22) Schritt 75 (negative Entscheidung)
- (23) Schritt 77 (i = i + 1)
- (24) Schritt 78 (positive Entscheidung)
- (25) Schritt 79 (positive Entscheidung)
- (26) Schritt 80 (positive Entscheidung)
- (27) Schritt 82 (positive Entscheidung)
- (28) Schritt 83 (positive Entscheidung)
- (29) Schritt 84 (negative Entscheidung)
- (30) Schritt 85 (FT-Ausführung)
- (31) Schritt 86 (negative Entscheidung)
- (32) Schritt 94 (positive Entscheidung)
- (33) Schritt 95 (i= 0)
- (34) Schritt 96 (positive Entscheidung, die anzeigt, daß der Prozessor 15&sub1; richtig funktioniert)
- (35) Schritt 97 (Prozessor 15&sub1; wird als mit dem System verbindbar identifiziert)
- (36) Schritt 98 (i = i + 1)
- (37) Schritt 99 (negative Entscheidung)
- (38) Schritt 96 (negative Entscheidung(positive Entscheidung, die anzeigt, daß der Prozessor 15&sub3; nicht richtig funktioniert)
- (39) Schritt 100 (Prozessor 15&sub3; wird als "trennbar" identifiziert)
- (40) Schritt 101 (System wird neu gestartet, wobei der Prozessor 15&sub1; ohne Degradierung verbunden ist und der Prozessor 15&sub3; abgetrennt ist)
- Wenn die Ausführung des Prüfprogramms (FT) ergibt, daß der Prozessor 15&sub1; einen dauerhaften Fehler von nichtdegradierbarer Art hat. In diesem Fall werden folgende Punkte ausgeführt:
- (1) Schritt 41 (positive Entscheidung)
- (2) Schritt 43 (positive Entscheidung)
- (3) Schritt 44 (FT-Ausführung)
- (4) Schritt 45 (negative Entscheidung)
- (5) Schritt 46 (positive Entscheidung)
- (6) Schritt 47 (negative Entscheidung)
- (7) Schritt 49 (positive Entscheidung)
- (8) Schritt 50 (negative Entscheidung)
- (9) Schritt 72 (positive Entscheidung)
- (10) Schritt 73 (i=0)
- (11) Schritt 74 (negative Entscheidung, die anzeigt, daß der Prozessor 15&sub0; nicht mit dem System verbunden werden kann)
- (12) Schritt 77 (i = i + 1)
- (12) Schritt 78 (negative Entscheidung)
- (14) Schritt 74 (positive Entscheidung, die anzeigt, daß der Prozessor 15&sub1; mit dem System verbunden werden kann)
- (15) Schritt 75 (negative Entscheidung)
- (16) Schritt 77(i = i + 1)
- (17) Schritt 78 (positive Entscheidung
- (18) Schritt 74 (negative Entscheidung, die anzeigt, daß der Prozessor 15&sub2; nicht mit dem System verbunden werden kann)
- (19) Schritt 77 (i = i + 1)
- (20) Schritt 78 (negative Entscheidung)
- (21) Schritt 74 (positive Entscheidung, die anzeigt, daß der Prozessor 15&sub3; mit dem System verbunden werden kann)
- (22) Schritt 75 (negative Entscheidung)
- (23) Schritt 77 (i = i + 1)
- (24) Schritt 78 (positive Entscheidung)
- (25) Schritt 79 (positive Entscheidung)
- (26) Schritt 80 (negative Entscheidung)
- (27) Schritt 82 (negative Entscheidung)
- (28) Schritt 93 (die Prozessoren 15&sub1; und 15&sub3; werden als "trennbar" identifiziert)
- Die vorangehende Beschreibung stellt lediglich bevorzugte erfindungsgemäße Ausführungsformen dar. Verschiedene Modifikationen sind für den Fachmann offensichtlich, ohne vom Schutzumfang der Erfindung abzuweichen, der lediglich durch die beigefügten Ansprüche eingeschränkt wird. Somit haben die dargestellten und beschriebenen Ausführungsformen lediglich illustrativen, jedoch keinen restriktiven Charakter.
Claims (9)
1. Verfahren zum Beseitigen eines Fehlers, das in einem
Hochgeschwindigkeitscomputer mit einem Speicher (11, 12) und
mehreren Arithmetikprozessoren (15), die in Gruppen eingeteilt
sind, verwendet wird, wobei die Arithmetikprozessoren jeder
Gruppe mit dem Speicher in hierarchischer Ordnung in einer
Beziehung Hauptprozessor-untergeordneter Prozessor verbunden
sind, wobei der Speicher und die Arithmetikprozessoren ein
Alarmsignal erzeugen, das einen fehlerhaften Teil des
Speichers und jedes der Arithmetikprozessoren anzeigt, mit den
Schritten:
a) Bestimmen, ob der Computer als Antwort auf den
Empfang des Alarmsignals in einem wiederherstellbaren Zustand
ist;
b) wenn bestimmt ist, daß der Computer in dem
wiederherstellbaren Zustand ist, Ausführen eines Prüfprogramms auf
dem Computer, um zu bestimmen, ob der Computer richtig
funktioniert;
c) wenn im Schritt (b) bestimmt worden ist, daß der
Computer richtig funktioniert, Neustarten des Computers in
einer Originalsystemkonfiguration;
d) wenn im Schritt (b) bestimmt worden ist, daß der
Computer nicht richtig funktioniert, Trennen eines Teils der
Arithmetikprozessoren von dem Computer in Abhängigkeit von dem
Alarmsignal, um den Computer zu einer ersten degradierten
Systemkonfiguration zu degradieren;
e) Ausführen des Prüfprogramms auf dem Computer in der
ersten degradierten Systemkonfiguration, um zu bestimmen, ob
der Computer richtig funktioniert;
f) wenn im Schritt (e) bestimmt worden ist, daß der
Computer richtig funktioniert, Neustarten des Computers in der
ersten degradierten Systemkonfiguration; und
g) wenn im Schritt (e) bestimmt worden ist, daß der
Computer nicht richtig funktioniert, Trennen eines oder mehrerer der
Arithmetikprozessoren von der ersten degradierten
Systemkonfiguration in Abhängigkeit von dem Alarmsignal, so daß der
Computer zu einer zweiten degradierten Systemkonfiguration
degradiert wird, und Neustarten des Computers in der zweiten
degradierten Systemkonfiguration
2. Verfahren nach Anspruch 1, wobei der Schritt (e) den
Schritt (e&sub1;) des Ausführens des Prüfprogramms auf jedem der
Arithmetikprozessoren aufweist und der Schritt (f) den
Hauptarithmetikprozessor einer der Gruppen sowie einen
untergeordneten Arithmetikprozessor der Gruppe von dem Computer trennt,
wenn im Schritt (e&sub1;) bestimmt worden ist, daß der
Hauptarithmetikprozessor nicht richtig funktioniert.
3. Verfahren nach Anspruch 1 oder 2, wobei jeder der
Arithmetikprozessoren mehrere Vektorpipelines einschließt und
wobei der Schritt (d) die Schritte umfaßt:
(d&sub1;) Zuweisen eines Gültig/ungültig-Codes jedem der
Arithmetikprozessoren in Abhängigkeit von einem Ergebnis des
Prüfprogramms, das im Schritt (b) ausgeführt wird, wobei der
Gültig/ungültig-Code jeden der Arithmetikprozessoren jeder
Gruppe als mit dem Computer verbindbar oder von dem Computer
trennbar identifiziert wird;
(d&sub2;) Vergleichen zwischen einer Gesamtanzahl von
Vektorpipelines, die für eine Gruppe der Arithmetikprozessoren
verfügbar ist, und einer Gesamtanzahl von Vektorpipelines, die
für die andere Gruppe der Arithmetikprozessoren verfügbar ist;
(d&sub3;) Wählen des Gültig/ungültig-Codes, der dem
Hauptarithmetikprozessor der Gruppe zugewiesen ist, von der im
Schritt (d&sub2;) bestimmt worden ist, daß sie eine größere
Gesamtanzahl von verfügbaren Vektorpipelines hat; und
(d&sub4;) Vergleichen des Gültig/ungültig-Codes, der jedem
der Arithmetikprozessoren zugewiesen ist, mit dem gewählten
Gültig/ungültig-Code, um zu bestimmen, ob die Vektorpipelines
jedes der Arithmetikprozessoren vom Computer getrennt werden
sollen oder jeder der Arithmetikprozessoren als Ganzes von dem
Computer getrennt werden soll.
4. Verfahren nach einem der Ansprüche 1 bis 3, wobei
jeder der Arithmetikprozessoren einen Cache-Speicher aufweist
und wobei der Schritt (d) einen Teil des Cache-Speichers des
Arithmetikprozessors abtrennt&sub1; der durch das Alarmsignal als
fehlerhaft gemeldet worden ist.
5. Verfahren nach einem der Ansprüche 1 bis 3, wobei
der Schritt (d) einen Teil des Speichers, der von dem
Alarmsignal als fehlerhaft gemeldet worden ist, sperrt.
6. Fehlerbeseitigungsprozessor (17) für einen
Hochgeschwindigkeitscomputer mit einem Speicher (11, 12) und
mehreren Arithmetikprozessoren (15), die in Gruppen eingeteilt
sind, wobei die Arithmetikprozessoren jeder Gruppe mit dem
Speicher in hierarchischer Ordnung in einer Beziehung
Hauptprozessor-untergeordneter Prozessor verbunden sind, wobei der
Speicher und die Arithmetikprozessoren ein Alarmsignal
erzeugen, das einen fehlerhaften Teil des Speichers und jedes der
Arithmetikprozessoren anzeigt, wobei der
Fehlerbeseitigungsprozessor (17) aufweist:
eine Prüfeinrichtung zum Analysieren des Alarmsignals
und zum Ausführen eines Prüfprogramms auf dem Computer, wenn
analysiert worden ist, daß der Computer in einem
möglicherweise wiederherstellbaren Zustand ist;
eine Neustarteinrichtung zum Neustarten des Computers
in einer Originalsystemkonfiguration, wenn das Ergebnis des
Testprogramms anzeigt, daß der Computer richtig funktioniert;
eine erste Trenneinrichtung zum Trennen eines Teils der
Arithmetikprozessoren von dem Computer in Abhängigkeit von dem
Alarmsignal, um den Computer zu einer degradierten
Systemkonfiguration neu zu konfigurieren, wenn ein erstes Ergebnis des
Prüfprogramms anzeigt, daß der Computer nicht richtig
funktioniert, und zum Veranlassen der Prüfeinrichtung, das
Prüfprogramm erneut auf dem Computer in der degradierten
Systemkonfiguration auszuführen; und
eine zweite Trenneinrichtung zum Trennen eines oder
mehrerer der Arithmetikprozessoren von dem Computer, wenn ein
zweites Ergebnis des Prüfprogramms anzeigt, daß der Computer
nicht richtig funktioniert.
7. Fehlerbeseitigungsprozessor nach Anspruch 6, wobei
jeder der Arithmetikprozessoren (15) mehrere Vektorpipelines
aufweist und wobei die erste Trenneinrichtung aufweist:
eine Zuweisungseinrichtung zum Zuweisen eines
Gültig/ungültig-Codes jedem der Arithmetikprozessoren in
Abhängigkeit von dem ersten Ergebnis des Prüfprogramms, wobei der
Gültig/ungültig-Code jeden der Arithmetikprozessoren jeder
Gruppe als mit dem Computer verbindbar oder von dem Computer
trennbar identifiziert;
eine Vergleichseinrichtung zum Vergleichen zwischen
einer Gesamtanzahl von Vektorpipelines, die fur eine Gruppe der
Arithmetikprozessoren verfügbar ist, und einer Gesamtanzahl
von Vektorpipelines, die für die andere Gruppe der
Arithmetikprozessoren verfügbar ist;
eine Wähleinrichtung zum Wählen des Gültig/ungültig-
Codes, der dem Hauptarithmetikprozessor der Gruppe zugewiesen
ist, von der die Vergleichseinrichtung bestimmt hat, daß sie
eine größere Gesamtanzahl von verfügbaren Vektorpipelines
aufweist; und
eine Vergleichseinrichtung zum Vergleichen des
Gültig/ungültig-Codes, der jedem der Arithmetikprozessoren
zugewiesen ist, mit dem gewählten Gültig/ungültig-Code, um zu
bestimmen, ob die Vektorpipelines jedes der
Arithmetikprozessoren vom Computer getrennt werden sollen oder jeder der
Arithmetikprozessoren als Ganzes von dem Computer getrennt werden
soll.
8. Fehlerbeseitigungsprozessor nach Anspruch 6 oder 7,
wobei jeder der Arithmetikprozessoren (15) einen Cache-
Speicher aufweist, ferner mit einer Einrichtung zum Trennen
eines Teils des Cache-Speichers des Arithmetikprozessors von
dem Computer, wenn der Teil durch das Alarmsignal als
fehlerhaft gemeldet worden ist.
9. Fehlerbeseitigungsprozessor nach Anspruch 6 oder 7,
ferner mit einer Einrichtung zum Trennen eines Teils des
Speichers von dem Computer, wenn der Teil des Speichers von dem
Alarmsignal als fehlerhaft gemeldet worden ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2058619A JP2752764B2 (ja) | 1990-03-08 | 1990-03-08 | 障害処理方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69120104D1 DE69120104D1 (de) | 1996-07-18 |
DE69120104T2 true DE69120104T2 (de) | 1997-02-06 |
Family
ID=13089581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69120104T Expired - Fee Related DE69120104T2 (de) | 1990-03-08 | 1991-03-07 | Fehlerbeseitigung für Superrechner |
Country Status (5)
Country | Link |
---|---|
US (1) | US5280606A (de) |
EP (1) | EP0445799B1 (de) |
JP (1) | JP2752764B2 (de) |
CA (1) | CA2037776C (de) |
DE (1) | DE69120104T2 (de) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2106280C (en) * | 1992-09-30 | 2000-01-18 | Yennun Huang | Apparatus and methods for fault-tolerant computing employing a daemon monitoring process and fault-tolerant library to provide varying degrees of fault tolerance |
JP2829241B2 (ja) * | 1994-07-26 | 1998-11-25 | 三菱電機株式会社 | プラント支援装置 |
US5653060A (en) * | 1994-08-31 | 1997-08-05 | Ykk Architectural Products Inc. | Sliding window structure |
US5991895A (en) * | 1995-05-05 | 1999-11-23 | Silicon Graphics, Inc. | System and method for multiprocessor partitioning to support high availability |
US7117397B1 (en) | 1999-12-15 | 2006-10-03 | Fujitsu Limited | Apparatus and method for preventing an erroneous operation at the time of detection of a system failure |
US6912670B2 (en) * | 2002-01-22 | 2005-06-28 | International Business Machines Corporation | Processor internal error handling in an SMP server |
US9501448B2 (en) * | 2008-05-27 | 2016-11-22 | Stillwater Supercomputing, Inc. | Execution engine for executing single assignment programs with affine dependencies |
US8560924B2 (en) * | 2010-01-05 | 2013-10-15 | International Business Machines Corporation | Register file soft error recovery |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3374465A (en) * | 1965-03-19 | 1968-03-19 | Hughes Aircraft Co | Multiprocessor system having floating executive control |
US4839895A (en) * | 1987-01-07 | 1989-06-13 | Nec Corporation | Early failure detection system for multiprocessor system |
US4970640A (en) * | 1987-08-28 | 1990-11-13 | International Business Machines Corporation | Device initiated partial system quiescing |
US4903264A (en) * | 1988-04-18 | 1990-02-20 | Motorola, Inc. | Method and apparatus for handling out of order exceptions in a pipelined data unit |
JPH0719211B2 (ja) * | 1988-10-08 | 1995-03-06 | 日本電気株式会社 | クロック制御方式 |
US5020059A (en) * | 1989-03-31 | 1991-05-28 | At&T Bell Laboratories | Reconfigurable signal processor |
-
1990
- 1990-03-08 JP JP2058619A patent/JP2752764B2/ja not_active Expired - Lifetime
-
1991
- 1991-03-07 EP EP91103469A patent/EP0445799B1/de not_active Expired - Lifetime
- 1991-03-07 CA CA002037776A patent/CA2037776C/en not_active Expired - Fee Related
- 1991-03-07 DE DE69120104T patent/DE69120104T2/de not_active Expired - Fee Related
- 1991-03-08 US US07/665,955 patent/US5280606A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0445799B1 (de) | 1996-06-12 |
US5280606A (en) | 1994-01-18 |
EP0445799A2 (de) | 1991-09-11 |
CA2037776A1 (en) | 1991-09-09 |
CA2037776C (en) | 1995-10-24 |
EP0445799A3 (en) | 1992-08-05 |
DE69120104D1 (de) | 1996-07-18 |
JP2752764B2 (ja) | 1998-05-18 |
JPH03259349A (ja) | 1991-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2714805C2 (de) | ||
EP0010198B1 (de) | Vorrichtung zur Steuerung des Seitenaustausches in einem Datenverarbeitungssystem mit virtuellem Speicher | |
DE69129067T2 (de) | Verfahren um die skalaren datenabhängigkeiten für einen optimisationskompiler darzustellen | |
DE69021659T2 (de) | Verfahren und Vorrichtung zur reihenweisen Parallelprogrammfehlersuche. | |
DE69831732T2 (de) | Verfahren und gerät zum korrigieren von fehlern in einem rechnersystem | |
DE68927705T2 (de) | Verfahren zum Entfernen unbestätigter Änderungen an gespeicherten Daten durch ein Datenbankverwaltungssystem | |
DE102007025397B4 (de) | System mit mehreren Prozessoren und Verfahren zu seinem Betrieb | |
DE69622219T2 (de) | Optimierungsgerät zum Entfernen von Gefahren durch Arrangierung der Befehlsreihenfolge | |
DE68924400T2 (de) | Fliessbanddatenverarbeitungsvorrichtung. | |
DE3751949T2 (de) | Verfahren zum Starten eines Untersystems in einem verteilten Verarbeitungssystem | |
DE2722124A1 (de) | Anordnung zum feststellen des prioritaetsranges in einem dv-system | |
EP1794680A1 (de) | Verfahren zur abarbeitung eines computerprogramms auf einem computersystem | |
DE69120104T2 (de) | Fehlerbeseitigung für Superrechner | |
DE69023695T2 (de) | Initialisierungs-system und -methoden für Eingang/Ausgang-Verarbeitungseinheiten. | |
DE2461592C3 (de) | Anordnung zur Durchführung von Wartungsoperationen bei einem Datenverarbeitungssystem | |
DE69128908T2 (de) | Verfahren zum Durchführen von erlässlichen Befehlen in einem Rechner | |
DE3750311T2 (de) | Gerät und Verfahren zur Übertragung zwischen Prozessoren. | |
DE69029164T2 (de) | Vorrichtung und Verfahren zum Ersetzen der Parität | |
DE3750756T2 (de) | Ausführung von Fehlererkennung unter Verwendung eines ungebrauchten Modulo-m-Kodes. | |
DE69430649T2 (de) | Fehlertolerante Rechnersysteme | |
DE2745204A1 (de) | Mikroprogramm-leitwerk fuer eine datenverarbeitungsanlage | |
EP3770766A1 (de) | Verfahren zum testen eines systems | |
DE69626282T2 (de) | Programmierbare vorrichtung und verfahren zum befehlsauffang | |
DE10085438B4 (de) | Prozessor mit Wiederholarchitektur mit schnellen und langsamen Wiederholpfaden | |
DE2717375C3 (de) | Einrichtung zur Ortung von Programmoder Hardwarefehlern |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |