-
HINTERGRUND DER ERFINDUNG
-
1. Gebiet der Erfindung
-
Die
vorliegende Erfindung bezieht sich auf ein fehlertolerantes Computersystem
mit Schrittverriegelungssynchronität, das die gleiche Befehlsfolge durch
mehrere Rechenmodule taktsynchron zueinander auf vollständig gleiche
Weise verarbeitet. Insbesondere bezieht sie sich auf ein fehlertolerantes Computersystem
und auf ein schnelles Verfahren zur Neusynchronisation der Steuerung,
die eine Beschleunigung einer Neusynchronisationsverarbeitung realisieren,
wenn zwischen Rechenmodulen ein Synchronisationsfehler auftritt
(eine Schrittverriegelung aufhört).
-
2. Beschreibung des verwandten
Gebiets
-
Wenn
bei einem herkömmlichen
fehlertoleranten Computersystem mit Schrittverriegelungssynchronität unter
mehreren Rechenmodulen, die gleichzeitig die gleiche Befehlsfolge
ausführen,
erfasst wird, dass ein Rechenmodul wegen eines Fehlers oder eines
anderen externen oder internen Faktors eine andere Ausgabe als andere
Rechenmodule hat, werden Gegenmaßnahmen wie die Folgenden ergriffen.
Im Folgenden wird ein Rechenmodul, bei dem erfasst wird, dass es
nicht synchron mit anderen Rechenmodulen arbeitet, als ein Rechenmodul
in einem Schritthalteverlustzustand bezeichnet.
-
Genauer
wird eine Maßnahme
ergriffen, dass ein Rechenmodul, dessen Schrittverriegelung aus
einem Operationszustand aufhört,
einmal abgetrennt und das Rechenmodul wie es gemäß einem Faktor, der den Schritthalteverlust
verursacht hat, erforderlich ist, ersetzt wird oder, wenn kein Ersatz
erforderlich ist, gemäß der Notwendigkeit,
das Rechenmodul in den Operationszustand zu integrieren, eine Neuinitialisierungsverarbeitung
oder dergleichen durchgeführt
wird.
-
Bei
einem herkömmlichen
fehlertoleranten Computersystem mit Schrittverriegelungssynchronität werden
zum Zeitpunkt dieser Neuintegration in den Operationszustand alle
Speicherdaten, die durch die Rechenmodule in dem Operationszustand
gehalten werden, zum Zeitpunkt der Neuintegration des Rechenmoduls
in einen Speicher kopiert, der durch das Rechenmodul gehalten wird,
das neu integriert werden soll, damit sich unabhängig davon, ob ein Rechenmodul
in den Schritthalteverlustzustand ersetzt worden ist oder nicht,
das Rechenmodul mit anderen Rechenmodulen, die die Operation fortsetzen,
synchronisiert, um wieder die gleiche Verarbeitung auszuführen.
-
In
einem herkömmlichen
fehlertoleranten Computersystem mit Schrittverriegelungssynchronität werden
nach der Ausführung
des Ersatzes eines Rechenmoduls in dem Schritthalteverlustzustand und
der Neuinitialisierungsverarbeitung gemäß einem Teil, das einen Schritthalteverlust
und dergleichen verursacht hat, die Rechenmodule in dem Operationszustand
für eine
lange Zeitdauer angehalten, wenn das besagte Rechenmoduls erneut
in den Operationszustand integriert wird.
-
Genauer
hat das herkömmliche
fehlertolerante Computersystem mit Schrittverriegelungssynchronität ein Problem,
dass die Operation des gesamten fehlertoleranten Computersystems
während einer
langen Zeitdauer (im Allgemeinen 3 bis 5 Sekunden
oder in der Größenordnung
von Minuten) angehalten wird, während
ein Rechenmodul in dem Schritthalteverlustzustand einer Neuintegrationsverarbeitung
ausgesetzt wird.
-
Der
Grund dafür
ist, dass alle Speicherinhalte die gesamte Zeit aus den Rechenmodulen,
die mit der Operation fortfahren, in das neu zu integrierende Rechenmodul
kopiert werden, um ein Rechenmodul in dem Schritthalteverlustzustand
in den Operationszustand zu integrieren.
-
Wenn
die Operation eines normalen Rechenmoduls während der Kopierverarbeitung
fortgesetzt wird, besteht eine Möglichkeit,
dass Speicherinhalte des normalen Rechenmoduls während der Kopierverarbeitung
ebenfalls geändert
werden, so dass das Kopieren nicht richtig ausgeführt werden
kann. Um diese Situation zu vermeiden, wird ein Rechenmodul in dem
Operationszustand vorübergehend
angehalten, um ein Aktualisieren seines Speicherinhalts zu verhindern.
-
Da
eine Speicherkapazität
in einem Rechenmodul heute auf mehrere Gigabytes erreicht, erfordert
das Kopieren des gesamten Speicherbereichs eine lange Zeitdauer.
-
In
einem fehlertoleranten Computersystem mit Schrittverriegelungssynchronität tritt
ein Schritthalteverlustzustand unter Rechenmodulen aus verschiedenen
Gründen
auf.
-
Der
erste Fall ist ein fester Fehler, der in einem Rechenmodul auftritt.
In diesem Fall sollte ein Rechenmodul mit einem Fehler ersetzt werden,
wobei dann, wenn das zu ersetzende Rechenmodul in ein Betriebssystem
integriert wird, alle Daten in einem Speicher eines Rechenmoduls
in den Operationszustand kopiert werden müssen.
-
In
einem fehlertoleranten Computersystem mit Schrittverriegelungssynchronität kann ein
Schritthalteverlustzustand auftreten, da außer dem oben beschriebenen
festen Fehler Rechenmodule wegen einer Differenz der Herstellung
jeder Einheit in einem Rechenmodul mit verschiedenem Zeitablauf
arbeiten, obgleich ihre Operation normal ist, oder wegen eines automatisch
korrigierbaren aussetzenden Fehlers des Speichers, der durch Effekte
von α-Strahlen oder
dergleichen verursacht wird.
-
Da
in diesen Fällen
kein fester Fehler in einem Rechenmodul selbst auftritt, benötigt das
Modul grundsätzlich
keinen Ersatz, wobei durch Neusynchronisieren seiner Verarbeitung
mit der der anderen Rechenmodule in der Operation zur Integration
des besagten Rechenmoduls das gesamte fehlertolerante Computersystem
in einen normalen Operationszustand wiedergewonnen werden kann.
-
Im
EP-Patent 1 029 267 ist ein Verfahren zum Aufrechterhalten einer
synchronen Ausführung in
fehlerstabilen/fehlertoleranten Computersystemen offenbart. Ein
fehlertolerantes Computersystem enthält wenigstens zwei Rechenelemente,
die mit wenigstens mit einer Steuereinheit verbunden sind. Die Rechenelemente
arbeiten in einer ersten und in einer zweiten Betriebsart. In der
ersten Betriebsart führen die
Rechenelemente jeweils einen ersten Befehlsstrom in einer emulierten
Taktschrittverriegelung aus. In der zweiten Betriebsart führen die
Rechenelemente einen zweiten Befehlsstrom in einer Befehlsschrittverriegelung
aus. Die Befehlsschrittverriegelungsoperationen erfordern, dass
die Rechenelemente die gleiche Befehlsfolge in der gleichen Reihenfolge
ausführen,
erfordern aber nicht, dass die Rechenelemente die Befehle in demselben
Taktzyklus wie in der ersten Betriebsart ausführen.
-
Das
US-Patent 5.020.024 offenbart ein Verfahren und eine Vorrichtung
zum Erfassen einer ausgewählten
Abwesenheit der Synchronität
einer digitalen Logik. Die digitale Logikausrüstung, in der zwei Logikelemente
mit einer Zeitablaufsteue rung mit einem Taktelement mit ausgewählter Synchronität arbeiten,
enthält
ein Fehlererfassungselement, das die Abwesenheit der ausgewählten Synchronität zwischen
den zwei Logikelementen selbst dann erfasst, wenn jedes eine ansonsten
richtige Logikoperation liefert.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Die
Erfindung ist durch die Ansprüche
definiert.
-
Eine
Aufgabe der vorliegenden Erfindung ist die Schaffung eines fehlertoleranten
Computersystems, eines Verfahrens zur Neusynchronisation davon und
eines Programms zur Neusynchronisation davon, die ermöglichen,
dass ein Rechenmodul, dessen Schrittverriegelung wegen anderer Ursachen
als einem festen Fehler aufhört,
mit einer höheren
Geschwindigkeit als durch ein herkömmliches System neu in den
Operationszustand integriert wird, wodurch die Zeit des vorübergehenden
Halts des Systembetriebs, der durch die Integrationsverarbeitung verursacht
wird, drastisch verringert wird.
-
Eine
weitere Aufgabe der vorliegenden Erfindung ist die Schaffung eines
fehlertoleranten Computersystems, eines Verfahrens zur Neusynchronisation
davon und eines Programms zur Neusynchronisation davon, die durch
die Verringerung der Zeit für
die oben beschriebene Neuintegrationsverarbeitung eine Verbesserung
der Verfügbarkeit
des Systems realisieren.
-
Gemäß dem ersten
Aspekt der Erfindung wird ein fehlertolerantes Computersystem mit
Schrittverriegelungssynchronität,
mit mehreren Rechenmodulen, die einen Prozessor und einen Speicher
umfassen, wobei jedes Rechenmodul die gleiche Befehlsfolge synchron
mit den jeweils anderen Rechenmodulen verarbeitet, geschaffen, wobei
dann,
wenn in einem Zustand des Zugriffs auf einen externen
Bus zwischen den jeweiligen Prozessoren in jedem Rechenmodul eine
Nichtübereinstimmung
erfasst wird, die Synchronisation zwischen jedem Rechenmodul wiederhergestellt
wird, indem der Zeitablauf einer Antwort auf einen Zugriff, den
jeder Prozessor ausführt,
als ein Synchronisationssteuerungsbefehl durch eine Unterbrechung
eingestellt wird, falls in dem System, das jedes Rechenmodul enthält, kein Fehler
erfasst wird.
-
Ferner
umfasst das fehlertolerante Computersystem einen Fehlerdetektor,
der das Vorhandensein/Nichtvorhandensein eines Fehlers in dem Gesamtsystem überwacht;
einen
Busmonitor, der einen Zugriff des Prozessors in jedem Rechenmodul
auf den externen Bus überwacht
und dann, wenn er eine Nichtübereinstimmung in
den Ausgaben der jeweiligen Rechenmodule erfasst, an jeden Prozessor
eine Unterbrechung meldet, falls durch den Fehlerdetektor kein Fehler
erfasst wird, und eine Synchronisationssteuereinheit, die jedes
Rechenmodul neu synchronisiert, indem sie den Zeitablauf einer Antwort
auf einen Zugriff von jedem Prozessor, der die Unterbrechung hervorgerufen
hat, einstellt.
-
Wenn
der Busmonitor eine Nichtübereinstimmung
in den Ausgaben der jeweiligen Rechenmodule erfasst, unterbricht
er jeden Prozessor mit einem vorgegebenen Task, der ein Task des
Ausführens
eines Zugriffs auf ein vorgegebenes Betriebsmittel in der Synchronisationsteuereinheit
ist, um die Rechenmodule neu zu synchronisieren, falls durch den
Fehlerdetektor kein Fehler erfasst wird, wobei die Synchronisationssteuereinheit
eine Antwort gleichzeitig an alle Rechenmodule sendet, wenn sie
Zugriffe auf das Betriebsmittel von allen Prozessoren empfängt.
-
In
einer weiteren bevorzugten Konstruktion werden mehrere Paare des
Busmonitors, des Fehlerdetektors und der Synchronisationssteuereinheit
geschaffen.
-
In
einer weiteren bevorzugten Konstruktion sind der Busmonitor, der
Fehlerdetektor und die Synchronisationssteuereinheit in einer Peripheriegerät-Steuereinheit
vorgesehen, die ein Peripheriegerät steuert und mit dem externen
Bus in dem Rechenmodul über
eine PCI-Brücke
verbunden ist.
-
Gemäß dem zweiten
Aspekt der Erfindung wird ein Verfahren zur Neusynchronisation in
einem fehlertoleranten Computersystem mit Schrittverriegelungssynchronität geschaffen,
wobei das System mehrere Rechenmodule umfasst, die einen Prozessor
und einen Speicher umfassen, wobei jedes Rechenmodul die gleiche
Befehlsfolge synchron mit den jeweils anderen Rechenmodulen verarbeitet,
wobei das Verfahren die folgenden Schritte umfasst:
Erzeugen
einer Unterbrechung an alle Prozessoren und Veranlassen jedes Prozessors,
einen Synchronisationssteuerbefehl auszuführen, um den Zeitablauf einer
Antwort auf einen Zugriff jedes Prozessors einzustellen, um dadurch
jedes Rechenmodul dazu zu veranlassen, seinen Betrieb synchron wieder
aufzuneh men, wenn in einem Zugriffszustand auf einen externen Bus
eine Nichtübereinstimmung
zwischen den jeweiligen Prozessoren in jedem Rechenmodul erfasst
wird, falls kein Fehler in dem System, das jedes Rechenmodul enthält, erfasst
wird.
-
Ferner
umfasst das Verfahren zur Neusynchronisation die folgenden Schritte:
Erfassen
des Vorhandenseins/Nichtvorhandenseins eines Fehlers in dem Gesamtsystem,
das jedes Rechenmodul umfasst, Überwachen
eines Zugriffs des Prozessors in jedem Rechenmodul auf einen externen
Bus,
Melden einer Unterbrechung an jeden Prozessor, wenn eine
Nichtübereinstimmung
in den Ausgaben der jeweiligen Rechenmodule erfasst wird, und Veranlassen
jedes Prozessors, einen Taktsynchronisations-Steuerbefehl auszuführen, um
den Zeitverlauf einer Antwort auf einen Zugriff von jedem Prozessor einzustellen,
um dadurch jedes Rechenmodul dazu zu veranlassen, seine Operation
synchron wieder aufzunehmen, falls in dem System kein Fehler erfasst
wird.
-
Ferner
umfasst das Verfahren zur Neusynchronisation die folgenden Schritte:
beim
Erfassen einer Nichtübereinstimmung
in den Ausgaben der jeweiligen Rechenmodule, Unterbrechen jedes
Prozessors mit einem vorgegebenen Task zur Neusynchronisation der
jeweiligen Rechenmodule, der ein Task zum Ausführen eines Zugriffs auf ein
vorgegebenes Betriebsmittel ist, falls kein Fehler in dem System
erfasst wird;
Einreihen des Zugriffs auf das Betriebsmittel
von jedem Prozessor in eine Warteschlange und Antworten auf die
Zugriffe von allen Rechenmodulen gleichzeitig, wenn alle Zugriffe
von den Prozessoren empfangen werden.
-
Gemäß einem
weiteren Aspekt der Erfindung wird ein Programm zur Neusynchronisation zum
Ausführen
einer Neusynchronisationsverarbeitung eines fehlertoleranten Computersystem
mit Schrittverriegelungssynchronität geschaffen, wobei das System
mehrere Rechenmodule umfasst, die einen Prozessor und einen Speicher
umfassen, wobei jedes Rechenmodul die gleiche Befehlsfolge synchron
mit den jeweils anderen Rechenmodulen verarbeitet, wobei das Verfahren
die folgenden Funktionen umfasst:
Erzeugen einer Unterbrechung
an alle Prozessoren und Veranlassen jedes Prozessors, einen Taktsynchronisationssteuerbefehl
auszuführen,
um den Zeitablauf einer Antwort auf einen Zugriff jedes Prozessors
einzustellen, um dadurch jedes Rechenmodul dazu zu veranlassen,
seine Operation synchron wieder aufzu nehmen, wenn in einem Zugriffszustand
auf einen externen Bus eine Nichtübereinstimmung zwischen den
jeweiligen Prozessoren in jedem Rechenmodul erfasst wird, falls
kein Fehler in dem System, das jedes Rechenmodul enthält, erfasst
wird.
-
Ferner
umfasst das Programm zur Neusynchronisation die Funktionen des Erfassens
des Vorhandenseins/Nichtvorhandenseins eines Fehlers in dem Gesamtsystem,
das jedes Rechenmodul umfasst, des Überwachens eines Zugriffs des
Prozessors in jedem Rechenmodul auf einen externen Bus, des
Meldens
einer Unterbrechung an jeden Prozessor, wenn eine Nichtübereinstimmung
in den Ausgaben der jeweiligen Rechenmodule erfasst wird, und des Veranlassens
jedes Prozessors, einen Taktsynchronisations-Steuerbefehl auszuführen, um
den Zeitverlauf einer Antwort auf einen Zugriff von jedem Prozessor
einzustellen, um dadurch jedes Rechenmodul dazu zu veranlassen,
seine Operation synchron wieder aufzunehmen, falls in dem System
kein Fehler erfasst wird.
-
Ferner
umfasst das Programm zur Neusynchronisation die Funktionen des Unterbrechen
jedes Prozessors mit einem vorgegebenen Task zur Neusynchronisation
der jeweiligen Rechenmodule, der ein Task zum Ausführen eines
Zugriffs auf ein vorgegebenes Betriebsmittel ist, beim Erfassen
einer Nichtübereinstimmung
in den Ausgaben der jeweiligen Rechenmodule, falls kein Fehler in
dem System erfasst wird; und des Einreihens des Zugriffs auf das Betriebsmittel
von jedem Prozessor in eine Warteschlange und des Antwortens auf
die Zugriffe von allen Rechenmodulen gleichzeitig, wenn alle Zugriffe von
den Prozessoren empfangen werden.
-
Weitere
Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden
aus der im Folgenden gegebenen ausführlichen Beschreibung klar.
-
KURZBESCHREIBUNG
DER ZEICHNUNG
-
Die
vorliegende Erfindung wird aus der im Folgenden gegebenen ausführlichen
Beschreibung und aus der beigefügten
Zeichnung der bevorzugten Ausführungsform
der Erfindung umfassender verständlich,
die aber nicht als Einschränkung
an die Erfindung genommen werden sollten, sondern lediglich zur
Erläuterung
und für
das Verständnis
dienen.
-
In
der Zeichnung ist:
-
1 ein
Blockschaltplan, der eine Struktur eines fehlertoleranten Computersystems
gemäß einer
ersten Realisierungsart der vorliegenden Erfindung zeigt;
-
2 ein
Diagramm zur Verwendung bei der Erläuterung des Inhalts der Neusynchronisationsverarbeitung
des fehlertoleranten Computersystems;
-
3 ein
Blockschaltplan, der eine Struktur eines fehlertoleranten Computersystems
gemäß einer
zweiten Realisierungsart der vorliegenden Erfindung zeigt; und
-
4 ein
Blockschaltplan, der eine Struktur eines fehlertoleranten Computersystems
gemäß einer
dritten Realisierungsart der vorliegenden Erfindung zeigt.
-
BESCHREIBUNG
DER BEVORZUGTEN AUSFÜHRUNGSFORM
-
Im
Folgenden wird die bevorzugte Ausführungsform der vorliegenden
Erfindung anhand der beigefügten
Zeichnung ausführlich
diskutiert. In der folgenden Beschreibung werden zahlreiche spezifische
Einzelheiten dargelegt, um ein umfassendes Verständnis der vorliegenden Erfindung
zu schaffen. Allerdings ist für
den Fachmann auf dem Gebiet offensichtlich, dass die vorliegende
Erfindung ohne diese spezifischen Einzelheiten verwirklicht werden kann.
In einem anderen Fall sind gut bekannte Strukturen nicht ausführlich gezeigt,
um die vorliegende Erfindung nicht unnötig zu verdecken.
-
Die
Realisierungsarten der vorliegenden Erfindung werden anhand der
folgenden Zeichnung ausführlich
beschrieben. 1 ist ein Blockschaltplan, der
eine Struktur eines fehlertoleranten Computersystems mit Schrittverriegelungssynchronisation gemäß einer
ersten Realisierungsart der vorliegenden Erfindung zeigt.
-
Anhand
von 1 enthält
das fehlertolerante Computersystem gemäß der vorliegenden Realisierungsart
mehrere Rechenmodule 100, 200 und 300,
wobei jedes der Rechenmodule 100, 200 und 300 die
gleiche Befehlsfolge taktsynchron zueinander verarbeitet. Das fehlertolerante
Computersystem vergleicht ein Verarbeitungsergebnis jedes Rechenmoduls.
Selbst dann, wenn ein Rechenmodul einen Fehler aufweist, kann die
Verarbeitung durch die verbleibenden Rechenmodule fortgesetzt werden.
-
Die
jeweiligen Rechenmodule 100, 200 und 300 enthalten
jeweils mehrere Prozessoren 101 und 102, 201 und 202 und 301 und 302,
externe Prozessorbusse 103, 203 und 303,
Speicher 104, 204 und 304 und Speichersteuereinheiten 105, 205 und 305.
-
Außerdem sind
die Rechenmodule 100, 200 und 300 mit
Peripheriegerät-Steuereinheiten 400 und 500 zum
Steuern eines Peripheriegeräts
durch die Speichersteuereinheiten 105, 205 und 305 und
mit Schnittstellensignalleitungen 600, 601, 602, 610, 611 und 612 verbunden.
-
Ferner
enthält
das oben beschriebene fehlertolerante Computersystem einen Busmonitor 700, eine
Fehlererfassungseinheit 702 und eine Synchronisationssteuereinheit 701.
-
Der
Busmonitor 700 überwacht
einen Zugriff eines Prozessors jedes Rechenmoduls auf den externen
Bus. Der Busmonitor 700 ist über die Schnittstellensignalleitungen 710, 711 und 712 mit
den externen Prozessorbussen 103, 203 und 303 der
jeweiligen Rechenmodule 100, 200 und 300 verbunden.
-
Die
Fehlererfassungseinheit 702 überwacht das Vorhandensein/Nichtvorhandensein
eines Fehlers in dem Gesamtsystem, das die jeweiligen Rechenmodule
umfasst.
-
Die
Synchronisationssteuereinheit 701, die mit jedem Rechenmodul
verbunden ist, stellt den Zeitablauf einer Antwort auf einen Zugriff
von jedem Rechenmodul so ein, dass veranlasst wird, dass jedes Rechenmodul
die Operation taktsynchron wieder aufnimmt. Die Synchronisationssteuereinheit 701 ist über die
Schnittstellensignalleitungen 730, 731 und 732 mit
den Speichersteuereinheiten 105, 205 und 305 der
jeweiligen Rechenmodule 100, 200 und 300 verbunden.
-
Nachfolgend
wird eine Beschreibung der Operation des so strukturierten fehlertoleranten Computersystems
gemäß der vorliegenden
Realisierungsart gegeben.
-
Die
Fehlererfassungseinheit 702 überwacht das Vorhandensein/Nichtvorhandensein
eines festen Fehlers in dem gesamten fehlertoleranten Computersystem,
das die jeweiligen Rechenmodule 100, 200 und 300 und
die Peripheriegerät-Steuer einheiten 400 und 500 umfasst.
Daraufhin meldet die Fehlererfassungseinheit 702 ein Überwachungsergebnis
an den Busmonitor 700.
-
Der
Busmonitor 700, der über
die Schnittstellensignalleitungen 710, 711 und 712 mit
den externen Prozessorbussen 103, 203 und 303 der
jeweiligen Rechenmodule 100, 200 und 300 verbunden
ist, vergleicht die externen Zugriffssteuersignale der jeweiligen
Prozessoren 101, 102, 201, 202, 301 und 302, um
zu überwachen,
ob die jeweiligen Prozessoren 101, 102, 201, 202, 301 und 302 taktsynchron
zueinander mit dem gleichen Zeitablauf auf die externen Busse 103, 203 und 303 zugreifen
oder nicht.
-
Wenn
die Fehlererfassungsschaltung 702 in einem Fall, in dem
der Busmonitor 700 durch die oben beschriebene Überwachungsoperation
erfasst, dass irgendeiner der Prozessoren 101, 102, 201, 202, 301 und 302 mit
einem anderen Zeitablauf als die anderen arbeitet, nirgends in dem
fehlertoleranten Computersystem einen festen Fehler erfasst, erfasst
der Busmonitor 700, dass der Schritthalteverlust nicht
durch einen Fehler veranlasst ist. Das Ergebnis wird über die
Schnittstellensignalleitungen 710, 711 und 712 an
alle Rechenmodule 100, 200 und 300 gemeldet,
um für
jeden Prozessor eine Unterbrechung zu erzeugen. Außerdem schaltet
der Busmonitor 700 gleichzeitig auf eine Unterbrechungsbetriebsart
der Überwachung
der externen Busse 103, 203 und 303 der
Prozessoren um.
-
Der
Busmonitor 700 überwacht
hier alle Zugriffe auf die externen Busse 103, 203 und 303 einschließlich eines
Speicherzugriffs von dem Prozessor, wobei er, wenn er eine fehlende
Synchronisation in der Operation zwischen den Rechenmodulen erfasst,
sofort alle Prozessoren 101, 102, 201, 202, 301 und 302 unterbricht,
um die Verarbeitung zu unterbrechen, so dass zu dem Zeitpunkt, zu
dem die Unterbrechung erzeugt wird, die Inhalte der Speicher 104, 204 und 304 in
den jeweiligen Rechenmodulen 100, 200 und 300 alle
miteinander übereinstimmen.
-
Im
Folgenden wird anhand von 2 eine Beschreibung
spezifischer Inhalte der Operation des fehlertoleranten Computersystems
gemäß der vorliegenden
Realisierungsart gegeben.
-
Wenn
der Busmonitor 700 eine fehlende Synchronisation in der
Operation zwischen den Rechenmodulen erfasst (Schritt 201 in 2),
wird die Erfassung über
die Schnittstellensignalleitungen 710, 711 und 712 gemeldet,
um für
jeden Pro zessor eine Unterbrechung zu erzeugen.
-
Alle
Prozessoren 101, 102, 201, 202, 301 und 302 sind
in der relevanten Unterbrechungsverarbeitung, wobei sie einen Synchronisationssteuerungs-Task,
der eine Neusynchronisation der Taktsynchronisationsoperation zwischen
den jeweiligen Rechenmodulen 100, 200 und 300 erhalten
soll, als einen Task höchster
Priorität
an die Spitze einer Bereitschaftswarteschlange einreihen (Schritt 202 in 2).
-
Der
Synchronisationssteuerungs-Task besitzt eine Funktion zum Ausführen eines
Befehls zum Zugreifen auf ein speziell in der Synchronisationssteuereinheit 701 vorgeschriebenes
Betriebsmittel. Wenn der oben beschriebene Synchronisationssteuerungs-Task
im Folgenden durch ein OS auf einen Ausführungszustand umgeschaltet
wird, führt
der Task den Befehl aus, auf das vorgeschriebene Betriebsmittel
in der Synchronisationssteuereinheit 701 zuzugreifen (Schritt 203 in 2).
-
Zu
diesem Zeitpunkt werden ein Zugriff auf das vorgeschriebene Betriebsmittel
von einem Rechenmodul in dem Schritthalteverlustzustand und ein Zugriff
auf das vorgeschriebene Betriebsmittel von anderen Rechenmodulen
in dem Schrittverriegelungszustand natürlich mit einer Zeitverzögerung an die
Synchronisationssteuereinheit 701 übertragen.
-
Wenn
der Zugriff der erste ist, enthält
sich die Synchronisationssteuereinheit 701 beim Erfassen
eines Zugriffs von den Rechenmodulen 100, 200 und 300 auf
das speziell vorgeschriebene interne Betriebsmittel davon, eine
Antwort an das relevante Rechenmodul zurückzugeben und wartet darauf,
dass Zugriffe von allen anderen Rechenmodulen kommen (Schritt 204 in 2).
Wenn die Zugriffe von allen Rechenmodulen 100, 200 und 300 übertragen
werden, wird gleichzeitig an alle Rechenmodule 100, 200 und 300 eine
Antwort auf die Zugriffe zurückgegeben.
-
In
Reaktion auf die Antwort von der Synchronisationssteuereinheit 701 schließen alle
Prozessoren in den jeweiligen Rechenmodulen 100, 200 und 300 die
Ausführung
des Synchronisationssteuerungs-Tasks ab (Schritt 205 in 2).
Anschließend setzen
alle Prozessoren die normale Programmoperation fort (Schritt 206 in 2).
-
Die
im Vorstehenden beschriebene Operation ermöglicht, dass die Rechenmodule 100, 200 und 300 ihre
Operation wieder taktsynchron miteinander fortsetzen. Da zu diesem
Zeitpunkt wie oben beschrieben die Neusynchronisationsverarbeitung
ausgeführt
wird, bevor die Inhalte der Speicher 104, 204 und 304 in
den Rechenmodulen 100, 200 und 300 die Übereinstimmung
verlieren, dürfen
nach dem erneuten taktsynchronen Start der Operation alle Rechenmodule 100, 200 und 300 wieder
die gleiche Befehlsfolge mit dem gleichen Zeitablauf ausführen. Dies
beseitigt die Notwendigkeit, den Speicher zur Neusynchronisation
zu kopieren, was in einem herkömmlichen
fehlertoleranten Computersystem erforderlich ist, und ermöglicht dadurch
die schnelle Ausführung der
Neusynchronisationsverarbeitung.
-
3 ist
ein Blockschaltplan, der eine Struktur eines fehlertoleranten Computersystems
gemäß einer
zweiten Realisierungsart der vorliegenden Erfindung zeigt. Anhand
von 3 ist das fehlertolerante Computersystem gemäß der vorliegenden
Realisierungsart der vorliegenden Erfindung so strukturiert, dass
es mehrere Rechenmodule 100 und 200, die jeweils
einen Prozessor und einen Speicher umfassen, und mehrere Peripheriegerät-Steuereinheiten 400 und 500,
die jeweils eine PCI-Brücke 703 umfassen,
enthält.
Jedes der Rechenmodule 100 und 200 verarbeitet
die gleiche Befehlsfolge taktsynchron zueinander. Das fehlertolerante
Computersystem vergleicht ein Verarbeitungsergebnis jedes Rechenmoduls.
Selbst dann, wenn ein Rechenmodul einen Fehler hat, kann die Verarbeitung
durch die verbleibenden Rechenmodule fortgesetzt werden. Außerdem ist
jede der Peripheriegerät-Steuereinheiten 400 und 500 so
strukturiert, dass sie durch Softwaresteuerung in der Weise multiplexiert
wird, dass sie ermöglicht,
dass die Verarbeitung unter Verwendung der anderen Peripheriegerät-Steuereinheit
fortgesetzt wird, selbst wenn eine Peripheriegerät-Steuereinheit einen Fehler
entwickelt.
-
Jede
Peripheriegerät-Steuereinheit 400 enthält die PCI-Brücke 703,
die mit den Speichersteuereinheiten 105 und 205 in
den jeweiligen Rechenmodulen 100 und 200 über eine
PCI verbunden ist, um eine Verbindung mit einem Peripheriegerät herzustellen,
einen Busmonitor 700 zum Überwachen eines Zugriffs jedes
Prozessors in jedem der Rechenmodule 100 und 200 auf
einen externen Bus, eine Fehlererfassungseinheit 702 zum Überwachen
des Vorhandenseins/Nichtvorhandenseins eines Fehlers in dem gesamten
fehlertoleranten Computersystem, das die Rechenmodule 100 und 200 und
eine Synchronisationssteuereinheit 701, die mit jedem Rechenmodul über die
PCI-Brücke 703 verbunden
ist, um den Zeitablauf einer Antwort auf einen Zugriff von jedem
Rechenmodul so einzustellen, dass die Taktsynchronisation jedes
Rechenmoduls wiedergewonnen wird, umfasst.
-
Obgleich
dies in der Figur nicht gezeigt ist, besitzt die Peripheriegerät-Steuereinheit 500 ähnlich der
Peripheriegerät-Steuereinheit 400 ebenfalls
die oben beschriebenen jeweiligen Komponenten.
-
Das
fehlertolerante Computersystem mit Schrittverriegelungssynchronisation,
das gemäß der vorliegenden
Realisierungsart strukturiert ist, überwacht normalerweise die
Taktsynchronisationsoperation jedes der Rechenmodule 100 und 200 und
steuert unter Verwendung der Peripheriegerät-Steuereinheit 400 ein
Peripheriegerät.
Wenn in der Peripheriegerät-Steuereinheit 400 ein
Fehler auftritt, führt
sie durch Umschalten der Verwendung auf die Peripheriegerät-Steuereinheit 500 dieselbe
Verarbeitung aus.
-
In
der vorliegenden Realisierungsart wird die Ausführung eines Befehls zum Zugreifen
auf das vorgeschriebene Betriebsmittel in der Synchronisationssteuereinheit 701,
die in 2 gezeigt ist (Schritt 203 in 2),
durch die Ausführung
eines Lesebefehls zu einem Register in der Synchronisationssteuereinheit 701 in
der Peripheriegerät-Steuereinheit 400 realisiert,
wobei der Lesebefehl über
die PCI-Busse 800 und 801 und die PCI-Brücke 703 zu
der Synchronisationsteuereinheit 701 übertragen wird und seine Antwort über die
gleiche Route zu jedem der Rechenmodule 100 und 200 übertragen
wird.
-
Der
Inhalt der Neusynchronisationsverarbeitung ist in der vorliegenden
Realisierungsart der gleiche, wie er in 2 gezeigt
ist.
-
Obgleich
in der vorliegenden Realisierungsart eine Ausführungsform gezeigt ist, in
der zwei Rechenmodule vorhanden sind, funktionieren eine Struktur
mit drei Rechenmodulen, wie sie in der in 1 veranschaulichten
ersten Realisierungsart gezeigt ist, oder eine Struktur mit vier
oder mehr Modulen außerdem
auf die gleiche Weise.
-
4 ist
ein Blockschaltplan, der eine Struktur eines fehlertoleranten Computersystems
gemäß einer
dritten Realisierungsart der vorliegenden Erfindung zeigt.
-
In
der vorliegenden Realisierungsart ist eine Struktur gezeigt, in
der ein Busmonitor 700 über
eine PCI-Brücke 703 mit
den Rechenmodulen 100 und 200 verbunden ist.
-
In
der vorliegenden Realisierungsart wird die Überwachung der externen Busse 103 und 203 der jeweiligen
Prozessoren durch ein Signal (PCI-Busprotokoll) ausgeführt, das über die
Speichersteuereinheiten 105 und 205 der jeweiligen
Rechenmodule 100 und 200, über die PCI-Busse 800 und 801 und über die
PCI-Brücke 703 an
den Busmonitor 700 übertragen
wird. Außerdem
wird über
eine umgekehrte Route zu der oben beschriebenen Route die Übertragung
einer Unterbrechung von dem Busmonitor 700 zu jedem Rechenmodul
ausgeführt.
-
Der
Inhalt der Neusynchronisationsverarbeitung ist in der vorliegenden
Realisierungsart der gleiche, wie er in 2 gezeigt
ist.
-
Obgleich
die jeweiligen Rechenmodule und der Busmonitor und dergleichen in
der zweiten und dritten Realisierungsart unter Verwendung des PCI verbunden
sind, kann die Verbindung zwischen diesen Komponenten unter Verwendung
einer Schnittstelle einer anderen Norm wie etwa einer PCI-X oder einer
exklusiven Schnittstelle, die nicht universell genormt ist, hergestellt
sein, was keine der Wirkungen der vorliegenden Erfindung beeinflusst.
-
In
dem fehlertoleranten Computersystem der vorliegenden Erfindung kann
die Funktion jeder Einheit zum Ausführen der Neusynchronisationsverarbeitung
nicht nur durch Hardware realisiert werden, sondern auch dadurch,
dass in einen Speicher einer Computerverarbeitungsvorrichtung ein
Programm 1000 zur Neusynchronisationsverarbeitung geladen wird,
das die Funktion jeder der oben beschriebenen Einheiten ausführt, um
die Computerverarbeitungsvorrichtung zu steuern. Das Programm zur
Neusynchronisationsverarbeitung 1000 wird in einer Magnetplatte,
einem Halbleiterspeicher oder einem anderen Aufzeichnungsmedium
gespeichert und aus dem Aufzeichnungsmedium in die Computerverarbeitungsvorrichtung
geladen, um die Operation der Computerverarbeitungsvorrichtung zu
steuern und dadurch jede der oben beschriebenen Funktionen zu realisieren.
-
Obgleich
die vorliegende Erfindung im Vorstehenden in Bezug auf die bevorzugten
Realisierungsarten beschrieben wurde, ist die vorliegende Erfindung
nicht notwendig auf die oben beschriebenen Realisierungsarten beschränkt, sondern
kann im Umfang ihres technischen Gedankens in verschiedenen Formen
realisiert werden.
-
Obgleich
in jeder der oben beschriebenen Realisierungsarten die Struktur
gezeigt ist, in der jedes Rechenmodul zwei Prozessoren besitzt,
funktioniert eine Struktur mit einem Prozessor oder mit drei oder
mehr Prozessoren vollständig
auf die gleiche Weise.
-
Obgleich
in jeder der Realisierungsarten ein Fall gezeigt ist, in dem die
jeweiligen Prozessoren einen externen Bus gemeinsam nutzen und an
denselben Bus angeschlossen sind, beeinflusst außerdem z. B. weder eine Struktur,
in der mehrere Prozessoren in Form eines Asterismus an eine Steuereinheit angeschlossen
sind, noch eine Struktur, in der die Prozessoren, die ein Rechenmodul
bilden, physikalisch auf mehrere Platinen getan sind, die Wirkungen der
vorliegenden Erfindung.
-
Wie
im Vorstehenden beschrieben wurde, erzielt die vorliegende Erfindung
die folgenden Wirkungen.
-
Die
erste Wirkung ist, dass ermöglicht
wird, dass ein bestimmtes Rechenmodul in einem fehlertoleranten
Computersystem, wenn es wegen anderer Ursachen als eines festen
Fehlers aus dem Schrittverriegelungszustand aufhört, in äußerst kurzer Zeitdauer in den
Schrittverriegelungszustand wiederhergestellt wird.
-
Der
Grund dafür
ist, dass, wenn in einer Anfangsstufe der Erzeugung eines Schritthalteverlusts ein
Speicher in jedem Rechenmodul noch nicht mit den jeweils anderen übereinstimmt,
der Busmonitor eine Unterbrechung zu einem Prozessor erzeugt, um bevorzugt
einen Task des Ausführens
einer Befehlsfolge zum Steuern der Neusynchronisation auszuführen, wodurch
die Synchronisation ohne Kopieren des Speichers wiedergewonnen wird.
-
Die
zweite Wirkung ist die Verbesserung der Verfügbarkeit des fehlertoleranten
Computersystems. Der Grund dafür
ist, dass eine Haltezeitdauer des Gesamtsystems durch erhebliches
Beschleunigen der Zeit für
die Neuintegration drastisch verringert werden kann, wenn eine Schrittverriegelung
aufhört.
-
Obgleich
die Erfindung in Bezug auf eine beispielhafte Ausführungsform
davon veranschaulicht und beschrieben worden ist, ist für den Fachmann auf
dem Gebiet selbstverständlich,
dass darin und daran die vorstehenden und verschiedene weitere Änderungen,
Weglassungen und Hinzufügungen vorgenommen
werden können,
ohne von dem Umfang der vorliegenden Ansprüche abzuweichen.