-
In sicherheitsrelevanten Systemen, in denen z.B. Standard-Ethernet-Komponenten, Recheneinheiten (Multi-Core, Many-Core, µC, µP) und Standard-Betriebssysteme (z.B. QNX oder Linux) zum Einsatz kommen, ist es oft nicht möglich, das komplette System durch Selbsttests abzusichern. In vielen sicherheitsrelevanten Anwendungen, zum Beispiel bei Funktionen für ein hochautomatisiertes Fahren, werden Berechnungen redundant durchgeführt, z.B. im sogenannten Lockstep-Verfahren. Solche Lockstep-Berechnungen können beispielsweise als reine Software-Locksteps ohne Hardwareunterstützung umgesetzt sein. Bei Systemen mit besonders hoher Anforderungen an die Sicherheit, Verfügbarkeit und Leistung der Systeme können die sicherheitsrelevanten Funktionen verteilt, das heißt auf verschiedenen, separaten Hardware-Einheiten, gerechnet werden.
-
Die
DE 10332700 A1 offenbart eine Prozessoreinheit mit zwei Ausführungseinheiten, die gleiche Programme abarbeiten, und Vergleichsmitteln, welche die bei der Abarbeitung der gleichen Programme entstehenden Zustände der Ausführungseinheiten auf Übereinstimmung vergleichen.
-
Offenbarung der Erfindung
-
Die Erfindung betrifft Verfahren zur redundanten Verarbeitung von Daten sowie Recheneinheiten, die dazu eingerichtet sind, eines der Verfahren durchzuführen. Des Weiteren betrifft die Erfindung ein Computerprogramm, das dazu eingerichtet ist, eines der Verfahren durchzuführen.
-
Es wird vorgeschlagenen, dass in einem System mit mehreren Recheneinheiten, die gleiche Eingangsdaten empfangen und diese gleichartig verarbeiten, die also ein redundante Verarbeitung von Daten durchführen, eine der Recheneinheiten nach einem erfolgten Neustart bzw. einer Zurücksetzung Teile der Daten zur Verarbeitung von einer oder mehreren der übrigen redundant arbeitenden Recheneinheiten empfängt. Ein solches System ist also in der Lage durch einen (beispielsweise von einem Fehler ausgelösten) Neustart verlorene oder verpasste Daten, die aber gegebenenfalls für eine Verarbeitung benötigt werden, selbständig zu replizieren. Hierdurch wird in einem solchen verteilten System bestehend aus mehreren Recheneinheiten die Verfügbarkeit des Systems bei Ausfall einer oder mehrerer Recheneinheiten möglichst weitgehend aufrecht gehalten, ein kompletter Systemausfall durch Neustart des gesamten Systems vermieden und ein eingeschränkter Funktionszustand möglichst kurz gehalten. Dies ist insbesondere bei zeit- und sicherheitskritischen Anwendungen, wie zum Beispiel dem hochautomatisierten Fahren, wichtig, da ein solches System im Fehlerfall aus Sicherheitsgründen nicht einfach in einen nicht-operablen Zustand übergehen kann, im Beispiel des hochautomatisierten Fahrens z.B. nicht im Fehlerfall die Kontrolle unvermittelt an den Fahrer übergeben kann.
-
Besonders einfach zu implementieren und reaktionsschnell ist eine Ausführung, in welcher die Recheneinheit, die neu gestartet bzw. zurückgesetzt wird, selbständig die benötigten Daten von einer oder mehreren der anderen Recheneinheiten anfordert.
-
In einer bevorzugten Ausgestaltung geht aufgrund des Wegfalls einer redundant rechnenden Recheneinheit das System in einen abgesicherten Zustand. In diesem Zustand ist vorzugsweise die Funktionalität des Systems eingeschränkt. In den Normalzustand mit voller Funktionalität kann das System wieder übergehen, wenn die volle Redundanz der Berechnung gegeben ist oder in einer noch sichereren Variante, wenn die volle Redundanz der Berechnung wiederhergestellt ist und die von anderen Recheneinheiten replizierten Daten nicht mehr für die Verarbeitung herangezogen werden. Damit ist ein besonders sicheres Gesamtsystem realisiert, das auch mit dem zwischenzeitlichen Entfall einer Rechenkomponente umgehen kann.
-
Die Datenreplikation kann besonders abgesichert gestaltet werden, indem die neugestartete oder zurückgesetzte Recheneinheit die benötigten Daten nicht nur von einer übrigen Recheneinheit, sondern von mehreren übrigen Recheneinheiten bekommt. Die so empfangenen Daten können auf Übereinstimmung geprüft werden und eine weitere Verarbeitung der Daten kann von der Übereinstimmung abhängig gemacht werden. Damit werden gegenseitige Abhängigkeiten der Berechnungen zwischen den Recheneinheiten vermieden. Zum Beispiel ist damit eine Fortpflanzung eines Einzel-Datenfehlers quasi ausgeschlossen. Liegt in einer der übrigen Recheneinheiten nämlich ein Datenfehler in den angeforderten Daten vor, würde das die neugestartete oder zurückgesetzte Recheneinheit beim Vergleich mit den empfangenen Daten einer oder mehrerer anderer Recheneinheiten feststellen.
-
In einer alternativen Ausgestaltung können die übrigen Recheneinheiten auch jeweils nur einen Teil der nötigen Daten an die zurückgesetzte oder neugestartete Recheneinheit senden. Dies führt zu einem niedrigeren Datentransfer-Aufkommen und kann gegebenenfalls auch Abhängigkeiten zwischen einzelnen Recheneinheiten zumindest reduzieren.
-
Um die Sicherheit des Gesamtsystems zu bewahren und Fehler bei der Datenübertragung zu vermeiden, sollten die Datenübertragungen vorzugsweise über Prüfsummen, Zählerinformationen (live counter) oder auf sonstige Weise abgesichert werden.
-
In einer bevorzugten Ausgestaltung werden die Ergebnisse der redundanten Berechnungen durch die Recheneinheiten einer Vergleichereinheit zugeführt, die die Ergebnisse auf Übereinstimmung überprüft und bei Nicht-Übereinstimmung Fehlerreaktionen einleiten kann.
-
Zeichnungen
-
Nachfolgend ist die Erfindung unter Bezugnahme auf die beiliegenden Zeichnungen und anhand von Ausführungsbeispielen näher beschrieben. Dabei zeigen
-
1 schematisch ein beispielhaftes System mit Recheneinheiten und einer Vergleichseinheit und
-
2 schematisch ein beispielhaftes Verfahren zur redundanten Berechnung von Daten.
-
Beschreibung der Ausführungsbeispiele
-
In 1 ist ein beispielhaftes System zur redundanten Berechnung von Daten gezeigt. Das System umfasst eine erste Recheneinheit 120, eine zweite Recheneinheit 130 und eine dritte Recheneinheit 140. Bei den Recheneinheiten 120, 130 und 140 handelt es sich dabei vorzugsweise um separate Hardwareeinheiten, also insbesondere nicht um verschiedene Rechenkerne eines Prozessors. Die Recheneinheiten 120, 130 bzw. 140 weisen Berechnungsmittel 121, 131 bzw. 141 sowie Speicher 122, 132 bzw. 142 auf. In den Speichern 122, 132 bzw. 142 können dabei Daten abgelegt werden, die in den Berechnungsmitteln 121, 131 bzw. 141 verarbeitet werden. Dabei dient die Datenverarbeitung der Recheneinheiten 120, 130 und 140 vorzugsweise sicherheitsrelevanten Funktionen des Systems. Die zu verarbeitenden Daten erhalten die Recheneinheiten 120, 130 bzw. 140 z.B. über Kommunikationsverbindungen 126, 136 bzw. 146. Im bevorzugten Ausführungsbeispiel erhalten die Recheneinheiten 120, 130 bzw. 140 z.B. über die Kommunikationsverbindungen 126, 136 bzw. 146 die gleichen Daten und führen jeweils eine gegenseitig redundante (das heißt gleichartige) Verarbeitung dieser gleichen Daten durch.
-
Das System umfasst weiterhin eine Vergleichereinheit 110. Diese empfängt über Kommunikationsverbindungen 1004, 1005 bzw. 1006 die Ergebnisse der redundanten Verarbeitung der Daten von den Recheneinheiten 120, 130 bzw. 140. In einer bevorzugten Ausgestaltung sind die Recheneinheiten 120, 130 und 140 als Mikroprozessoren und die Vergleichseinheit 110 als Mikrocontroller ausgestaltet.
-
Zudem weisen die Recheneinheit 120 die Speicher 123, 124 und 125, die Recheneinheit 130 die Speicher 133, 134, 135 und die Recheneinheit 140 die Speicher 143, 144, 145 auf, in denen Servicedaten wie insbesondere Informationen über die anderen im System befindlichen Einheiten abgelegt werden können. In Speichern 113, 114, 115 der Vergleichereinheit 110 können ebenfalls Servicedaten über die anderen im System befindlichen Einheiten (insbesondere die Recheneinheiten 120, 130, 140) abgelegt werden.
-
Die Recheneinheiten 120, 130 und 140 sind außerdem über Kommunikationsverbindungen 1001, 1002 und 1003 jeweils miteinander verbunden.
-
Die Darstellungen der Kommunikationsverbindungen in 1 sind dabei allesamt schematisch zu verstehen. Die Kommunikation kann beispielsweise durch Punkt-zu-Punkt-Verbindungen aber auch durch einen oder mehrere gemeinsame Busse erfolgen. Beispielsweise können in dem System Standard-Ethernet-Kommunikationsverbindungen eingesetzt werden.
-
Bei einem Systemstart des dargestellten Systems z.B. bei Anschalten einer Spannungsversorgung starten die Recheneinheiten und senden vorzugsweise über Nachrichten-IDs identifizierbare Dienstangebote für Lockstep-Berechnungen per Multicast-Kommunikation. Die Servicedaten einer Recheneinheit werden von den übrigen Recheneinheiten abgespeichert, z.B. für die Servicedaten der Recheneinheiten 130 und 140 durch die Recheneinheit 120 in ihren Speichern 123 und 124. Die Recheneinheiten 120, 130 und 140 benötigen nun für die vorgesehene Lockstep-Funktionalität noch einen Vergleicher-Dienst und senden eine entsprechende Anfragenachricht. Die Vergleichereinheit 110 antwortet darauf durch das Angebot, die Vergleicher-Funktionalität bereitstellen zu können. Dieser Information wird ebenfalls in den Recheneinheiten 120, 130, 140 gespeichert, z.B. in Speicher 125 der Recheneinheit 120. Alternativ können auch alle Einheiten (also Recheneinheiten 120, 130, 140 und Vergleichereinheit 110) ihre Dienste nach Systemstart allen anderen Einheiten direkt bekannt geben.
-
Die Recheneinheiten 120, 130, 140 bilden nun ein Netzwerk zum Empfang synchronisierter Datenrahmen als Grundlage einer redundanten Datenverarbeitung. Gemeinsam mit der Vergleichereinheit 110 bilden die Recheneinheiten 120, 130, 140 ein Netzwerk zum Abgleich redundanter Lockstep-Berechnungen bzw. redundanter Datenverarbeitungen.
-
Die Vergleichereinheit 110 kann dabei zum einen aufgrund des Vergleichs der von den Recheneinheiten 120, 130, 140 erhaltenen Verarbeitungsergebnisse beurteilen, ob die Ergebnisse der Datenverarbeitungen zuverlässig sind, z.B. wenn alle redundant rechnenden Recheneinheiten dasselbe Ergebnis liefern oder wenn alternativ eine geforderte Mindestanzahl m von n redundant rechnenden Recheneinheiten dasselbe Ergebnis liefert. Zum anderen kann die Vergleichereinheit 110 aber auch über weitere Funktionalitäten verfügen und beispielsweise mit als zuverlässig verifizierten Verarbeitungsergebnissen (sicherheitskritische) Funktionen ausführen oder bei nicht ausreichender Übereinstimmung der Vergleiche Fehlerreaktionen einleiten.
-
In 2 ist ein Verfahren zum redundanten Verarbeiten von Daten gezeigt. Dabei erhält die Vergleichereinheit 110 in einem ersten Schritt 21 die Ergebnisse der redundanten Datenverarbeitungen der Recheneinheiten 120, 130 und 140. Wie beschrieben basieren diese Datenverarbeitungen vorzugsweise auf gleichen, synchronisierten Daten, welche die Recheneinheiten 120, 130 und 140 jeweils empfangen.
-
In Schritt 22 kommt es nun zu einem Fehlerfall in der Recheneinheit 120. Dabei kann es sich z.B. um einen Rechen-, Programm- bzw. Verarbeitungsfehler handeln, der durch eine interne Überwachung der Recheneinheit 120 oder durch eine externe Überwachung der Recheneinheit 120 (z.B. durch die Vergleichereinheit 110) festgestellt wird. Daraufhin startet sich die Recheneinheit 120 selbst neu oder wird von extern (z.B. durch eine Watchdog-Abschaltung oder durch eine Abschaltung durch die Vergleichereinheit 110) neu gestartet. Während des Neustarts steht die Recheneinheit 120 nicht für das redundante arbeitende System zur Verfügung.
-
Die redundante Datenverarbeitung im Lockstep-Netzwerk ist somit in Schritt 23 auf die verbleibenden Recheneinheiten 130 und 140 reduziert, während sich Recheneinheit 120 neu startet (Kasten 2311 in 2). Die Vergleichereinheit 110 vergleicht entsprechend die redundanten Verarbeitungsergebnisse der Recheneinheiten 130 und 140. In einem alternativen Ausführungsbeispiel, in dem von Vorneherein nur zwei Recheneinheiten zur redundanten Datenverarbeitung vorgesehen sind, hat die Vergleichereinheit 110 in dem Fehlerfall einer der Recheneinheiten sogar nur noch ein Verarbeitungsergebnis zur Verfügung, das es den gewünschten Funktionen zugrunde legen kann, ein Vergleich kann also nicht mehr stattfinden.
-
Durch den Ausfall einer Recheneinheit (hier Recheneinheit 120) ist somit die Sicherheit des redundant rechnenden Netzwerks reduziert. Daher wird für diesen Fall vorzugsweise vorgesehen, dass das System in einen abgesicherten Zustand geht (Fail-Operational-State). Dieser kann zum Beispiel durch eine reduzierte Funktionalität gekennzeichnet sein. Bei einem Ausfall mehrerer Recheneinheiten oder falls die zu rechnenden Funktionen z.B. eine Datenverarbeitung durch nur eine Recheneinheit und somit ohne Vergleich nicht akzeptieren, kann das System, vorzugsweise durch die Vergleichereinheit 110, auch in einen sicheren Zustand gebracht werden, in welchem keine Kommunikation nach außen möglich ist (Fail-Silent-State).
-
Zudem ist ein solcher Reset einer Recheneinheit in der Regel mit Datenverlusten verbunden. So kann die Recheneinheit 120 z.B. bei einem Neustart zum einen Daten aus dem Speicher 122 verlieren, die der Datenverarbeitung zugrunde gelegt werden, sowie Servicedaten über die anderen Einheiten aus den Speichern 123, 124, 125. Auch können während des Neustarts durch die Recheneinheit 120 ankommende Daten verpasst werden.
-
Um das System ohne kompletten Systemneustart wieder in seinen vollständigen Funktionsumfang zu bringen, triggert der Neustart der Recheneinheit 120 nun vorzugsweise erneute Service-Anfragen der Recheneinheit 120 wie zum Systemstart oben beschrieben. Die Recheneinheit 120 erhält daraufhin die Informationen über die anderen Einheiten wieder und speichert diese in den Speichern 123, 124, 125.
-
Zwischenzeitlich können wie beschrieben durch den Neustart der Recheneinheit 120 für die Verarbeitung benötigten Daten aus dem Speicher 122 verloren gehen oder die Recheneinheit 120 während des Neustarts für die Verarbeitung benötigte Daten verpassen. Dies ist besonders kritisch, wenn für die aktuelle Datenverarbeitung durch die Recheneinheiten 120, 130, 140 nicht nur die jeweils aktuell empfangenen Daten nötig sind, sondern auch zuvor empfangene Daten herangezogen werden müssen.
-
Um eine möglichst schnelle Systemwiederherstellung zu ermöglichen, stellt die Recheneinheit 120 daher nun eine Anfrage zur Daten-Replikation an eine oder wie in 2 in Schritt 24 gezeigt an beide der übrigen Recheneinheiten 130 und 140. Diese Anfrage kann auf bestimmte Daten gerichtet sein. Dabei kommen alle zuvor von den Recheneinheiten 120, 130, 140 empfangene Daten in Frage, insbesondere können auch die während des Neustarts der Recheneinheit 120 verpassten Daten angefragt werden. Die Recheneinheit 120 empfängt daraufhin die gewünschten Daten von den übrigen Recheneinheiten 130 und 140.
-
In einer alternativen Ausgestaltung empfängt die neugestartete Recheneinheit 120 die nötigen Daten von den übrigen Recheneinheiten auch ohne gesonderte Anfrage, z.B. da die übrigen Recheneinheiten 130, 140 oder die Vergleichereinheit 110 erkennen, dass ein Fail-Operational-Zustand herrscht oder dass diese Daten von der Recheneinheit 120 benötigt werden.
-
Nach der Daten-Replikation weist das System in Schritt 25 wieder (weitgehend) die ursprüngliche Sicherheit auf. Der abgesicherte System-Zustand mit reduzierter Funktionalität kann somit beendet werden. Alternativ kann der abgesicherte System-Zustand noch aufrecht erhalten werden, solange die Datenverarbeitung durch die ausgefallene Recheneinheit 120 noch auf replizierte Daten angewiesen ist, da auch durch diese die Sicherheit des Systems noch reduziert sein kann. Das ist insbesondere der Fall, wenn die angeforderten Daten nur aus einer Quelle (von einer weiteren Recheneinheit) repliziert werden.
-
Für die Daten-Replikation können verschiedene Alternativen sinnvoll sein. In einer einfachen ersten Ausgestaltung kann die neugestartete Recheneinheit die angeforderten Daten von einer der weiteren Recheneinheiten empfangen und abspeichern. In einer zweiten bevorzugten Ausgestaltung fragt die neugestartete Recheneinheit mehrere weitere Recheneinheiten an, erhält von diesen jeweils gleiche angeforderte Daten und vergleicht diese miteinander. Bei Gleichheit der Daten (bzw. bei mehr als zwei weiteren Recheneinheiten bei einer festgelegten Anzahl übereinstimmender Daten) werden diese von der neugestarteten Recheneinheit akzeptiert und ihrer weiteren Daten-Verarbeitung zugrunde gelegt. In einer dritten Ausführungsform erhält die neugestartete Recheneinheit von mehreren weiteren Recheneinheiten jeweils nur Teile der angeforderten Daten und setzt diese dann zusammen. Die Koordination, welche Recheneinheit welchen Teil der Daten schickt, kann entweder vorkonfiguriert sein oder von einer der Recheneinheiten oder der Vergleichereinheit übernommen werden.
-
Vorzugsweise werden die zu replizierenden Daten von der oder den weiteren Recheneinheiten abgesichert versendet, z.B. über Prüfsummen wie CRC oder Hashwerte oder über Zähler (live counter).
-
Eine bevorzugte Anwendung der beschriebenen Verfahren zur redundanten Verarbeitung von Daten kann auf dem Gebiet der Umfelderkennung, z.B. im Rahmen von hochautomatisiertem Fahren, erfolgen. Dabei können die verarbeiteten Daten z.B. auf Sensormessungen zurückgehen, z.B. in Form von Radar-, Lidar-, Ultraschallmessungen oder Videoaufnahmen. Für die Berechnung eines Umfeld des Fahrzeugs müssen bei der Verarbeitungen solcher Sensordaten durch Recheneinheiten nicht nur die aktuell gemessenen bzw. empfangenen Sensordaten herangezogen werden, sondern auch zuvor empfangene Sensordaten, da diese Sensordaten gewöhnlich aufeinander aufbauen. Im bevorzugten Ausführungsbeispiel bekommen die redundant rechnenden Recheneinheiten identische Daten aus jeder Sensorquelle und verarbeiten diese, z.B. zur Berechnung von Umfelddaten. Wird für eine dieser Recheneinheiten ein Neustart durchgeführt, z.B. aufgrund eines erkannten Fehlers, kann diese Recheneinheit von den übrigen Recheneinheiten benötigte – aber aufgrund des Neustarts nicht vorhandene – Daten empfangen. In der Zwischenzeit werden aber für das hochautomatisierte Fahren weiter Umfeldinformationen benötigt. Die nicht betroffenen Recheneinheiten verarbeiten die Sensordaten daher weiterhin. Durch die reduzierte Redundanz und die daher reduzierte Sicherheit des Systems wird dieses allerdings in einen abgesicherten Zustand überführt, z.B. indem die Fahrgeschwindigkeit reduziert wird, indem eine Warnmeldung ausgegeben wird oder indem das Fahrzeug sicher abgestellt wird. Nach der erfolgreichen Datenreplikation oder alternativ, sobald die replizierten Daten nicht mehr benötigt werden, kann das System wieder in den vollfunktionalen Zustand übergehen.
-
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
-