-
HINTERGRUND
DER ERFINDUNG
-
Die
vorliegende Erfindung betrifft eine Informationsverarbeitungsvorrichtung,
wie beispielsweise einen fehlertoleranten Computer mit Lockstep-Betrieb,
die gleichzeitig dieselben Anweisungen in einer Vielzahl von taktsynchronisierten
Computermodulen darin verarbeitet, und insbesondere eine Informationsverarbeitungsvorrichtung,
die ein Computermodul, das außerhalb
einer Synchronisation mit den anderen Computermodulen und vom Betrieb
isoliert gewesen ist, mit anderen Computermodulen schnell synchronisiert.
-
Ein
herkömmlicher
fehlertoleranter Computer mit Lockstep-Betrieb hat eine Vielzahl
von Computermodulen, die dieselben Anweisungen gleichzeitig ausführen. Im
fehlertoleranten Computer kann eines der Computermodule aufgrund
eines Fehlers oder irgendwelcher anderer Ursachen unterschiedlich
von den anderen Computermodulen arbeiten. Auf ein Erfassen eines
Computermoduls hin, das unterschiedlich von den anderen Computermodulen
arbeitet, anders ausgedrückt
beim Finden eines Computermoduls, das außerhalb einer Lockstep-Betriebssynchronisation
ist, setzt der fehlertolerante Computer mit Lockstep-Betrieb das
erfasste Computermodul einmal außer Betrieb.
-
Es
gibt unterschiedliche Gründe
dafür,
dass das Computermodul außerhalb
der Lockstep-Betriebssynchronisation ist. Ein Verlauf einer für das Computermodul,
das außerhalb
der Lockstep-Betriebssynchronisation ist, vorzunehmenden Reaktion hängt von
der Ursache ab. Eine der Ursachen, die dazu führen, dass das Computermodul
außerhalb der
Lockstep-Betriebssynchronisation ist, kann ein permanenter Fehler
sein, der innerhalb des Computermoduls auftritt. Der permanente
Fehler ist keine temporäre
Störung
oder ein Fehler, der sich durch das Computermodul selbst regeneriert,
sondern ein Fehler, der Reparaturen erfordert. Ein Computermodul,
bei welchem ein permanenter Fehler auftritt, wird normalerweise
aus dem fehlertoleranten Computer mit Lockstep-Betrieb herausgenommen,
und anstelle von diesem Modul wird ein anderes gesundes Computermodul
installiert.
-
Eine
weitere potentielle Ursache, die dazu führt, dass das Computermodul
außerhalb
der Lockstep-Betriebssynchronisation ist, kann ein derartiger Mangel
an Synchronisation sein, dass sich die Betriebszeitgabe aufgrund
von Herstellungsschwankungen der Computermodule temporär nicht
mit den anderen Computermodulen synchronisiert. Eine weitere potentielle
Ursache kann eine temporäre
Fehlfunktion eines Speichers im Computermodul sein, das durch einen
Einfluss, wie beispielsweise einen α-Strahl, beeinträchtigt wird.
Bei denjenigen Gründen,
wie einem Mangel an Synchronisation oder einer temporären Fehlfunktion,
die keinen permanenten Fehler verursachen, muss das Computermodul nicht
ersetzt werden.
-
Wenn
der permanente Fehler auftritt, wird das fehlerhafte Computermodul
ersetzt und wird das ausgetauschte Computermodul mit den anderen Computermodulen
verbunden und synchronisiert. Wenn es keinen permanenten Fehler
gibt, wird das Computermodul erneut mit den anderen Computermodulen
verbunden und mit diesen erneut synchronisiert. Die Arbeit zum Veranlassen,
dass sich ein abgetrenntes Computermodul erneut mit den anderen Computermodulen
verbindet, ist eine erneute Synchronisation. Wenn sich der herkömmliche
fehlertolerante Computer mit Lockstep-Betrieb erneut mit dem Computermodul
synchronisiert, das außerhalb
der Lockstep-Betriebssynchronisation war, kopiert der herkömmliche
fehlertolerante Computer mit Lockstep-Betrieb einen Speicher des
Computermoduls, das neu zu verbinden ist, von einem Speicher eines anderen
Computermoduls, das innerhalb der Lockstep-Betriebssynchronisation
ist. Das neu verbundene Computermodul führt darauf folgend dieselben Operationen
mit den anderen Computermodulen aus.
-
Ein
herkömmlicher
fehlertoleranter Computer mit Lockstep-Betrieb zwingt alle Computermodule zu
einem Stoppen und kopiert die gesamten Inhalte eines Speichers des
verbundenen oder neu verbundenen Computermoduls von einem anderen
Computermodul, das in der Lockstep-Betriebssynchronisation ist,
wenn er das Computermodul verbindet oder neu verbindet. Dies lässt zu,
dass alle Computermodule den vollständig selben internen Zustand
haben. Ein herkömmlicher
fehlertoleranter Computer mit Lockstep-Betrieb wird gezwungen, lange
Zeit zu stoppen, um das Computermodul zu verbinden oder neu zu verbinden.
Dies ist deshalb so, weil es eine lange Zeit dauert, die gesamten
Inhalte des Speichers im Computermodul zu kopieren. Insbesondere erhöht sich
dann, wenn eine Speichergröße im Computermodul
erhöht,
eine Zeit zum Kopieren des gesamten Inhalts des Speichers im Computermodul.
-
In
EP-A-0 817 053 ist ein Speichermanagementsystem für ein fehlertolerantes
Computersystem offenbart, das einen ersten Aufzeichnungsmechanismus
enthält,
der aktiviert werden kann, um Speicherupdateereignisse bzw. Speicheraktualisierungsereignisse
aufzuzeichnen, einen zweiten Aufzeichnungsmechanismus mit einer
Kapazität
zum Aufzeichnen von wenigstens einer begrenzten Anzahl von Speicheraktualisierungsereignissen,
einen Fehlereingang für
ein Fehlersignal zum Aktivieren des ersten Aufzeichnungsmechanismus
in dem Fall eines Fehlerereignisses und einen Mechanismus für eine erneute
Integration des Speichers, um wenigstens Teile eines Speichers,
die im ersten und im zweiten Aufzeichnungsmechanismus identifiziert
sind, wieder zu integrieren. Die Aufzeichnung von Speicheraktualisierungen
wird auf einer Seitenbasis unter Verwendung eines Schmutz-RAM und
einer sekundären
Schmutzseitenaufzeichnung durchgeführt.
-
In
US-A-2002/0065996 ist ein Computersystem offenbart, das wenigstens
zwei Verarbeitungsgruppen aufweist, die einen Hauptspeicher enthalten.
Die Verarbeitungsgruppen sind durch eine Brücke verbunden, und eine erste
Verarbeitungsgruppe enthält
einen Schmutzspeicher mit Schmutzidentikatoren zum Anzeigen von
verschmutzten Blöcken
des Hauptspeichers der ersten Verarbeitungsgruppe. Die Brücke enthält eine
Direktzugriffsspeichersteuerung, die betreibbar ist, um Blöcke einer
ersten Verarbeitungsgruppe, die im Schmutzspeicher angezeigt sind,
zum Hauptspeicher einer anderen Verarbeitungsgruppe zu kopieren.
-
KURZE ZUSAMMENFASSUNG
DER ERFINDUNG
-
Es
ist eine Aufgabe der vorliegenden Erfindung, eine Informationsverarbeitungsvorrichtung
zur Verfügung
zu stellen, die eine Verfügbarkeit
verbessert. Die Erfindung ist durch die Ansprüche definiert.
-
Eine
weitere Aufgabe der Erfindung besteht im Bereitstellen einer Informationsverarbeitungsvorrichtung,
die nach der Erfassung eines Fehlers einen Betrieb schnell wieder
aufnimmt.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Andere
Merkmale und Vorteile der Erfindung werden durch die folgende detaillierte
Beschreibung und die beigefügten
Zeichnungen klarer gemacht werden, wobei:
-
1 ein
Blockdiagramm ist, das ein Ausführungsbeispiel
der vorliegenden Erfindung zeigt; und
-
2 ein
Diagramm ist, das ein Betriebsbeispiel der vorliegenden Erfindung
zeigt.
-
In
den Zeichnungen stellen dieselben Bezugszeichen dieselben strukturellen
Elemente dar.
-
DETAILLIERTE
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE
-
Wie
es im Stand der Technik beschrieben ist, ist ein Grund, der ein
Computermodul außerhalb
einer Lockstep-Betriebssynchronisation setzt, ein permanenter Fehler
oder ein nicht permanenter Fehler. In einem fehlertoleranten Computer
muss ein Computermodul ersetzt werden, bei welchem der permanente
Fehler aufgetreten ist. Wenn andererseits ein Computermodul, das
aufgrund eines nicht permanenten Fehlers außerhalb der Lockstep-Betriebssynchronisation
ist, wird es normalerweise nicht ersetzt, sondern unverändert neu
verbunden. Das bedeutet, dass ein Computermodul, das außerhalb
der Lockstep-Betriebssynchronisation ist, in beachtlichen Fällen nicht
ersetzt wird, sondern unverändert
installiert wird. Es kann einen Unterschied zwischen in einem Speicher
des Computermoduls, das außerhalb
der Lockstep-Betriebssynchronisation ist, gespeicherten Daten und
in einem Speicher des Computermoduls, das innerhalb der Lockstep-Betriebssynchronisation ist,
gespeicherten Daten geben, während
die Speicher der Computermodule dieselben Daten speichern werden,
wenn kein Fehler erfasst wird. In vielen Fällen ist der Unterschied gering
oder begrenzt.
-
Nachfolgend
wird ein Ausführungsbeispiel vorliegenden
Erfindung detailliert beschrieben werden.
-
Nimmt
man nun Bezug auf 1, enthält eine Informationsverarbeitungsvorrichtung
Computermodule 100, 200 und 300, Steuerungen
für eine periphere
Vorrichtung 400 und 500, ein Überwachungselement 700,
ein Adressenspeicherelement 701 und ein Datenübertragungselement 702.
Bei diesem Ausführungsbeispiel
ist die Informationsverarbeitungsvorrichtung ein fehlertoleranter
Computer mit Lockstep-Betrieb.
-
Das
Computermodul 100 enthält
Prozessoren 101 und 102, einen Bus 103,
einen Speicher 104 und eine Speichersteuerung 105.
Die Prozessoren 101 und 102 haben dieselbe oder
eine äquivalente Konfiguration
und sind an denselben Bus 103 angeschlossen. Die Speichersteuerung 105 ist
an den Bus 103 angeschlossen. Die Prozessoren 101 und 102 sind über den
Bus 103 an die Speichersteuerung 105 angeschlossen.
Der Speicher 104 ist an die Speichersteuerung 105 angeschlossen.
Die Speichersteuerung 105 ist über eine Signalleitung 730 an
das Datenübertragungselement 702 angeschlossen.
Die Speichersteuerung 105 ist über eine Signalleitung 600 an
die Steuerung für
eine periphere Vorrichtung 400 und über eine Signalleitung 610 an
die Steuerung für
eine periphere Vorrichtung 500 angeschlossen.
-
Jedes
Computermodul 100, 200 und 300 hat dieselbe
oder eine äquivalente
Konfiguration oder Struktur. Spezifisch enthält das Computermodul 200 Prozessoren 201 und 202,
einen Bus 203, einen Speicher 204 und eine Speichersteuerung 205.
Die Prozessoren 201 und 202 sind an denselben
Bus 203 angeschlossen. Die Speichersteuerung 205 ist über eine
Signalleitung 731 an das Datenübertragungselement 702 angeschlossen.
Die Speichersteuerung 205 ist über eine Signalleitung 601 an
die Steuerung für
eine periphere Vorrichtung 400 und über eine Signalleitung 611 an
die Steuerung für
eine periphere Vorrichtung 500 angeschlossen. Das Computermodul 300 enthält Prozessoren 301 und 302,
einen Bus 303, einen Speicher 304 und eine Speichersteuerung 305.
Die Prozessoren 301 und 302 sind an denselben
Bus 303 angeschlossen. Die Speichersteuerung 305 ist über eine
Signalleitung 732 an das Datenübertragungselement 702 angeschlossen.
Die Speichersteuerung 305 ist über eine Signalleitung 602 an die
Steuerung für
eine periphere Vorrichtung 400 und über eine Signalleitung 612 an
die Steuerung für
eine periphere Vorrichtung 500 angeschlossen.
-
Als
Nächstes
wird nachfolgend ein Ausführungsbeispiel
der vorliegenden Erfindung detaillierter beschrieben werden. Für eine präzise Erklärung ist die
Beschreibung auf das Computermodul 100 ausgerichtet.
-
Die
Prozessoren 101 und 102 führen Anweisungen aus, die durch
den fehlertoleranten Computer mit Lockstep-Betrieb 1 angewiesen
sind. Die Anweisungsausführung
durch die Prozessoren 101 und 102 ist im Wesentlichen
mit derjenigen durch die Prozessoren der Computermodule 200 und 300 basierend
auf einem identi schen oder einem im Wesentlichen selben Taktsignal
synchronisiert, und die Prozessoren 101 und 102 führen dieselben
oder im Wesentlichen dieselben Anweisungen im Wesentlichen gleichzeitig
mit den Prozessoren der Computermodule 200 und 300 aus.
Die Quelle des Taktsignals ist gemeinsam für alle Computermodule 100, 200 und 300 vorgesehen,
oder die Quellen der Taktsignale, die synchronisiert sind, sind
jeweils für
die Computermodule 100, 200 und 300 vorgesehen.
Das bedeutet, dass die Computermodule 100, 200 und 300 in
der Anweisungs-"Lockstep-Betrieb"-Synchronisation ausführen, in
welcher jedes Computermodul 100, 200 und 300 einen
im Wesentlichen identischen Anweisungsstrom im Wesentlichen gleichzeitig
ausführt.
Während
der Anweisungsausführung
schreiben die Prozessoren 102 und 102 Daten in
den Speicher 104 oder lesen Daten aus ihm aus. Die Prozessoren 101 und 102,
die basierend auf dem Taktsignal mit den Prozessoren der Computermodule 200 und 300 synchronisiert
sind, greifen auf eine periphere Vorrichtung oder periphere Vorrichtungen
zu. Spezifisch greifen die Prozessoren 101 und 102 auf
die periphere Vorrichtung, die an die Steuerung für eine periphere
Vorrichtung 400 angeschlossen ist, über den Bus 103, das
Speichersteuerelement 105 und die Signalleitung 600 zu.
Die Prozessoren 101 und 102 greifen auf die periphere
Vorrichtung, die an die Steuerung 500 für eine periphere Vorrichtung
angeschlossen ist, über
den Bus 103, das Speichersteuerelement 105 und
die Signalleitung 610 zu. Wenn die Prozessoren 101 und 102 eine
Unterbrechung, welche eine Stoppanweisung ist, vom Überwachungselement 700 empfangen,
schreiben die Prozessoren 101 und 102 einen Zusammenhang
eines Prozesses oder von Prozessen, der oder die zu der Zeit ausgeführt wird
oder werden, wenn die Unterbrechung empfangen wird, in den vorbestimmten
Bereich des Speichers und stoppen ihren Betrieb. Wenn die Prozessoren 101 und 102 aufgrund
der Stoppanweisung, die aus ihrem eigenen Grund entstand, dass sie
außerhalb
der Lockstep-Betriebssynchronisation sind, stoppen, führen die
Prozessoren 101 und 102 darauf folgend eine Hardwarediagnose
aus. Die Hardwarediagnose ist eine Ausführung zum Diagnostizieren der
Hardware von Computermodulen 100 diesbezüglich, ob
es irgendeinen Fehler gibt oder nicht.
-
Die
Speichersteuerung 105 sendet Zugriffsanforderungen, die
die Schreibzugriffsanforderungen und/oder die Lesezugriffsanforderungen
sind, die von den Prozessoren 101 und/oder 102 empfangen
sind, zum Speicher 104. Die Speichersteuerung 105 sendet
Antworten vom Speicher 104 zu den Prozessoren 101 und 102.
Die Anforderung wird von den Prozessoren 101 und 102 zum
Speicher 104 gesendet, wenn die Zugriffsanforderung die
Schreibzugriffsanforderung oder die Lese zugriffsanforderung ist.
Die Schreibzugriffsanforderung enthält Schreibdaten. Die Antwort
wird vom Speicher 104 zu den Prozessoren 101 und 102 gesendet,
wenn die Anforderung die Lesezugriffsanforderung ist. Die Antwort enthält Lesedaten.
Die Speichersteuerung 105 sendet Zugriffsanforderungen,
die von den Prozessoren 101 und/oder 102 kamen
und zu wenigstens einer peripheren Vorrichtung adressiert sind,
zu den Steuerungen 400 und 500 der peripheren
Vorrichtungen. Die Speichersteuerung 105 sendet Zugriffsanforderungen,
die von den Datenübertragungselement 702 über die
Signalleitung 730 empfangen werden, zum Speicher 104.
Beispielsweise besteht der vom Datenübertragungselement 702 empfangene
Zugriff im Ausführen
einer Direktzugriffsspeicher-(DMA-)Übertragung. Bei der DMA-Übertragung ist der Speicher 104 entweder
ein Ursprung der Übertragung
oder ein Zielort der Übertragung.
-
Die
Steuerungen 400 und 500 für periphere Vorrichtungen überwachen,
ob Zugriffsanforderungen zu der peripheren Vorrichtung, die von
allen Computermodulen 100, 200 und 300 empfangen sind,
sich voneinander unterscheiden oder nicht. Wenn sich keine der Zugriffsanforderungen,
die von allen Computermodulen 100, 200 und 300 empfangen
sind, unterscheidet, sendet jede Steuerung 400 und 500 für periphere
Vorrichtungen eine einzelne Zugriffsanforderung aus den Zugriffsanforderungen zu
der entsprechenden peripheren Vorrichtung. Wenn irgendeine der Zugriffsanforderungen,
die von allen Computermodulen 100, 200 und 300 empfangen
sind, sich von den anderen unterscheidet, wirft jede der Steuerungen 400 und 500 für periphere
Vorrichtungen beispielsweise diese Zugriffsanforderungen weg oder
wendet eine einzige Zugriffsanforderung, die durch eine Majoritätsentscheidungsregel bestimmt
ist, zu der entsprechenden peripheren Vorrichtung. Wenn die Zugriffsanforderung,
die die periphere Vorrichtung adressiert, die Lesezugriffsanforderung
ist, sendet jede der Steuerungen 400 und 500 für periphere
Vorrichtungen eine Antwort, die aus der entsprechenden peripheren
Vorrichtung ausgelesene Daten enthält, zu allen Computermodulen 100, 200 und 300 gleichzeitig.
-
Bei
diesem Ausführungsbeispiel
ist das Überwachungselement 700 an
einen Bus angeschlossen, der direkt an die Prozessoren 101 und 102 angeschlossen
ist. Dies beschleunigt die Erfassung durch das Überwachungselement 700,
welche darin besteht, herauszufinden, welches der Computermodule 100, 200 und 300 außerhalb
der Lockstep-Betriebssynchronisation ist. Das Überwachungselement 700 ist
an den Bus 103 des Computermoduls 100 über Signalleitungen 710 und 720 angeschlossen.
Bei der Zugriffsanforderung von den Prozessoren 101 und 102 zum
Speicher 104 oder zur peripheren Vorrichtung verteilt die
Signalleitung 710 ein Adressenhinweissignal, das die Zeit
anzeigt, zu welcher die Adresse ausgegeben wird, von dem Bus 103 zum Überwachungselement 700.
Bei der Zugriffsanforderung von den Prozessoren 101 und 102 zum
Speicher 104 oder zur peripheren Vorrichtung verteilt die
Signalleitung 720 einen Befehl und eine Adresse vom Bus 103 zum Überwachungselement 700.
Der Befehl enthält
beispielsweise einen Schreibzugriffsbefehl oder einen Lesezugriffsbefehl. Das Überwachungselement 700 ist
an den Bus 203 des Computermoduls 200 über Signalleitungen 711 und 721 angeschlossen
und ist an den Bus 303 des Computermoduls 300 über Signalleitungen 712 und 722 angeschlossen.
-
Das Überwachungselement 700 findet
heraus, welches der Computermodule 100, 200 und 300 außerhalb
der Lockstep-Betriebssynchronisation ist. Das Überwachungselement 700 überwacht
die Konsistenz der Zugriffsanforderungen von den Computermodulen 100, 200 und 300 auf
der Basis der Adressenhinweissignale, die über die Signalleitungen 710, 711 und 712 empfangen
werden, und die Befehle und die Adressen, die über die Signalleitungen 720, 721 und 722 empfangen
werden. Wenn das Überwachungselement 700 die
Inkonsistenz der Zugriffsanforderungen von den Computermodulen 100, 200 und 300 erfasst,
teilt das Überwachungselement 700 dem
Adressenspeicherelement 701 mit, dass es eine Inkonsistenz
der Zugriffsanforderungen zwischen den Computermodulen 100, 200 und 300 gibt, und
welches das inkonsistente Computermodul ist. Das Computermodul,
dessen Zugriffsanforderung inkonsistent mit den anderen Computermodulen
ist, wird als außerhalb
der "Lockstep-Betrieb"-Synchronisation
bestimmt. Wenn das Überwachungselement 700 die
Inkonsistenz erfasst, teilt das Überwachungselement 700 den
Prozessoren aller Computermodule 100, 200 und 300 eine
Stoppanweisung mit, die tatsächlich
eine Unterbrechung für
die Prozessoren der Computermodule 100, 200 und 300 ist. Auf
ein Empfangen der Stoppanweisung hin schreibt jeder Prozessor einen
Zusammenhang eines Prozesses oder von Prozessen die zu der Zeit
der Unterbrechung verfolgt werden, in die vorbestimmte Stelle des
Speichers und hält
dann an. Bei einem Beispiel einer Überwachung der Konsistenz der
Zugriffsanforderungen zwischen den Computermodulen 100, 200 und 300 erfasst
das Überwachungselement 700 die Konsistenz
oder die Inkonsistenz der Zugriffsanforderungen, wenn das Überwachungselement 700 die Adressenhinweissignale
von jedem Computermodul 100, 200 und 300 während desselben
Zyklus empfängt,
und die Befehle und die Adressen bei diesem Zyklus zwischen den
Computermodulen 100, 200 und 300 dieselben
sind. Wenn eine Adresse einer Zugriffsanforde rung vom Computermodul 100 unterschiedlich
von Adressen von Zugriffsanforderungen von den Computermodulen 200 und 300 während eines
bestimmten Zyklus ist, wird herausgefunden, dass das Computermodul 100 außerhalb
der Lockstep-Betriebssynchronisation,
anders ausgedrückt inkonsistent,
ist. Bei einem weiteren Beispiel, welches ein vereinfachtes Beispiel
ist, empfängt
das Überwachungselement 700 nur
die Adressenhinweissignale von allen Computermodulen 100, 200 und 300 und
bestimmt die Konsistenz oder die Inkonsistenz der Zugriffsanforderungen,
wenn die Adressenhinweissignale von den Computermodulen 100, 200 und 300 während desselben
Zyklus empfangen werden.
-
Das
Adressenspeicherelement 701 hat einen Puffer, der eine
Adresse oder Adressen entsprechend den Daten speichert, die im Speicher
des Computermoduls gespeichert sind, der in der Lockstep-Betriebssynchronisation
ist, und die unterschiedlich von den Daten sind, die in dem Speicher der
Computermodule gespeichert sind, die außerhalb der Lockstep-Betriebssynchronisation
sind. Das Adressenspeicherelement 701 speichert eine Adresse
oder Adressen, die durch die Zugriffsanforderung angewiesen sind,
in welcher die Inkonsistenz erfasst wird, und die Schreibzugriffsanforderungen
darauf folgend durch die Computermodule 100, 200 und 300,
da das Überwachungselement 700 dem
Adressenspeicherelement 701 die Inkonsistenz der Zugriffsanforderung
und das inkonsistente Computermodul mitteilt.
-
Das
Datenübertragungselement 702 fragt ein
Fehlerindikator-Flag und ein Hardware-Diagnoseergebnis ab, wenn
alle Prozessoren der Computermodule 100, 200 und 300 anhalten
und eine darauf folgende Hardware-Diagnose beendet ist. Das Fehlerindikator-Flag
ist ein Flag, das anzeigt, dass ein Fehler im Computermodul auftrat.
Wenn ein permanenter Fehler im Computermodul auftrat, kann das Datenübertragungselement 702 es
basierend auf dem Fehlerindikator-Flag und dem Hardware-Diagnoseergebnis
herausfinden. Der permanente Fehler ist keine temporäre Störung oder
ein Fehler, der sich selbst regeneriert, sondern ein Fehler, der
Reparaturen erfordert. Das Datenübertragungselement 702 führt eine
erneute Synchronisation aus, wenn kein permanenter Fehler im Computermodul
aufgetreten ist. Die erneute Synchronisation enthält eine Ausführung zum
Anpassen von Speicherinhalten des Computermoduls, das außerhalb
der Lockstep-Betriebssynchronisation
ist, an die Speicherinhalte der anderen Computermodule, die innerhalb
einer Lockstep-Betriebssynchronisation sind. Bei dieser erneuten
Synchronisation werden dann, wenn das Computermodul einen Cache
hat, insbe sondere dann, wenn die Prozessoren einen Cache haben,
Cache-Flashoperationen in dem Computermodul ausgeführt, das
in einer Lockstep-Betriebssynchronisation ist. Eine Cache-Flashoperation
kann nur in einem einzigen Computermodul ausgeführt werden, das in einer Lockstep-Betriebssynchronisation
ist. Durch die Cache-Flashoperationen
werden die Daten im Cache zu dem Speicher ausgeschrieben. Eine Adresse
oder Adressen, die den vom Cache zum Speicher geschriebenen Daten
entsprechen, werden im Adressenspeicherelement 701 gespeichert.
Nach der Beendigung des Cache-Flash kopiert das Datenübertragungselement 702 die
Daten, die der Adresse oder den Adressen entsprechen, die im Adressenspeicherelement 701 gespeichert
ist oder sind, des Speichers des Computermoduls, das außerhalb
einer Lockstep-Betriebssynchronisation ist, von dem Speicher des
Computermoduls, das innerhalb einer Lockstep-Betriebssynchronisation
ist. Das bedeutet, dass die Daten, die durch die Adresse oder die
Adressen bestimmt sind, die im Adressenspeicherelement 701 gespeichert
ist oder sind, und die im Speicher des Computermoduls gespeichert
sind, das innerhalb einer Lockstep-Betriebssynchronisation ist, zu dem Speicher
des Computermoduls kopiert werden, das außerhalb einer Lockstep-Betriebssynchronisation ist.
Bei dieser Kopieroperation kann eine Direktzugriffsspeicher-(DMA-)Übertragung
verwendet werden.
-
Nachdem
das Datenübertragungselement 702 die
Kopieroperation beendet, setzt das Datenübertragungselement 702 alle
Computermodule 100, 200 und 300 zurück und lässt sie
die Ausführungen wieder
aufnehmen. Alle Computermodule 100, 200 und 300 beginnen
eine normale Ausführung.
Alle Prozessoren in den Computermodulen 100, 200 und 300 verwenden
den in dem vorbestimmten Speicherbereich des Computermoduls gespeicherten
Zusammenhang zum Beginnen einer normalen Ausführung.
-
Bei
dem oben beschriebenen Ausführungsbeispiel
werden die Signalleitungen 710 und 720, die vom
Bus 103 abgeleitet sind, zum Übertragen der zum Speicher 104 adressierten
Zugriffsanforderung von den Prozessoren 101 und 102 zu
dem Überwachungselement 700 und
dem Adressenspeicherelement 701. In einem eingeschränkten Fall
kann die vorliegende Erfindung modifiziert werden. Beispielsweise
besteht diese Modifikation im Verwenden von Signalleitungen, die
von der Leitung abgeleitet sind, die die Speichersteuerung 105 und
den Speicher 104 verbindet, um die Zugriffsanforderung
von den Prozessoren 101 und 102 zu dem Überwachungselement 700 und
dem Adressenspeicherelement 701 zu übertragen.
-
Als
Nächstes
wird der Betrieb dieses Ausführungsbeispiels
beschrieben werden.
-
Nimmt
man Bezug auf die 1 und 2 führen die
Computermodule 100, 200 und 300 normalerweise
Operationen in der Lockstep-Betriebssynchronisation aus. Das bedeutet,
dass die Computermodule 100, 200 und 300 normalerweise
dieselben Anweisungen im Wesentlichen gleichzeitig basierend auf
einem identischen oder einem im Wesentlichen selben Taktsignal ausführen. Die
Prozessoren der Computermodule 100, 200 und 300 greifen auf
den Speicher und die periphere Vorrichtung gemäß den Anweisungen zu. Das Überwachungselement 700 überwacht
jeden Zugriff von den Computermodulen 100, 200 und 300.
Spezifisch überwacht das Überwachungselement 700 die
Zeit, den Befehl und die Adresse der Zugriffsanforderungen im selben Zyklus
diesbezüglich,
ob sie zwischen den Computermodulen 100, 200 und 300 konsistent
sind.
-
Unter
der Annahme, dass das Computermodul 100 gestört ist und
somit die Zugriffsanforderung vom Computermodul 100 inkonsistent
mit den Zugriffsanforderungen von den anderen Computermodulen 200 und 300 ist,
aber kein permanenter Fehler im Computermodul 100 auftrat,
erfasst das Überwachungselement 700 die
Inkonsistenz. Beim Erfassen der Inkonsistenz bestimmt das Überwachungselement 700,
welches der Computermodule 100, 200 und 300 außerhalb
einer Lockstep-Betriebssynchronisation ist. Bei diesem Ausführungsbeispiel
bestimmt das Überwachungselement 700,
dass das Computermodul 100 außerhalb einer Lockstep-Betriebssynchronisation
ist. Das Überwachungselement 700 teilt
dem Adressenspeicherelement 701 die Zugriffsinkonsistenz
und das Computermodul, das außerhalb
der Lockstep-Betriebssynchronisation ist, bei diesem Ausführungsbeispiel
das Computermodul 100, mit. Das Überwachungselement 700 teilt
allen Prozessoren in den Computermodulen 100, 200 und 300 die
Stoppanweisung durch eine Unterbrechung mit.
-
Wenn
das Adressenspeicherelement 701 über die Zugriffsinkonsistenz
und das Computermodul 100, das außerhalb der Lockstep-Betriebssynchronisation
ist, benachrichtigt wird, zeichnet das Adressenspeicherelement 701 die
Adressen der inkonsistenten Zugriffsanforderung und die darauf folgenden
Schreibzugriffsanforderungen von jedem der Computermodule 100, 200 und 300 auf.
-
Der
Prozessor, dem die Stoppanweisung mitgeteilt wird, schreibt einen
Zusammenhang eines ablaufenden Prozesses oder von ablaufenden Prozessen
zu dem bestimmten Bereich des Speichers und hält dann an. Die Hardware-Diagnose
wird an dem Computermodul ausgeführt,
dessen Zugriff inkonsistent mit dem anderen Computermodul ist. Bei diesem
Beispiel wird die Hardware-Diagnose am Computermodul 100 ausgeführt. Nach
der Beendigung der Hardware-Diagnose fragt das Datenübertragungselement 702 den
Fehlerindikator und das Hardware-Diagnoseergebnis
ab. Da bei diesem Ausführungsbeispiel
kein permanenter Fehler im Computermodul aufgetreten ist, führt das
Datenübertragungselement 702 die
erneute Synchronisation aus.
-
Bei
der erneuten Synchronisation wird dann, wenn irgendein Computermodul,
das in einer Lockstep-Betriebssynchronisation ist, den Cache hat,
das Räumen
des Caches ausgeführt.
Das Räumen
des Caches wird beispielsweise im Computermodul 200 ausgeführt. Bei
diesem Ausführungsbeispiel
besteht das Räumen
des Caches im Auslesen der gesamten Inhalte des Caches zu einem
Bereich des Speichers des Computermoduls. Das Räumen des Caches veranlasst,
dass die Daten im Cache zum Speicher ausgeschrieben werden. Diese
Schreiboperation zum Speicher wird durch den Schreibzugriff ausgeführt und
die Adresse, deren Daten ausgeschrieben sind, wird im Adressenspeicherelement 701 gespeichert.
-
Das
Datenübertragungselement 702 kopiert die
Daten, die der Adresse oder den Adressen entsprechen, die nur im
Adressenspeicherelement 701 gespeichert ist oder sind,
und die im Speicher von einem der anderen Computermodule gespeichert
sind, die in der Lockstep-Betriebssynchronisation sind, bei diesem
Ausführungsbeispiel
das Computermodul 200, zu dem Speicher des neu zu synchronisierenden
Computermoduls, bei diesem Beispiel des Computermoduls 100.
Bei diesem Ausführungsbeispiel verwendet
die Kopieroperation die DMA-Übertragung.
Die Anzahl der im Adressenspeicherelement 701 gespeicherten
Adressen ist kleiner als die Anzahl der gesamten Adressen des Speichers.
Das Kopieren der Daten bei der vorliegenden Erfindung basierend
auf den im Adressenspeicherelement 701 gespeicherten Adressen
dauert weniger lang als das Kopieren der Daten der gesamten Adressen.
Nach der Beendigung der Kopieroperation setzt das Datenübertragungselement 702 alle
Computermodule 100, 200 und 300 zurück. Nach
dem Rücksetzen werden
alle Computermodule 100, 200 und 300 mit dem
identischen oder dem im Wesentlichen selben Taktsignal miteinander
synchronisiert und beginnen die normale Ausführung.
-
Wie
es oben beschrieben ist, speichert das Adressenspeicherelement 701 dann,
wenn das Überwachungselement 700 herausfindet,
dass irgendein Computermodul außerhalb
der Lockstep-Betriebssynchronisation ist, die Adresse oder Adressen,
deren Daten eine Möglichkeit
haben, sich von den entsprechenden Daten der anderen Computermodule
zu unterscheiden, von dem Speicher des Computermoduls, das außerhalb
einer Lockstep-Betriebssynchronisation ist. Weiterhin kopiert das
Datenübertragungselement 702 während einer
erneuten Synchronisation die Daten entsprechend der Adresse oder
den Adressen, die im Adressenspeicherelement 701 gespeichert
ist oder sind, von dem Speicher das Computermoduls, das innerhalb
der Lockstep-Betriebssynchronisation ist, zu dem Speicher das Computermoduls,
das außerhalb
einer Lockstep-Betriebssynchronisation ist. Die Zeit zum Fertigstellen
des Kopierens des Speichers des neu zu synchronisierenden Computermoduls
wird verkürzt.
Als Ergebnis ist es möglich,
das Computermodul, das einmal aufgrund keines kritischen Grunds, wie
beispielsweise des permanenten Fehlers, außerhalb der Lockstep-Betriebssynchronisation
war, so früh
wie möglich
in den fehlertoleranten Computer zu montieren.
-
Bei
diesem Ausführungsbeispiel
sind zu Erklärungszwecken
drei Computermodule 100, 200 und 300 im
fehlertoleranten Computer mit Lockstep-Betrieb 1 vorgesehen.
Die vorliegende Erfindung ist nicht auf eine solche bestimmte Konfiguration
beschränkt
und die Anzahl der Computermodule kann nicht weniger als zwei sein.
-
Während diese
Erfindung in Verbindung mit den oben beschriebenen bevorzugten Ausführungsbeispielen
beschrieben worden ist, wird es nun für Fachleute auf dem Gebiet
möglich
sein, diese Erfindung auf verschiedene andere Arten in die Praxis umzusetzen.