-
HINTERGRUND DER ERFINDUNG
-
1. Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft ein fehlertolerantes Computersystem
mit Synchronismus im Gleichschritt, das dieselbe Anweisungskette
auf genau dieselbe Weise durch eine Vielzahl von Rechenmodulen in
Taktsynchronisation miteinander verarbeitet. Genauer gesagt betrifft
sie ein fehlertolerantes Computersystem und ein Resynchronisations-Steuerverfahren
hoher Geschwindigkeit, die ein Beschleunigen einer Resynchronisationsverarbeitung realisieren,
wenn eine Synchronisationsfehler unter Rechenmodulen auftritt (ein
Gleichschritt verloren wird).
-
2. Beschreibung des zugehörigen Standes
der Technik
-
Bei
einem herkömmlichen
fehlertoleranten Computersystem mit Synchronismus im Gleichschritt werden
dann, wenn unter einer Vielzahl von Rechenmodulen, die dieselbe
Anweisungskette gleichzeitig ausführen, aufgrund eines Fehlers
oder eines anderen externen oder internen Faktors ein Rechenmodul mit
einer unterschiedlichen Ausgabe von derjenigen von anderen Rechenmodulen
erfasst wird, solche Gegenmaßnahmen
vorgenommen, wie es folgt. Im Folgenden wird ein Rechenmodul, für das ein
fehlerhafter Betrieb in Bezug auf eine Synchronisation mit anderen
Rechenmodulen erfasst wird, Rechenmodul, das nicht im Gleichschrittzustand
ist, genannt werden.
-
Spezifischer
wird eine solche Maßnahme
eines einmaligen Abtrennens eines Rechenmoduls, das aus dem Gleichschritt
eines Betriebszustands gelangt, und eines Austauschens des Rechenmoduls,
wenn es gemäß einem
Faktor erforderlich ist, der ein aus dem Gleichschritt gelangen
verursacht, oder, wenn ein Austausch nicht nötig ist, eines Durchführens einer
erneuten Initialisierungsverarbeitung oder von ähnlichem gemäß der Notwendigkeit
zum Integrieren des Rechenmoduls in den Betriebszustand vorgenommen.
-
Zu
der Zeit der oben beschriebenen erneuten Integration in den Betriebszustand
werden beim herkömmlichen
fehlertoleranten Computersystem mit Synchronismus im Gleichschritt
deshalb, weil ungeachtet dessen, ob ein Rechenmodul, das nicht im Gleichschrittzustand
ist, ausgetauscht worden ist oder nicht, für das Rechenmodul zum Synchronisieren
mit anderen Rechenmodulen, die mit einem Betrieb fortfahren, um
dieselbe Verarbeitung wieder auszuführen, alle Speicherdaten, die
durch die Rechenmodule im Betriebszustand gehalten sind, in einen
Speicher kopiert, der durch das Rechenmodul gehalten ist, das zu
der Zeit seiner erneuten Integration erneut zu integrieren ist.
-
Bei
einem herkömmlichen
fehlertoleranten Computersystem mit Synchronismus im Gleichschritt werden
nach einem Ausführen
eines Austauschs eines Rechenmoduls, das nicht im Gleichschrittzustand
ist, eine erneute Initialisierungsverarbeitung gemäß einem
Teil, der ein aus dem Gleichschritt gelangen und ähnliches
verursacht, wenn das in Frage stehende Rechenmodul wieder in den
Betriebszustand integriert wird, Rechenmodule bei dem Betriebszustand
für eine
lange Zeitperiode angehalten.
-
Spezifischer
hat das herkömmliche
fehlertolerante Computersystem mit Synchronismus im Gleichschritt
ein derartiges Problem, dass, während ein
Rechenmodul, das nicht im Gleichschrittzustand ist, einer Verarbeitung
für eine
erneute Integration unterzogen wird, das gesamte fehlertolerante
Computersystem seinem Betrieb für
eine lange Zeitperiode (im Allgemeinen 3 bis 5 Sekunden oder in
der Größenordnung
von Minuten) angehalten hat.
-
Der
Grund dafür
besteht darin, dass zum Integrieren eines Rechenmoduls, das nicht
im Gleichschrittzustand ist, in den Betriebszustand alle Speicherinhalte
für die
gesamte Zeit von den Rechenmodulen, die mit einem Betrieb fortfahren,
in das Rechenmodul, das erneut zu integrieren ist, kopiert werden.
-
Wenn
ein Betrieb eines normalen Rechenmoduls während der Kopierverarbeitung
fortgeführt wird,
haben Speicherinhalte des normalen Rechenmoduls eine Möglichkeit,
auch während
der Kopierverarbeitung geändert
zu werden, so dass ein Kopieren nicht richtig durchgeführt werden
kann. Zum Vermeiden einer solchen Situation wird ein Rechenmodul
bei dem Betriebszustand temporär
gestoppt, um ein Updaten seiner Speicherinhalte zu verhindern.
-
Da
eine Speicherkapazität
in einem Rechenmodul heutzutage auf bis zu mehrere Gigabytes kommt,
wird ein Kopieren des gesamten Speicherbereichs eine lange Zeitperiode
erfordern.
-
Bei
einem fehlertoleranten Computersystem mit Synchronismus im Gleichschritt
tritt ein Zustand außerhalb
eines Gleichschritts unter Rechenmodulen aufgrund verschiedener
Ursachen auf.
-
Ein
erster Fall ist ein fester Fehler, der innerhalb eines Rechenmoduls
auftritt. In diesem Fall sollte ein Rechenmodul mit Fehler ausgetauscht
werden, und wenn das auszutauschende Rechenmodul in ein Betriebssystem
integriert wird, müssen
alle Daten in einem Speicher eines Rechenmoduls bei dem Betriebszustand
kopiert werden.
-
Bei
einem fehlertoleranten Computersystem mit Synchronismus im Gleichschritt
kann ein Zustand außerhalb
eines Gleichschritts auftreten, weil zusätzlich zu dem oben beschriebenen
festen Fehler Rechenmodule aufgrund von Herstellungsunterschieden
von einer jeweiligen Einheit in einem Rechenmodul zu einer unterschiedlichen
Zeitgabe arbeiten, obwohl ihr Betrieb normal ist, oder aufgrund
eines automatisch korrigierbaren intermittierenden Fehlers eines
Speichers, der durch Effekte eines α-Strahls oder von ähnlichem
verursacht wird.
-
In
diesen Fällen
benötigt
das Modul deshalb, weil ein fester Fehler nicht in einem Rechenmodul selbst
auftritt, grundsätzlich
keinen Austausch, und durch abermaliges Synchronisieren seiner Verarbeitung
mit derjenigen von anderen Rechenmodulen in einem Betrieb kann,
um das in Frage stehende Rechenmodul zu integrieren, das gesamte
fehlertolerante Computersystem wieder zu einem normalen Betriebszustand
hergestellt werden.
-
In
DE-A-41 04 114 ist ein redundantes Datenverarbeitungssystem offenbart.
Das redundante Datenverarbeitungssystem weist wenigstens zwei Zentraleinheiten
und eine Einrichtung zum Erfassen von Unterbrechungszuständen sowie
eine Einrichtung zur Synchronisation, nachdem ein Unterbrechungszustand
erfasst worden ist, auf. Die Zentraleinheit mit der am weitesten
fortgeschrittenen Programmausführung
wird in einem Wartezustand gehalten, bis die anderen Zentraleinheiten
den Programmzustand der Zentraleinheit erreicht haben, um eine schnelle
Synchronisation einzuführen.
-
Im
US-Patent 5,020,024 sind ein Verfahren und eine Vorrichtung zum
Erfassen einer ausgewählten
Abwesenheit eines Synchronismus einer digitalen Logik offenbart.
Das zur Verfügung
gestellte digitale Logikgerät,
in welchem zwei Logikelemente mit einer Zeitgabesteuerung von einem
Taktelement mit einem ausgewählten
Synchronismus arbeiten, enthält
ein Fehlererfassungselement, das die Abwesenheit des ausgewählten Synchronismus
zwischen den zwei Logikelementen selbst dann erfasst, wenn jedes sonst
eine richtige Logikoperation zur Verfügung stellt.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Es
ist eine Aufgabe der vorliegenden Erfindung, die durch die Ansprüche definiert
ist, ein fehlertolerantes Computersystem, ein Resynchronisationsverfahren
davon und ein Resynchronisationsprogramm davon zur Verfügung zu
stellen, die ermöglichen,
dass ein Rechenmodul, dessen Gleichschritt aufgrund anderer Gründe als
eines festen Fehlers verloren geht, mit einer höheren Geschwindigkeit als durch
ein herkömmliches
System wieder in den Betriebszustand integriert wird, um dadurch
eine Zeit zum temporären
Anhalten des Systembetriebs drastisch zu reduzieren, das durch die
Integrationsverarbeitung verursacht wird.
-
Eine
weitere Aufgabe der vorliegenden Erfindung besteht im Bereitstellen
eines fehlertoleranten Computersystems, eines Resynchronisationsverfahrens
davon und eines Resynchronisationsprogramms davon, welche eine Verbesserung
einer Verfügbarkeit
des Systems durch die Reduzierung an Zeit für die oben beschriebene Verarbeitung
für eine erneute
Integration realisieren.
-
Gemäß dem ersten
Aspekt der Erfindung enthält
ein fehlertolerantes Computersystem mit Synchronismus im Gleichschritt
eine Vielzahl von Rechenmodulen mit einem Prozessor und einem Speicher,
wobei jedes Rechenmodul dieselbe Anweisungskette synchron zueinander
verarbeitet, wobei dann, wenn eine Nichtübereinstimmung in Bezug auf einen
Zustand eines Zugriffs auf einen externen Bus unter den Prozessoren
in jedem Rechenmodul erfasst wird, wenn kein Fehler im System erfasst
wird, das jedes Rechenmodul enthält,
eine Verarbeitung eines Wiederaufnahmebetriebs in Synchronisation
in Bezug auf jedes Rechenmodul nach einem Erzeugen einer Unterbrechung
zu allen Prozessoren ausgeführt
wird, um eine Verzögerungseinstellung
auszuführen,
um zu veranlassen, dass ein Zustand einer Anweisungsausführung unter
den Rechenmodulen übereinstimmend
wird.
-
Das
fehlertolerante Computersystem weist weiterhin einen Fehlerdetektor
auf, der ein Vorhandensein/Nichtvorhandensein eines Fehlers im System überwacht;
einen
Busmonitor, der einen Zustand eines Zugriffs jedes Prozessors in
jedem Rechenmodul zu dem externen Bus überwacht;
eine Unterbrechungs-Steuereinrichtung,
um in einem Fall, in welchem der Busmonitor ein Fehlen einer Synchronisation
in einem Zustand eines Zugriffs jedes Prozessors in jedem Rechenmodul
auf den externen Bus erfasst, wenn der Fehlerdetektor keinen Fehler
erfasst, eine Unterbrechung zum Mitteilen des Erfassungsergebnisses
zu jedem Prozessor zu erzeugen;
eine Zwischensystemkommunikations-Steuereinrichtung,
die an jedes Rechenmodul angeschlossen ist, zum Mitteilen eines
Zustands einer Anweisungsausführung
unter den Prozessoren in jedem Rechenmodul und eine Synchronisations-Steuereinrichtung, die
an jedes Rechenmodul angeschlossen ist, zum Erzeugen eines Rücksetzsignals
zum Wiederaufnehmen eines Betriebs von allen Rechenmodulen in Synchronisation
nach einem Durchführen
einer Verzögerungseinstellung,
um zu veranlassen, dass ein Zustand einer Anweisungsausführung in
jedem Rechenmodul übereinstimmend
wird.
-
Jeder
von allen Prozessoren enthält
einen Anweisungsanzahl-Zähler
zum Zählen
der Anzahl von ausgeführten
Anweisungen im Prozessor, der Anweisungsanzahl-Zähler
unterlässt
ein Arbeiten, wenn die Prozessoren eine Unterbrechung von der Unterbrechungs-Steuereinrichtung
empfangen und zur Resynchronisation zu einem Prozessor-Managementmode
schalten;
jeder Prozessor vergleicht einen Wert seines eigenen Anweisungsanzahl-Zählers mit einem Wert eines
Anweisungsanzahl-Zählers,
der von jedem entsprechenden Prozessor in anderen Rechenmodulen empfangen
wird;
das Rechenmodul, das den Anweisungsanzahl-Zähler nicht
enthält,
der den größten Wert
unter allen der Zähler
anzeigt, führt
eine Verzögerungseinstellung zum
Ausführen
von Anweisungen durch, bis der Anweisungsanzahl-Zählerwert
mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt,
und wenn die Werte übereinstimmen,
sendet es eine Mitteilung zu dem Rechenmodul, das den Anweisungsanzahl-Zähler enthält, der
den größten Wert
anzeigt, und das Rechenmodul, das den Anweisungsanzahl-Zähler enthält, der
den größten Wert
anzeigt, wartet auf ein Empfangen einer Mitteilung von allen anderen
Rechenmodulen, und wenn es alle Mitteilungen empfängt, weist
es die Synchronisations-Steuereinrichtung an, ein Rücksetzsignal
zu erzeugen, um zu veranlassen, dass alle Rechenmodule einen Betrieb
in Synchronisation zueinander wiederaufnehmen.
-
Bei
einem weiteren bevorzugten Aufbau wird bei einer Verzögerungseinstellung,
bei welcher das Rechenmodul, dessen Anweisungsanzahl-Zählerwert
nicht der Größte ist,
Anweisungen ausführt,
bis der Anweisungsanzahl-Zählerwert
mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt,
der Prozessor auf einen Schrittausführungsmode zum Schalten zu
dem Prozessor-Managementmode nach einem Ausführen einer Anweisung eingestellt,
und wiederholt der Prozessor die Verarbeitung des Schrittausführungsmodes,
bis der Anweisungsanzahl-Zählerwert
mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt.
-
Bei
einem weiteren bevorzugten Aufbau schaltet jeder von allen Prozessoren,
die eine Unterbrechung von der Unterbrechungs-Steuereinrichtung empfangen
haben, zu einem Prozessor-Managementmode zur Resynchronisationsverarbeitung,
bei welcher ein Anweisungsanzahl-Zähler zum Zählen der Anzahl von ausgeführten Anweisungen
in dem Prozessor ein Arbeiten unterlässt und ein Programmzählerwert
gesichert und gespeichert wird;
jeder der Prozessoren einen
Anweisungsanzahl-Zählerwert
jedes Prozessors und den gesicherten Programmzählerwert liest und die Werte
zu allen anderen Rechenmodulen sendet.
-
Bei
einem weiteren bevorzugten Aufbau wird bei einer Verzögerungseinstellung,
bei welcher das Rechenmodul, dessen Anweisungsanzahl-Zählerwert
nicht der Größte ist,
Anweisungen ausführt,
bis der Anweisungsanzahl-Zählerwert
mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt,
der Prozessor auf einen Abbruchstellenbestimmungs-Ausführungsmode
zum Schalten zu dem Prozessor-Managementmode
nach einem Ausführen
bis zu einer Anweisung bei einer spezifischen Position in einer
bestimmten Anweisungskette eingestellt;
wird als die spezifische
Position in der Anweisungskette eine Anweisungsposition bestimmt,
die durch den von dem Rechenmodul empfangenen Programmzählerwert
angezeigt wird, das den Anweisungsanzahl-Zähler enthält, der den Größten anzeigt,
und wird nach einem Ausführen
der Anweisungskette bis zu der spezifischen Position in einer bestimmten
Anweisungskette der Prozessor zu dem Prozessor-Managementmode geschaltet.
-
Bei
einem weiteren bevorzugten Aufbau wartet das Rechenmodul, das den
Anweisungsanzahl-Zähler
enthält,
der den Größten anzeigt,
nach einem Lesen eines Programmausführungszustands auf die Mitteilung
von anderen Rechenmodulen;
lesen nach einem Ausführen der
Verzögerungseinstellungsverarbeitung
alle anderen Rechenmodule, die den Anweisungsanzahl-Zähler nicht
enthalten, der den größten Wert
anzeigt, einen Programmausführungszustand
und senden den Programmausführungszustand
zusammen mit einer Mitteilung über eine
Beendigung der Verzögerungseinstellungsverarbeitung
zu dem Rechenmodul, das den Anweisungsanzahl-Zähler enthält, der den Größten anzeigt,
und vergleicht das Rechenmodul, das den Anweisungsanzahl-Zähler enthält, das
den Größten anzeigt,
Programmausführungszustände aller
Rechenmodule, und dann, wenn alle miteinander übereinstimmen, weist es eine
Erzeugung des Rücksetzsignals
zum Wiederaufnehmen eines Synchronisationsbetriebs an, und wenn
ein Rechenmodul, dessen Programmausführungszustand nicht übereinstimmend
ist, erfasst wird, weist es die Erzeugung des Rücksetzsignals zum Wiederaufnehmen
eines Betriebs in Synchronisation nach einem Ausführen einer
Verarbeitung zum Abtrennen und zum Erklären des Rechenmoduls für ungültig an.
-
Bei
einem weiteren bevorzugten Aufbau sind eine Vielzahl von Paaren
des Fehlerdetektors, des Busmonitors, der Unterbrechungs-Steuereinrichtung,
der Zwischensystemkommunikations-Steuereinrichtung und der Synchronisations-Steuereinrichtung
vorgesehen.
-
Gemäß einem
weiteren Aspekt der Erfindung weist ein Resynchronisationsverfahren
in einem fehlertoleranten Computersystem im Gleichschritt, das eine
Vielzahl von Rechenmodulen mit einem Prozessor und einem Speicher
enthält,
wobei jedes Rechenmodul dieselbe Anweisungskette synchron zueinander
verarbeitet, die Schritte auf, um dann, wenn eine Nichtübereinstimmung
in einem Zustand eines Zugriffs auf einen externen Bus unter den Prozessoren
in jedem Rechenmodul, wenn kein Fehler in dem System erfasst wird,
das jedes Rechenmodul enthält,
eine Unterbrechung zu allen Prozessoren zu erzeugen und nach einem
Ausführen
einer Verzögerungseinstellung
zu veranlassen, dass ein Anweisungsausführungszustand unter den Rechenmodulen übereinstimmend
wird, eine Verarbeitung zum Wiederaufnehmen eines Betriebs in Synchronisation in
Bezug auf jedes Rechenmodul auszuführen.
-
Das
Resynchronisationsverfahren eines fehlertoleranten Computersystems
weist weiterhin die Schritte zum Überwachen eines Vorhandenseins/Nichtvorhandenseins
eines Fehlers im System auf;
zum Überwachen eines Zustands eines
Zugriffs jedes Prozessors in jedem Rechenmodul auf den externen
Bus;
wenn eine Nichtübereinstimmung
in einem Zustand eines Zugriffs jedes Prozessors in jedem Rechenmodul
auf den externen Bus erfasst wird, wenn kein Fehler erfasst wird,
zum Erzeugen einer Unterbrechung zum Mitteilen des Erfassungsergebnisses
zu allen Prozessoren, und nach einem Ausführen der Verzögerungseinstellung
zum Veranlassen, dass ein Zustand einer Anweisungsausführung unter
den Rechenmodulen übereinstimmend
wird, zum Erzeugen eines Rücksetzsignals
zum Ausführen
einer Verarbeitung zum Wiederaufnehmen eines Betriebs in Synchronisation
von allen Rechenmodulen.
-
Das
Resynchronisationsvertahren weist weiterhin die Schritte auf, dass
jeder von allen Prozessoren, die die Unterbrechung empfingen, zu
einem Prozessor-Managementmode
zur Resynchronisationsverarbeitung schaltet, wobei ein Anweisungsanzahl-Zähler zum
Zählen
der Anzahl von ausgeführten Anweisungen
im Prozessor ein Arbeiten unterlässt;
wobei
jeder Prozessor den gelesenen Anweisungsanzahl-Zählerwert mit einem von jedem
Prozessor in anderen Rechenmodulen empfangenen Anweisungsanzahl-Zählerwert
vergleicht;
wobei das Rechenmodul, das den Anweisungsanzahl-Zähler nicht
enthält,
der den größten Wert
unter allen Zählern
anzeigt, die Verzögerungseinstellung zum
Ausführen
von Anweisungen ausführt,
bis der Anweisungsanzahl-Zählerwert
mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt,
und dann, wenn die Werte übereinstimmen,
eine Mitteilung zu dem Rechenmodul sendet, das den Anweisungsanzahl-Zähler enthält, der
den größten Wert anzeigt,
und das Rechenmodul, das den Anweisungsanzahl-Zähler enthält, der den größten Wert anzeigt,
auf ein Empfangen einer Mitteilung von allen anderen Rechenmodulen
wartet und dann, wenn es alle Mitteilungen empfängt, das Rücksetzsignal erzeugt, um zu
veranlassen, dass alle Rechenmodule einen Betrieb in Synchronisation
zueinander wiederaufnehmen.
-
Bei
einem weiteren bevorzugten Aufbau wird bei der Verzögerungseinstellung,
bei welcher das Rechenmodul, dessen Anweisungsanzahl-Zählerwert
nicht der Größte ist,
Anweisungen ausführt,
bis der Anweisungsanzahl-Zählerwert
mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt;
der
Prozessor auf einen Schritt- bzw. Stufenausführungsmode zum Schalten zu
dem Prozessor-Managementmode nach einem Ausführen einer Anweisung eingestellt,
und wiederholt der Prozessor die Verarbeitung des Schrittausführungsmodes,
bis der Anweisungsanzahl-Zählerwert
mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt.
-
Bei
einem weiteren bevorzugten Aufbau schaltet jeder von allen Prozessoren,
die die Unterbrechung empfingen, zu einem Prozessor-Managementmode
zur Resynchronisationsverarbeitung, wobei ein Anweisungsanzahl-Zähler zum
Zählen
der Anzahl von ausgeführten
Anweisungen im Prozessor ein Arbeiten unterlässt und ein Programmzählerwert gesichert
und gespeichert wird;
liest jeder Prozessor den Anweisungsanzahl-Zählenrvert
jedes Prozessors und den gesicherten Programmzählerwert und sendet die Werte
zu allen anderen Rechenmodulen.
-
Bei
einem weiteren bevorzugten Aufbau wird bei einer Verzögerungseinstellung,
bei welcher das Rechenmodul, dessen Anweisungsanzahl-Zählerwert
nicht der Größte ist,
Anweisungen ausführt,
bis der Anweisungsanzahl-Zählerwert
mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt;
der
Prozessor auf einen Abbruchstellenbestimmungs-Ausführungsmode
zum Schalten zum Prozessor-Managementmode nach einem Ausführen bis zu
einer Anweisung bei einer spezifischen Position in einer bestimmten
Anweisungskette eingestellt;
wird als die spezifische Position
in der Anweisungskette eine Anweisungsposition bestimmt, die durch den
von dem Rechenmodul empfangenen Programmzählerwert angezeigt wird, das
den Anweisungsanzahl-Zähler
enthält,
der den Größten anzeigt,
und wird nach einem Ausführen
der Anweisungskette bis zu der spezifischen Position in einer bestimmten
Anweisungskette der Prozessor zu dem Prozessor-Managementmode geschaltet.
-
Bei
einem weiteren bevorzugten Aufbau wartet das Rechenmodul, das den
Anweisungsanzahl-Zähler
enthält,
der den Größten anzeigt,
nach einem Lesen eines Programmausführungszustands auf die Mitteilung
von anderen Rechenmodulen;
lesen alle anderen Rechenmodule,
die den Anweisungsanzahl-Zähler
nicht enthalten, der den größten Wert
anzeigt, nach einem Ausführen
der Verzögerungs einstellungsverarbeitung
einen Programmausführungszustand
und senden den Programmausführungszustand
zusammen mit einer Mitteilung über eine
Beendigung der Verzögerungseinstellungsverarbeitung
zu dem Rechenmodul, das den Anweisungsanzahl-Zähler enthält, der den Größten anzeigt,
und vergleicht das Rechenmodul, das den Anweisungsanzahl-Zähler enthält, der
den Größten anzeigt,
Programmausführungszustände von
allen Rechenmodulen, und dann, wenn alle miteinander übereinstimmen,
weist es eine Erzeugung des Rücksetzsignals
zum Wiederaufnehmen eines Synchronisationsbetriebs an, und dann,
wenn ein Rechenmodul, dessen Programmausführungszustand nicht übereinstimmend
ist, erfasst wird, weist es die Erzeugung des Rücksetzsignals zum Wiederaufnehmen
eines Betriebs in Synchronisation nach einem Ausführen einer
Verarbeitung eines Abtrennens und eines Erklärens für ungültig des Rechenmoduls an.
-
Gemäß einem
weiteren Aspekt der Erfindung weist ein Resynchronisationsprogramm
zum Ausführen
einer Resynchronisationsverarbeitung eines fehlertoleranten Computersystems
mit Synchronismus im Gleichschritt, das eine Vielzahl von Rechenmodulen
mit einem Prozessor und einem Speicher enthält, wobei jedes Rechenmodul
dieselbe Anweisungskette in Taktsynchronisation zueinander verarbeitet,
die Funktionen auf, dass dann, wenn eine Nichtübereinstimmung bezüglich eines
Zustands eines Zugriffs auf einen externen Bus unter den Prozessoren
in jedem Rechenmodul erfasst wird, wenn kein Fehler in dem System
erfasst wird, das ein jeweiliges Rechenmodul enthält, eine
Unterbrechung zu allen Prozessoren erzeugt wird und veranlasst wird,
dass jeder Prozessor nach einem Ausführen einer Verzögerungseinstellung
einen Betrieb in Synchronisation wieder aufnimmt, um zu veranlassen,
dass ein Anweisungsausführungszustand
unter den Rechenmodulen übereinstimmend
wird.
-
Das
Resynchronisationsprogramm weist weiterhin die Funktionen zum Überwachen
eines Vorhandenseins/Nichtvorhandenseins eines Fehlers im System
auf;
zum Überwachen
eines Zustands eines Zugriffs jedes Prozessors in jedem Rechenmodul
auf den externen Bus, wenn eine Nichtübereinstimmung bezüglich eines
Zustands eines Zugriffs jedes Prozessors in jedem Rechenmodul auf
den externen Bus erfasst wird, wenn kein Fehler bei der Fehlerüberwachung erfasst
wird, zum Erzeugen einer Unterbrechung zum Mitteilen des Erfassungsergebnisses
zu jedem Prozessor, und zum Erzeugen eines Rücksetzsignals zum Wiederaufnehmen
eines Betriebs in Synchronisation von allen Rechenmodulen nach einem Ausführen der
Verzögerungseinstellung,
um zu veranlassen, dass ein Zustand einer Anweisungsausführung unter
den Rechenmodulen übereinstimmend
wird.
-
Das
Resynchronisationsprogramm weist die Funktion von jedem aller Prozessoren,
die die Unterbrechung empfingen, auf, zur Resynchronisationsverarbeitung
zu einem Prozessor-Managementmode zu schalten, wobei ein Anweisungsanzahl-Zähler zum Zählen der Anzahl von ausgeführten Anweisungen
im Prozessor ein Arbeiten unterlässt;
die
Funktion, dass jeder Prozessor den gelesenen Anweisungsanzahl-Zählerwert mit einem von jedem Prozessor
in anderen Rechenmodulen empfangenen Anweisungsanzahl-Zählerwert
vergleicht;
die Funktion, dass das Rechenmodul, das den Anweisungsanzahl-Zähler nicht
enthält,
der den größten Wert
unter allen Zählern
anzeigt, die Verzögerungseinstellung
zum Ausführen
von Anweisungen ausführt,
bis der Anweisungsanzahl-Zählerwert
mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt,
und dann, wenn die Werte übereinstimmen, eine
Mitteilung zu dem Rechenmodul sendet, das den Anweisungsanzahl-Zähler enthält, der
den größten Wert
enthält,
und die Funktion, dass das Rechenmodul, das den Anweisungsanzahl-Zähler enthält, der
den größten Wert
anzeigt, auf ein Empfangen einer Mitteilung von allen anderen Rechenmodulen wartet,
und dann, wenn es alle Mitteilungen empfängt, eine Erzeugung des Rücksetzsignals
anweist, um zu veranlassen, dass alle Rechenmodule einen Betrieb
in Synchronisation wiederaufnehmen.
-
Bei
einem weiteren bevorzugten Aufbau weist das Resynchronisationsprogramm
bei der Verzögerungseinstellung,
bei welcher das Rechenmodul, dessen Anweisungsanzahl-Zählerwert
nicht der Größte ist,
Anweisungen ausführt,
bis der Anweisungsanzahl-Zählerwert
mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt;
die
Funktion eines Einstellens des Prozessors auf einen Stufenausführungsmode
zum Schalten zu dem Prozessor-Managementmode nach einem Ausführen einer
Anweisung auf;
die Funktion, dass der Prozessor die Verarbeitung des
Stufenausführungsmodes
wiederholt, bis der Anweisungsanzahl-Zählerwert mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt.
-
Bei
einem weiteren bevorzugten Aufbau weist das Resynchronisationsprogramm
die Funktion auf, dass jeder von allen Prozessoren, die die Unterbrechung
empfin gen, zu dem Prozessor-Managementmode zur Resynchronisationsverarbeitung schaltet,
wobei der Anweisungsanzahl-Zähler
zum Zählen
der Anzahl von ausgeführten
Anweisungen im Prozessor ein Arbeiten unterlässt und ein Programmzählerwert
gesichert und gespeichert wird;
die Funktion, dass jeder Prozessor
den Anweisungsanzahl-Zählerwert
jedes Prozessors und den gesicherten Programmzählerwert liest und die Werte
zu allen anderen Rechenmodulen sendet.
-
Bei
einem weiteren bevorzugten Aufbau weist das Resynchronisationsprogramm
bei der Verzögerungseinstellung,
wobei das Rechenmodul, dessen Anweisungsanzahl-Zählerwert nicht der Größte ist,
Anweisungen ausführt,
bis der Anweisungsanzahl-Zählerwert
mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt;
die
Funktion eines Einstellens des Prozessors auf einen Abbruchstellenbestimmungs-Ausführungsmode zum
Schalten zu dem Prozessor-Managementmode nach
einem Ausführen
des Prozessors bis zu einer Anweisung bei einer spezifischen Position
in einer bestimmten Anweisungskette auf;
die Funktion eines
Bestimmens einer Anweisungsposition, die durch den von dem Rechenmodul
empfangenen Programmzählerwert
angezeigt wird, das den Anweisungsanzahl-Zähler enthält, der den Größten anzeigt,
als die spezifische Position in der Anweisungskette, und die Funktion
eines Schaltens des Prozessors zu dem Prozessor-Managementmode, nachdem
der Prozessor die Anweisungskette bis zu der spezifischen Position
in einer bestimmten Anweisungskette ausführt.
-
Bei
einem weiteren bevorzugten Aufbau weist das Resynchronisationsprogramm
die Funktion auf, dass das Rechenmodul, das den Anweisungsanzahl-Zähler enthält, der
den Größten anzeigt,
auf die Mitteilung von anderen Rechenmodulen nach einem Lesen eines
Programmausführungszustands
wartet, die Funktion, dass alle anderen Rechenmodule, die den Anweisungsanzahl-Zähler nicht
enthalten, der den größten Wert
anzeigt, einen Programmausführungszustand
lesen und den Programmausführungszustand
zusammen mit einer Mitteilung über
eine Beendigung der Verzögerungseinstellungsverarbeitung zu
dem Rechenmodul senden, das den Anweisungsanzahl-Zähler enthält, der
den Größten anzeigt,
nach einem Ausführen
der Verzögerungseinstellungsverarbeitung,
und die Funktion, dass das Rechenmodul, das den Anweisungsanzahl-Zähler enthält, der
den Größten anzeigt,
Programmausführungszustände von
allen Rechenmodulen vergleicht, und dann, wenn alle miteinander übereinstimmen,
eine Erzeugung des Rücksetzsignals
zum Wiederaufnehmen eines Betriebs in Synchronisation anweisen,
und dann, wenn ein Rechenmodul, dessen Programmausführungszustand
nicht übereinstimmend
ist, erfasst wird, die Erzeugung des Rücksetzsignals zum Wiederaufnehmen
eines Betriebs in Synchronisation nach einem Ausführen einer
Verarbeitung eines Abtrennens und eines für ungültig Erklärens des Rechenmoduls anweisen.
-
Andere
Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden
aus der hierin nachfolgend angegebenen detaillierten Beschreibung
klar werden.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Die
vorliegende Erfindung wird vollständiger aus der hierin nachfolgend
angegebenen detaillierten Beschreibung und aus den beigefügten Zeichnungen des
bevorzugten Ausführungsbeispiels
der Erfindung verstanden werden, welche jedoch nicht als beschränkend für die Erfindung
angenommen werden sollten, sondern nur zur Erklärung und zum Verstehen dienen.
-
In
den Zeichnungen gilt:
-
1 ist
ein Blockdiagramm, das eine Struktur eines fehlertoleranten Computersystems
gemäß einem
ersten Implementierungsmode der vorliegenden Erfindung zeigt;
-
2 ist
ein Ablaufdiagramm zur Verwendung beim Erklären eines ersten Betriebs des
fehlertoleranten Computersystems gemäß dem ersten Mode;
-
3 ist
ein Ablaufdiagramm zur Verwendung beim Erklären des ersten Betriebs des
fehlertoleranten Computersystems;
-
4 ist
ein Ablaufdiagramm zur Verwendung beim Erklären eines zweiten Betriebs
des fehlertoleranten Computersystems;
-
5 ist
ein Ablaufdiagramm zur Verwendung beim Erklären des zweiten Betriebs des
fehlertoleranten Computersystems;
-
6 ist
ein Ablaufdiagramm zur Verwendung beim Erklären eines dritten Betriebs
des fehlertoleranten Computersystems;
-
7 ist
ein Blockdiagramm, das eine Struktur eines fehlertoleranten Computersystems
gemäß einem
zweiten Implementierungsmode zeigt;
-
8 ist
ein Ablaufdiagramm zur Verwendung beim Erklären eines Betriebs des fehlertoleranten
Computersystems gemäß dem zweiten
Mode;
-
9 ist
ein Ablaufdiagramm zur Verwendung beim Erklären des Betriebs des fehlertoleranten Computersystems
gemäß dem zweiten
Ausführungsbeispiel;
und
-
10 ist
ein Blockdiagramm, das eine Struktur eines fehlertoleranten Computersystems
gemäß einem
dritten Implementierungsmode zeigt.
-
BESCHREIBUNG
DES BEVORZUGTEN AUSFÜHRUNGSBEISPIELS
-
Das
bevorzugte Ausführungsbeispiel
der vorliegenden Erfindung wird hierin nachfolgend detailliert unter
Bezugnahme auf die beigefügten
Zeichnungen diskutiert werden. In der folgenden Beschreibung sind
zahlreiche spezifische Details aufgezeigt, um ein sorgfältiges Verstehen
der vorliegenden Erfindung zur Verfügung zu stellen. Es wird jedoch
Fachleuten auf dem Gebiet offensichtlich werden, dass die vorliegende
Erfindung ohne diese spezifischen Details ausgeführt werden kann. Andererseits
sind wohlbekannte Strukturen nicht detailliert gezeigt, um die vorliegende
Erfindung nicht unnötig
zu verdecken.
-
Implementierungsmoden
der vorliegenden Erfindung werden unter Bezugnahme auf die Zeichnungen
im Folgenden detailliert beschrieben werden.
-
Eine
Struktur eines fehlertoleranten Computersystems gemäß einem
ersten Implementierungsmode der vorliegenden Erfindung ist in 1 gezeigt.
In 1 enthält
des fehlertolerante Computersystem eine Vielzahl von Rechenmodulen 100 und 200,
von welchen jedes Rechenmodul 100 und 200 dieselbe
Anweisungskette in Taktsynchronisation zueinander verarbeitet. Das
fehlertolerante Computersystem vergleicht ein Verarbeitungsergebnis
von jedem Rechenmodul zur Freigabe. Wenn ein Rechenmodul einen Fehler
entwickelt, kann die Verarbeitung durch das übrige Rechenmodul fortgeführt werden.
-
Die
Rechenmodule enthalten eine Vielzahl von Prozessoren 101 und 102,
einen Bus 103 extern vom Prozessor, einen Speicher 104 und
eine Speichersteuereinheit 105. Das Rechenmodul 200 enthält auch
dieselben Komponenten wie das Rechenmodul 100.
-
Zusätzlich sind
die Rechenmodule 100 und 200 mit peripheren Vorrichtungs-Steuereinheiten 400 und 500 zum
Steuern einer peripheren Vorrichtung durch die Speichersteuereinheiten 105 und 205 verbunden.
-
Das
oben beschriebene fehlertolerante Computersystem enthält weiterhin
einen Fehlerdetektor 700, einen Busmonitor 701,
eine Unterbrechungs-Steuereinheit 702, eine Zwischensystemkommunikations-Steuereinheit 703 und
einen Synchronisations-Steuereinheit 704.
-
Der
Fehlerdetektor 700 überwacht
ein Vorhandensein/Nichtvorhandensein eines Fehlers im gesamten System
mit den jeweiligen Rechenmodulen 100 und 200.
-
Der
Busmonitor 701 überwacht
einen Zustand eines Zugriffs des Prozessors in jedem der Rechenmodule 100 und 200 auf
die externen Busse 103 und 203.
-
In
einem Fall, in welchem der Busmonitor 701 eine Nichtübereinstimmung
bezüglich
einer Ausgabe jedes Prozessors in den jeweiligen Rechenmodulen 100 und 200 zu
dem externen Bus erfasst, wenn der Fehlerdetektor 700 keinen
Fehler erfasst, erzeugt die Unterbrechungs-Steuereinheit 701 eine Unterbrechung,
um den Effekt allen Prozessoren mitzuteilen.
-
Die
Zwischensystemkommunikations-Steuereinheit 703, die mit
den jeweiligen Rechenmodulen 100 und 200 verbunden
ist, stellt einen Kommunikationspfad zum Prüfen eines Zustands einer Nichtübereinstimmung
bezüglich
eines Betriebs durch die Prozessoren in den jeweiligen Rechenmodulen 100 und 200 zur
Verfügung.
-
Die
Synchronisations-Steuereinheit 704, die mit den jeweiligen
Rechenmodulen 100 und 200 verbunden ist, erzeugt
ein Rücksetzsignal
zum Steuern einer Resynchronisation zu allen Rechenmodulen 100 und 200 in
Reaktion auf eine Anweisung von irgendeinem der Prozessoren.
-
Hier
ist die Anzahl von Prozessoren, die in jedem der Rechenmodule 100 und 200 enthalten
sind, nicht auf Zwei beschränkt,
wie es beim vorliegenden Implementierungsmode gezeigt ist, und an
jedem Rechenmodul kann ein Prozessor oder können drei oder mehrere Prozessoren
angebracht sein.
-
Zusätzlich ist
die Anzahl von Rechenmodulen nicht auf Zwei beschränkt, wie
es bei dem vorliegenden Implementierungsmode gezeigt ist, und drei oder
mehrere Rechenmodule können
enthalten sein, um denselben Effekt wie denjenigen der vorliegenden
Erfindung zu haben.
-
Als
Nächstes
wird ein Betrieb eines solchen strukturierten fehlertoleranten Computersystems
gemäß dem ersten
Implementierungsmode unter Bezugnahme auf die 1, 2 und 3 detailliert erklärt werden.
-
Der
Fehlerdetektor 700 überwacht
ein Vorhandensein/Nichtvorhandensein eines Fehlers im gesamten fehlertoleranten
Computersystem mit den jeweiligen Rechenmodulen 100 und 200 und
den jeweiligen Steuereinheiten 400 und 500 für periphere Vorrichtungen
und teilt der Unterbrechungs-Steuereinheit 702 das Ergebnis
mit.
-
Der
Busmonitor 701 ist mit den externen Bussen 103 und 203 der
Prozessoren der jeweiligen Rechenmodule 100 und 200 verbunden.
Der Busmonitor 701 vergleicht einen Zustand eines Zugriffs (Busprotokoll
der Prozessoren 101, 102, 201 und 202)
auf den externen Bus, um zu überwachen,
ob die jeweiligen Prozessoren 101, 102, 201 und 202 auf
die prozessorexternen Busse 103 und 203 zur gleichen
Zeitgabe synchron zueinander zugreifen oder nicht. Wenn ein Mangel
an Übereinstimmung bezüglich eines
Betriebs der Prozessoren 101, 102, 201 und 202 erfasst
wird, teilt der Busmonitor 701 den Effekt der Unterbrechungs-Steuereinheit 702 mit.
-
Wenn
ihr die Erfassung eines Mangels an Synchronisation bezüglich eines
Betriebs durch den Busmonitors 701 mitgeteilt wird, wenn
der Fehlerdetektor 700 keinen Fehler im fehlertoleranten
Computersystem erfasst, erzeugt die Unterbrechungs-Steuereinheit 702 eine
Unterbrechung, um den Effekt allen Prozessoren in jedem Rechenmodul
mitzuteilen.
-
Die
Unterbrechungs-Steuereinheit 702 unterdrückt auch
eine Erzeugung einer neuen Unterbrechung nach der Erzeugung einer
Unterbrechung, bis eine Anwei sung von der Synchronisations-Steuereinheit 704 gegeben
wird. Die Unterdrückung
verhindert ein Erkennen eines Mangels an Synchronisation in Bezug
auf einen Betrieb eines Zugriffs der Prozessoren zum externen Bus,
welcher durch eine Resynchronisationsverarbeitung für jedes
Rechenmodul verursacht wird, als Mangel einer Synchronisation bei
einem normalen Betrieb.
-
Jeder
der Prozessoren 101, 102, 201 und 202,
die die Unterbrechung von der Unterbrechungs-Steuereinheit 702 empfangen
haben, korrigiert eine Abweichung bezüglich eines Betriebs (ein aus
dem Gleichschritt geraten) zwischen den jeweiligen Rechenmodulen 100 und 200 durch
Ausführen einer
Resynchronisationsverarbeitung zum Wiedergewinnen eines Zustands,
in welchem dieselbe Anweisungskette in Taktsynchronisation zueinander ausgeführt wird.
-
Die
relevante Resynchronisationsverarbeitung wird unter Bezugnahme auf
die in den 2 und 3 gezeigten
Ablaufdiagramme beschrieben werden.
-
Auf
ein Empfangen einer Unterbrechung hin schaltet jeder der Prozessoren 101, 102, 201 und 202 zu
einem Prozessor-Managementmode zur Resynchronisationsverarbeitung,
wobei ein Anweisungsanzahl-Zähler
zum Zählen
der Anzahl von Anweisungen, die im Prozessor ausgeführt sind,
ein Arbeiten unterlässt
(Schritt 201).
-
Dann
liest jeder der Prozessoren 101, 102, 201 und 202 einen
Wert seines eigenen Anweisungsanzahl-Zählers (Schritt 202),
um den gelesenen Wert des Anweisungsanzahl-Zählers zu einem anderen Rechenmodul
durch die Speicher-Steuereinheiten 105 und 205 und
die Zwischensystemkommunikations-Steuereinheit 703 zu
senden (Schritt 203).
-
Jeder
der Prozessoren 101, 102, 201 und 202 liest
auch den Wert des Anweisungsanzahl-Zählers des Prozessors im anderen
Rechenmodul, der von dem anderen Rechenmodul über die Zwischensystemkommunikations-Steuereinheit 703 und
die Speicher-Steuereinheiten 105 und 205 gesendet sind
(Schritt 204). Jeder der Prozessoren vergleicht denselben
mit dem Wert des Anweisungsanzahl-Zählers
des entsprechenden Prozessors in jedem von allen Rechenmodulen (Schritt 205).
-
Hier
führt das
Rechenmodul, das einen Prozessor enthält, dessen Anweisungsanzahl-Zähler den
größten Wert
unter allen Zählern
anzeigt (hierin nachfolgend wird es das Rechenmodul mit dem Anweisungsanzahl-Zähler des
größten Werts
genannt), während
andere Rechenmodule Anweisungen äquivalent
zu einer Verzögerung
als Ergebnis eines Vergleichs der Anweisungsanzahl-Zählerwerte
ausführen,
eine Verarbeitung zum Bringen der Ausführung in eine Warteschlange
durch (Schritt 206). Wenn die Anzahlen von ausgeführten Anweisungen
in allen Rechenmodulen 100 und 200 miteinander übereinstimmen,
weist das Rechenmodul mit dem Anweisungsanzahl-Zähler des größten Werts die Synchronisations-Steuereinheit 704 über die
Speicher-Steuereinheit 105 oder 205 an, eine Rücksetzanweisung zur
Resynchronisationsverarbeitung zu allen Rechenmodulen 100 und 200 zu
erzeugen (Schritt 207).
-
Andererseits
führen
alle Rechenmodule, die den Anweisungsanzahl-Zähler nicht enthalten, der den
größten Wert
anzeigt, eine Verzögerungsschritt-Einstellungsverarbeitung
zum Ausführen
von Anweisungen aus, bis in denselben Anweisungskettenausführungszustand
wie demjenigen des Rechenmoduls eingetreten wird, dessen Anzahl
von ausgeführten
Anweisungen (der Anweisungsanzahl-Zählerwert)
die größte ist
(Schritt 208). Jedes der Rechenmodule, deren Anweisungsanzahl-Zählerwert
nicht der Größte ist,
teilt eine Beendigung der Verzögerungsschritteinstellungsverarbeitung
zu dem Rechenmodul mit, dessen Anweisungsanzahl-Zählerwert
der Größte ist
(Schritt 209), und wartet darauf folgend auf eine Anforderungsanweisung
für die
Resynchronisationsverarbeitung (Schritt 210).
-
Auf
ein Empfangen der Anweisung vom Rechenmodul mit dem Anweisungsanzahl-Zähler hin, der den größten Wert
anzeigt, erzeugt die Synchronisations-Steuereinheit 704 ein Rücksetzsignal
zum Wiedergewinnen des Betriebs in Synchronisation gleichzeitig
zu allen Rechenmodulen 100 und 200. Zusätzlich gibt
die Einheit 704 gleichzeitig der Unterbrechungs-Steuereinheit 702 eine
Anweisung, um eine Erzeugung einer Unterbrechung zuzulassen, um
dadurch vorzubereiten, dass ein normaler Betrieb in Synchronisation
wieder aufgenommen wird.
-
3 zeigt
eine detaillierte Funktion der in 2 dargestellten
Verzögerungsschritteinstellungsverarbeitung.
-
Bei
der Verzögerungseinstellungsverarbeitung
(Schritt 208 in 2) werden die Prozessoren auf
einen Schrittausführungsmode
eingestellt, in welchem die Prozes soren genau nach einem Ausführen von
einer Anweisung zu dem Prozessor-Managementmode
geschaltet werden (Schritt 301). Darauf folgend werden
die Prozessoren zu einem normalen Ausführungsmode geschaltet (Schritt 302).
-
Als
Ergebnis schaltet der Prozessor nach einem Ausführen von nur einer Anweisung
(Schritt 303) zu dem Prozessor-Managementmode (Schritt 304).
-
Der
Prozessor liest den Wert seines eigenen Anweisungsanzahl-Zählers (Schritt 305)
und vergleicht den gelesenen Wert mit dem Wert eines Anweisungsanzahl-Zählers, der bereits von dem
Rechenmodul mit dem größten Wert
empfangen ist (Schritt 306). Wenn sie fehlschlagen, miteinander übereinzustimmen,
wiederholt der Prozessor die Verarbeitung des Schrittausführungsmodes
wieder (Schritt 301), und dann, wenn sie miteinander übereinstimmen,
beendet er die Verzögerungsschritteinstellungsverarbeitung.
-
Die
vorangehend beschriebene Funktion ermöglicht, dass ein Zustand eines
Rechenmoduls, das aufgrund einer anderen Ursache als eines festen Fehlers
aus einem Gleichschritt gelangt, mit einem Zustand von anderen Rechenmodulen übereinstimmt.
Im Allgemeinen ist dann, wenn ein Mangel an Synchronisation zuerst
durch Überwachen
der externen Busse erfasst wird, selbst bei dem Zustand außerhalb
eines Gleichschritts, sein Ausmaß an außerhalb eines Gleichschritts
sein gering genug, um zu dem Zustand wiederhergestellt zu werden,
der dieselbe Anweisungskette ausführt, indem die oben beschriebenen
mehreren Schritte einer Verarbeitung ausgeführt werden. Daher kann seine
Verarbeitungszeit im Vergleich mit einem herkömmlichen System drastisch reduziert
werden, bei welchem alle Speicherbereiche kopiert werden.
-
Die 4 und 5 sind
Ablaufdiagramme, die einen zweiten Betrieb der Resynchronisationsverarbeitung
in einem fehlertoleranten Computersystem erklären, das strukturiert ist,
wie es in 1 gezeigt ist.
-
Bei
diesem zweiten Betrieb führen
die Prozessoren 101, 102, 201 und 202,
die eine Unterbrechung von der Unterbrechungs-Steuereinheit 702 empfangen
haben, jeweils eine in 4 dargestellte Resynchronisationsverarbeitung
zum Korrigieren einer Abweichung bezüglich eines Betriebs (eines
aus dem Gleichschritt gelangen) unter den jeweiligen Rechenmodulen 100 und 200 und
zum Wiedergewinnen des Zustands, bei welchem dieselbe Anweisungskette
in Synchronisation ausgeführt
wird, aus.
-
Auf
ein Empfangen der Unterbrechung hin schaltet jeder der Prozessoren 101, 102, 201 und 202 zu
dem Prozessor-Managementmode zur Resynchronisationsverarbeitung,
wobei der Anweisungsanzahl-Zähler
in dem Prozessor zum Zählen der
Anzahl von ausgeführten
Anweisungen ein Arbeiten unterlässt
und ein Wert des Programmzählers (PC)
bei einem normalen Betrieb gesichert und gespeichert wird (Schritt 401).
-
Jeder
der Prozessoren 101, 102, 201 und 202 liest
seinen eigenen Anweisungsanzahl-Zählerwert und den gesicherten
Wert des Programmzählers (Schritt 402)
und sendet die gelesenen Werte zu anderen Rechenmodulen über die
Speicher-Steuereinheiten 105 und 205 und
die Zwischensystemkommunikations-Steuereinheit 703 (Schritt 403).
-
Jeder
der Prozessoren 101, 102, 201 und 202 liest
auch einen Wert des Anweisungsanzahl-Zählers und einen Programmzählerwert
des Prozessors des anderen Rechenmoduls, die von dem anderen Rechenmodul über die
Zwischensystemkommunikations-Steuereinheit 703 und die
Speicher-Steuereinheiten 105 und 205 gesendet
sind (Schritt 404). Jeder der Prozessoren vergleicht den Wert
seines eigenen Anweisungsanzahl-Zählers mit dem Wert des Anweisungsanzahl-Zählers in
dem entsprechenden Prozessor in jedem von allen Rechenmodulen (Schritt 405).
-
Hier
führt das
Rechenmodul, das einen Prozessor enthält, dessen Anweisungsanzahl-Zähler den
größten Wert
unter allen Prozessoren anzeigt, während andere Rechenmodule Anweisungen äquivalent
zu einer Verzögerung
als Ergebnis des Vergleichs ausführen,
eine Verarbeitung zum Bringen der Ausführung in eine Warteschlange
durch (Schritt 406). Wenn die Anzahlen von ausgeführten Anweisungen
in allen Rechenmodulen übereinstimmen, weist
das Rechenmodul mit dem Anweisungsanzahl-Zähler des größten Werts die Synchronisations-Steuereinheit 704 über die
Speicher-Steuereinheit 105 oder 205 an, eine Rücksetzanweisung
zur Resynchronisationsverarbeitung zu allen Rechenmodulen zu erzeugen
(Schritt 407).
-
Andererseits
führen
alle Rechenmodule, deren Anweisungsanzahl-Zählerwert nicht der Größte ist,
die Verzögerungsschritteinstellverarbeitung
zum Ausführen
von Anweisungen aus, bis dieselbe Anzahl von Anweisungen wie diejenige
des Rechenmoduls mit dem Anweisungsanzahl-Zähler ausgeführt ist, der den größten Wert
anzeigt (Schritt 408). Jedes der Rechenmodule, bei welchen
der Anweisungsanzahl-Zähler
des größten Werts
nicht existiert, teilt eine Beendigung der Verzögerungsschritteinstellungsverarbeitung
zu dem Rechenmodul mit dem größten Wert
mit (Schritt 409) und wartet darauf folgend auf eine Rücksetzanweisung
für die
Resynchronisationsverarbeitung (Schritt 410).
-
5 zeigt
Details der Verzögerungsschritteinstellungsverarbeitung
in 4.
-
Bei
der oben beschriebenen Verzögerungsschritteinstellverarbeitung
(Schritt 408 in 4) werden die Prozessoren auf
einen Abbruchstellenbestimmungs-Ausführungsmode
eingestellt, der einen Prozessor wieder zu dem Prozessor-Managementmode schaltet,
nachdem Anweisungen bis zu einer spezifischen Position in einer
bestimmten Anweisungskette ausgeführt sind. Zu dieser Zeit wird
als die spezifische Position der Anweisungskette eine Anweisungsposition
bestimmt, die durch einen Programmzählerwert angezeigt wird, der
von dem Rechenmodul mit dem Anweisungsanzahl-Zähler des größten Werts empfangen wird (Schritt 501).
Darauf folgend werden die Prozessoren zu dem normalen Ausführungsmode
geschaltet (Schritt 502).
-
Als
Ergebnis beendet der Prozessor nach einem Ausführen der Anweisungen bis zu
der spezifischen Position in der bestimmten Anweisungskette, das
heißt
bis zu derselben Position in der Anweisungskette wie derjenigen
im Rechenmodul mit dem Anweisungsanzahl-Zähler des größten Werts (Schritt 503),
die Verzögerungsschritteinstellungsverarbeitung
und schaltet wieder zum Prozessor-Managementmode (Schritt 504).
-
6 ist
ein Ablaufdiagramm, das einen dritten Betrieb des fehlertoleranten
Computersystems gemäß dem ersten
Implementierungsmode erklärt, welcher
insbesondere ein weiteres Beispiel einer Verarbeitung nach der Anweisungsanzahl-Zählervergleichsverarbeitung
(Schritt 205 in 2 und Schritt 405 in 4)
bei der in den 2 und 4 gezeigten
Betrieb zeigt.
-
Bei
der in 6 gezeigten Verarbeitung wartet das Rechenmodul
mit dem größten Wert
nach einem Lesen eines Programmausführungszustands bei dem Rechenmodul
mit dem Anweisungsanzahl-Zähler
des größten Werts
(Schritt 601) auf eine Mitteilung über eine Beendigung einer Verzögerungsschritteinstellungsverarbeitung
von anderen Rechenmodulen (Schritt 602).
-
Andererseits
lesen nach einem Ausführen der
Verzögerungsschritteinstellungsverarbeitung durch
irgendeines der oben beschriebenen Verfahren oder ein ähnliches
Verfahren (Schritt 701) alle anderen Rechenmodule, deren
Anweisungsanzahl-Zählerwert
nicht der Größte ist,
jeweils ihren Programmausführungszustand
(Schritt 702). Jedes der anderen Rechenmodule sendet den
Programmausführungszustand
zu dem Rechenmodul, dessen Anweisungsanzahl-Zählerwert der Größte ist, zusammen
mit der Mitteilung über
die Beendigung der Verzögerungsschritteinstellungsverarbeitung (Schritt 703)
und wartet darauf folgend auf eine Rücksetzanweisung für die Resynchronisationsverarbeitung
(Schritt 704).
-
Das
Rechenmodul mit dem Anweisungsanzahl-Zähler, der den größten Wert
anzeigt, das die Programmausführungszustände empfangen
hat, vergleicht Programmausführungszustände von
allen Rechenmodulen (Schritt 603). Das Rechenmodul mit dem
Anweisungsanzahl-Zähler,
der den größten Wert
anzeigt, führt
eine Synchronisationsbetrieb-Wiederaufnahmeverarbeitung sofort in
einem Fall aus, in welchem die Zustände alle übereinstimmen. Wenn ein Rechenmodul
erfasst wird, dessen Zustand darin fehlschlägt, übereinzustimmen, führt das
Rechenmodul mit dem Anweisungsanzahl-Zähler, der den größten Wert
anzeigt, die Betriebswiederaufnahmeverarbeitung von allen anderen
Rechenmodulen (Schritt 605) nach einem Ausführen einer Verarbeitung
zum Abtrennen von nur dem in Frage stehenden Rechenmodul aus, um
dasselbe für
ungültig
zu erklären
(Schritt 604).
-
Die
in 6 gezeigten Verarbeitungsinhalte ermöglichen
sogar einem fehlertoleranten Computersystem mit Synchronismus im
Gleichschritt unter Annahme eines Prozessors, der bei einer Stufenausführung und
einer Abbruchstellenausführung
nicht immer zuverlässig
ist, die vorliegende Erfindung zu implementieren, ohne fehlerhafte
Verarbeitungsergebnisse zu haben.
-
Als
Nächstes
wird unter Bezugnahme auf 7 ein fehlertolerantes
Computersystem gemäß einem
zweiten Implementierungsmode der vorliegenden Erfindung beschrieben
werden.
-
Unter
Bezugnahme auf 7 enthält das fehlertolerante Computersystem
gemäß dem vorliegenden
Implementierungsmode eine Vielzahl von Rechenmodulen 100, 200 und 300,
die jeweils einen Prozessor und einen Speicher haben, und eine Vielzahl
von Steuereinheiten 400 und 500 für periphere Vorrichtungen,
die Mechanismen 803 und 804 für die jeweilige Verbindung
mit einer peripheren Vorrichtung haben. Jedes der Rechenmodule 100, 200 und 300 verarbeitet
dieselbe Anweisungskette synchron zueinander und vergleicht ein
Verarbeitungsergebnis jedes Rechenmoduls zur Freigabe. Selbst dann, wenn
ein Rechenmodul einen Fehler entwickelt, kann die Verarbeitung durch
die übrigen
Rechenmodule fortgeführt
werden.
-
Bei
dem fehlertoleranten Computersystem gemäß dem zweiten Implementierungsmode
enthält jede
der Steuereinheiten 400 und 500 für periphere Vorrichtungen
einen Fehlerdetektor 700, einen Busmonitor 701,
eine Unterbrechungs-Steuereinheit 702,
eine Zwischensystemkommunikations-Steuereinheit 703 und
eine Synchronisations-Steuereinheit 704, die in 1 gezeigt
sind, und enthält
weiterhin eine PCI-Brücke 705 zum
Steuern einer Verbindung zwischen jedem Rechenmodul und jeder Steuereinheit
in der Rechenmodul für
periphere Vorrichtungen und den Verbindungsmechanismen 803 und 804 für periphere
Vorrichtungen.
-
Obwohl
es in der Figur nicht gezeigt ist, ist die Struktur der Steuereinheit 500 für periphere
Vorrichtungen völlig
dieselbe wie diejenige der Steuereinheit 400 für periphere
Vorrichtungen, und welche Steuereinrichtung in der Steuereinheit 400 für periphere
Vorrichtungen oder der Steuereinheit 500 für periphere
Vorrichtungen zu verwenden ist, kann durch ein Programm beliebig
bestimmt werden, das auf dem Prozessor in dem Rechenmodul läuft, um dadurch
selbst dann, wenn die Steuereinheit 400 oder 500 für periphere
Vorrichtungen, die auf eine Resynchronisation bezogen ist, einen
Fehler entwickelt, zu ermöglichen,
eine Verfügbarkeit
durch Verwenden der Steuereinheit 400 oder 500 für periphere Vorrichtungen
ohne Fehler zu verbessern.
-
Der
vorliegende Implementierungsmode erreicht den Effekt der vorliegenden
Erfindung durch denselben Betrieb wie denjenigen des oben beschriebenen
Implementierungsmodes, der in 1 gezeigt
ist, außer
dass eine Verbindung zwischen den jeweiligen Rechenmodulen 100, 200 und 300 und
den jeweiligen Steuereinheiten 400 und 500 für periphere
Vorrichtungen unter Verwendung der PCI-Brücke 705 als repräsentative
Verbindungsschnittstelle für
periphere Vorrichtungen gebildet ist und dass ein Senden und Empfangen
von Daten zu und von der Zwischensystemkommunikations-Steuereinheit 703 und
einer Rücksetzverarbeitungsanweisung
zu der Synchronisations-Steuereinheit 704 unter Verwendung
des PCI-Protokolls ausgeführt werden.
-
Zusätzlich zeigt
der vorliegende Implementierungsmode die Struktur, bei welcher drei
Rechenmodule vorgesehen sind, und ein detaillierter Betrieb einer
Resynchronisationsverarbeitung mit der Struktur ist so, wie es in
den 8 und 9 dargestellt ist. 8 zeigt
einen Betriebsablauf, der aus dem oben beschriebenen Betrieb in 2 verallgemeinert ist,
in einem Fall, in welchem ein fehlertolerantes Computersystem mit
Synchronismus im Gleichlauf drei oder mehrere Rechenmodule enthält. Inhalte
der Verarbeitung sind dieselben wie diejenigen, die in den 2 und 3 gezeigt
sind, außer
dass die Anzahl von Rechenmodulen unterschiedlich ist.
-
Spezifischer
schaltet bei den in den 8 und 9 gezeigten
Ablaufdiagrammen auf ein Empfangen einer Unterbrechung hin jeder
Prozessor zum Prozessor-Managementmode
zur Resynchronisation, einem Mode, in welchem der Anweisungsanzahl-Zähler zum
Zählen
der Anzahl von Anweisungen, die im Prozessor ausgeführt sind,
ein Arbeiten unterlässt
(Schritt 801).
-
Dann
liest jeder Prozessor einen Wert seines eigenen Anweisungsanzahl-Zählers (Schritt 802)
und sendet den gelesenen Wert des Anweisungsanzahl-Zählers zu
anderen Rechenmodulen über
die Speicher-Steuereinheiten 105 und 205, die
PCI-Brücke 705 und
die Zwischensystemkommunikations-Steuereinheit 703 (Schritt 803).
-
Jeder
Prozessor liest auch den Wert des Anweisungsanzahl-Zählers des
Prozessors in einem anderen Rechenmodul, der von dem anderen in
Frage stehenden Rechenmodul gesendet ist, über die Zwischensystemkommunikations-Steuereinheit 703, die
PCI-Brücke 705 und
die Speicher-Steuereinheiten 105 und 205 (Schritt 804).
Jeder Prozessor vergleicht denselben mit dem Wert des Anweisungsanzahl-Zählers des
entsprechenden Prozessors in jedem von allen Rechenmodulen (Schritt 805).
-
Hier
führt das
Rechenmodul, das einen Prozessor enthält, dessen Anweisungsanzahl-Zähler den
größten Wert
unter allen Zählern
anzeigt, während
andere Rechenmodule Anweisungen äquivalent zu
einer Verzögerung
als Ergebnis des Vergleichs der Anweisungsanzahl-Zählerwerte
ausführen,
eine Verarbeitung zum Bringen der Ausführung in eine Warteschlange
durch (Schritt 806). Wenn die Anzahlen von ausgeführten Anweisungen
in allen Rechenmodulen 100, 200 und 300 miteinander übereinstimmen,
weist das Rechenmodul mit dem Anweisungsanzahl-Zähler des größten Werts die Synchronisations-Steuereinheit 704 an,
eine Rücksetzanweisung zur
Resynchronisationsverarbeitung zu allen Rechenmodulen 100, 200 und 300 über die
Speicher-Steuereinheit 105 oder 205 und die PCI-Brücke 705 zu
erzeugen (Schritt 807).
-
Andererseits
führen
alle Rechenmodule, deren Anweisungsanzahl-Zählerwert nicht der Größte ist,
die Verzögerungsschritteinstellungsverarbeitung zum
Ausführen
von Anweisungen aus, bis in denselben Anweisungsketten-Ausführungszustand
wie demjenigen des Rechenmoduls mit dem Anweisungsanzahl-Zähler, der
den größten Wert
anzeigt, eingetreten wird (Schritt 808). Jedes der Rechenmodule,
bei welchen der Anweisungsanzahl-Zähler des größten Werts nicht existiert,
teilt eine Beendigung der Verzögerungsschritteinstellungsverarbeitung
zu dem Rechenmodul mit dem Anweisungsanzahl-Zähler mit, der den größten Wert
anzeigt (Schritt 809), und wartet darauf folgend auf eine
Rücksetzanweisung
für die
Resynchronisationsverarbeitung (Schritt 810).
-
Auf
ein Empfangen der Anweisung hin erzeugt die Synchronisations-Steuereinheit 704 ein Rücksetzsignal
zum Wiedergewinnen des Betriebs in Synchronisation gleichzeitig
zu allen Rechenmodulen 100, 200 und 300.
Zusätzlich
gibt die Einheit 704 gleichzeitig der Unterbrechungs-Steuereinheit 702 eine
Anweisung, um eine Erzeugung einer Unterbrechung zuzulassen, wenn
einem Betrieb eine Synchronisation fehlt, um dadurch vorzubereiten,
dass ein normaler Betrieb in Synchronisation wieder aufgenommen
wird.
-
9 zeigt
eine detaillierte Funktion der in 8 dargestellten
Verzögerungsschritteinstellungsverarbeitung.
-
Bei
der Verzögerungsschritteinstellungsverarbeitung
(Schritt 808 in 8) werden die Prozessoren auf
einen Stufenausführungsmode
eingestellt, in welchem die Prozessoren zu dem Prozessor-Managementmode
genau nach einem Ausführen von
einer Anweisung geschaltet werden (Schritt 901). Darauf
folgend werden die Prozessoren zu einem normalen Ausführungsmode
geschaltet (Schritt 902).
-
Als
Ergebnis schaltet der Prozessor nach einem Ausführen von nur einer Anweisung
(Schritt 903) zu dem Prozessor-Managementmode (Schritt 904).
-
Der
Prozessor liest den Wert seines eigenen Anweisungsanzahl-Zählers (Schritt 905)
und vergleicht den gelesenen Wert mit dem Wert des Anweisungsanzahl-Zählerwerts, der bereits von
dem Rechenmodul mit dem Anweisungsanzahl-Zähler empfangen ist, der den
größten Wert
anzeigt (Schritt 906). Wenn sie darin fehlschlagen, miteinander überein zu
stimmen, wiederholt der Prozessor wieder die Verarbeitung des Schrittausführungsmodes
(Schritt 901), und wenn sie miteinander übereinstimmen,
beendet er die Verzögerungsschritteinstellungsverarbeitung.
-
10 zeigt
eine Struktur eines fehlertoleranten Computersystems gemäß einem
dritten Implementierungsmode der vorliegenden Erfindung. Unter Bezugnahme
auf 10 ist das fehlertolerante Computersystem gemäß dem vorliegenden
Implementierungsmode dasselbe wie dasjenige des in 7 gezeigten
zweiten Implementierungsmodes, außer dass ein Senden und ein
Empfangen von Information zu und von jedem Rechenmodul durch den Busmonitor 701 und
die Unterbrechungs-Steuereinheit 702 auch über die
PCI-Brücke 705 ausgeführt wird,
und erhält
denselben Effekt durch denselben Betrieb, der in den 8 und 9 gezeigt
ist.
-
Beim
fehlertoleranten Computersystem der vorliegenden Erfindung kann
die Funktion jeder Einheit, die die Resynchronisationsverarbeitung
ausführt,
nicht nur durch Hardware realisiert werden, sondern auch durch Laden
eines Resynchronisationsverarbeitungsprogramms 1000, das
die Funktion von jeder der oben beschriebenen Einheiten ausführt, in
einen Speicher einer Computerverarbeitungsvorrichtung, um die Computerverarbeitungsvorrichtung
zu steuern. Das Resynchronisationsverarbeitungsprogramm 1000 ist
in einem Aufzeichnungsmedium, wie beispielsweise einer Magnetplatte
oder einem Halbleiterspeicher, gespeichert und wird von dem Aufzeichnungsmedium
in die Computerverarbeitungsvorrichtung geladen, um einen Betrieb
der Computerverarbeitungsvorrichtung zu steuern, um dadurch jede
der oben beschriebenen Funktionen zu realisieren.
-
Obwohl
die vorliegende Erfindung im Vorangehenden in Bezug auf die bevorzugten
Implementierungsmoden beschrieben worden ist, ist die vorliegende
Erfindung nicht notwendigerweise auf die oben beschriebenen Implementierungsmoden
beschränkt,
sondern kann in verschiedenen Formen innerhalb des Schutzumfangs
der Ansprüche
realisiert werden.
-
Ungeachtet
dessen, ob die Anzahl von Rechenmodulen zwei oder drei oder mehrere
ist, erreicht die vorliegende Erfindung ganz genau denselben Effekt
durch die Struktur und den Betrieb, die vorangehend beschrieben
sind.
-
Zusätzlich ist
auch der Anzahl von Prozessoren in jedem Rechenmodul keine Beschränkung auferlegt
und eine Struktur, bei welcher ein Prozessor vorgesehen ist, und
eine Struktur, bei welcher drei oder mehrere Prozessoren vorgesehen
sind, funktionieren auf vollständig
dieselbe Weise. Weiterhin beeinflusst, obwohl in jedem der oben
beschriebenen Implementierungsmoden ein Fall gezeigt ist, in welchem
die jeweiligen Prozessoren einen externen Bus gemeinsam nutzen und
an demselben Bus angeschlossen sind, weder beispielsweise eine Struktur, bei
welcher eine Vielzahl von Prozessoren in der Form einer Sterngruppe
mit einer Speicher-Steuereinheit
verbunden ist, noch eine Struktur, bei welcher Prozessoren, die
ein Rechenmodul bilden, physikalisch aufgeteilt auf einer Vielzahl
von Leiterplatten ausgebildet sind, die Effekte der vorliegenden
Erfindung.
-
Darüber hinaus
kann die vorliegende Erfindung ein Paar aus einem Rechenmodul und
jeweiligen Einheiten zur Resynchronisation enthalten, wie beispielsweise
einen Busmonitor oder eine Vielzahl von Paaren dieser Komponenten.
Zusätzlich
können diese
Komponenten in einer Steuereinheit für periphere Vorrichtungen vorgesehen
sein oder können auf
einer bestimmten Leiterplatte oder ähnlichem ausgebildet sein.
Alternativ dazu können
das Rechenmodul und andere jeweilige Einheiten zur Resynchronisation,
wie beispielsweise der Busmonitor, durch eine PCI- oder eine Schnittstelleneinrichtung von
einem anderen Standard, wie beispielsweise PCI-X, oder durch eine
bestimmte Schnittstelleneinrichtung, die nicht standardisiert ist,
verbunden sein, um denselben Effekt wie den oben beschriebenen zu erhalten.
-
Wie
es im Vorangehenden beschrieben ist, erreicht die vorliegende Erfindung
die folgenden Effekte.
-
Ein
erster Effekt ermöglicht,
dass ein bestimmtes Rechenmodul in einem fehlertoleranten Computersystem,
wenn es aufgrund eines anderen Grundes als eines festen Fehlers
aus dem Gleichschrittzustand gelangt, in einer äußerst kurzen Zeitperiode wieder
zu dem Gleichschrittzustand wiederhergestellt wird.
-
Der
Grund dafür
besteht darin, dass bei einer Anfangsstufe einer Erzeugung eines
aus dem Gleichschritt gelangen, wenn eine Abweichung bezüglich einer
Verarbeitung jedes Rechenmoduls gering ist, in dem eine Unterbrechung
zu einem Prozessor erzeugt wird, und nach einem Einstellen einer Verzögerung eines
Rechenmoduls, dessen Verarbeitung eine Verzögerung hat, um einen Betrieb
in Synchronisation wieder aufzunehmen, ein Synchronisationsbetriebszustand
wiederhergestellt werden kann, ohne den gesamten Speicher zu kopieren.
-
Ein
zweiter Effekt besteht im Verbessern einer Verfügbarkeit des fehlertoleranten
Computersystems. Der Grund dafür
besteht darin, dass eine Zeitperiode eines Anhaltens des gesamten
Systems durch signifikantes Beschleunigen einer Zeit einer Resynchronisationsverarbeitung,
wenn ein aus dem Gleichschritt gelangen erfolgt, drastisch reduziert werden
kann.
-
Obwohl
die Erfindung in Bezug auf ein beispielhaftes Ausführungsbeispiel
davon dargestellt und beschrieben worden ist, sollte es von Fachleuten auf
dem Gebiet verstanden werden, dass die vorangehenden und verschiedene
andere Änderungen, Weglassungen
und Hinzufügungen
dabei und daran durchgeführt
werden können,
ohne vom Schutzumfang der vorliegenden Ansprüche abzuweichen.