-
GEBIET DER ERFINDUNG
-
Die vorliegende Erfindung bezieht
sich auf ein Verfahren und auf eine Anordnung zur Überwachung einer
parallelen Ausführung
in einem Datensystem.
-
STAND DER TECHNIK
-
Parallele Prozessoren werden verwendet,
um eine größere Zuverlässigkeit
in einem synchronen Datensystem zu erreichen. Zum Beispiel werden
zwei Zentralprozessoren in einem Kommunikationssystem parallel betrieben,
um Redundanz zu erzielen. Einer der Zentralprozessoren steuert die
Umgebung, wohingegen der andere Zentralprozessor inaktiv ist, und
nur arbeitet, um die Steuerung zu übernehmen, wenn im ersten Prozessor
Fehler auftreten oder der Prozessor eine Fehlfunktion erleidet.
Beide Prozessoren arbeiten synchron. Der Status der zwei Prozessoren
ist während
der Ausführung
dauernd identisch, vorausgesetzt, dass kein Fehler existiert. Um
die Existenz eines möglichen
Fehlers zu entdecken, erzeugt jeder Prozessor nach jedem Anweisungszyklus
ein Datenwort, welches den inneren Status des Prozessors zeigt.
Die Statusworte enthalten Bits, welche unterschiedliche Einheiten
in jeweiligen Prozessoren darstellen. Zum Beispiel kann eine Hauptspeichereinheit
durch einen oder mehr der Bits im Statuswort dargestellt sein. Ein
Fehler in einem der Prozessoren wird entdeckt, indem die Statusworte
von jeweiligen Prozessoren nach jedem Taktzyklus miteinander verglichen
werden. In dieser Hinsicht wird das vom ersten Zentralprozessor
erzeugte Statuswort zum Vergleichen an den zweiten Zentralprozessor
geschickt. Das übertragene
Statuswort wird im zweiten Zentralprozessor mit einem entsprechenden
Statuswort verglichen, das in einem entsprechenden Taktzyklus im
zweiten Zentralprozessor erzeugt worden ist. Wenn es keinen Fehler
oder keine Einheit mit Fehlfunktion in den Prozessoren gibt, werden
die Statusworte identisch sein. Andererseits werden sich die Statusworte
im Fall eines Fehlers oder einer Einheit mit Fehlerfunktion in den
Prozessoren unterscheiden, und es wird eine Analyse durchgeführt, um
festzustellen, welcher der Prozessoren den Fehler hat bzw. fehlerhaft
ist.
-
Die europäische Patentanmeldung
EP 00752656 A lehrt
ein fehlertolerantes System, welches zwei Zentralprozessoren enthält, die
Anweisungen parallel ausführen,
und somit zu gleichen Zeiten die gleichen Operationen durchführen. Eine
Kopie jeder Anweisung aus jedem Prozessor wird durch ein Steuerelement empfangen
und kontinuierlich verglichen.
-
Mit erweiterter Prozessorkomplexität entsteht
ein Problem. Eine größere Prozessorkomplexität bedeutet,
dass mehr Prozessoreinheiten überwacht
werden müssen,
was seinerseits bedeutet, dass die übertragenen Statusworte mehr
Bits enthalten müssen.
Darüber
hinaus werden Statusworte mit viel höherer Rate erzeugt, um mit
den höheren
Arbeitsgeschwindigkeiten dieser erweiterten Prozessoren Schritt
zu halten. Diese größere Komplexität und höhere Arbeitsgeschwindigkeit
bedeutet insgesamt, dass das System eine größere Bandbreite für die Übertragung
von Statusworten zwischen zwei parallelen Prozessoren erfordert.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Eine größere Prozessorkomplexität stellt
höhere
Anforderungen an die Fehlerüberwachung.
Eine Fehlerüberwachung
beinhaltet den Vergleich des Status von zwei parallelen Prozessen.
Die vorliegende Erfindung richtet sich auf das Problem, welches
bewirkt wird durch die größer werdende
Notwendigkeit der Übertragung von
mehr Bits in einem Statuswort zwischen den parallelen Prozessoren,
um die heutige Überwachungsqualität aufrecht
zu erhalten.
-
Dieses Problem wird erfindungsgemäß gelöst, indem
lediglich ein Prüfkode
aus einem ersten an eine zweites System übertragen wird, der aus dem
ersten Statuswort erzeugt worden ist, statt dass ein volles Statuswort
aus dem ersten an das zweite System übertragen wird. Das erste Statuswort
kann im zweiten System wiedererzeugt bzw. regeneriert werden, mit
der Hilfe des Prüfkodes
und dem entsprechenden parallelen Statuswort im zweiten System.
-
Somit besteht eine Aufgabe der vorliegenden
Erfindung in der Bewahrung des heutigen Standards bei der Überwachung
von parallelen Systemen, ohne die Bandbreite in der Übertragung
zwischen den Systemen zu vergrößern.
-
Ausführlicher gesagt, wird das Problem
gelöst
durch:
-
- – Erzeugen
eines Prüfkodes
aus dem ersten System, welcher das erste Datenwort darstellt. Der
Prüfkode umfasst
eine Untermenge der Zahl von Bits, die im ersten Datenwort enthalten
sind.
- – Übertragen
des Prüfkodes
aus dem ersten System an das zweite System.
- – Wiedererzeugen
des ersten Datenworts aus dem ersten System durch Auswerten des
entsprechenden parallelen Statusworts des ersten Statusworts aus
dem zweiten System. Der Vergleich des Prüfworts des ersten Statusworts
mit dem Prüfwort
des zweiten Statusworts ermöglicht
die Identifizierung von sich unterscheidenden Bits in den Statusworten.
-
Ein durch die Erfindung geschaffener
Vorteil ist, dass nur wenige Bits zwischen zwei parallelen Systemen übertragen werden
müssen,
um ein Datenwort wieder zu erzeugen, das bedeutend mehr Bits enthält.
-
Ein weiterer durch die Erfindung
geschaffener Vorteil ist, dass die Bandbreite in der Übertragung
zwischen den zwei parallelen Systemen niedrig gehalten werden kann,
ohne Verschlechterung der Überwachungsqualität.
-
Ein weiterer durch die Erfindung
geschaffener Vorteil ist, dass der heutige Standard bei der Überwachung
der parallelen Systeme gehalten werden kann, trotz einer größeren Zahl
von überwachten
Objekten.
-
Ein weiterer durch die Erfindung
geschaffener Vorteil ist, dass der heutige Standard bei der Überwachung
der parallelen Systeme gehalten werden kann, trotz der größeren Anforderungen
an die Ausführungszeiten
bzw. Ausführungsgeschwindigkeiten.
-
Die Erfindung wird nun ausführlicher
unter Bezugnahme auf bevorzugte Ausführungen beschrieben, und auch
unter Bezugnahme auf die begleitenden Zeichnungen.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 veranschaulicht
eine Vermittlung, welche Tele-Einheiten
mit Hilfe einer zentralen Prozessoreinheit und regionalen Prozessoren
verbindet.
-
2 ist
ein Blockdiagramm, das parallele Prozessoren in der zentralen Prozessoreinheit
der 1 veranschaulicht.
-
3 ist
ein ausführlicheres
Blockdiagramm, das Einheiten veranschaulicht, die für die Erfindung
in den zwei parallelen Prozessoren der 2 von Bedeutung sind.
-
4 ist
ein Flussdiagramm, das ein erfinderisches Verfahren veranschaulicht.
-
BESCHREIBUNG VON BEVORZUGTEN
AUSFÜHRUNGEN
-
1 ist
eine schematische Veranschaulichung eines öffentlichen Telekommunikationssystems.
Mittels einer Vermittlungseinheit SE kann zwischen zwei Endgeräten T1,
T2 eine Verbindung errichtet werden. Die Vermittlungseinheit SE
wird durch eine zentrale Prozessoreinheit CPU und verschiedene regionale
Prozessoren RP gesteuert. Die zentrale Prozessoreinheit CPU enthält parallele
Zentralprozessoren. Einer der Zentralprozessoren hat die Gesamtverantwortung
zu Steuerung des Telekommunikationssystems, während der andere Prozessor
eine passive Rolle einnimmt. Die regionalen Prozessoren RP entlasten
den aktiven Zentralprozessor, indem sie Routine-Operationen durchführen, und über Ereignisse
berichten, die im System auftreten.
-
2 veranschaulicht
eine erfinderische Anordnung. Die veranschaulichte Anordnung enthält die zentrale
Prozessoreinheit CPU der 1.
Die Prozessoreinheit enthält
zwei parallele, synchrone Zentralprozessoren CP-A und CP-B. Die
zwei Prozessoren werden im folgenden als ein erster Prozessor CP-A
und ein zweiter Prozessor CP-B bezeichnet. Im veranschaulichten
Fall ist es der erste Prozessor CP-A, der die Gesamtverantwortung
hat, während
der zweite Prozessor CP-B
die eher passive Rolle hat. Mit jedem Taktzyklus treten Ereignisse
in den zwei Zentralprozessoren auf, wobei diese Ereignisse durch
ein Statuswort in jedem Prozessor dargestellt werden. Die Statusworte
reflektieren den Status von unterschiedlichen Einheiten in den jeweiligen
Prozessoren nach jedem Taktzyklus. Ein neues, sogenanntes erstes
Statuswort STWA wird im ersten Prozessor CP-A nach jedem Taktzyklus
erzeugt, während
ein neues, sogenanntes zweites Statuswort STWB im zweiten Prozessor
erzeugt wird. Befehlsabrufer und Adressberechner sind Beispiele
von Prozessoreinheiten, welche ihren Status mit der Hilfe von Bits
in den zwei Statusworten STW1 und STW2 signalisieren. Beide Prozessoren
müssen
identisch sein, um parallel zu arbeiten, und ein entsprechendes
Statuswort STWB muss im zweiten Prozessor CP-B gleichzeitig wie
das Statuswort STWA im ersten Prozessor CP-A im gleichen Taktzyklus
erzeugt werden. Die zwei Statusworte sind gegenseitig identisch,
wenn alle Einheiten in den zwei Prozessoren fehlerfrei sind. Die
zwei Prozessoren arbeiten somit parallel, und erledigen in anderen
Worten gleichzeitig die gleiche Arbeit. 2 veranschaulicht jene Einheiten in den
zwei Prozessoren, die von Bedeutung sind für das Verständnis des Konzepts der Erfindung.
In der veranschaulichten Ausführung
ist der erste Prozessor CP-A der Prozessor, der die Gesamtverantwortung
in dem System hat. Jene Einheiten in den zwei Prozessoren, welche
in Übereinstimmung
mit der Erfindung verwendet werden, wenn CP-A aktiv ist, sind durch stark
hervorgehobene Linien in 2 gezeigt.
Jeder Prozessor holt Statusbits aus unterschiedlichen Einheiten,
wobei diese Bits in CP-A ein Statuswort in einem Statusbus STBA
bilden, und in CP-B ein Statuswort in einem Statusbus STBB. Jeder
Prozessor enthält
einen Prüfbitgenerator,
d.h. einen sogenannten ersten Prüfbitgenerator
CBGA und einen zweiten Prüfbitgenerator
CBGB. Jeder Prozessor CP-A und CP-B enthält auch ein Korrekturmodul,
d.h. ein erstes Korrekturmodul KMA und ein zweites Korrekturmodul
KMB. Jeder Prozessor enthält
auch einen Komparator, d.h. einen ersten Komparator KA und einen
zweiten Komparator KB. Zusätzlich
zu den zwei Prozessoren CP-A
und CP-B enthält
die zentrale Prozessoreinheit CPU auch eine Entscheidungseinheit
DU. Eine allgemeine Beschreibung der Erfindung wird unten unter
Bezugnahme auf 2 gegeben,
gefolgt von einer auf 3 Bezug
nehmenden ausführlicheren
Beschreibung jener Einheiten, welche eine zentrale Bedeutung für die Erfindung
haben. Dem folgt eine Beschreibung des Flussdiagramms in 4, welches ein erfindungsgemäßes Verfahren
veranschaulicht.
-
2 zeigt
ein erstes Statuswort STWA, das in CP-A erzeugt wird, und ein zweites
Statuswort STWB, das in CP-B erzeugt wird. 2 zeigt Einheiten, welche erforderlich
sind, um das erste Statuswort STWA im ersten Prozessor CP-A mit
dem zweiten Statuswort STWB im zweiten Prozessor CP-B zu kombinieren,
ohne dass das erste Statuswort STWA an den zweiten Prozessor übertragen
werden muss. Dies wird in Übereinstimmung
mit der Erfindung erreicht, indem aus dem ersten Prozessor an den
zweiten Prozessor lediglich ein Prüfkode CCA übertragen wird, der aus dem
ersten Statuswort erzeugt bzw. geschaffen wurde, statt dass das erste
Statuswort STWA übertragen
wird. Das erste Statuswort STWA wird dann im zweiten Prozessor CP-B wiedererzeugt
bzw. regeneriert. Dies wird genauer unter Bezugnahme auf 3 beschrieben. Der erste
Prüfkode
CCA wird aus dem ersten Statuswort STWA im Prüfbitgenerator CBGA erzeugt.
Dieser erste Prüfkode CCA
wird an den zweiten Prozessor CP-B geschickt. Der erste Prüfkode CCA
wird im Korrekturmodul KPMB im zweiten Prozessor mit dem zweiten
Prüfkode
CCB kombiniert. Der zweite Prüfkode
CCB wurde aus dem parallelen Statuswort STWB auf der B-Seite erzeugt.
Die zwei Prüfkodes
CCA und CCB ermöglichen
die Identifizierung von irgendwelchen Bits, welche sich möglicherweise
in den zwei Statusworten unterscheiden. Dieser Prozess wird ausführlicher
unter Bezugnahme auf 3 beschrieben.
Das erste Statuswort kann in dem zweiten Prozessor mit Hilfe jener
Bits wieder erzeugt werden, welche in den zwei Statusworten STWA
und STWB als unterschiedlich identifiziert wurden. Dies wird bewirkt
durch Invertierung der angegebenen Bits im zweiten Statuswort STWB,
und dadurch Formen des Statusworts STWA. Das erste Statuswort STWA
wurde damit im zweiten Prozessor CP-B wiedererzeugt, ohne dass das
gesamte erste Statuswort STWA aus dem ersten Prozessor CP-A an den
zweiten Prozessor CP-B übertragen wurde.
Die Art und Weise, in der dies bewirkt wird, wird nun ausführlich unter
Bezugnahme auf 3 beschrieben.
-
3 veranschaulicht
ein einfaches Beispiel davon, wie die Prüfkodes CCA und CCB erzeugt
werden, und zur Identifizierung eines Bitfehlers verwendet werden.
Damit das Beispiel besser verständlich
ist, wurde ein kleines Datenwort anstelle eines großen (zum
Beispiel 128 Bits) verwendet. Das Prinzip ist das Gleiche, unabhängig von
der Länge
des Datenworts. Man nehme an, dass das Datenwort insgesamt acht
Bits umfasst. Vier Prüfbits
sind erforderlich, um einen Ein-Bit-Fehler in diesen acht Bits zu
erfassen. Die Darstellung der 3 enthält die zwei
unter Bezugnahme auf 2 erwähnten Prozessoren.
In 3 sind die zwei Prozessoren
CP-A und CP-B durch eine dicke Strichpunkt-Linie L voneinander getrennt
worden. Das erste Statuswort STWA im ersten Prozessor CP-A wird
dargestellt durch acht Bits AD7-AD0, während das zweite Statuswort STWB
im zweiten Prozessor CP-B durch die Bits BD7-BD0 dargestellt ist. 3 enthält auch den ersten Prüfbitgenerator
CBGA, der in 2 gezeigt
ist. Der Prüfbitgenerator
CPGA erzeugt vier Prüfbits
C3-C0. Auf die gleiche Weise erzeugt der zweite Prüfbitgenerator
CBGB vier Prüfbits
aus den acht Bits BD7-BD0 im zweiten Statuswort STWB auf der B-Seite.
Das Korrekturmodul KMB enthält
vier Exklusiv-Oder-Gatter, in welchen Prüfbits aus den zwei Prozessorseiten
kombiniert werden. Das Korrekturmodul KMB enthält auch eine Kode-Tabelle CT,
welche verwendet wird, um eine Bitposition zu identifizieren, welche
sich in den zwei Worten STWR und STWB unterscheidet. Es ist zunächst notwendig
zu verstehen, wie die Prüfbits
C3-C0 erzeugt werden, bevor man in der Lage ist zu verstehen, wie
eine fehlerhafte Bitposition aufgezeigt wird. Da die Prüfbits sich
auch von einem Zeitpunkt zum nächsten ändern können, gibt
es insgesamt zwölf
Bits AD7-AD0 und C3-C0, welche sich ändern können. Um in der Lage zu sein,
ein "fehlerhaftes" Bit aus diesen zwölf Bits
zu identifizieren, ist es notwendig die Bits in teilweise überlappende
Gruppen zu unterteilen. Diese Gruppierung ist im Stand der Technik
bekannt, und man findet eine Beschreibung zum Beispiel in "W.W. Peterson und
E.J. Weldon, Jr., Error Correcting Codes, MIT Press, Cambridge,
1972".
-
-
Die insgesamt zwölf Bits AD7-AD0, C3-C0 auf
der A-Seite sind in vier Gruppen unterteilt, wie aus der obigen
Tabelle hervorgeht. Die zwölf
Bits sind binär
dargestellt durch vier Darstellungsbits B1, B2, B4 and B8 von unterschiedlicher
Bewertung bzw. Signifikanz. Die Tabelle zeigt die zwölf Bits,
die in vier Gruppen unterteilt sind, wobei jede Gruppe einer Zeile
in der Tabelle entspricht. Jene Darstellungsbits, die in der Tabelle
mit einem "X" markiert sind, haben
den Wert "1". Jene Darstellungsbits,
die nicht mit einem "X" markiert sind, haben den
Wert 0". Bei der
ersten Gruppe, in der ersten Zeile, gibt es Bits, welche wenn sie
binär durch
die Darstellungsbits B1, B2, B4 und B8 dargestellt werden, alle
dass niedrigstwertige Bit B1="1" enthalten. Man erkennt auch
aus der Tabelle, dass C0=0001,
dass D0=0011, dass D1=0101, dass D3=0111, dass D4=1001,
und dass D6=1011. Somit ist
ein gemeinsames Merkmal der fünf
Bits C0, AD0, AD1, AD3, AD4 und AD6, dass sie alle dargestellt werden
mit dem niedrigstwertigen Bit B1="1".
Die zweite Gruppe, die zweite Zeile, enthält Daten- und Prüfbits C1,
AD0, AD2, AD3, AD5 und AD6, welche alle dargestellt werden durch
B2="1". Die dritte Gruppe enthält Bits
C2, AD1, AD2, AD3 und AD7, welche durch B4="1" dargestellt
sind, während
die vierte Gruppe Bits C3, AD4, AD5, AD6 und AD7 enthält, welche
durch B8="1" dargestellt sind.
Die Bits werden erzeugt, wenn die Gruppenunterteilung bestimmt wird.
Die Datenbits (das Statuswort) werden (wird) vom Prozessor bei jedem
Taktzyklus erzeugt, wohingegen die Prüfbits C3-C0 als Paritätsbits aus
den Datenbits AD7-AD0 erzeugt werden. Das erste Prüfbit C0
wird als Paritätsbit
aus jenen Datenbits gebildet, die gewöhnlich zur ersten Gruppe gehören, d.h.
die Gruppe wo B1=1. Dies geht aus 3 hervor.
Die Datenbits in der ersten Gruppe sind wie folgt: AD0, AD1, AD3,
AD4 und AD6. Das erste Prüfbit
C0 bildet gerade Parität
mit den Datenbits AD0, AD1, AD3, AD4, und AD6, d.h. wenn die Zahl
der binären
Einsen in den Datenbits gerade ist, wird das Prüfbit C0 den Wert "0" haben. Andererseits, wenn die Zahl
eine ungerade Zahl ist, wird das Prüfbit den Wert "1" haben. Das Prüfbit C1 wird auf die gleiche
Weise aus den Bits AD0, AD2, AD3, AD5 und AD6 gebildet. Das Prüfbit C2
wird mit Hilfe der Datenbits AD1, AD2, AD3 und AD7 gebildet, wohingegen
das Prüfbit
C3 mit der Hilfe der Datenbits AD4, AD5, AD6 und AD7 gebildet wird.
Dieses Verfahren der Gruppierung und der Erzeugung von Bits ist
im Stand der Technik bekannt, und ist ein geläufiges Verfahren zur Feststellung,
ob oder ob nicht ein Bit in einem Datenwort sich von einem ersten
Zeitpunkt, zu dem ein erstes Prüfwort
erzeugt wurde, zu einem zweiten Zeitpunkt, zu dem ein zweites Prüfwort erzeugt
wird, verändert
hat.
-
Zur gleichen Zeit wie die Prüfbits aus
dem ersten Datenwort STWA erzeugt werden (im gleichen Taktzyklus),
werden Prüfbits
aus dem zweiten Datenwort STWB erzeugt. 3 zeigt wie die Prüfbits aus dem Datenwort auf
der B-Seite erzeugt werden. Die Paritätsbits/Prüfbits werden aus den gleichen
Datenbits gebildet, wie jene, die auf der A-Seite verwendet werden.
Erfindungsgemäß werden
die Prüfbits
C3-C0, die aus dem ersten Datenwort STWA im Prozessor CP-A auf der
A-Seite erzeugt wurden, an den zweiten Prozessor CP-B auf der B-Seite übertragen.
Statt der Übertragung
des gesamten Statusworts STWA, welches acht Bits umfasst, werden
nun lediglich die vier Prüfbits
C3-C0 von der A-Seite zur B-Seite übertragen.
-
Die Prüfbits der A-Seite werden mit
den Prüfbits
der B-Seite verglichen, mit der Hilfe von vier Exklusiv-Oder-Gattern
auf der B-Seite. Wenn alle Prüfbits
der zwei Seiten miteinander übereinstimmen,
nehmen alle Exklusiv-Oder-Gatter an ihren jeweiligen Ausgängen den
Wert "0" ein. Wenn ein Bit
sich geändert
hat, werden entsprechende Exklusiv-Oder-Gatter den Wert "1" einnehmen. Die Ausgänge der Exklusiv-Oder-Gatter
sind mit Adresseingängen
der Kode-Tabelle CT verbunden. Die Kode-Tabelle enthält Speicherpositionen,
welche jeweils eine Bitbreite von 12 Bits haben. Eines der Bits
wurde auf den Binärwert "1" an jeder Speicherposition kodiert,
mit der Ausnahme des ersten. Verbleibende Bits in den Speicherpositionen
wurden auf den Binärwert "0" kodiert. Die Speicherpositionen in
der Kode-Tabelle sind in Übereinstimmung
mit dem gleichen Muster kodiert wie die vorher im Text gezeigte
Tabelle, und die Adresseneingaben entsprechen den vorher erwähnten Darstellungsbits
B1, B2, B4 und B8 in der Tabelle. Zum Beispiel, wenn es einen Unterschied
im ersten Prüfbit C0
aus den Statusworten STWA und STWB gibt, führt dies zu einem Binärwert von "1" am Ausgang des Exklusiv-Oder-Gatters,
das mit dem geringstwertigen Adresseneingang verbunden ist, mit
anderen Worten, B1 wird gleich "1" sein. Dass das erste
Prüfbit
C0 aus der A-Seite und der B-Seite sich jeweils unterscheidet, bedeutet,
dass eines der Datenbits D0, D1, D3, D4, oder D6 (die Datenbits
in der ersten Gruppe B1 in der Tabelle) sich in beiden Statusworten
unterscheidet. Man nehme nun an, dass die Datenbits D3 in den zwei
Statusworten STWA und STWB sich voneinander unterscheiden. Dies
führt zu
einer Ungleichheit zwischen den Prüfbits C0, C1 und C3, und dazu,
dass die Adressbits B1, B2 und B4 den logischen Wert "1" annehmen, während das Adressbit B8 den
logischen Wert "0" annimmt. Die Adressenbits
B8="0", B4,B2,B1="1" identifizieren zusammen die Speicherposition,
welche durch den logischen Wert "0111" dargestellt wird,
d.h. die Speicherposition Nummer 7 (binär: 0111). Alle Datenbits D0,
D1, D2, D4, D5, D6, D7 in der Speicherposition Nummer 7 haben den
Wert "0", außer das
Bit, welches D3 darstellt, welches den Wert "1" hat.
Dieses wird vorher in die Kode-Tabelle CT eingefügt, in Übereinstimmung mit dem Muster,
das in der Tabelle gezeigt ist, die vorher im Text präsentiert
wurde: D0 wird identifiziert mit B1=B2="1",
D1 wird identifiziert mit B0=B2="1" und D3 wird identifiziert mit
B1=B2=B4="1" usw. Der nächste Schritt
beinhaltet das Kombinieren der Ausgänge der Speichereinheit mit dem
zweiten Statuswort STWB über
Exklusiv-Oder-Gatter. In 3 ist
nur eines der Exklusiv-Oder-Gatter gezeigt. Da alle Bits, welche
Datenbits darstellen "0" sind, außer dem
Bit, das D3 darstellt, welches "1" ist, wird aus STWB
ein neues Datenwort erzeugt, bei dem das Bit D3 invertiert wurde.
Dieses neue Datenwort stimmt überein
mit dem ersten Datenwort STWA, und das erste Datenwort STWA ist
damit im zweiten Prozessor CPB wiedererzeugt worden, ohne dass das
erste Datenwort übertragen
werden müsste.
-
2 zeigt
das wiedergeschaffene Statuswort STWA, das aus dem Korrekturmodul
KMB im zweiten Prozessor CP-B erzeugt wurde. Das wiedererzeugte
erste Statuswort STWA und das zweite Statuswort STWB werden an den
Komparator KB im zweiten Prozessor weitergegeben. Die zwei Statusworte
werden im Komparator KB verglichen, und eine Direktive wird an die
Entscheidungseinheit DU geschickt, welche Schritte unternimmt, um
genauer festzustellen, welche Einheit oder welche Einheiten in den
Prozessoren fehlerhaft ist/sind. Dies kann bewirkt werden mit Hilfe
von unterschiedlichen Diagnostikprogrammen in identifizierten Einheiten.
-
In dem Beispiel sind Datenworte verwendet
worden, welche eine Breite von 8-Bit haben. Vier Prüfbits sind
erforderlich, um einen Bitfehler in einem 8-Bit Wort zu erfassen.
Sieben Prüfbits
sind erforderlich, um einen Bitfehler in einem 64-Bit Wort zu erfassen,
während
8 Prüfbits
erforderlich sind, um einen Fehler in einem 128-Bit Wort zu erfassen.
Eine größere Zahl
von Prüfbits
ist erforderlich, um mehr als einen Bitfehler zu erfassen. Die Art
und Weise, in welcher Kode- Tabellen
aufgebaut sind, und wie Prüfbits
in den unterschiedlichen Fällen
verwendet werden, ist im Stand der Technik geläufig, und kann nachgelesen
werden in "IBM Journal
of Research and Development, Band 28, Nr. 2, Seiten 123-230, März 1984".
-
4 ist
ein Flussdiagramm, welches ein erfindungsgemäßes Verfahren veranschaulicht.
Das Flussdiagramm sollte zusammen mit den 2 und 3 gelesen
werden. Das Grundkonzept des Verfahrens besteht im Kombinieren eines
Statusworts aus dem ersten Prozessor CP-A mit einem Statuswort aus
dem zweiten Prozessor CP-B. Der erste Prozessor CP-A ist der aktive
Prozessor. Die Statusworte werden im zweiten Prozessor CP-B kombiniert,
ohne dass das gesamte Statuswort STWA aus dem ersten Prozessor CP-A
an den zweiten Prozessor CP-B übertragen
werden muss. Stattdessen werden Prüfbits übertragen, welche das erste Statuswort
darstellen, und das erste Statuswort kann danach im zweiten Prozessor
CP-B wieder erzeugt werden. Dies führt zu einer Einsparung bei
der Übertragungsbandbreite.
Daten sind vorher in der Kode-Tabelle CT in Übereinstimmung mit gegebenen
Fehlerkorrekturregeln gespeichert worden. Das Flussdiagramm in 4 veranschaulicht lediglich
jene Verfahrensschritte, welche für die Erfindung am wesentlichsten
sind. Das Verfahren umfasst folgende Schritte:
-
- – Ein
erstes Statuswort STWA wird im ersten Zentralprozessor CP-A in Zusammenhang
mit einem Taktzyklus erzeugt. Dieser Schritt ist in 4 im Block 101 gezeigt.
- – Ein
zweites Statuswort STWB wird im zweiten Zentralprozessor CP-B im
gleichen Taktzyklus erzeugt. Dieser Schritt ist in 4 ebenfalls in dem Block 101 abgebildet.
- – Das
erste Statuswort STWA wird in einem Prüfbit-Generator CBGA im ersten Prozessor CP-A
gelesen. Der erste Prüfkode
CCA wird als Paritätsbits
aus Datenbits an ausgewählten
Datenpositionen im ersten Statuswort erzeugt. Dieser Schritt ist
in 4 in Block 102 gezeigt.
- – Das
zweite Statuswort STWB wird in einen Prüfbit-Generator CBGB im zweiten Prozessor
CP-B gelesen. Der zweite Prüfkode
CCB wird als Paritätsbits
aus Datenbits an ausgewählten
Positionen im zweiten Statuswort erzeugt. Die gewählten Bitpositionen
im zweiten Wort sind die gleichen wie die gewählten Positionen im ersten
Wort. Dieser Schritt ist in 4 ebenfalls
in Block 102 gezeigt.
- – Der
erste Prüfkode
CCA wird aus dem Prüfbit-Generator
CGBA im ersten Zentralprozessor CP-A an das Korrekturmodul KMB im
zweiten Zentralprozessor CP-B übertragen.
Dieser Schritt ist in 4 in
Block 103 gezeigt.
- – Der
zweite Prüfkode
CCB wird in das Korrekturmodul KMB in dem zweiten Zentralprozessor
CP-B geschrieben, aus dem Prüfbit-Generator
CBGB in dem zweiten Zentralprozessor CP-B.
- – Entsprechende
Bits in den zwei Prüfkodes
CCA und CCB werden im Korrekturmodul KMB über die Exklusiv-Oder-Gatter kombiniert,
d.h. C0 aus der A-Seite wird mit C0 aus der B-Seite kombiniert,
C1 aus der A-Seite wird mit C1 aus der B-Seite verglichen, usw.
Dieser Schritt ist in 4 in
Block 104 gezeigt.
- – Ausgangssignale
aus den Ausgängen
der Exklusiv-Oder-Gatter
werden an die Adresseingänge
der Kode-Tabelle CT geschickt.
- – Der
Inhalt der in der Kode-Tabelle identifizierten Speicherpositionen
wird an die Datenausgänge
der Kode-Tabelle
geliefert. Das Bit oder die Bits, welche sich aus den zwei Statusworten
unterscheiden, werden mit Hilfe des Inhalts der in der Kode-Tabelle
identifizierten Speicherposition identifiziert. Dieser Schritt ist
in 4 in Block 105 gezeigt.
- – Bits
im zweiten Statuswort STWB werden invertiert. Die Bits, welche invertiert
wurden, entsprechen den Bitpositionen, welche mit Hilfe des Inhalts
der Speicherpositionen in der Kode-Tabelle CT identifiziert wurden.
Das geänderte
zweite Statuswort STWB entspricht dem ersten Statuswort STWA. Dieser
Schritt ist in 4 in
Block 106 gezeigt.
-
Man versteht, dass die Erfindung
nicht auf die zuvor beschriebenen und veranschaulichten Beispielsausführungen
beschränkt
ist, und dass Modifikationen innerhalb des Umfangs der begleitenden
Ansprüche durchgeführt werden
können.
Zum Beispiel kann die Erfindung in vielen unterschiedlichen Arten
von Parallelsystemen angewendet werden. Das in der veranschaulichten
Ausführung
beschriebene Statuswort kann selbstverständlich eine andere Art von
Wort umfassen. Zum Beispiel kommt es in Betracht, Anweisungskodes bzw.
Befehlskodes als Statusworte zu verwenden, und diese Kodes in den
zwei Systemen zu vergleichen.
-
ZUSAMMENFASSUNG
-
Die vorliegende Erfindung bezieht
sich auf ein Verfahren zur Überwachung
von parallelen Prozessoren in einem Datensystem, welches ein erstes
System CP-A und ein zweites System CP-B umfasst. Das Verfahren umfasst
die Schritte: Erzeugen eines ersten Statusworts STWA im ersten System
CP-A, und eines parallelen zweiten Statusworts STWB im zweiten System
CP-B; Erzeugen eines ersten Prüfkodes
CCA aus dem ersten Statuswort STWA im ersten System CP-A; Erzeugen
eines zweiten Prüfkodes
CCB aus dem zweiten Statuswort STWB im zweiten System CP-B; Senden
des ersten Prüfkodes
CCA aus dem ersten System CP-A an das zweite System CP-B; und Wiedererzeugung
des ersten Datenworts STWA im zweiten System CP-B, durch Auswertung
des ersten Prüfkodes
CCA, des zweiten Prüfkodes
CCB und des zweiten Datenworts STWB.