-
Die Erfindung betrifft ein Verfahren zum Generieren eines Ausgangsdatenstroms aus einem Eingangsdatenstrom, sowei ein System, ein Computerprogramm und ein maschinenlesbares Speichermedium zur Durchführung des Verfahrens.
-
Stand der Technik
-
Aus der
DE 10332700 A1 istein Verfahren zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit mit wenigstens zwei Ausführungseinheiten dadurch gekennzeichnet, dass ein Wechsel von einem ersten Betriebsmodus in einen zweiten Betriebsmodus dadurch ausgelöst wird, dass durch die Prozessoreinheit auf eine vorgegebene Speicheradresse zugegriffen wird.
-
Offenbarung der Erfindung
-
Eine zunehmende Zahl von Anwendungen, beispielsweise im Bereich des hochautomatisierten Fahrens, erfordert die Durchführung von Berechnungen, die hohen Ansprüchen sowohl hinsichtlich der Sicherheitsintegrität (engl. „safety integrity“) als auch der Leistungsanforderungen genügen müssen.
-
Im Bereich der Embedded-Sicherheitskonzepte, ist eine mögliche Maßnahme, die korrekte Ausführung von Berechnungen mit Hilfe von auf Hardware oder Software basierenden Selbsttests sicherzustellen. Eine Absicherung der erforderlichen Recheneinheiten selbst ist hiermit allerdings komplex.
-
Eine weitere Möglichkeit, trotzdem einen hohen Anteil sicherer Fehler zu garantieren, besteht in der mehrfachen Ausführung der Berechnungen auf mehreren Recheneinheiten mit einem nachgeschalteten Vergleicher zur Sicherstellung der Berechnungsintegrität, also der Erkennung von Abweichungen. Mit „sicheren Fehlern“ sind hier Fehler gemeint, die entweder inhärent sicher sind (d.h. deren Auftreten keine gefährdenden Konsequenzen hat) oder detektiert werden.
-
Um eine erhöhte Unabhängigkeit der Recheneinheiten zu gewährleisten, können diese räumlich getrennt werden. Eine Schwierigkeit besteht dann darin, sicherzustellen, dass die Recheneinheiten mit identischen Daten arbeiten, da ansonsten der Vergleicher einen Fehler diagnostiziert.
-
Ferner ist auch ein Umgang mit Übertragungsfehlern, also mit fehlerhaft oder unvollständig übertragenen oder ausbleibenden Datenpaketen auf einer der Recheneinheiten erforderlich, denn solche Fehler können zu einzelnen Komparatorfehlern führen oder, falls die einzelnen Recheneinheiten ihren Zustand in Abhängigkeit der Eingangsdaten verändern (sogenannte „Persistenz“), zu dauerhaften Fehlern und damit einem Totalausfall (also zu einem erzwungenen Übergang in einen sicheren Zustand) führen. Abhängig von der Häufigkeit von Übertragungsfehlern kann dies zu einer starken Einschränkung der Verfügbarkeit führen.
-
Die Erfindung betrifft ein Verfahren mit den Merkmalen des unabhängigen Anspruchs 1 und ein System, welches ausgebildet ist, dieses Verfahren auszuführen. Vorteilhafte Weiterbildungen sind Gegenstand der abhängigen Ansprüche.
-
In einem ersten Aspekt ist ein Verfahren zum Generieren eines Ausgangsdatenstroms aus einem Eingangsdatenstrom vorgesehen, bei dem eine Recheneinheit einen einen ersten Datensatz umfassenden ersten Eingangsdatenstrom empfängt. Ferner ist vorgesehen, dass diese Recheneinheit von einer weiteren Recheneinheit zweite Metadaten empfängt, die einen zweiten Datensatz eines zweiten Eingangsdatenstrom dieser weiteren Recheneinheit beschreiben, wobei die Recheneinheit abhängig von den zweiten Metadaten einen aus dem ersten Datensatz generierten Ausgangsdatensatz des Ausgangsdatenstroms ausgibt, oder nicht.
-
Die zweiten Metadaten können eine Information darüber sein, ob der zweite Datensatz vorliegt oder nicht. Das Wort „Datensatz“ kann insbesondere auch so breit gefasst verstanden werden, dass ein leerer Datensatz mit umfasst ist, sein, sodass beispielsweise bei Protokollen deren Eingangsdatenstrom in einem festen Raster angeordnet ist, die Recheneinheit durch Vorliegen eines leeren Datensatzes erkennen kann, dass ein Datensatz nicht vorliegt.
-
Insbesondere kann dann vorgesehen sein, dass die Recheneinheit dann, insbesondere genau dann, einen aus dem ersten Datensatz generierten Ausgangsdatensatz des Ausgangsdatenstroms ausgibt, wenn die zweiten Metadaten angeben, dass der zweite Datensatz vorliegt.
-
Dieses Verfahren hat den Vorteil, dass die Recheneinheit mit wenig Aufwand ermitteln kann, ob ihr Eingangsdatenstrom und der Eingangsdatenstrom der weiteren Recheneinheit konsistent sind. Dieses Verfahren führt insbesondere nur zu einer sehr kleinen zusätzlichen Latenz.
-
In einer besonders flexiblen Weiterbildung dieses Aspekts kann ein Verfahren zum Generieren eines Ausgangsdatenstroms aus einem Eingangsdatenstrom vorgesehen sein. Hierbei ist vorgesehen, dass einer Recheneinheit erste Metadaten vorliegen, welche einen ersten insbesondere aktuell anliegenden, vorzugsweise auf Sicherheit geprüften, Datensatz eines ersten Eingangsdatenstroms dieser Einheit beschreiben, und wobei diese Recheneinheit von einer weiteren Recheneinheit des System zweite Metadaten empfängt, die einen zweiten, insbesondere aktuell anliegenden, vorzugsweise auf Sicherheit geprüften Datensatz eines zweiten Eingangsdatenstrom dieser weiteren Recheneinheit beschreiben.
-
Hierbei ist vorgesehen, dass die Recheneinheit abhängig von einem Ergebnis eines Vergleichs der ersten Daten mit den zweiten Daten einen aus dem ersten Datensatz generierten Ausgangsdatensatz des Ausgangsdatenstroms ausgibt, oder nicht.
-
Die ersten bzw. zweiten Metadaten können insbesondere eine Identifikationsnummer des Datensatzes oder ein Hash des Inhalts des Datensatzes sein, oder auch ein Information darüber, ob der Datensatz vorliegt oder nicht. Das Wort „Datensatz“ kann insbesondere auch so breit gefasst verstanden werden, dass ein leerer Datensatz mit umfasst ist, sein, sodass beispielsweise bei Protokollen deren Eingangsdatenstrom in einem festen Raster angeordnet ist, die Recheneinheit durch Vorliegen eines leeren Datensatzes erkennen kann, dass ein Datensatz nicht vorliegt.
-
Hierauf aufbauend lässt sich besonders einfach erreichen, dass von den Recheneinheiten konsistente Datenströme ausgegeben werden, wenn die Recheneinheit den Ausgangsdatensatz dann, insbesondere genau dann, ausgibt, wenn die diesen ersten Datensatz beschreibenden ersten Metadaten gleich den den zweiten Datensatz beschreibenden zweiten Metadaten sind.
-
In einer besonders effizienten Weiterbildung mit einer besonders guten Worst-Case-Latenzzeit kann vorgesehen sein, dass die Recheneinheit aus dem ersten Datensatz den Ausgangsdatensatz abhängig vom Ergebnis des Vergleichs erzeugt und ihn insbesondere nur dann erzeugt, wenn entschieden wurde, dass der Ausgangsdatensatz auch ausgegeben wird.
-
In einer alternativen Weiterbildung kann vorgesehen sein, dass die Recheneinheit aus dem ersten Datensatz den ersten Ausgangsdatensatz unabhängig vom Ergebnis des Vergleichs erzeugt. Insbesondere dann, wenn die Recheneinheit und die weitere Recheneinheit zeitlich asynchron arbeiten, kann hiermit erreicht werden, dass die erste Recheneinheit noch vor der Durchführung des Vergleichs den Ausgangsdatensatz erzeugen kann. Um zu verhindern, dass inkonsistente Ausgangsdatenströme ausgegeben werden, sollte die Ausgabe des Ausgangsdatensatzes aber bis zum Empfang des Ergebnisses des Vergleichs zurückgehalten werden.
-
Durch diees Verfahren wird die Best-Case-Latenz verbessert, die Worst-Case-Latenz hingegen verschlechtert. Dies liegt daran, dass dieses Verfahren bedeuten kann, dass dann, wenn aufgrund des Ergebnisses des Vergleichs entschieden wird, dass der Ausgangsdatensatz nicht ausgegeben wird, die Recheneinheit in den Zustand zurückversetzt wird, in dem sie vor Beginn der Erzeugung des ersten Datensatzes war. Dies ist vor allem dann wichtig, wenn die eingangs erwähnten Persistenzen vorliegen.
-
In einem weiteren Aspekt kann vorgesehen sein, dass die Recheneinheit den von ihr erzeugten Ausgangsdatenstrom einer Vergleichseinheit zuführt . Hierdurch lässt sich besonders einfach eine Überprüfung einer redundant durchgeführten Berechnung durchführen, insbesondere dann, wenn der Vergleichseinheit auch von der weiteren Recheneinheit ein von dieser erzeugter Ausgangsdatenstrom zugeführt wird.
-
In einem weiteren Aspekt der Erfindung kann vorgesehen sein, dass die Recheneinheit die ersten Metadaten an die weitere Recheneinheit überträgt. Das Verfahren wird dadurch besonders zuverlässig, weil dadurch auch die weitere Recheneinheit in die Lage versetzt wird, ihren Eingangsdatenstrom zu überprüfen.
-
In einem weiteren Aspekt kann vorgesehen sein, dass die Recheneinheit und die weitere Recheneinheit den ersten Datenstrom bzw. den zweiten Datenstrom von einer gleichen Quelle empfangen. Insbesondere kann vorgesehen sein, dass der erste Datenstrom und der zweite Datenstrom von der Quelle als gleicher Datenstrom zur Recheneinheit und zur weiteren Recheneinheit übermittelt wurden.
-
In einem weiteren Aspekt betrifft die Erfindung ein System mit mindestens zwei Recheneinheiten, wobei mindestens eine der Recheneinheiten ausgebildet ist, alle Schritte eines der erfindungsgemäßen Verfahren durchzuführen.
-
Insbesondere kann dieses System so ausgebildet sein, dass alle Recheneinheiten, also insbesondere alle Recheneinheiten, denen ein Eingangsdatenstrom zugeführt wird, die daraus einen Ausgangsdatenstrom generieren und einem Vergleicher zuführen, ausgebildet sind, alle Schritte eines der erfindungsgemäßen Verfahren durchzuführen.
-
Der Ausgangsdatensatz, der nicht ausgegeben wird, weil das Ergebnis des Vergleichs Unterschiede zwischen den ersten Metadaten und den zweiten Metadaten anzeigt, fehlt also im Ausgangsdatenstrom. Allerdings fehlt dieser Ausgangsdatensatz im Ausgangsdatenstrom aller Recheneinheiten. Dadurch erkennt der Vergleicher nicht auf einen Fehler in einer der Recheneinheiten.
-
In einem weiteren Aspekt der Erfindung kann ein System vorgesehen sein, dass eingerichtet ist, das Verfahren durchzuführen, bei dem die Recheneinheit den von ihr erzeugten Ausgangsdatenstrom einer Vergleichseinheit zuführt. Hierbei kann das System die Vergleichseinheit umfassen. Die Vergleichseinheit ist eingerichtet, dann, wenn die ihr von den Recheneinheiten übertragenen Ausgangsdatenströme nicht übereinstimmen, eine Fehlermeldung auszugeben. Als Reaktion auf diese Fehlermeldung kann das System dann beispielsweise in einen abgesicherten Modus überführt werden, welcher beispielsweise eine Abschaltung des Ausgangsdatenstroms umfasst. Ein solches System ist besonders sicher.
-
In einem weiteren Aspekt der Erfindung kann das System ein Netzwerk umfassen, über welches die Metadaten ausgetauscht werden. Das Netzwerk kann insbesondere in einer Ringarchitektur oder mit einem zwentralen Knoten angelegt sein. Ein solches Netzwerk begrenzt die Anzahl der erforderlichen Verbindungen zwischen den Recheneinheiten. Dies ist insbesondere bei einer großen Anzahl dieser Recheneninheiten vorteilhaft.
-
Alternativ kann das Netzwerk so eingerichtet sein, dass Metadaten über Broadcast- bzw. Multicast-Nachrichten ausgetauscht werden. Insbesondere kann dann das Netzwerk ein Ethernet-Netzwerk sein. Dies reduziert die erforderliche Punktzu-Punkt-Bandbreite.
-
In weiteren Aspekten betrifft die Erfindung ein Computerprogramm zur Durchführung des Verfahrens und ein maschinenlesbares Speichermedium, auf dem das Computerprogramm gespeichert ist. Das Verfahren kann beispielsweise in einem Kraftfahrzeug zur Anwendung kommen.
-
Die Figuren zeigen beispielhaft besonders vorteilhafte Ausführungsformen der Erfindung. Es zeigen:
-
1 den Aufbau eines Systems mit mehreren Rechnereinheiten;
-
2 verschiedene Ausführungsformen eines Datenstroms;
-
3 den Aufbau eines erfindungsgemäßen Systems gemäß einer Ausführungsform;
-
4 den Ablauf eines Verfahrens gemäß einer Ausführungsform der Erfindung;
-
5 den Ablauf eines Verfahrens gemäß einer weiteren Ausführungsform der Erifndung.
-
Beschreibung der Ausführungsbeispiele
-
1 zeigt beispielhaft ein System mit mehreren Rechnereinheiten 101, 102, 103. Eine Quelle 100 übermittelt jeder der Recheneinheiten 101, 102, 103 einen Eingangsdatenstrom bestehend aus Datensätzen D1, D2, ..., Dn. Die Recheneinheiten 101, 102, 103 bearbeiten parallel diese Datensätze D1, D2, ..., Dn und generieren jeweils einen Ausgangsdatenstrom bestehend aus Ausgangsdatensätze E1, E2, ..., En. Eine Beschränkung auf drei Recheneinheiten 101, 102, 103 ist nicht notwendig. Eine beliebige Mehrzahl an Recheneinheiten kann entsprechend parallel geschaltet eingesetzt werden.
-
Hierbei kann insbesondere vorgesehen sein, dass aus jeweils einem Datensatz des Eingangsdatenstroms, beispielsweise E1, ein Ausgangsdatensatz, beispielsweise D2, des Ausgangsdatenstroms erzeugt wird. In diesem Fall gibt es eine 1:1-Korrespondenz zwischen Datensätzen des Eingangsdatenstroms und Ausgangsdatensätzen des Ausgangsdatenstroms. Die Recheneinheiten 101, 102, 103 bearbeiten parallel nach der gleichen Rechvorschrift die Datensätze D1, D2, ..., Dn. D.h. im fehlerfreien Fall wird jeder der Recheneinheiten 101, 102, 103 der gleiche Eingangsdatenstrom übertragen. Im fehlerfreien Fall sind die generierten Ausgangsdatenströme wiederum gleich, d.h. die einzelnen Ausgangsdatensätze der Ausgangsdatenströme sind jeweils gleich.
-
Z.B. durch zusätzliche Aufgaben der Recheneinheiten 101, 102, 103 ist es möglich, dass die Recheneinheiten 101, 102, 103 zeitlich asynchron arbeiten. Die 1:1-Korrespondenz zwischen Datensätzen des Eingangsdatenstroms und Ausgangsdatensätzen des Ausgangsdatenstroms bleibt jedoch erhalten. Im fehlerfreien Fall gibt es eine 1:1-Korrespondenz zwischen den Ausgangsdatensätzen der Ausgangsdatenströme. Entsprechend besteht daher auch bei zeitlicher Asynchronität eine 1:1-Korrespondenz zwischen Datensätzen der Eingangsdatenströme.
-
Die jeweilige Recheneinheit 101, 102, 103 übermittelt diesen Ausgangsdatenstrom einem Vergleicher 104. Der Vergleicher 104 überprüft, ob die jeweils korrespondierenden Ausgangsdatensätze E1, E2, ..., En, die der Vergleicher 104 von den Recheneinheiten 101, 102, 103 empfängt, gleich sind. gleich sind. Ist dies der Fall, wird der der entsprechende Ausgangsdatensatz E1, E2, ..., En ausgegeben. Auf diese Weise wird im fehlerfreien Fall der Ausgangsdatenstrom E1, E2, ..., En aus dem von der Quelle 100 empfangenen Eingangsdatenstrom D1, D2, ..., Dn ermittelt. Durch die redundante Berechnung durch die Recheneinheiten 101, 102, 103 wird das Rechenergebnis, also der Ausgangsdatenstrom E1, E2, ..., En, abgesichert.
-
Stellt der Vergleicher 104 fest, dass an einer Stelle des Ausgangsdatenstroms die korrespondierenden Datensätze, die der Vergleicher 104 von den Recheneinheiten 101, 102, 103 empfangen hat, nicht gleich sind, wird darauf geschlossen, dass in einer der Recheneinheiten 101, 102, 103 ein Fehler vorliegt, und das System wird in einen abgesicherten Modus überführt. Wird das Verfahren in einem Kraftfahrzeug eingesetzt, kann beispielsweise veranlasst werden, dass eine Fahrgeschwindigkeit des Kraftfahrzeugs reduziert wird, oder das bestimmte sicherheitskritische Funktionen, die Ausgangsdatensätze E1, E2, ..., En nutzen, deaktiviert werden.
-
Es ist jedoch auch möglich, dass die Recheneinheiten 101, 102, 103 fehlerfrei arbeiten, und lediglich (beispielsweise transient) ein Fehler in einer Übertragungsleitung von der Quelle 100 zu einer der Recheneinheiten 101, 102, 103 vorliegt. Wird beispielsweise der Recheneinheit 102 anstelle des Datensatzes D2 durch einen Datenverlust an dieser Stelle des Datenstroms kein Datensatz oder ein fehlerhafter Datensatz übermittelt, ist der korrespondierende Ausgangsdatensatz E2 ebenfalls fehlerhaft. Der Vergleicher würde dann durch Vergleich der von den Recheneinheiten 101, 102, 103 empfangenen Ausgangsdatensätze E2 feststellen, dass die Ausgangsdatensätze E2 nicht alle gleich sind, und darauf erkennen, dass ein Fehler in einer der Recheneinheiten 101, 102, 103 vorliegt.
-
Werden die Recheneinheiten 101, 102, 103 abhängig von den empfangenen Datensätzen, insbesondere abhängig vom Datensatz D2 in einen bestimmten internen Zustand überführt, würde in dem beschriebenen Fall die fehlerhafte Übermittlung des Datensatzes D2 dazu führen, dass die Recheneinheit D2 in einen anderen internen Zustand überführt wird als die Recheneinheiten 101 und 103. Dies kann dazu führen, dass nicht nur der von der Recheneinheit 102 generierte Ausgangsdatensatz E2 sich von den von den anderen Recheneineheiten 101, 103 generierten Ausgangsdatensätzen unterscheidet, sondern auch nachfolgenden Ausgangsdatensätze. Durch diese sogenannte Persistenz würde also dauerhaft auf einen Fehler in einer der Recheneinheiten 101, 102, 103 erkannt, obwohl alle Recheneinheiten 101, 102, 103 fehlerfrei arbeiten.
-
2 zeigt den möglichen Aufbau von Datenströmen, wie sie hier als Eingangsdatenströme bzw. Ausgangsdatenströme vorkommen können. Der Datenstrom wird am Beispiel eines Eingangsdatenstroms mit Datenstätzen D1, D2, D3, ..., Dn illustriert, der Aufbau kann für den Ausgangsdatenstrom jedoch entsprechend sein.
-
2a zeigt einen ersten möglichen Aufbau. Der Datenstrom besteht aus Fenstern mit fest vorgebbarer Breite, beispielsweise 64Bit. In jedem dieser Fenster wird einer der Datensätze D1, D2, D3, ..., Dn übermittelt. Durch die Platzierung in einem bestimmten Fenster erhält jeder Datensatz implizit eine Identifikation als erster, zweiter, driter, ... Datensatz im Datenstrom.
-
2b illustriert einen Fehlerfall bei einem derartigen Aufbau des Datenstroms. In dem illustrierten Fehlerfall fehlt der zweite Datensatz D2, z.B. aufgrund eines Übermittlungsfehlers. Alle übrigen Datensätze D1, D3, ..., Dn sind aber nach wie vor an ihrer korrekten Stelle im Datenstrom angeordnet.
-
2c illustriert einen zweiten möglichen Aufbau eines Datenstroms. Der Datenstrom besteht aus (beispielsweise als verkettete Liste implementierten) aufeinander folgenden Datensätzen D1, D2, D3, ..., Dn. Jedem Datensatz zugeordnet ist ein Bezeichner L1, L2, L3, ..., Ln. Dieser Bezeichner kann beispielsweise die beim Generieren des Datenstroms bestehende Position des Datensatzes im Datenstrom bezeichnen. Dann wäre in diesem Beispiel L1 = 1, L2 = 2, usw.
-
2d illustriert einen Fehlerfall bei einem derartigen Aufbau des Datenstroms. In dem illustrierten Fehlerfall fehlt der zweite Datensatz D2, z.B. aufgrund eines Übermittlungsfehlers. Alle übrigen Datensätze sind aber nach wie vor an ihrer korrekten Stelle im Datenstrom angeordnet. Sind die Bezeichner wie im Beispiel als lückenlos aufeinanderfolgende ganze Zahlen gewählt, so lässt sich beim Empfang des Datenstroms dadurch, dass auf den Bezeichner L1 = 1 der Bezeichner L3 = 3 (und nicht der Bezeichner L2 = 2) folgt schließen, dass der zweite Datensatz D2 in diesem Datenstrom fehlt.
-
3 illustriert ein Ausführungbeispiel der Erfindung. Der Aufbau des Systems kann identisch zu dem in 1 illustrierten System sein. In der Quelle 100 kann vorgesehen sein, dass die Datensätze D1, D2, ... Dn des Eingangsdatenstroms einer Sicherheitsprüfung unterzogen werden.
-
Die Recheninheiten 101, 102, 103 sind durch ein Kommunikationsnetzwerk N, beispielsweise ein Ethernet-Netzwerk, miteinander verbunden. Jede Recheneinheit 101, 102, 103 ermittelt eine Bitmaske B1, B2, B3. Eine Bitmaske ist eine Folge von Bits. Jedes Bit ist (z.B. durch seine Position in der Bitmaske) eineindeutig einem Datensatz D1, D2, ..., Dn des Eingangsdatenstoms zugeordnet. Das Bit gibt an, ob der zugeordnete Datensatz des von dieser Recheneinheit 101, 102, 103 empfangenen Eingangsdatenstroms empfangen wurden. Beispielsweise kann der Wert „1“ bedeuten, dass der entsprechende Datensatz empfangen wurde, und der Wert „0“ bedeuten, dass der entsprechende Datensatz nicht empfangen wurde. Die Recheneinheiten 101, 102, 103 können diese Bitmasken untereinander über das Netzwerk N austauschen. Es ist auch möglich, dass nur eine der Recheneinheiten 101 die Bitmasken von den anderen Recheneinheiten 102, 103 empfängt. Dann ist es möglich, dass diese Recheneinheiten 102, 103 durch alternative Mechanismen sicherstellen, dass die Eingangsdatenströme, die sie empfangen, korrekt sind.
-
Ein Bit der Bitmaske B1, B2, B3 stellt eine Metainformation über den jeweiligen zugeordneten Datensatz D1, D2, ..., Dn dar. An Stelle eines Bits ist auch eine andere Metainformation möglich, beispielsweise ein Hashwert des Datensatzes D1, D2, ..., Dn.
-
Im illustrierten Beispiel fehlt im Eingangsdatenstrom der Recheneinheit 102 der Datensatz D2. Dies ist durch das Bezugszeichen D2N angedeutet. Entsprechend hat die Bitmaske B2 in der zweiten Recheneinheit 102 an der zweiten Stelle den Wert „0“. Die erste Recheneinheit 101 ermittelt, dass die Bitmaske B2 an der zweiten Stelle den Wert „0“ hat, und übermittelt daher dem Vergleicher 104 nicht den Ausgangsdatensatz E2, der aus dem Datensatz D2 ermittelt würde, wenn die Bitmaske an der zweiten Stelle den Wert „1“ hätte. Ansonsten ist dieser Ausgangsdatenstrom gegenüber dem in 1 illustrierten Beispiel unverändert.
-
Der Vergleicher 104 empfängt daher von Recheneinheiten 101, 102 und 103 an Stelle des Ausgangsdatensatzes E2 einen leeren Datensatz. Der Vergleicher 104 stellt fest, dass diese Ausgangsdatensätze E2 untereinander gleich sind, und erkennt daher nicht auf einen Fehler, sondern gibt an Stelle des Ausgansdatensatzes E2 einen leeren Datensatz aus.
-
Das heißt, dass die Recheneinheiten 101, 102, 103 zunächst Metadaten, also Informationen über die Ihnen zur Verfügung stehenden Datensätze D1, D2, ..., Dn austauschen. Datensätze D2N, die einer Recheneinheit 102 nicht oder nicht korrekt zur Verfügung stehen, werden von den anderen Recheneinheiten 101, 103 nicht verwendet, d.h. bei der Erzeugung des übermittelten Ausgangsdatenstroms nicht berücksichtig. Hierdurch kann verhindert werden, dass die Ausgangsdatenströme inkonsistent werden, weil sie aus unterschiedlichen Eingangsdatenströmen generiert wurden. Auch lassen sich Inkonsistenzen vermeiden, die daraus resultieren, dass die Recheneinheit durch einen Übertragungsfehler des ihr übertragenen Eingangsdatenstroms in einen internen Zustand überführt wird, der sich vom internen Zustand der weiteren Recheneinheit unterscheidet.
-
4 zeigt eine Flussdiagramm gemäß eines ersten Aspekts der Erfindung. Dieses Verfahren kann in einer oder mehrerer der Recheneinheiten 101, 102, 103 zum Einsatz kommen, beispielsweise in Recheneinheit 101.
-
In Schritt 1000 beginnt das Verfahren. Die Recheneinheit 101 empfängt von der Quelle 100 den aktuell anliegenden Datensatz, z.B. D2.
-
Im folgenden optionalen Schritt 1010 generiert die Recheneinheit 101 Metadaten zum Datensatz D2. Beispielsweise generiert die Recheneinheit 101 wie in 2c und 2d illustriert ein Bit, das angibt, ob der Datensatz D2 vorhanden ist.
-
Im folgenden optionalen Schritt 1020 sendet die Recheneinheit 101 diese Metadaten an die anderen Recheneinheiten 102, 103.
-
Im folgenden Schriitt 1030 empfängt die Recheneinheit 101 von den anderen Recheneinheiten 102, 103 Metadaten, die deren aktuell anliegende Datensätze beschreiben.
-
Sind die Metadaten ein Bit, das angibt, ob die Information vorhanden ist, oder nicht, kann die Recheneinheit 101 im folgenden Schritt 1040 abhängig vom Wert dieses Bits entscheiden, ob Schritt 1050 oder 1060 folgt. Ist der Wert des Bits von wenigstens einer der Recheneinheiten 102, 103 „0“, folgt Schritt 1050, andernfalls Schritt 1060.
-
Sind diese Metadaten beispielsweise ein Hashwert, der die Informationen im Datensatz D2 codirert, kann die Recheneinheit 101 in Schritt 1040 die von ihr selbst generierten Metadaten zum Datensatz D2 mit den von Recheneinheit 102, 103 empfangenen Metadaten vergleichen. Ergibt der Vergleich der eigenen Metadaten mit den von einer anderen der Recheneinheiten 102, 103 empfangenen Metadaten, dass diese Metadaten unterschiedlich sind, folgt Schritt 1050, andernfalls Schritt 1060.
-
In Schritt 1050 gibt die Recheneinheit 101 keinen bzw. einen leeren Datensatz an den Vergleicher 104 aus, und das Verfahren endet.
-
In Schritt 1060 ermittelt die Recheneinheit 101 aus dem Datensatz D2 den Ausgangsdatensatz E2. Fehlt der Datensatz D2 bzw. ist der Datensatz D2 leer, ermittelt die Recheneinheit 101 einen leeren oder keinen Ausgabedatensatz.
-
In Schritt 1070 übermittelt die Recheneinheit 101 dem Vergleicher 104 den Ausgangsdatensatz D2. Ist kein oder ein leerer Ausgangsdatensatz ermittelt worden, übermittelt die Recheneinheit 101 dem Vergleicher 104 keinen bzw den leeren Ausgangsdatensatz. Damit endet das Verfahren.
-
5 zeigt ein Flussdiagramm, das den Ablauf des Verfahrens gemäß eines weiteren Aspekts der Erfindung illustriert. Dieses Verfahren kann in oder mehrerer einer der Recheneinheiten 101, 102, 103 zum Einsatz kommen, beispielsweise in Recheneinheit 101.
-
In Schritt 2000 beginnt das Verfahren. Die Recheneinheit 101 empfängt von der Quelle 100 den aktuell anliegenden Datensatz , z.B. D2.
-
In Schritt 2005 ermittelt die Recheneinheit 101 aus dem Datensatz D2 den Ausgangsdatensatz E2. Fehlt der Datensatz D2 bzw. ist der Datensatz D2 leer, ermittelt die Recheneinheit 101 einen leeren oder keinen Ausgabedatensatz.
-
Im folgenden optionalen Schritt 2010 generiert die Recheneinheit 101 Metadaten zum Datensatz D2. Beispielsweise generiert die Recheneinheit 101 wie in 2c und 2d illustriert ein Bit, das angibt, ob der Datensatz D2 vorhanden ist.
-
Im folgenden optionalen Schritt 2020 sendet die Recheneinheit 101 diese Metadaten an die anderen Recheneinheiten 102, 103.
-
Im folgenden Schriitt 1030 empfängt die Recheneinheit 101 von den anderen Recheneinheiten 102, 103 Metadaten, die deren aktuell anliegende Datensätze beschreiben.
-
Sind die Metadaten ein Bit, das angibt, ob die Information vorhanden ist, oder nicht, kann die Recheneinheit 101 im folgenden Schritt 2040 abhängig vom Wert dieses Bits entscheiden, ob Schritt 2050 oder 2060 folgt. Ist der Wert des Bits von wenigstens einer der Recheneinheiten 102, 103 „0“, folgt Schritt 2050, andernfalls Schritt 2060.
-
Sind diese Metadaten beispielsweise ein Hashwert, der die Informationen im Datensatz D2 codirert, kann die Recheneinheit 101 in Schritt 2040 die von ihr selbst generierten Metadaten zum Datensatz D2 mit den von Recheneinheit 102, 103 empfangenen Metadaten vergleichen. Ergibt der Vergleich der eigenen Metadaten mit den von einer anderen der Recheneinheiten 102, 103 empfangenen Metadaten, dass diese Metadaten unterschiedlich sind, folgt Schritt 2050, andernfalls Schritt 2060.
-
In Schritt 2050 wird der interne Zustand der Recheneinheit 101 in den Zustand zurückversetzt, der vor der Berechnung des Ausgabedatensatzes E2 in Schritt 2005 vorlag. Anschließend gibt die Recheneinheit 101 keinen bzw. einen leeren Datensatz an den Vergleicher 104 aus, und das Verfahren endet.
-
In Schritt 2060 übermittelt die Recheneinheit 101 dem Vergleicher 104 den Ausgangsdatensatz D2. Ist kein oder ein leerer Ausgangsdatensatz ermittelt worden, übermittelt die Recheneinheit 101 dem Vergleicher 104 keinen bzw den leeren Ausgangsdatensatz. Damit endet das Verfahren.
-
Es versteht sich für den Fachmann, dass dieses Verfahren in Software implementiert sein kann, oder in Hardware, oder in einer Mischform aus Software und Hardware.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-