DE19921179C2 - Logikeinheit nach byzantinem Algorithmus, Rechnereinheit mit solcher Logikeinheit, Verbund aus Logik- oder Rechnereinheiten und Verfahren zum Betreiben eines solchen Verbunds - Google Patents

Logikeinheit nach byzantinem Algorithmus, Rechnereinheit mit solcher Logikeinheit, Verbund aus Logik- oder Rechnereinheiten und Verfahren zum Betreiben eines solchen Verbunds

Info

Publication number
DE19921179C2
DE19921179C2 DE19921179A DE19921179A DE19921179C2 DE 19921179 C2 DE19921179 C2 DE 19921179C2 DE 19921179 A DE19921179 A DE 19921179A DE 19921179 A DE19921179 A DE 19921179A DE 19921179 C2 DE19921179 C2 DE 19921179C2
Authority
DE
Germany
Prior art keywords
data
logic
bsl
units
logic unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE19921179A
Other languages
English (en)
Other versions
DE19921179A1 (de
Inventor
Volker Brinkmann
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EADS Space Transportation GmbH
Original Assignee
Astrium GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to DE19921179A priority Critical patent/DE19921179C2/de
Application filed by Astrium GmbH filed Critical Astrium GmbH
Priority to AT00107449T priority patent/ATE402441T1/de
Priority to ES00107449T priority patent/ES2310505T3/es
Priority to EP00107449A priority patent/EP1050814B1/de
Priority to DE50015269T priority patent/DE50015269D1/de
Priority to JP2000116621A priority patent/JP2000330811A/ja
Priority to US09/565,139 priority patent/US6567927B1/en
Publication of DE19921179A1 publication Critical patent/DE19921179A1/de
Application granted granted Critical
Publication of DE19921179C2 publication Critical patent/DE19921179C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/187Voting techniques
    • G06F11/188Voting techniques where exact match is not required
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/181Eliminating the failing redundant component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/182Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits based on mutual exchange of the output between redundant processing components

Description

Die Erfindung betrifft eine Logikeinheit zum Aufbau eines zeitgleich eine Anzahl F von Fehlern tolerierenden, nach dem byzantinen Algorithmus betreibbaren Verbundes mit mehreren Logikeinheiten mit einer Mehrzahl von Eingängen zum Einlesen von Daten in Register eines Registersatzes und einer Mehrzahl von Ausgängen zum Auslesen von Daten aus den Registern, wobei jeder Ausgang mit einem Eingang einer weiteren Logikeinheit verbindbar ist. Ferner betrifft die Erfindung eine Rechnereinheit mit einer derartigen Logikeinheit sowie einen fehlertoleranten Verbund von wenigstens 3F+1 Logikeinheiten oder Rechnereinheiten. Schließlich betrifft die Erfindung auch ein Verfahren zum Betreiben eines fehlertoleranten Verbundes mit wenigstens 3F+1 derartigen Logikeinheiten oder Rechnereinheiten mit F+1 Datenverteilungszyklen.
Fehlertolerante Rechner dieser Art sind beispielsweise aus DE 44 01 168 C2 bekannt. Sie arbeiten nach dem byzantinen Algorithmus, wie es sich aus DE 44 01 168 C2 sowie aus Leslie Lamport, Robert E. Schostak, Marshall C. Pease: "The Byzantine Generals Problem", ACM Transaction on Programming Languages and Systems (TOPLAS), Volume 4, Number 3, July 1982, S. 382-401, ergibt. Der byzantine Algorithmus besteht im wesentlichen aus einer redundanten Datenverarbeitung mit mehreren parallel arbeitenden Rechnereinheiten, die nach diesem Algorithmus Daten in einer nachfolgend näher erläuterten Weise verteilen und vergleichen. Fehlertolerante Rechner dieser Art bestehen aus einem Verbund von 3F+1 Rechnereinheiten RE1 bis RE(3F+1). Derartige Rechnereinheiten sind z. B. für F = 1 gemäß Fig. 5 in der Weise miteinander verbunden, daß jede Rechnereinheit direkt mit jeder anderen Rechnereinheit Daten austauschen kann. Durch Verteilung in F+1 Verteilungszyklen und Überprüfung dieser Daten nach dem byzantinen Algorithmus kann hierbei eine fehlerhafte Rechnereinheit erkannt und deaktiviert werden, wobei die nicht betroffenen Rechnereinheiten mit gültigen Daten weiterarbeiten.
Jede Rechnereinheit enthält zu diesem Zweck je einen Datenspeicher DS1 bis DS(3F+1). Zur Verdeutlichung der der Erfindung zugrundeliegenden Problematik sollen zunächst, beispielhaft für F = 1, kurz die Verschaltungen und Abläufe in derartigen fehlertoleranten Rechnern anhand der Fig. 5, 5a, 5b und 5c beschrieben werden.
Fig. 5 zeigt, wie über Prozeßsignalleitungen 1-5 Prozeßsignale jeder Rechnereinheit RE1, RE2, RE3, RE4 zugeführt werden. Weitere Datenleitungen 6-11 verbinden jede Rechnereinheit mit je einer anderen Rechnereinheit. Jede dieser Datenleitungen 6-11 besteht im einzelnen aus bidirektionalen Verbindungen für Daten, Deaktivierungs- und Taktsignale. Die in Fig. 5 dargestellten Leitungen 1 bis 11 finden sich in entsprechender Weise in den Fig. 5a, 5b und 5c wieder, jedoch ohne Angabe von Bezugsziffern.
Jede der vier Rechnereinheiten RE1 bis RE4 weist eine Prozeß-Schnittstelle PSS, eine Überwachungslogik ÜL sowie einen anwendungspezifischen Prozessor AP auf. Die Datenspeicher DS1 bis DS4 gehören zur Überwachungslogik ÜL und dienen dem Speichern von eingelesenen Prozeßdaten.
Die in der Rechnereinheit erzeugten bzw. von einer Prozess-Schnittstelle PSS eingelesenen originären Daten d1 bis d4 werden zunächst in den jeweils eigenen Datenspeicher DS1 bis DS4 gemäß Fig. 5a übernommen.
Anschließend überträgt jede Rechnereinheit in einem ersten Datenverteilungszyklus gemäß Fig. 5b ihre originären Daten d1 bis d4 an jede andere Rechnereinheit in den zugehörigen Datenspeicher. Am Ende dieses Verteilungszyklus enthält also jeder Datenspeicher die gemäß Fig. 5a eingelesenen, eigenen Daten d1; d2; d3; d4 sowie die jeweils mit d1/RE1; d2/RE2; d3/RE3; d4/RE4 bezeichneten Daten der anderen Rechnereinheiten.
In einem zweiten Datenverteilungszyklus gemäß Fig. 5c überträgt dann jede Rechnereinheit alle gemäß Fig. 5b erhaltenen Daten in die Datenspeicher derjenigen beiden Rechnereinheiten, die diese Daten nicht schon originär gemäß Fig. 5a erhalten hatten. Somit enthält am Ende dieses Verteilungszyklus jeder Datenspeicher DS1, DS2, DS3 und DS4 die eigenen Daten gemäß Fig. 5a, sowie jeweils drei Datenblöcke DB1, DB2 und DB3, wobei die originären Daten d1 der drei anderen Rechnereinheiten, die jeweils von einer anderen der drei Rechnereinheiten REi übertragen wurden, in einem Datenblock enthalten sind.
Die Auswertung erfolgt dann in jeder Rechnereinheit jeweils durch einen ersten Vergleich der drei Daten innerhalb eines jeden Datenblocks auf bitweise Identität und in einem zweiten Vergleich der Datenblöcke DB1 bis DB3 untereinander sowie mit den jeweils originären Daten gemäß Fig. 5a auf Identität, wobei zwischen kongruenter (d. h. bitidentischer) und quasi-kongruenter Identität (d. h. Identität innerhalb eines Toleranzbereiches) unterschieden werden kann. Wird durch die anschließende Bewertung der Vergleichsergebnisse mittels des bekannten byzantinen Algorithmus eine fehlerhafte Rechnereinheit identifiziert, erzeugt und überträgt die Rechnereinheit ein Deaktivierungssignal an die als fehlerhaft identifizierte Rechnereinheit. Wenn diese Rechnereinheit von allen drei anderen Rechnereinheiten ebenfalls je ein Deaktivierungssignal erhält, wird diese Rechnereinheit deaktiviert.
Bekannte Rechnereinheiten bzw. daraus gebildete Verbunde gemäß DE 44 01 168 C2 haben jedoch den Nachteil, daß wegen der unterschiedlichen Inhalte der Datenspeicher (vergl. Fig. 5c) sowie der Verteilung und des Vergleichs der Daten auf einer logischen Ebene (Datenstrom) oberhalb der Einzeldaten eine für jede Rechnereinheit individuelle Datenauswertung erforderlich ist, was zur Folge hat, daß bekannte Rechnereinheiten bzw. daraus gebildete Verbunde dieser Art relativ langsam arbeiten, da die Übertragung und Auswertung der Datensätze einen hohen Rechenaufwand erfordert.
Der Erfindung liegt deshalb die Aufgabe zugrunde, einen fehlertoleranten Verbund einzelner Logikeinheiten bzw. Rechnereinheiten, diese Einheiten selbst sowie ein Verfahren zum Betreiben des Verbundes, jeweils nach der eingangs genannten Art, zu schaffen, der/die/das schneller arbeitet/arbeiten und zuverlässiger ist/sind.
Gelöst wird diese Aufgabe mit einer Logikeinheit der eingangs genannten Art, die dadurch gekennzeichnet ist, daß die Register derart mit den Eingängen und Ausgängen gekoppelt sind, daß jedes Register unabhängig von der Position der Logikeinheit innerhalb des Verbundes ein- und auslesbar ist, um Daten innerhalb des durch Verschaltung mehrerer identischer Logikeinheiten bildbaren Verbundes derart zu verteilen, dass sie in einander entsprechenden Registern verschiedener Registersätze jeweils gleichen relativen Ursprung haben und jeweils aus einem Registersatz mit gleicher relativer Identifikation stammen.
Ferner wird die Aufgabe gelöst durch eine Rechnereinheit mit einer derartigen Logikeinheit sowie durch einen fehlertoleranten Verbund von wenigstens 3F+1 identisch aufgebauten derartigen Logikeinheiten oder Rechnereinheiten.
Schließlich wird die Aufgabe gelöst durch ein Verfahren der eingangs genannten Art, das dadurch gekennzeichnet ist, daß eingelesene Daten derart innerhalb des Verbundes verteilt werden, dass sie in einander entsprechenden Registern verschiedener Registersätze jeweils gleichen Ursprung haben und jeweils aus einem Registersatz mit gleicher relativer Identifikation stammen.
Die relative Identifikation ermöglicht es auf vorteilhafterweise, identische Rechner- oder Logikeinheiten zu einem Verbund aufzubauen. Dadurch ist es möglich, Rechner- oder Logikeinheiten eines Verbunds an beliebigen Positionen innerhalb des Verbundes in Betrieb zu nehmen, ohne daß irgendwelche Anpassungen vorzunehmen wären. Ferner erlaubt die Erfindung die Datenverteilung und den erforderlichen Datenvergleich ausschließlich durch Hardware und nicht durch Software durchzuführen, so daß ein fehlertoleranter Verbund gegenüber bekannten Verbunden wesentlich schneller und zuverlässiger arbeitet.
Bevorzugt weist jede Rechnereinheit eine ihr zugeordnete identische Logikeinheit auf. Für den Sonderfall F = 1 umfaßt jede Logikeinheit jeweils zehn Hardware-Schieberegister, drei Eingänge, die zum Einlesen von Datensätzen über erste Umschalteinrichtungen mit neun dieser Register verbindbar sind, sowie einen weiteren Eingang, der zum Einlesen der originären Prozessdaten dient. Desweiteren weist jede Logikeinheit drei Ausgänge, die zum Auslesen von Daten über jeweils eine zweite Umschalteinrichtung mit allen Registern verbindbar sind. Dabei ist jeder Ausgang jeder Logikeinheit jeweils mit einem Eingang einer solchen anderen Logikeinheit in der Weise verbunden, daß die in das erste Register jeder Logikeinheit eingelesenen Daten mit einem ersten Datenverteilungszyklus in ein Register jeder anderen Logikeinheit übertragen werden. In einem anschließenden, zweiten Datenverteilungszyklus werden die mit dem ersten Zyklus von allen anderen Rechnereinheiten erhaltenen Daten aus jedem Registersatz in die jeweils beiden anderen Registersätze übertragen, die im vorhergehenden Zyklus nicht Versender der jeweiligen Daten waren. Dabei erfolgt die Kennzeichnung der Daten und der Logikeinheiten durch relative Identifikation und zyklische modulo4-Zählung. Die Daten werden so verteilt, daß diese in gleichen Registern aller Registersätze jeweils gleichen relativen Ursprung haben und jeweils aus einem Registersatz mit gleicher relativer Identifikation übertragen wurden.
Bevorzugt weist jede Logikeinheit eine Mehrzahl von Deaktivierungsleitungen auf, mittels derer Deaktivierungssignale an weitere Logikeinheiten versendet bzw. Deaktivierungssignale von weiteren Logikeinheiten empfangen werden können, falls ein Fehler erkannt worden ist. Nach einer erfolgten Deaktivierung kann besonders bevorzugt eine Reaktivierung einer Logikeinheit eingeleitet werden. Sowohl bei Reaktivierung als auch bei der Initialaktivierung jeder Logikeinheit werden die Logikeinheiten mit Hilfe zyklischer Datenkommunikation synchronisiert.
Vorteilhafterweise wird anhand eines Deaktivierungsstatus entschieden, ob Daten einer weiteren Einheit von der Datenverteilung und Datenbewertung ausgeschlossen oder einbezogen werden sollen.
Weitere Unteransprüche haben vorteilhafte Weiterbildungen der Erfindung zum Inhalt.
Weitere Einzelheiten, Merkmale und Vorteile der Erfindung ergeben sich aus der folgenden Beschreibung einer bevorzugten Ausführungsform anhand der Zeichnung.
Es zeigt:
Fig. 1 eine beispielhafte Schaltungsanordnung einer erfindungsgemäßen Rechnereinheit;
Fig. 2 eine erfindungsmäßige Logikeinheit (BSL) mit Komponenten zur Datenverteilung;
Fig. 3 einen erfindungsmäßigen Verbund von 3F+1 erfindungsgemäßen Logikeinheiten, wobei F = 1 ist;
Fig. 4 eine erfindungsmäßige Logikeinheit mit Komponenten zum Datenvergleich und einem Mikroprozessor;
Fig. 5, 5a bis 5c die Verschaltung sowie die Abläufe des Einlesens und Verteilens von Daten in einem bekannten fehlertoleranten Verbund von Rechnereinheiten;
Fig. 6, 6a bis 6c die Verschaltung sowie die Abläufe des Einlesens und Verteilens von Daten in einem erfindungsmäßigen fehlertoleranten Verbund.
Fig. 1 zeigt die prinzipielle Darstellung einer erfindungsgemäßen Rechnereinheit RE. Ein erfindungsgemäßer fehlertoleranter Verbund setzt sich aus 3F+1 dieser Rechnereinheiten zusammen.
Eine Rechnereinheit umfaßt im wesentlichen eine Logikeinheit BSL, die über einen geeigneten Bus B1 mit einem Mikroprozessor MP, und über einen anderen, der Bildung einer Prozeßdaten-Schnittstelle dienenden Bus B2 mit den Prozessdaten, insbesondere den Prozess- Eingangs- und Ausgangssignalen, verbunden ist. Über eine Verbindungslogik zwischen Bus B1 und Bus B2 hat der Mikroprozessor MP ebenfalls Zugriff zu den Prozessdaten, wobei der Zugriff zu den Prozessdaten durch die Logikeinheit BSL, insbesondere mittels eines Freigabesignals, kontrolliert wird, um den erforderlichen synchronen Ablauf der Logikeinheiten zu gewährleisten. Der Mikroprozessor MP dient zum Ausführen von Programmen zur Steuerung der Prozessdaten-Schnittstelle (direkt und/oder über die Logikeinheit BSL), sowie von anwendungsspezifischen Programmen. Weiterhin kann der Mikroprozessor über Bus B1 und Dualported RAMs mit zusätzlichen anwendungsspezifischen Prozessoren verbunden werden.
Um eine Mehrzahl von Eingangsdaten synchron zu verarbeiten, enthält jede Logikeinheit BSL eine Multiplexfunktion MX, welche die Eingangsdaten sequentiell an die Prozessdaten-Schnittstelle (Bus B2) durchschaltet. Außerdem dient die Multiplexfunktion zur Auswahl eines Leerlaufkanals L zur Aufrechterhaltung des zyklischen Ablaufes, wenn zeitweise keine Prozeß- Eingangsdaten anliegen, damit die Logikeinheit BSL ereignisunabhängig und absolut deterministisch arbeitet. Der betreffende Leerlaufkanal kann auch dazu dienen, verschiedene Rechneranwendungen miteinander zu synchronisieren, sofern dies erforderlich ist. Eine besonders vorteilhafte Ausgestaltung der Erfindung ist die Auswahl der entsprechenden Eingabeeinheit, die in der Weise realisiert wird, daß bei jedem Datenzyklus (n) die anstehenden Anforderungs-Signale der Eingangskanäle mit verteilt werden und durch eine Mehrheitsentscheidung der im Datenzyklus (n+1) zu bearbeitende Kanal ausgewählt wird.
Bevorzugt erfolgt die Synchronisation der Logikeinheiten über den Datentransfer zwischen den Logikeinheiten.
Schließlich ist es auch möglich, mit Hilfe kombinierter Eingabe-/Ausgabe-Einheiten, Daten, die an diese zur Ausgabe übergeben wurden, jedoch nur von der kombinierten Eingabe-/Ausgabe-Einheit als Prozess- Ausgangssignal nach außen versandt wurden, bei der der Ausgangs-Schalter AS geschlossen war, über Loopback- Leitungen zu allen gleichen Eingangs-Einheiten (n+1, n+2, etc.) zurückzuführen und mit Hilfe eines Komparators mit den zur Ausgabe übergebenen Daten zu vergleichen. Das jeweilige Vergleichsergebnis wird als Bestandteil der Eingangsdaten (zurückgelesene Ausgangsdaten) nach dem byzantinen Algorithmus verteilt und überprüft. Auf diese Art ist es möglich, den Ausgabeweg der Rechnereinheiten RE inklusive der kombinierten Eingabe-/Ausgabe-Einheiten nach dem byzantinen Algorithmus auf fehlerfreie Funktion zu überprüfen. Zu diesem Zweck werden die Ausgabe- Einheiten der kombinierten Eingabe-/Ausgabe-Einheiten von der Logikeinheit BSL über ein entsprechendes Signal synchronisiert. Außerdem können auf gleiche Weise Ausgabe-Einheiten 0 bis n synchronisiert werden.
Aus dieser Darstellung wird eine weitere besondere vorteilhafte Ausgestaltung der Erfindung deutlich, die darin besteht, daß die Logikeinheit BSL flexibel einsetzbar und applikations-unabhängig ist, da sie jeweils zwischen die Prozessdaten-Schnittstelle (Bus B2) und den Anwendungs-Prozessor geschaltet ist. Die Anwendung erhält somit ihre Daten entweder direkt aus der Prozessdaten-Schnittstelle oder nach der Überprüfung mittels des byzantinen Algorithmus zusammen mit Statusinformation über die Logikeinheit BSL.
Fig. 2 zeigt den zur Datenverteilung dienenden Anteil einer Logikeinheit BSL sowie einen zugehörigen Schieberegistersatz bestehend aus Schieberegistern SR1 -SR10 im Detail. Ferner sind Zusatzregister SR1a, SR2a, SR6a und SR10a vorgesehen, die mit dem ersten, zweiten, sechsten bzw. zehnten Register SR1, SR2, SR6, SR10 sowie mit einer Multiplexer-Steuerung verbunden sind. Diese Zusatzregister beinhalten die jeweils ausgewählte Multiplexerkanal-Identifikation MKI + i und dienen zusammen mit der Multiplexer-Steuerung zur, zwischen den Logikeinheiten BSL koordinierten, Vorauswahl des jeweils nächsten Eingangskanals, der dann im nächsten Datenzyklus über jeden Multiplexer an die zugehörige Logikeinheit BSL durchgeschaltet wird.
Die Schieberegister SR1 + SR1a, SR2, SR6 und SR10 sind während des Auslesevorgangs rückgekoppelt (nicht dargestellt), so daß nach Abschluß des Auslesevorgangs wieder die ursprünglichen Daten in den jeweiligen Registern vorhanden sind.
Weiterhin sind Zusatzschalter Z1 bis Z3 vorgesehen, die jeweils in die Eingangs-Datenleitungen +1, +2, +3 des Registersatzes geschaltet sind. Diese Zusatzschalter dienen zur Generierung eines vollständigen Datensatzes, wenn eine der Logikeinheiten deaktiviert wurde. In diesem Falle wird der Zusatzschalter in der zur deaktivierten Logikeinheit führenden Eingangs- Datenleitung gegenüber der dargestellten Stellung 1 auf Stellung 2 umgelegt, so daß die aus den Registern ausgelesenen und über den zur deaktivierten Logikeinheit zugeordneten Schalter S1, S2 oder S3 geführten Daten wieder eingelesen werden, um in den betroffenen Schieberegistern SRi wieder gültige Daten zu speichern.
Die Bedingungen im Hinblick auf die Stellungen der Schalter S1 bis S3 sowie die mit den Ziffern 1 und 2 bezeichneten Eingänge der Schieberegister werden im Zusammenhang mit Fig. 3 erläutert.
In Fig. 3 sind die zur Datenverteilung dienenden Anteile der Logikeinheiten BSL (vergl. Fig. 2) von vier Rechnereinheiten RE1, RE2, RE3, RE4 zu einem Verbund in der erfindungsgemäßen Weise zusammengeschaltet. Die in Fig. 2 dargestellten Zusatzregister SRia sind in Fig. 3 weggelassen, da sie zur Erläuterung der Datenverteilung zwischen den Rechnereinheiten (RE1 bis RE4) nicht notwendig sind.
Die Datenverteilungszyklen werden gemäß der Erfindung durch die in Fig. 3 dargestellte Verschaltung der einzelnen Register in Verbindung mit einer Ablaufsteuerung und einer relativen Identifikation der dargestellten Logikeinheiten der vier Rechnereinheiten RE1 bis RE4 (modulo4-Zählung) realisiert.
Der Datenaustausch zwischen den Logikeinheiten der Rechnereinheiten (RE1 bis RE4) erfolgt in zwei Datenverteilungszyklen. Die Ziffern 1 und 2 an den Eingängen der Schieberegister SR1 bis SR10 zeigen an, in welchem der zwei Verteilungszyklen über den jeweiligen Eingang Daten eingelesen werden. Die ersten bis dritten Schalter S1, S2 und S3 in jeder Logikeinheit haben jeweils drei Schaltstellungen. Die dargestellte Schaltstellung 1 wird während des ersten Verteilungszyklusses eingenommen, die Schalterstellung 2 während des zweiten Verteilungszyklusses für jeweils einen ersten Datensatz, und die Schaltstellung 3 während des zweiten Verteilungszyklusses für jeweils einen zweiten Datensatz. Der Ablauf ist im einzelnen wie folgt:
Die Rechnereinheiten RE1 bis RE4 bzw. deren dargestellten Logikeinheiten sind einander in einer zyklisch aufsteigenden Zählweise (modulo4-Zählung) zugeordnet, wobei eine Rechnereinheit, die unmittelbar rechts neben einer anderen Rechnereinheit liegt, dieser gegenüber die relative Adresse +1 und die sich rechts daran anschließende Rechnereinheit die relative Adresse +2 usw. hat.
Die von dem Verbund zu verarbeitenden und im Hinblick auf Fehlerfreiheit zu überprüfenden Daten werden zunächst jeder Logikeinheit über die ihr zugehörige Prozeßdatenschnittstelle, nämlich den Bus B2, zugeführt und in das jeweils erste Schieberegister SR1 des entsprechenden Registersatzes eingelesen.
Mit einem ersten Datenverteilungszyklus werden dann alle Daten d+0 aus den ersten Registern SR1 über den jeweiligen Schalter S1 in Schalterstellung 1 in das zehnte Register SR10 des benachbarten Registersatzes mit der relativen Adresse +1 übertragen.
Gleichzeitig werden die in die jeweils ersten Register SR1 der vier Einheiten eingelesenen Daten auch über jeden zweiten Schalter S2 in Schalterstellung 1 in das sechste Register SR6 des übernächsten Registersatzes mit der relativen Adresse +2 und über jeden dritten Schalter S3 in Schalterstellung 1 in das zweite Register SR2 des links benachbarten Registersatzes mit der relativen Adresse +3 übertragen. Am Ende dieses ersten Datenverteilungszyklus enthält somit jeder Registersatz in dem jeweils ersten Register SR1 die ihm ursprünglich zugeführten Daten, sowie weiterhin in den Registern SR2, SR6 und SR10 die ursprünglichen Daten aus den drei anderen Registersätzen, die jeweils über diese logische Einheit zugeführt wurden.
Die entsprechenden Daten tragen die Bezeichnung d + i/RE + j. Die Ziffer i bezeichnet dabei den Ursprung der Daten d, das heißt in relativer Identifikation diejenige Rechnereinheit, in die die Daten ursprünglich eingelesen wurde, während die Ziffer j diejenige Rechnereinheit RE bezeichnet, von der diese Daten übertragen wurde. Die Daten aller zweiten Register SR2 stammen somit aus dem in aufsteigender Zählweise jeweils benachbarten, das heißt rechts daneben liegenden Registersatz mit der relativen Identifikation +1 und wurden auch über diesen zugeführt.
Die Zusatzregister SR2a + i (in Fig. 3 nicht dargestellt) sind im ersten Verteilungszyklus als Verlängerung der Register SR2 + i zu betrachten; ihre Inhalte werden zusammen mit den Inhalten der Register SR2 + i wie oben beschrieben verteilt. Im zweiten Verteilungszyklus sind diese Zusatzregister inaktiv.
Nach Abschluß des ersten Verteilungszyklus beginnt ein erster Teil des zweiten Datenverteilungszyklusses, nachdem die ersten bis dritten Schalter S1 bis S3 in die Stellung 2 umgelegt worden sind.
Über die ersten Schalter S1 werden nun die Daten aus den sechsten Registern SR6 in den Registersatz mit der relativer Adresse +1 und dort zunächst in das siebte Register SR7 übertragen, von wo sie dann, während des zweiten Teils des zweiten Verteilungszyklusses, jeweils in das fünfte Register SR4 geschoben werden. Über die zweiten Schalter S2 werden weiterhin die Inhalte der zehnten Register SR10 in den Registersatz mit der relativer Adresse +2 und dort zunächst in das jeweilige dritte Register SR3 geladen, von wo sie dann, während des zweiten Teils des zweiten Verteilungszyklusses, jeweils in das neunte Register SR9 geschoben werden. Über die dritten Schalter S3 werden schließlich die Inhalte der zweiten Register SR2 in den Registersatz mit der relativen Adresse +3 und dort zunächst in das jeweilige achte Register SR8 geladen, von wo sie dann, während des zweiten Teils des zweiten Verteilungszyklusses, jeweils in das fünfte Register SR5 geschoben werden.
Damit ist der erste Teil des zweiten Datenverteilungszyklusses beendet. Die Schalter S1 bis S3 werden nun in die Stellung 3 umgelegt, so daß der zweite Teil des zweiten Datenverteilungszyklusses beginnen kann.
Über die ersten Schalter S1 werden dabei die Inhalte der zehnten Register SR10 jedes Registersatzes in den Registersatz mit der relativen Adresse +1 übertragen und dort in dem siebten Register SR7 gespeichert. Über die zweiten Schalter S2 werden die Inhalte der zweiten Register SR2 jedes Registersatzes in denjenigen mit der relativen Adresse +2 übertragen und dort in dem dritten Register SR3 gespeichert. Über die dritten Schalter S3 werden schließlich die Inhalte der sechsten Register SR6 jedes Registersatzes in denjenigen mit der relativen Adresse +3 und dort in das achte Register SR8 übertragen.
Bei jeder Übertragung eines Datums ändert sich dessen Bezeichnung in Hinblick auf seinen Ursprung d sowie der Rechnereinheit RE, aus dem es übertragen wurde, aufgrund der relativen Identifikation der Rechnereinheiten entsprechend. Dadurch ergibt sich nach Abschluß des zweiten Datenverteilungszyklus die in den Fig. 2 und 3 dargestellte Registerbelegung, die in allen Rechnereinheiten RE1 bis RE4 gleich ist.
Fig. 6 zeigt einen Verbund von vier je eine Logikeinheit BSL aufweisende Rechnereinheiten RE1, RE2, RE3, RE4. Diese Rechnereinheiten sind, wie die in Fig. 5 gezeigten, mit Prozeßsignalleitungen 1 bis 5 verbunden zur Ein- und Ausgabe von Prozeßdaten. Die Datenleitungen 6 bis 11 bilden, wie in Fig. 5, bi­ direktionale Verbindungen zwischen den Rechnereinheiten RE1 bis RE4 für die Übertragung von Daten und Deaktivierungssignalen. Die in Fig. 6 dargestellten Leitungen 1 bis 11 finden sich in entsprechender Weise in den Fig. 6a, 6b und 6c wieder, dort jedoch ohne Angabe von Bezugsziffern.
Jede Rechnereinheit RE1 bis RE4 weist eine Logikeinheit BSL auf, die mit den mit der relativen Identifikation +1, +2, +3 bezeichneten Ein-/Ausgängen über die Datenleitungen 6 bis 11 verbunden sind. Bei den in Fig. 6 dargestellten Rechnereinheiten sind die Logikeinheiten BSL jeweils mit einem Mikroprozessor MP verbunden, wie im Hinblick auf Fig. 1 erläutert. Ferner ist die in den Logikeinheiten BSL realisierte Multiplexfunktion schematisch durch einen Block MX dargestellt. Jede Logikeinheit BSL weist einen Registersatz RS1, RS2, RS3 oder RS4 auf und zwar gemäß Fig. 2 bestehend aus den Registern SR1 bis SR10.
Die einzelnen Schritte der erfindungsmäßigen, vorstehend erläuterten Datenverteilung sind in Fig. 6a bis 6c dargestellt. Aus einem Vergleich der Darstellung in Fig. 6c und der Darstellung bekannter Rechner gemäß Fig. 5c wird deutlich, daß die Inhalte aller vier Registersätze RS1 bis RS4 nach Abschluß der Datenverteilungszyklen gleich sind (Fig. 6c), wohingegen die Datenspeicher DS1 bis DS4 (Fig. 5c) unterschiedliche Inhalte aufweisen - jeweils Fehlerfreiheit vorausgesetzt. Somit entfällt bei der erfindungsmäßigen Rechnereinheit bzw. Logikeinheit eine individuelle Datenauswertung wie sie bei bekannten Rechnereinheiten notwendig ist. Dadurch ergibt sich der Vorteil, daß im Gegensatz zu dem Aufbau eines bekannten fehlertoleranten Verbundes der erfindungsgemäße Verbund mit identischen Rechnereinheiten bzw. Logikeinheiten realisierbar ist, unabhängig von deren physikalischem Einsatzort im Rechnerverbund.
Die in Fig. 3 dargestellte Verschaltung der Rechnereinheiten ist neben den oben erläuteten Datenleitungen auch für die Deaktivierungsleitungen (nicht dargestellt) vorzusehen. In Fig. 1 sind diese Leitungen als Ein- und Ausgangsleitungen der Logikeinheit BSL dargestellt.
Fig. 4 zeigt prinzipiell den Vergleich und die Auswertung der eingelesenen Daten sowie Datenblöcke DB1 bis DB3. Zur Ermittlung der Identitäten sind eine Mehrzahl von Komparatoren vorgesehen. Sie sind in der Weise angeordnet, daß pro Datenblock DBi je ein innerer Komparatorring bestehend aus 3 Komparatoren K3, K4, K5 bzw. K7, K8, K9 bzw. K11, K12, K13 entsteht, sowie ein äußerer Komparatorring, bestehend aus den 4 Komparatoren K1, K2, K6 und K10, der die 3 inneren Komparatorringe und das Register SR1 miteinander verbindet.
Mit einem ersten Komparator K1 werden die Inhalte des ersten und zehnten Registers SR1, SR10 verglichen, mit einem zweiten Komparator K2 die Inhalte des ersten und zweiten Registers SR1, SR2, mit einem dritten Komparator K3 die Inhalte des zweiten und dritten Registers SR2, SR3, mit einem vierten Komparator K4 die Inhalte des dritten und vierten Registers SR3, SR4, sowie mit einem fünften Komparator K5 die Inhalte des zweiten und vierten Registers SR2, SR4.
In entsprechender Weise dient ein sechster Komparator K6 zum Vergleich der Inhalte des vierten Registers SR4 mit dem fünften Register SR5, ein siebter Komparator K7 zum Vergleich der Inhalte des fünften und sechsten Registers SR5, SR6, ein achter Komparator K8 zum Vergleich der Inhalte des sechsten und siebten Registers SR6, SR7, sowie ein neunter Komparator K9 zum Vergleich der Inhalte des fünften und siebten Registers SR5, SR7.
Schließlich dient ein zehnter Komparator K10 zum Vergleich der Inhalte des siebten Registers SR7 mit dem achten Register SR8, ein elfter Komparator K11 zum Vergleich der Inhalte des achten und neunten Registers SR8, SR9, ein zwölfter Komparator K12 zum Vergleich der Inhalte des neunten und zehnten Registers SR9, SR10 sowie ein dreizehnter Komparator K13 zum Vergleich der Inhalte des achten und zehnten Registers SR8, SR10.
Die Ausgänge der Komparatoren K1 bis K13 sind mit einer Bewertungslogik BL verbunden, die im Fehlerfall einerseits Deaktivierungssignale initiieren kann und andererseits die Identifikation der Register mit fehlerfreien Daten an den Mikro-Prozessor sendet. Zum Auslesen der Registerinhalte sind alle Register mit dem Datenbus des Mikro-Prozessors verbunden (nicht dargestellt).
Der Datenvergleich erfolgt in zwei logischen Schritten, wobei in einem ersten Vergleich mit Hilfe der inneren Komparatorringe K3, K4, K5 bzw. K7, K8, K9 bzw. K11, K12, K13 die Daten d + i innerhalb eines Datenblocks DBi, die originär jeweils von der selben Logikeinheit bzw. Rechnereinheit RE + i stammen, aber über unterschiedliche Wege übertragen wurden, auf bitweise Identität geprüft werden. Wenn in einem dieser Vergleiche keine bitweise Identität festgestellt wird, liegt ein Fehler vor und es wird entsprechend dem byzantinen Algorithmus die Generierung eines Deaktivierungssignals an die fehlerhafte Logikeinheit bzw. Recheneinheit initiiert. Erhält eine Logikeinheit bzw. Rechnereinheit drei Deaktivierungssignale, so wird sie aus dem Rechnerverbund isoliert. Sind alle Daten d + i innerhalb des jeweiligen Datenblocks DBi bitweise identisch, werden in einem zweiten Vergleich mit Hilfe des äußeren Komparatorrings K1, K2, K6, K10 die Inhalte der Datenblöcke sowie der Inhalt des Registers SR1 miteinander verglichen, wobei zwischen kongruenten (alle Registerinhalte bitweise identisch) und quasi- kongruenten (bitweise identisch in den ersten Vergleichen, aber untereinander abweichend) Daten unterschieden werden kann. Bei kongruenten Daten liegt kein Fehler vor und es wird kein Deaktivierungssignal generiert; bei quasi-kongruenten Daten obliegt die Bewertung dieser Daten der Anwendung, die ggf. ebenfalls die Generierung eines Deaktivierungssignals initiieren kann.
Im linken Teil von Fig. 4 sind wiederum die Zusatzregister SR1a, SR2a, SR6a und SR10a dargestellt, deren Inhalte ebenfalls über Komparatoren ZK1 bis ZK4 miteinander verglichen werden. Die Ausgänge der Komparatoren sind mit einer Auswahllogik AL verbunden, mit der eine Vorauswahl des nächsten durchzuschaltenden Multiplexerkanals erfolgt.
Da bei dem erfindungsgemäßen fehlertoleranten Verbund im Gegensatz zu bekannten Rechnerverbunden die Datenverteilung und der Datenvergleich auf bitweise Identität ausschließlich durch Hardware realisierbar ist, sowie auf der niedrigsten logischen Ebene, nämlich auf einzelnen Prozeßdateneinheiten durchgeführt wird, ist der erfindungsgemäße Verbund wesentlich schneller und zuverlässiger. Der Datendurchsatz ist besser, die Reaktionszeiten sind geringer, die Logikeinheiten bzw. Rechnereinheiten laufen absolut synchron und deterministisch.

Claims (20)

1. Logikeinheit zum Aufbau eines zeitgleich eine An­ zahl F von Fehlern tolerierenden, nach dem byzan­ tinen Algorithmus betreibbaren Verbundes mit meh­ reren Logikeinheiten (BSL) mit
  • a) einer Mehrzahl von Eingängen (+0, +1, +2, +3) zum Einlesen von Daten in Register (SR1 bis SR10) eines Registersatzes und
  • b) einer Mehrzahl von Ausgängen (+1, +2, +3) zum Auslesen von Daten aus den Registern (SR1 bis SR10),
  • c) wobei jeder Ausgang (+1, +2, +3) mit einem Eingang (+1, +2, +3) einer weiteren Logikeinheit (BSL) verbindbar ist, dadurch gekennzeichnet, daß
  • d) die Register (SR1 bis SR10) derart mit den Eingängen (+0, +1, +2, +3) und Ausgängen (+1, +2, +3) gekoppelt sind, daß jedes Register (SR1 bis SR10) unabhängig von der Position der Logikeinheit (BSL) innerhalb des Verbundes ein- und auslesbar ist, um Daten innerhalb des durch Verschaltung mehrerer identischer Logikeinheiten (BSL) bildbaren Verbundes derart zu verteilen, dass sie in einander entsprechenden Registern (SR1 bis SR10) verschiedener Registersätze jeweils gleichen relativen Ursprung (d+1, d+2, d+3) haben und jeweils aus einem Registersatz mit gleicher relativer Identifikation (RE+1, RE+2, RE+3) stammen.
2. Logikeinheit nach Anspruch 1, dadurch gekennzeich­ net, dass sie eine Mehrzahl von Deaktivierungslei­ tungen aufweist zum Versenden von Deaktivierungs­ signalen an weitere Logikeinheiten bzw. zum Emp­ fangen von Deaktivierungssignalen von weiteren Lo­ gikeinheiten (BSL), falls ein Fehler erkannt wor­ den ist.
3. Logikeinheit nach Anspruch 2, dadurch gekennzeich­ net, dass sie derart ausgebildet ist, dass sie sich nach Aktivierung, insbesondere Initialakti­ vierung oder Reaktivierung, auf eine oder mehrere weitere Logikeinheiten (BSL) mit Hilfe zyklischer Datenkommunikation synchronisieren kann.
4. Logikeinheit nach einem der Ansprüche 1 bis 3, da­ durch gekennzeichnet, dass sie derart ausgebildet ist, dass sie aufgrund eines Deaktivierungsstatus Daten einer weiteren Logikeinheit (BSL) von der Datenverteilung und Datenbewertung ausschließen oder in sie einbeziehen kann.
5. Logikeinheit nach einem der Ansprüche 1 bis 4, da­ durch gekennzeichnet, dass sie eine Mehrzahl von Komparatoren (K1 bis K13) zum Vergleich der Regi­ sterinhalte (SR1 bis SR10) und eine mit den Komparatoren verbundene Bewertungslogik (BL) auf­ weist, mit der bei Abweichung bzw. Überschreiten einer zulässigen Abweichung ein Deaktivierungs­ signal für eine als fehlerhaft erkannte Logikein­ heit (BSL) erzeugt werden kann.
6. Logikeinheit nach einem der Ansprüche 1 bis 5, da­ durch gekennzeichnet, dass sie eine, insbesondere mit den weiteren Logikeinheiten (BSL) über den Da­ tentransfer zwischen den Logikeinheiten (BSL) syn­ chronisierbare, Multiplexfunktion (MX) aufweist zur Auswahl von über mehrere Kanäle zuführbare Prozessdaten, insbesondere Prozesseingangssignale und/oder als Loop-Back-Eingangssignale zugeführte Prozess-Ausgangssignale.
7. Logikeinheit nach Anspruch 6, dadurch gekennzeich­ net, dass jede Logikeinheit (BSL) eine Mehrzahl, insbesondere 3F+1, Zusatzregister (SR1a, SR2a, SR6a, SR10a) aufweist.
8. Logikeinheit nach einem der Ansprüche 1 bis 7, da­ durch gekennzeichnet, dass sie eine Mehrzahl von Schaltern (Z1 bis Z3) aufweist, die zwischen den Eingängen (+1, +2, +3) und Registern angeordnet sind und bei Deaktivierung einer weiteren Logik­ einheit (BSL) die aus den Registern (SR1 bis SR10) ausgelesenen Daten wieder anstelle der Daten der deaktivierten Logikeinheit (BSL) einlesen, um in den betroffenen Registern (SR1 bis SR10) wieder gültige Daten zu speichern.
9. Logikeinheit nach einem der Ansprüche 1 bis 8, da­ durch gekennzeichnet, dass sie weitere Schalter (S1, S2, S3) aufweist, die zwischen den Ausgängen (+1, +2, +3) und Registern (SR1 bis SR10; SR1a, SR2a, SR6a, SR10a) angeordnet sind, wobei jeder dieser Schalter (S1, S2, S3) einen Ausgang (+1, +2, +3) mit einem von mehreren Registern (SR1 bis SR10; SR1a) verbinden kann.
10. Logikeinheit nach einem der Ansprüche 1 bis 9, da­ durch gekennzeichnet, dass die Anzahl F tolerier­ barer Fehler gleich eins ist, ein Registersatz zehn Register (SR1 bis SR10), insbesondere Hard­ ware-Schieberegister, aufweist und vier Zusatzre­ gister (SR1a, SR2a, SR6a, SR10a), 13 Komparatoren (K1 bis K13) zum Datenvergleich, vier Eingänge (+0, +1, +2, +3) zum Einlesen und drei Ausgänge zum Auslesen von Daten sowie drei Deaktivierungs­ leitungen vorgesehen sind.
11. Rechnereinheit, gekennzeichnet durch eine Logik­ einheit (BSL) nach einem der Ansprüche 1 bis 10.
12. Rechnereinheit nach Anspruch 11, gekennzeichnet durch einen mit der Logikeinheit (BSL) verbundenen Mikroprozessor (MP), wobei der Mikroprozessor (MP) zum Verarbeiten von eingelesenen Datensätzen ausgebildet ist, um, insbesondere quasi-kon­ gruente, Daten auf etwaige Fehler zu überprüfen und die Generierung eines Deaktivierungssignals zu initiieren.
13. Rechnereinheit nach Anspruch 11 oder 12, dadurch gekennzeichnet, dass sie Ausgänge für Prozessaus­ gangssignale mit Eingängen für Prozesseingangs­ signale verbindende Datenleitungen (loop-back) zum Rückführen von Ausgabedaten zu diesen Eingängen aufweist.
14. Rechnereinheit nach Anspruch 13, gekennzeichnet durch wenigstens eine Eingabe-/Ausgabe-Einheit mit einem Komparator und einem Ausgangs-Schalter (AS), der nur im geschlossenen Zustand zur Ausgabe über­ gebene Daten als Prozess-Ausgangssignale ausgibt, wobei der Komparator zum Vergleichen der als Pro­ zess-Ausgangssignale ausgegebenen Daten mit den zur Ausgabe übergebenen Daten dient und das Ver­ gleichsergebnis als Bestandteil der Eingangsdaten nach dem byzantinen Algorithmus verteilbar und überprüfbar ist.
15. Rechnereinheit nach einem der Ansprüche 11 bis 14, dadurch gekennzeichnet, dass sie eine Verbindungs­ logik aufweist, über die der Mikroprozessor (MP) mittels der Logikeinheit (BSL) koordinierten Zu­ griff auf Prozessdaten hat.
16. Fehlertoleranter Verbund von wenigstens 3F - 1 iden­ tisch aufgebauten Logikeinheiten (BSL) nach einem der Ansprüche 1 bis 10 oder Rechnereinheiten (RE) nach einem der Ansprüche 11 bis 15.
17. Fehlertoleranter Verbund nach Anspruch 16, dadurch gekennzeichnet, dass die relative Identifikation durch eine zyklische, insbesondere zyklisch auf­ steigende, modulo(3F+1)-Zählweise erfolgt.
18. Fehlertoleranter Verbund nach Anspruch 16 oder 17, dadurch gekennzeichnet, dass die Logikeinheiten (BSL) bzw. Rechnereinheiten (RE) über den zwischen den Logikeinheiten (BSL) bzw. Rechnereinheiten (RE) stattfindenden Datenaustausch synchronisier­ bar sind.
19. Verfahren zum Betreiben eines fehlertoleranten Verbundes nach einem der Ansprüche 16 bis 18 mit wenigstens 3F+1 Logikeinheiten (BSL) nach einem der Ansprüche 1 bis 10 oder Rechnereinheiten (RE) nach einem der Ansprüche 11 bis 15, wobei F die Anzahl der zeitgleich zu tolerierenden Fehler ist, mit F+1 Datenverteilungszyklen, dadurch gekenn­ zeichnet, dass eingelesene Daten derart innerhalb des Verbundes verteilt werden, dass sie in ein­ ander entsprechenden Registern (SR1 bis SR10) verschiedener Registersätze jeweils gleichen rela­ tiven Ursprung (d+1, d+2, d+3) haben und jeweils aus einem Registersatz mit gleicher relativer Identifikation (RE+1, RE+2, RE+3) stammen.
20. Verfahren nach Anspruch 19, dadurch gekenn­ zeichnet, dass die relative Identifikation durch zyklische, insbesondere zyklisch aufsteigende, modulo(3F+1)-Zählung erfolgt.
DE19921179A 1999-05-07 1999-05-07 Logikeinheit nach byzantinem Algorithmus, Rechnereinheit mit solcher Logikeinheit, Verbund aus Logik- oder Rechnereinheiten und Verfahren zum Betreiben eines solchen Verbunds Expired - Fee Related DE19921179C2 (de)

Priority Applications (7)

Application Number Priority Date Filing Date Title
DE19921179A DE19921179C2 (de) 1999-05-07 1999-05-07 Logikeinheit nach byzantinem Algorithmus, Rechnereinheit mit solcher Logikeinheit, Verbund aus Logik- oder Rechnereinheiten und Verfahren zum Betreiben eines solchen Verbunds
ES00107449T ES2310505T3 (es) 1999-05-07 2000-04-06 Sistema tolerante a fallos segun un algoritmo bizantino.
EP00107449A EP1050814B1 (de) 1999-05-07 2000-04-06 Fehlertolerantes System nach einem byzantinen Algorithmus
DE50015269T DE50015269D1 (de) 1999-05-07 2000-04-06 Fehlertolerantes System nach einem byzantinen Algorithmus
AT00107449T ATE402441T1 (de) 1999-05-07 2000-04-06 Fehlertolerantes system nach einem byzantinen algorithmus
JP2000116621A JP2000330811A (ja) 1999-05-07 2000-04-18 ビザンチン式アルゴリズムに従う論理ユニット、この種の論理ユニットを有する計算機ユニット、これらの論理ユニットまたはこれらの計算機ユニットから成る複合系、及びこの種の複合系を動作させるための方法
US09/565,139 US6567927B1 (en) 1999-05-07 2000-05-05 Logic unit operable under the byzantine algorithm, computer unit having such logic unit, composite assembly comprised of logic units or computer units, and method of operating such an assembly

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19921179A DE19921179C2 (de) 1999-05-07 1999-05-07 Logikeinheit nach byzantinem Algorithmus, Rechnereinheit mit solcher Logikeinheit, Verbund aus Logik- oder Rechnereinheiten und Verfahren zum Betreiben eines solchen Verbunds

Publications (2)

Publication Number Publication Date
DE19921179A1 DE19921179A1 (de) 2000-11-16
DE19921179C2 true DE19921179C2 (de) 2002-04-25

Family

ID=7907363

Family Applications (2)

Application Number Title Priority Date Filing Date
DE19921179A Expired - Fee Related DE19921179C2 (de) 1999-05-07 1999-05-07 Logikeinheit nach byzantinem Algorithmus, Rechnereinheit mit solcher Logikeinheit, Verbund aus Logik- oder Rechnereinheiten und Verfahren zum Betreiben eines solchen Verbunds
DE50015269T Expired - Lifetime DE50015269D1 (de) 1999-05-07 2000-04-06 Fehlertolerantes System nach einem byzantinen Algorithmus

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE50015269T Expired - Lifetime DE50015269D1 (de) 1999-05-07 2000-04-06 Fehlertolerantes System nach einem byzantinen Algorithmus

Country Status (6)

Country Link
US (1) US6567927B1 (de)
EP (1) EP1050814B1 (de)
JP (1) JP2000330811A (de)
AT (1) ATE402441T1 (de)
DE (2) DE19921179C2 (de)
ES (1) ES2310505T3 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6671821B1 (en) * 1999-11-22 2003-12-30 Massachusetts Institute Of Technology Byzantine fault tolerance
US7620680B1 (en) * 2002-08-15 2009-11-17 Microsoft Corporation Fast byzantine paxos
US6973654B1 (en) * 2003-05-27 2005-12-06 Microsoft Corporation Systems and methods for the repartitioning of data
US7290154B2 (en) * 2004-04-27 2007-10-30 Georgia Tech Research Corporation Probabilistic and introverted switching to conserve energy in a digital system
US8255732B2 (en) * 2008-05-28 2012-08-28 The United States Of America, As Represented By The Administrator Of The National Aeronautics And Space Administration Self-stabilizing byzantine-fault-tolerant clock synchronization system and method
JP6100384B2 (ja) 2013-09-04 2017-03-22 株式会社東芝 情報処理システム、サーバ装置、情報処理方法及びプログラム
JP6158425B2 (ja) * 2014-03-18 2017-07-05 株式会社東芝 情報処理システム、サーバ装置、情報処理方法およびプログラム
US10025344B2 (en) 2015-04-21 2018-07-17 The United States Of America As Represented By The Administrator Of Nasa Self-stabilizing distributed symmetric-fault tolerant synchronization protocol

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4401168C2 (de) * 1993-02-01 1996-06-27 Daimler Benz Aerospace Ag Vorrichtung zur fehlertoleranten Ausführung von Programmen

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4593396A (en) * 1982-10-08 1986-06-03 August Systems Process for a fault-tolerant data processing system with error detection and resistance to fault propagation
US4907232A (en) * 1988-04-28 1990-03-06 The Charles Stark Draper Laboratory, Inc. Fault-tolerant parallel processing system
US5269016A (en) * 1990-09-24 1993-12-07 Charles Stark Draper Laboratory, Inc. Byzantine resilient fault tolerant shared memory data processing system
JP2534430B2 (ja) * 1992-04-15 1996-09-18 インターナショナル・ビジネス・マシーンズ・コーポレイション フォ―ルト・トレランスのあるコンピュ―タ・システム出力の合致を達成するための方法
US5533188A (en) * 1992-10-19 1996-07-02 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Fault-tolerant processing system
US5513354A (en) * 1992-12-18 1996-04-30 International Business Machines Corporation Fault tolerant load management system and method
US5680518A (en) * 1994-08-26 1997-10-21 Hangartner; Ricky D. Probabilistic computing methods and apparatus
US6141769A (en) * 1996-05-16 2000-10-31 Resilience Corporation Triple modular redundant computer system and associated method
US6202181B1 (en) * 1996-11-04 2001-03-13 The Regents Of The University Of California Method for diagnosing bridging faults in integrated circuits
US6178522B1 (en) * 1998-06-02 2001-01-23 Alliedsignal Inc. Method and apparatus for managing redundant computer-based systems for fault tolerant computing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4401168C2 (de) * 1993-02-01 1996-06-27 Daimler Benz Aerospace Ag Vorrichtung zur fehlertoleranten Ausführung von Programmen

Also Published As

Publication number Publication date
ATE402441T1 (de) 2008-08-15
EP1050814A2 (de) 2000-11-08
ES2310505T3 (es) 2009-01-16
US6567927B1 (en) 2003-05-20
DE50015269D1 (de) 2008-09-04
JP2000330811A (ja) 2000-11-30
EP1050814B1 (de) 2008-07-23
EP1050814A3 (de) 2007-05-23
DE19921179A1 (de) 2000-11-16

Similar Documents

Publication Publication Date Title
DE3122076C2 (de)
DE2626838B2 (de) Prüf-Schaltungsanordnung für eine Fernmeldeinstallation
DE2202231A1 (de) Verarbeitungssystem mit verdreifachten systemeinheiten
DE3300263A1 (de) Schaltungsanordnung zur zuteilung des zugriffs zu einer auf anforderungsbasis gemeinsam benutzten sammelleitung
WO2006108527A9 (de) Teilnehmer, master-einheit, kommunikationssystem und verfahren zu deren betreiben
EP0453607A1 (de) Verfahren und Schaltungsanordnung zur Reduzierung des Verlustes von Nachrichtenpaketen, die über eine Paketvermittlungseinrichtung übertragen werden
DE3328405C2 (de)
WO2007063045A1 (de) Netzwerk mit redundanzeigenschaften, ethernet-switch für ein derartiges netzwerk sowie verfahren zur konfiguration eines derartigen netzwerks
EP0701346A2 (de) Verfahren zur konsistenten Nachrichtenübertragung
EP2169882A1 (de) Schiffsruder-Steuerung mit einem CAN-Bus
DE19921179C2 (de) Logikeinheit nach byzantinem Algorithmus, Rechnereinheit mit solcher Logikeinheit, Verbund aus Logik- oder Rechnereinheiten und Verfahren zum Betreiben eines solchen Verbunds
EP0144403A1 (de) Verfahren und anordnung zum übertragen von informationen in einem datenring.
DE19831720A1 (de) Verfahren zur Ermittlung einer einheitlichen globalen Sicht vom Systemzustand eines verteilten Rechnernetzwerks
DE19715262A1 (de) Lokales Netzwerk zur Rekonfigurierung bei Leitungsbrüchen oder Knotenausfall
DE10031177B4 (de) Verfahren und Anordnung zur gesicherten paketorientierten Informationsübermittlung
DE10223007A1 (de) Verfahren und Vorrichtung zur Übertragung von Informationen in einem Netzwerk sowie entsprechendes Netzwerk
WO1992003786A1 (de) Einrichtung zur interruptverteilung in einem mehrrechnersystem
EP1028360B1 (de) Vorrichtung zum Verarbeiten sicherheitsrelevanter Daten
DE19921589A1 (de) Verfahren zum Betrieb eines Datenübertragungssystems
WO2005101750A1 (de) System mit doppelringtopologie zur übertragung von daten und teilnehmer des systems
EP3435179B1 (de) Verfahren zum gemäss einer sicherheitsnorm funktional sicheren austausch von informationen
WO2005101749A1 (de) System und verfahren zur übertragung und bewertung von daten in einem bussystem mit ringtopologie
EP0973301A2 (de) Lokales Netzwerk mit Master-Netzknoten zur Löschung von kreisenden Nachtrichten
EP0246218A2 (de) Fehlertolerantes Datenverarbeitungssystem
DE19904894A1 (de) Verfahren zur Slave-Slave-Kommunikation in einem ringförmigen Lokalen Netz

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: ASTRIUM GMBH, 85521 OTTOBRUNN, DE

D2 Grant after examination
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: EADS SPACE TRANSPORTATION GMBH, 28199 BREMEN, DE

8327 Change in the person/name/address of the patent owner

Owner name: ASTRIUM GMBH, 85521 OTTOBRUNN, DE

8327 Change in the person/name/address of the patent owner

Owner name: ASTRIUM GMBH, 82024 TAUFKIRCHEN, DE

8339 Ceased/non-payment of the annual fee