-
Die vorliegende Erfindung betrifft einen Cloudrechner zur Ausführung zumindest einer teilweise automatisierten Fahrfunktion eines Kraftfahrzeugs, ein Verfahren zum Betreiben eines Cloudrechners und ein Computerprogrammprodukt zum Durchführen des Verfahrens.
-
In heutigen Automatisierungssystemen für Kraftfahrzeuge spielen eine Betriebssicherheit und eine Informationssicherheit eine immer größere Rolle. Bei bekannten Lösungsansätzen stehen Maßnahmen hinsichtlich der Betriebs- und Informationssicherheit jedoch oftmals im Widerspruch zueinander. Darüber hinaus sind solche Maßnahmen meist mit anderen Anforderungen unvereinbar, beispielsweise Anforderungen hinsichtlich einer Verfügbarkeit, einer Performanz und zeitlichen Anforderungen und insbesondere Echtzeitanforderungen. Vor allem bei der Auslegung von Steuerungen mit Mikrocontrollern und Mikroprozessoren ist es wesentlich, bei der Berücksichtigung der genannten Qualitätsanforderungen einen geeigneten Kompromiss zu finden. Dabei ist es wichtig, dass Daten hinsichtlich einer Korrektheit in einem definierten Echtzeitintervall in der Cloud überprüfbar verarbeitet werden können.
-
Es ist aus dem Stand der Technik bekannt, zumindest Teile einer Steuerung von Verkehrsflüssen und/oder individuellen automatisierten Kraftfahrzeugen in eine Cloud zu verlegen. Unter einer Cloud soll im Kontext dieser Beschreibung eine Zusammenstellung von virtualisierten Hardware-Ressourcen wie beispielsweise von Speicherplatz und/oder von Rechenleistung und/oder von Netzwerken verstanden werden. Eine Cloud wird internetbasiert bereitgestellt und ermöglicht einen Zugriff auf den virtualisierte Hardware-Ressourcen.
-
Dazu muss jedoch ein sicherer Rechner in der Cloud vorliegen, der dazu ausgebildet ist, alle genannten Qualitätsanforderungen zu berücksichtigen. Heutige Cloud-Systeme, wie beispielsweise die AZURE-Cloud, und Steuerungsmechanismen, wie etwa Kubernetes, konzentrieren sich nur auf den Aspekt der Informationssicherheit und Privatsphäre. Sogar eine systematische Berücksichtigung einer Authentizität des zugrundeliegenden Systems wird selten von solchen Mechanismen unterstützt. Will man auch dynamische Prozesse und multiple Regelkaskaden in der Cloud funktional sicher ausführen, müssen Datenflüsse auch dynamisch unter Laufzeitbedingungen mit verschiedenen Sicherheitsmechanismen abgesichert werden.
-
Im Allgemeinen sind Cloud-Systeme relativ performant. Jedoch unterliegen diese regelmäßig Schwankungen, wenn zum Beispiel über Kubernetes Umschaltungen vorgenommen werden, oder wenn Sicherheitsalgorithmen beispielsweise ein kritisches Bedrohungsmuster erkannt haben. Mit bekannten Sicherheitsmechanismen können solche Effekte identifiziert werden, aber bisher gibt es keine bekannten Maßnahmen, wie man beispielsweise zeitlichen Schwankungen, Schwankungen hinsichtlich der Performanz oder Verfügbarkeitsschwankungen entgegenwirken kann.
-
Es ist eine Aufgabe der vorliegenden Erfindung, einen verbesserten Cloudrechner zur Ausführung zumindest einer teilweise automatisierten Fahrfunktion eines Kraftfahrzeugs bereitzustellen, ein Verfahren zum Betreiben eines Cloudrechners anzugeben und ein Computerprogrammprodukt zum Durchführen des Verfahrens bereitzustellen. Diese Aufgabe wird durch einen Cloudrechner zur Ausführung zumindest einer teilweise automatisierten Fahrfunktion eines Kraftfahrzeugs, ein Verfahren zum Betreiben eines Cloudrechners und ein Computerprogrammprodukt zum Durchführen des Verfahrens mit jeweils den Merkmalen der unabhängigen Ansprüche gelöst. Vorteilhafte Weiterbildungen sind jeweils in abhängigen Ansprüchen angegeben.
-
Ein Cloudrechner zur Ausführung zumindest einer teilweise automatisierten Fahrfunktion eines Kraftfahrzeugs weist eine Enklave mit einem Überwachungsmodul auf. Der Cloudrechner ist dazu eingerichtet, Daten zu empfangen und zur Ausführung zumindest einer teilweise automatisierten Fahrfunktion des Kraftfahrzeugs an die Enklave zu übermitteln. Das Überwachungsmodul ist dazu eingerichtet, zu prüfen, ob zur Ausführung zumindest einer teilweise automatisierten Fahrfunktion des Kraftfahrzeugs übermittelte Daten in einem Grundtakt von der Enklave empfangen werden und im Grundtakt von der Enklave empfangene Daten zur Verwendung durch die Enklave freizugeben. Der Cloudrechner ist dazu eingerichtet, eine cloudrechnerexterne Zeitbasis zu empfangen, eine cloudrechnerinterne Zeitbasis mit der cloudrechnerexternen Zeitbasis zu synchronisieren und sowohl die cloudrechnerexterne Zeitbasis als auch die synchronisierte cloudrechnerinterne Zeitbasis an die Enklave zu übermitteln. Die Enklave ist dazu eingerichtet, die cloudrechnerexterne Zeitbasis mit der synchronisierten cloudrechnerinternen Zeitbasis im Grundtakt miteinander zu vergleichen und im Fall einer Zeitabweichung unterhalb eines festgelegten Schwellwerts im Grundtakt empfangene Daten zu verwenden.
-
Unter einer Enklave versteht man eine isolierte und vertrauenswürdige Laufzeitumgebung (englisch trusted execution environment, TEE). Eine Enklave umfasst beispielsweise Bereiche eines Prozessors und eines Arbeitsspeichers, die für die Ausführung definierter Programmbestandteile reserviert sind. Eine Enklave ermöglicht eine Ausführung einer Funktion, die von anderen Funktionen eines die Enklave umfassenden Systems isoliert ausgeführt werden. Damit ist eine Sicherheit einer Enklave unabhängig von einer Sicherheit des Systems, in diesem Fall des Cloudrechners. Eine Enklave kann beispielsweise mittels einer Software Guard Extension (SGx), welche eine Erweiterung der sogenannten x86-Architektur ist, erstellt werden.
-
Der Grundtakt bildet gewissermaßen einen „Herzschlag“ (englisch heart beat) des Cloudrechners, der angibt, ob Funktionseinheiten des Cloudrechners noch funktional sicher ausgeführt werden und daher in der Lage sind, Daten an die Enklave zu übertragen. Das Überwachungsmodul kann daher auch als Herzschlag-Modul bezeichnet werden. Vorteilhafterweise kann die Kommunikation bzw. eine Datenübertragung von Daten zur Ausführung der zumindest einen automatisierten Fahrfunktion des Kraftfahrzeugs innerhalb des Cloudrechners durch das Überwachungsmodul überwacht werden, wodurch im Cloudrechner Aspekte der funktionalen Sicherheit garantiert und miteinander vereinbart werden können. Es kann jedoch auch eine Kommunikation zum Kraftfahrzeug auf Basis eines Heartbeat-Prinzips abgesichert werden, wodurch ein auf dem Heartbeat-Prinzip beruhendes Gesamtkonzept realisiert werden kann.
-
Der Cloudrechner beruht auf der Idee, dass Daten zur Ausführung der zumindest einen teilweise automatisierten Fahrfunktion rechtzeitig an die Enklave übermittelt werden. Dadurch kann der Cloudrechner vorteilhafterweise im Rahmen einer Echtzeitsteuerung eines Kraftfahrzeugs verwendet werden. Das Kraftfahrzeug kann auch als automatisiertes Kraftfahrzeug bezeichnet werden. Unter einer teilweise automatisierten Fahrfunktion soll im Rahmen der gesamten vorliegenden Beschreibung eine assistierte Fahrfunktion, eine teilautomatisierte Fahrfunktion, eine hochautomatisierte Fahrfunktion, eine vollautomatisierte Fahrfunktion oder eine autonome Fahrfunktion bezeichnet werden.
-
Ein Nachteil einer Enklave besteht darin, dass sie selbst keine eigene Zeitbasis bereitstellen kann und daher eine externe unabhängige Zeitbasis erforderlich ist und mit einer cloudrechnerinternen Zeitbasis synchronisiert werden muss. Die Enklave selbst kann zudem keine eigene Zeitbasis auf Korrektheit überprüfen, da Zeitbasen in der Enklave nicht mit einfachen Mitteln sicher gegen eine cloudrechnerexterne Zeitbasis (z.B. eine GPS-Zeit etc.) geprüft werden kann. Ohne weitere Maßnahmen könnte ein Hacker beispielsweise eine falsche GPS-Zeit vortäuschen. Aus diesen Gründen müssen muss der Enklave eine Zeitbasis auf gesicherte Weise zugeführt werden, um insbesondere Echtzeitanforderungen zu genügen. Dies wird dadurch erreicht, dass der Cloudrechner dazu eingerichtet, eine cloudrechnerexterne Zeitbasis zu empfangen, eine cloudrechnerinterne Zeitbasis mit der cloudrechnerexterne Zeitbasis zu synchronisieren und sowohl die cloudrechnerexterne Zeitbasis als auch die synchronisierte cloudrechnerinterne Zeitbasis an die Enklave zu übermitteln. Der Grundtakt repräsentiert eine Zeitbasis für eine Überwachung der der Enklave übermittelten Zeitbasen.
-
Die cloudrechnerexterne Zeitbasis kann von einem beliebigen Zeitgebersystem bereitgestellt werden. Beispielsweise kann es sich bei der cloudrechnerexternen Zeitbasis um eine GPS-Zeitbasis, eine Galileo-Zeitbasis oder eine Glonass-Zeitbasis handeln. Die Enklave kann auch dazu eingerichtet sein, eine Mehrzahl von cloudrechnerexternen Zeitbasen zu empfangen und zu prüfen, ob zumindest zwei empfangene cloudrechnerexterne Zeitbasen zumindest in einem festgelegten Zeitraum miteinander übereinstimmen und eine der übereinstimmenden Zeitbasen mit der synchronisierten cloudrechnerinternen Zeitbasis zu vergleichen. In einer Ausführungsform ist der Cloudrechner dazu eingerichtet, das Übermitteln einer Zeitbasis an die Enklave mittels kryptographischer Maßnahmen zu sichern.
-
Vorteilhafterweise kann der Cloudrechner dadurch definierte Anforderungen in Bezug auf funktionale Sicherheit erfüllen, wobei verschiedene Aspekte der funktionalen Sicherheit in Einklang miteinander gebracht werden können. Es besteht beispielsweise vorteilhafterweise die Möglichkeit verschiedene Fehler- und Unzulänglichkeits-Events während der Laufzeit, also im Betrieb des Kraftfahrzeugs, zu überwachen. Beispielsweise können Fehlerevents, wie etwa ein Ausfall und funktionale Fehler, erkannt werden. Außerdem können beispielsweise Verfügbarkeitsprobleme behoben werden. Beispielsweise kann festgestellt werden, ob gewisse Funktionseinheiten funktional betriebsbereit sind.
-
In einer Ausführungsform ist das Überwachungsmodul dazu eingerichtet, der Enklave eine auf dem Grundtakt basierende Prozesszeitbasis bereitzustellen. Die Enklave ist dazu eingerichtet, die Prozesszeit mit der cloudrechnerexternen Zeitbasis und/oder mit der synchronisierten cloudrechnerinternen Zeitbasis zu vergleichen und im Fall zumindest einer Zeitabweichung unterhalb eines festgelegten Schwellwerts empfangene Daten zu verwenden. Vorteilhafterweise steht der Enklave durch die Prozesszeitbasis eine weitere Zeitbasis zur Verfügung. Im Fall einer sich entwickelnden Zeitabweichung zwischen der Prozesszeit und der cloudrechnerexternen Zeitbasis und/oder mit der synchronisierten cloudrechnerinternen Zeitbasis kann auf einen Fehler geschlossen werden.
-
In einer Ausführungsform weist der Cloudrechner eine weitere Enklave mit einem weiteren Überwachungsmodul auf. Der Cloudrechner ist dazu eingerichtet, Daten vom Kraftfahrzeug zu empfangen und zur Ausführung zumindest einer teilweise automatisierten Fahrfunktion des Kraftfahrzeugs an die weitere Enklave zu übermitteln. Das weitere Überwachungsmodul ist dazu eingerichtet, zu prüfen, ob Daten im Grundtakt an die weitere Enklave übermittelt werden und im Grundtakt von der weiteren Enklave empfangene Daten zur Verwendung durch die weitere Enklave freizugeben. Der Cloudrechner ist dazu eingerichtet, eine weitere cloudrechnerexterne Zeitbasis zu empfangen, eine weitere cloudrechnerinterne Zeitbasis mit der weiteren cloudrechnerexternen Zeitbasis zu synchronisieren und sowohl die weitere cloudrechnerexterne Zeitbasis als auch die weitere synchronisierte cloudrechnerinterne Zeitbasis an die weitere Enklave zu übermitteln. Die weitere Enklave ist dazu eingerichtet, die weitere cloudrechnerexterne Zeitbasis mit der weiteren synchronisierten cloudrechnerinternen Zeitbasis im Grundtakt miteinander zu vergleichen und im Fall einer Zeitabweichung unterhalb eines festgelegten Schwellwerts empfangene Daten zu verwenden. Vorteilhafterweise können dadurch verschiedene Abschnitte des Cloudrechners separat auf sichere und geschützte Weise betrieben werden. Die weitere Enklave kann auch als redundante Enklave ausgebildet sein. In diesem Fall kann die redundante Enklave die Enklave im Fall einer Notsituation ersetzen oder umgekehrt.
-
In einer Ausführungsform ist die weitere Enklave als redundante Enklave der Enklave ausgebildet. Die Enklave und die redundante Enklave sind dazu eingerichtet, empfangene Zeitbasen miteinander auszutauschen und jeweils miteinander zu vergleichen und im Fall zumindest einer Zeitabweichung unterhalb eines festgelegten Schwellwerts empfangene Daten jeweils zu verwenden. In einer Ausführungsform ist die weitere Enklave als redundante Enklave der Enklave ausgebildet ist. Die Enklave und die redundante Enklave sind zur gegenseitigen Überwachung eingerichtet. Vorteilhafterweise können dadurch Abweichungen im Funktionsablauf einer der Enklaven festgestellt werden, wenn Veränderungen auftreten. Dadurch können beispielsweise Angriffe identifiziert werden, beispielsweise solche, bei denen verfälschte Daten und/oder Zeitbasen im Rahmen eines Angriffs an eine der Enklaven übermittelt wurden. Im Fall einer bedrohten Enklave können Notfunktionen sicher und ungefährdet ausgeführt werden. Auf diese Weise lassen sich Systeme auch im kompromittierten Zustand noch in einen sicheren und geschützten Zustand versetzen.
-
Ein Überwachungsmodul kann vorteilhafterweise in verschiedenen Bereichen des Cloudrechners implementiert sein. In einer Ausführungsform weist der Cloudrechner ein zusätzliches Überwachungsmodul auf. Das zusätzliche Überwachungsmodul ist Bestandteil einer containerbasierten Recheneinheit des Cloudrechners oder einer Partition des Cloudrechners oder einer zusätzlichen Enklave des Cloudrechners. Das zusätzliche Überwachungsmodul ist dazu eingerichtet, zu prüfen, ob zur Ausführung zumindest einer teilweise automatisierten Fahrfunktion des Kraftfahrzeugs übermittelte Daten im Grundtakt an die containerbasierte Recheneinheit oder an die Partition oder an die zusätzliche Enklave übermittelt werden und im Grundtakt von der containerbasierten Recheneinheit oder der Partition der zusätzlichen Enklave empfangene Daten zur Verwendung durch die containerbasierte Recheneinheit oder die Partition oder die zusätzliche Enklave freizugeben. Es können auch mehrere zusätzliche Überwachungsmodule im Cloudrechner vorgesehen sein. Dadurch kann vorteilhafterweise ein vernetzter Heartbeat-Mechanismus im Cloudrechner bereitgestellt werden.
-
Bei den containerbasierten Recheneinheiten des Cloudrechners kann es sich beispielsweise um sogenannte Kubernetes Pods handeln. Pods sind die kleinsten einsetzbaren Einheiten, die in Kubernetes, einer cloudbasierten Containerplattform, erstellt und verwaltet werden können. Ein Pod ist eine Gruppe von einem oder mehreren Containern mit gemeinsam genutzten Speicher- und Netzwerkressourcen und einer Spezifikation für eine Ausführung der Container. Ein Pod ist dynamisch erweiterbar, beispielsweise hinsichtlich eines Speicherbedarfs oder einer Rechenperformanz.
-
Der Cloudrechner kann auch redundante containerbasierte Recheneinheiten aufweisen. Die redundanten containerbasierten Recheneinheiten können im Rahmen der Ausführung der teilweise automatisierten Fahrfunktion jeweils synchron aktiviert werden. Dadurch können vorteilhafterweise unterschiedliche Funktionseinheiten, beispielsweise besonders sicherheitskritische Funktionseinheiten, abgesichert werden. Die Isolierung von Anwendungen in Partitionen kann beispielsweise mittels Docker erfolgen.
-
Vorteilhafterweise können die genannten Mechanismen zum Trennen bzw. zum Separieren von Funktionseinheiten überwacht werden. Durch die Enklave wird eine gesicherte Laufzeitumgebung geschaffen, die beliebige Testvektoren in das Sicherheitssystem einbringen kann, beispielsweise solche, die potentielle Bedrohungen darstellen, wodurch beispielsweise Performanz-Tests, Echtzeit-Tests und Fehler-Injektionstests eingebracht werden können. Je nach Bedarf kann das Heart-beat-Prinzip für die jeweilige Architektur angepasst werden.
-
In einer Ausführungsform ist das Überwachungsmodul oder das zusätzliche Überwachungsmodul als übergeordnetes Überwachungsmodul eingerichtet. Das übergeordnete Überwachungsmodul ist dazu eingerichtet, zu prüfen, ob von der containerbasierten Recheneinheit oder der Partition oder zusätzlichen Enklave an die Enklave übermittelte Daten zur Ausführung zumindest einer teilweise automatisierten Fahrfunktion im Grundtakt übermittelt werden und im Grundtakt von der Enklave empfangene Daten zur Verwendung durch die Enklave freizugeben.
-
In einer Ausführungsform umfassen die Daten zur Ausführung zumindest einer teilweise automatisierten Fahrfunktion des Kraftfahrzeugs Nutzdaten und Überwachungsdaten des Kraftfahrzeugs und/oder von Infrastrukturelementen und/oder einer Anwendersoftware. Die Überwachungsdaten enthalten Informationen über eine Qualität der Nutzdaten.
-
Die Nutzdaten können alle Daten umfassen, die zum Steuern des Kraftfahrzeugs erforderlich sind. Beispielsweise können die Nutzdaten Umfelddaten des zumindest Kraftfahrzeugs umfassen, die ein Umfeld des Kraftfahrzeugs repräsentieren und von zumindest einer Sensoreinrichtung bereitgestellt werden können. Die Nutzdaten können jedoch auch beispielsweise Parameter hinsichtlich des Kraftfahrzeugs umfassen, wie etwa eine aktuelle Position des Kraftfahrzeugs und/oder eine aktuelle Geschwindigkeit des Kraftfahrzeugs usw.
-
In einer Ausführungsform ist der Cloudrechner dazu eingerichtet, zumindest eine Funktionseinheit im Lockstep-Betrieb zu betreiben. Unter Lockstep wird eine Methode zur Fehlererkennung in der (virtualisierten) Hardware verstanden, die typischerweise insbesondere bei Prozessoren und Mikrokontrollern verwendet wird. Ein Lockstep zeichnet sich dadurch aus, dass mehrerer gleiche oder gleichartige Einheiten, wie etwa CPU-Kerne in Mehrkernprozessoren, eingesetzt werden. Vorteilhafterweise wird dadurch zumindest ein Teil zumindest einer containerbasierten Recheneinheit zusätzlich funktional abgesichert. Beispielsweise kann eine arithmetisch logische Einheit (englisch: arithmetic logic unit, ALU) mittels eines Locksteps abgesichert werden. Alternativ zum Lockstep kann auch zum Beispiel eine asymmetrische Redundanz mit einem Vergleicher verwendet werden, wobei der Vergleicher beispielsweise in der Enklave implementiert sein kann.
-
Ein Verfahren zum Betreiben eines Cloudrechners umfasst folgende Verfahrensschritte: Es werden Daten empfangen und an eine Enklave zur Ausführung zumindest einer teilweise automatisierten Fahrfunktion des Kraftfahrzeugs übermittelt. Es wird geprüft, ob übermittelte Daten in einem Grundtakt von der Enklave empfangen und im Grundtakt von der Enklave empfangene Daten werden zur Verwendung durch die Enklave freigegeben. Es wird eine cloudrechnerexterne Zeitbasis empfangen und mit einer cloudrechnerinternen Zeitbasis synchronisiert. Die cloudrechnerexterne Zeitbasis und die synchronisierte cloudrechnerinterne Zeitbasis werden an die Enklave übermittelt. Die cloudrechnerexterne Zeitbasis wird mit der synchronisierten cloudrechnerinternen Zeitbasis im Grundtakt verglichen. Im Grundtakt empfangene Daten werden im Fall einer Zeitabweichung unterhalb eines festgelegten Schwellwerts verwendet.
-
In einer Ausführungsform werden Daten empfangen und an eine weitere Enklave zur Ausführung zumindest einer teilweise automatisierten Fahrfunktion des Kraftfahrzeugs übermittelt. Es wird geprüft, ob übermittelte Daten in einem Grundtakt von der weiteren Enklave empfangen und im Grundtakt von der weiteren Enklave empfangene Daten werden zur Verwendung durch die weitere Enklave freigegeben. Es wird eine weitere cloudrechnerexterne Zeitbasis empfangen und mit einer weiteren cloudrechnerinternen Zeitbasis synchronisiert. Die weitere cloudrechnerexterne Zeitbasis und die weitere synchronisierte cloudrechnerinterne Zeitbasis werden an die weitere Enklave übermittelt. Die weitere cloudrechnerexterne Zeitbasis wird mit der weitere synchronisierten cloudrechnerinternen Zeitbasis im Grundtakt verglichen. Im Grundtakt empfangene Daten werden im Fall einer Zeitabweichung unterhalb eines festgelegten Schwellwerts verwendet.
-
In einer Ausführungsform wird zumindest eine weitere Zeitbasis einer weiteren Enklave empfangen, empfangene Zeitbasen miteinander verglichen und empfangene Daten im Fall zumindest einer Zeitabweichung unterhalb eines festgelegten Schwellwerts verwendet. In einer Ausführungsform ist die weitere Enklave als redundante Enklave der Enklave ausgebildet ist. Die Enklave wird mittels der redundanten Enklave überwacht. Es kann auch eine gegenseitige Überwachung der Enklaven erfolgen.
-
Ein Computerprogrammprodukt umfasst Befehle, die bei ihrer Ausführung auf einem Computer, diesen dazu veranlassen, ein Verfahren gemäß einer der beschriebenen Ausführungsformen durchzuführen. Das Computerprogrammprodukt kann beispielsweise auf einem maschinenlesbaren Speichermedium gespeichert sein.
-
Die Erfindung wird im Folgenden mit weiteren Merkmalen und Vorteilen anhand von schematischen Zeichnungen detailliert beschrieben. Es zeigen:
- 1 einen Cloudrechner;
- 2 das Bereitstellen einer Zeitbasis in einer Enklave;
- 3 den Cloudrechner der 1 in einer detaillierteren Ansicht, wobei ein Datenfluss zu einem Kraftfahrzeug und ein Datenfluss innerhalb des Cloudrechners gezeigt ist;
- 4 ein Verfahren zum Betreiben eines Cloudrechners; und
- 5 ein Computerprogrammprodukt zum Durchführen des Verfahrens.
-
1 zeigt schematisch einen Cloudrechner 1. Der Cloudrechner 1 ist zur Ausführung zumindest einer teilweise automatisierten Fahrfunktion eines Kraftfahrzeugs eingerichtet. Der Cloudrechner 1 ist in einer Cloudinfrastruktur implementiert. Bei dem Kraftfahrzeug kann es sich um ein beliebiges Kraftfahrzeug handeln.
-
Der Cloudrechner 1 weist eine Mehrzahl von containerbasierten Recheneinheiten 2 auf. Die containerbasierten Recheneinheiten 2 können beispielsweise für unterschiedliche Fahrfunktionen des Kraftfahrzeugs vorgesehen sein. Bei den containerbasierten Recheneinheiten 2 kann es sich beispielsweise um Kubernetes Pods handeln. Zumindest eine containerbasierte Recheneinheiten 2 kann in Partitionen 4 unterteilt sein. Beispielhaft zeigt 1, dass eine containerbasierte Recheneinheit 2 in zwei Partitionen 4 unterteilt ist. Eine Partitionierung der containerbasierten Recheneinheiten 2 ist jedoch nicht zwingend erforderlich. Alternativ oder zusätzlich zu containerbasierten Recheneinheiten 2 kann der Cloudrechner 1 auch andere Recheneinheiten 2 aufweisen.
-
Der Cloudrechner 1 weist zumindest eine Enklave 5 mit einem Überwachungsmodul 3 auf. 1 zeigt lediglich beispielhaft, dass beide Partitionen 4 der containerbasierten Recheneinheit 2 jeweils zwei Enklaven 5 umfassen. Die Enklaven 5 müssen jedoch nicht notwendigerweise innerhalb einer Partition 4 eingerichtet sein. Das Überwachungsmodul 3 ist Bestandteil der zumindest einen Enklave 5. Das Überwachungsmodul 3 ist dazu eingerichtet, zu prüfen, ob zur Ausführung zumindest einer teilweise automatisierten Fahrfunktion des Kraftfahrzeugs übermittelte Daten in einem Grundtakt an die Enklave 5 übermittelt werden und im Grundtakt von der Enklave 5 empfangene Daten zur Verwendung durch die Enklave 5 freizugeben.
-
Der Cloudrechner 1 kann auch zusätzliche Überwachungsmodule 3 aufweisen. Ein zusätzliches Überwachungsmodul 3 kann beispielsweise Bestandteil einer containerbasierten Recheneinheit 2 des Cloudrechners 1 oder einer Partition 4 des Cloudrechners 1 oder einer zusätzlichen Enklave 3 des Cloudrechners 1 sein. Das zusätzliche Überwachungsmodul 3 ist dazu eingerichtet, zu prüfen, ob zur Ausführung zumindest einer teilweise automatisierten Fahrfunktion des Kraftfahrzeugs übermittelte Daten im Grundtakt an die containerbasierte Recheneinheit 2 oder an die Partition 4 oder an die zusätzliche Enklave 5 übermittelt werden und im Grundtakt von der containerbasierten Recheneinheit 2 oder der Partition 4 der zusätzlichen Enklave 5 empfangene Daten zur Verwendung durch die containerbasierte Recheneinheit 2 oder die Partition 4 oder die zusätzliche Enklave 5 freizugeben. Dadurch weist der Cloudrechner ein verzweigtes System von Überwachungsmodulen 3 auf. Diese können auch dazu eingerichtet sein, Daten untereinander auszutauschen.
-
Das Überwachungsmodul 3 oder ein zusätzliches Überwachungsmodul 3 kann jeweils beispielsweise als übergeordnetes Überwachungsmodul eingerichtet sein. In diesem Fall können verbliebene Überwachungsmodule 3 als untergeordnete Überwachungsmodule 3 eingerichtet sein. Das übergeordnete Überwachungsmodul kann auch als Master-Heartbeat bezeichnet werden. Das übergeordnete Überwachungsmodul ist dazu eingerichtet, zu prüfen, ob von der containerbasierten Recheneinheit 2 oder der Partition 4 oder der zusätzlichen Enklave 5 an die Enklave 5 übermittelte Daten zur Ausführung zumindest einer teilweise automatisierten Fahrfunktion im Grundtakt übermittelt werden und im Grundtakt von der Enklave 5 empfangene Daten zur Verwendung durch die Enklave 5 freizugeben. Zusätzliche Überwachungsmodule 3 müssen jedoch nicht als untergeordnete oder übergeordnete Überwachungsmodule 3 eingerichtet sein. Zusätzliche Überwachungsmodule 3 können auch entfallen.
-
Der Cloudrechner 1 kann ferner redundante Abschnitte umfassen, was ebenfalls nicht zwingend erforderlich ist. Dabei können sowohl Enklaven 5, Partitionen 4 und/oder containerbasierte Recheneinheiten 2 redundant ausgebildet sein. 1 zeigt beispielhaft zwei identisch ausgebildete containerbasierte Recheneinheiten 2, 2'. Eine Struktur der redundanten containerbasierten Recheneinheit 2' entspricht einer Struktur der containerbasierten Recheneinheit 2. Im Betrieb des Cloudrechners 1 können redundante Abschnitte synchron aktiviert werden, wodurch teilweise automatisierte Fahrfunktionen redundant ausführbar sind.
-
2 zeigt schematisch das Bereitstellen einer Zeitbasis für beispielhaft zwei Enklaven 5, 5' jeweils einer Partition 4, 4', die Bestandteil einer containerbasierten Recheneinheit 2 des Cloudrechners 1 sind. Die Partition 4 und eine weitere Partition 4' können beispielsweise als redundante Partitionen eingerichtet sein, was jedoch nicht zwingend erforderlich ist. Eine weitere Enklave 5' kann beispielsweise als redundante Enklave 5' der Enklave 5 ausgebildet sein, was ebenfalls nicht zwingend erforderlich ist. Eine in 2 gezeigte Architektur der containerbasierten Recheneinheit 2 des Cloudrechners 1 kann beispielsweise für einen Lockstepbetrieb der Partitionen 4, 4' verwendet werden. Andere Architekturen der containerbasierten Recheneinheit 2 als die in 2 gezeigte sind jedoch auch möglich.
-
Der Cloudrechner 1 ist dazu eingerichtet, eine cloudrechnerexterne Zeitbasis 24 zu empfangen, eine cloudrechnerinterne Zeitbasis 25 mit der cloudrechnerexternen Zeitbasis 24 zu synchronisieren und sowohl die cloudrechnerexterne Zeitbasis 24 als auch die synchronisierte cloudrechnerinterne Zeitbasis an die Enklave 5 zu übermitteln. Die Enklave 5 ist dazu eingerichtet, die cloudrechnerexterne Zeitbasis 24 mit der synchronisierten cloudrechnerinternen Zeitbasis im Grundtakt miteinander zu vergleichen und im Fall einer Zeitabweichung unterhalb eines festgelegten Schwellwerts im Grundtakt empfangene Daten zu verwenden. Durch das Herzschlag-Prinzip wird der Grundtakt für die Zeit- und Performanz-Überwachung bereitgestellt, der eine Zeitbasis für eine aktive Ausführung eines Steuer- und Datenflusses darstellt.
-
Im dargestellten Beispiel der 2 ist der Cloudrechner 1 ferner dazu eingerichtet, Daten vom Kraftfahrzeug zu empfangen und zur Ausführung zumindest einer teilweise automatisierten Fahrfunktion des Kraftfahrzeugs an die weitere Enklave 5' zu übermitteln. Das weitere Überwachungsmodul 3' der weiteren Enklave 5' ist dazu eingerichtet, zu prüfen, ob Daten im Grundtakt an die weitere Enklave 5' übermittelt werden und im Grundtakt von der weiteren Enklave 5' empfangene Daten zur Verwendung durch die weitere Enklave 5' freizugeben.
-
Der Cloudrechner 1 der 2 ist dazu eingerichtet, eine weitere cloudrechnerexterne Zeitbasis 24' zu empfangen, eine weitere cloudrechnerinterne Zeitbasis 25' mit der weiteren cloudrechnerexternen Zeitbasis 24' zu synchronisieren und sowohl die weitere cloudrechnerexterne Zeitbasis 24' als auch die weitere synchronisierte cloudrechnerinterne Zeitbasis an die weitere Enklave 5' zu übermitteln. Die weitere Enklave 5' ist dazu eingerichtet, die weitere cloudrechnerexterne Zeitbasis 24' mit der weiteren synchronisierten cloudrechnerinternen Zeitbasis im Grundtakt miteinander zu vergleichen und im Fall einer Zeitabweichung unterhalb eines festgelegten Schwellwerts empfangene Daten zu verwenden.
-
Das Überwachungsmodul 3 kann auch dazu eingerichtet sein, der Enklave 5 eine auf dem Grundtakt basierende Prozesszeitbasis bereitzustellen. Die Enklave 5 ist dazu eingerichtet, die Prozesszeit mit der cloudrechnerexternen Zeitbasis und/oder mit der synchronisierten cloudrechnerinternen Zeitbasis zu vergleichen und im Fall zumindest einer Zeitabweichung unterhalb eines festgelegten Schwellwerts empfangene Daten zu verwenden. Das Bereitstellen der Prozesszeitbasis und das Vergleichen der Prozesszeitbasis mit einer anderen Zeitbasis ist jedoch nicht zwingend erforderlich.
-
Die Enklave 5 und die weitere Enklave 5' können als redundante Enklaven 5, 5' eingerichtet sein. In diesem Fall können die Enklave 5 und die redundante Enklave 5' dazu eingerichtet sein, empfangene Zeitbasen miteinander auszutauschen und jeweils miteinander zu vergleichen und im Fall zumindest einer Zeitabweichung unterhalb eines festgelegten Schwellwerts empfangene Daten jeweils zu verwenden. Die Enklave 5 und die redundante Enklave 5' können auch zur gegenseitigen Überwachung von eingerichtet sind, was jedoch nicht erforderlich ist.
-
Der Cloudrechner 1 kann dazu eingerichtet sein, das Übermitteln einer cloudrechnerexternen Zeitbasis 24, 24' und/oder das Übermitteln einer synchronisierten cloudrechnerinternen Zeitbasis an die Enklaven 5, 5' mittels kryptographischer Maßnahmen zu sichern, wodurch den Enklaven 5, 5' eine besonders abgesicherte Zeitbasis bereitgestellt werden kann. Die weitere Enklave 5' und ihr weiteres Überwachungsmodul 3' können jedoch auch entfallen.
-
3 zeigt schematisch den Cloudrechner 1 der 1 in einer detaillierteren Ansicht. Ferner deutet 3 Kraftfahrzeug durch eine Echtzeitumgebung 6 an. 3 veranschaulicht einen Datenfluss, d.h. eine Kommunikation zwischen Funktionseinheiten des Cloudrechners 1. Das Überwachungsmodul 3 oder zusätzliche und/oder weitere Überwachungsmodule 3, 3' sind der Einfachheit halber in 3 nicht gezeigt.
-
Der Cloudrechner 1 ist zur Ausführung zumindest einer teilweise automatisierten Fahrfunktion des Kraftfahrzeugs auf Grundlage von empfangenen Daten ausgebildet. Die Daten zur Ausführung zumindest einer teilweise automatisierten Fahrfunktion des Kraftfahrzeugs können beispielsweise Nutzdaten 7 und Überwachungsdaten 8 des Kraftfahrzeugs und/oder von Infrastrukturelementen und/oder Nutzdaten 20 und Überwachungsdaten 21 einer Anwendersoftware umfassen. Die Überwachungsdaten 8, 21 enthalten jeweils Informationen über eine Qualität der Nutzdaten7, 20. Beispielsweise können die Nutzdaten 7 verschiedene Sensordaten enthalten. In diesem Fall können die Überwachungsdaten 8 beispielsweise Informationen darüber enthalten, ob Sensordaten unterschiedlicher aber ähnlicher oder äquivalenter Sensoreinrichtungen im Wesentlichen miteinander übereinstimmen. Beispielsweise können die Nutzdaten 7 Kameradaten und LiDAR-Daten (englisch: light detection and ranging) umfassen, die jeweils ein Umfeld des Kraftfahrzeugs repräsentieren. In diesem Fall können die Überwachungsdaten 8 beispielsweise Informationen darüber enthalten, dass ein Objekt von einer Kamera erfasst wurde, jedoch nicht von einer LiDAR-Einrichtung. Die Überwachungsdaten 8, 21 und die Nutzdaten 7, 20 können dabei, wie in 3 gezeigt, über separate Kanäle vom Cloudrechner 1 empfangen werden und auf separaten Kanälen Funktionseinheiten des Cloudrechners 1 bereitgestellt werden, was jedoch nicht erforderlich ist.
-
Die Nutzdaten 7 können Anwendernutzdaten 20 und die Überwachungsdaten 8 Anwenderüberwachungsdaten 21 zumindest einer Anwendersoftware umfassen. Die Anwendernutzdaten 20 einer Mehrzahl von Softwareteilen und/oder einer Mehrzahl von Software können von zumindest einer logischen Einrichtung 22 zunächst verarbeitet werden, bevor sie an den Cloudrechner 1 übermittelt werden. Die Anwendernutzdaten 20 und die Anwenderüberwachungsdaten 21 können auch durch zumindest eine Sicherungseinrichtung 23 überwacht werden. Dabei können bekannte Überwachungsmaßnahmen zur Überwachung von Software verwendet werden.
-
3 zeigt beispielhafte Gruppen 11, 12 von Funktionseinheiten eines beispielhaften Cloudrechners 1, wobei die Funktionseinheiten typischerweise Elemente eines Mikrocontrollers repräsentieren. Der Cloudrechner 1 kann jedoch auch weniger oder mehr Funktionseinheiten aufweisen als die in 3 gezeigten, die auch anders als in 3 gezeigt miteinander verbunden sein können.
-
Eine erste Gruppe 11 kann beispielsweise einen Programmzähler, ein Befehlsregister, ein Statusregister, andere Register, einen Befehlsdecoder, einen Stackpointer und eine ALU umfassen. Eine zweite Gruppe 12 kann beispielsweise eine Interrupt-Einheit, einen Watchdog, einen Quarz, einen Timer, einen Zähler und einen Multiplexer umfassen. Ferner sind im Cloudrechner 1 beispielhaft diverse Steuerungselemente 13 (Controller), Speicher 14, wie etwa ein Arbeitsspeicher, ein nichtflüchtiger Speicher und ein wiederbeschreibbarer Speicher (englisch: Erasable Programmable Read Only Memory, EPROM), vorgesehen. Darüber hinaus sind ebenfalls lediglich beispielhaft ein Analog Digital Wandler 14, Ports 15 und Ein- und diverse Ausgänge 16 vorgesehen. Ein Austausch von Daten zwischen den Funktionseinheiten kann beispielsweise zumindest teilweise über einen internen Datenbus 17 erfolgen.
-
Die in 3 gezeigten Funktionseinheiten können beispielsweise Bestandteil einer containerbasierten Recheneinheit 2 sein. Innerhalb dieser containerbasierten Recheneinheit 2 können Partitionen 4 und/ oder Enklaven 5 vorliegen. Die gesamte Kommunikation bzw. der Datenaustausch innerhalb des Cloudrechners 1 erfolgt nach dem Herzschlag-Prinzip in Kombination mit einem Bereitstellen einer abgesicherten Zeitbasis an eine Enklave 5 des Cloudrechners 1. Dazu können, wo erforderlich, Überwachungseinheiten 3 implementiert sein, die sicherstellen, dass der Cloudrechner 1 und/oder containerbasierte Recheneinheiten 2 und/oder Partitionen 4 und/oder Enklaven 5 zur Ausführung zumindest einer teilweise automatisierten Fahrfunktion erforderliche Nutzdaten 7 und Überwachungsdaten 8 zyklisch empfangen.
-
Zur zusätzlichen Absicherung kann zumindest ein Teil zumindest einer containerbasierten Recheneinheit 2 mittels Lockstep 18 überwacht werden, was in 3 beispielhaft für insgesamt drei Funktionseinheiten angedeutet ist. Dadurch können besonders kritische Funktionen auf funktionaler Ebene besonders sicher ausgeführt werden. Verschiedene Aspekte der funktionalen Sicherheit können auf diese Weise angemessen berücksichtigt werden. Für einen Lockstep 18, kann der Cloudrechner 1 einen Zweikanalport 19 zur Separierung von kritischen Funktionen, die im Lockstep-Betrieb ausgeführt werden sollen, und solchen Funktionen, die im gewöhnlichen Betrieb ausgeführt werden sollen, aufweisen.
-
4 zeigt schematisch Verfahrensschritte 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 eines Verfahrens 30 zum Betreiben eines Cloudrechners 1.
-
In einem ersten Verfahrensschritt 31 werden Daten vom Cloudrechner 1 empfangen. In einem zweiten Verfahrensschritt 32 werden die empfangenen Daten zur Ausführung zumindest einer teilweise automatisierten Fahrfunktion des Kraftfahrzeugs 6 an die Enklave 5 übermittelt. In einem dritten Verfahrensschritt 33 wird vom Überwachungsmodul 3 geprüft, ob übermittelte Daten in einem Grundtakt von der Enklave 5 empfangen werden und im Grundtakt von der Enklave 5 empfangene Daten werden zur Verwendung durch die Enklave 5 durch das Überwachungsmodul 3 freigegeben.
-
In einem vierten Verfahrensschritt 34 wird eine cloudrechnerexterne Zeitbasis 24 empfangen. In einem fünften Verfahrensschritt 35 wird eine cloudrechnerinternen Zeitbasis 25 mit der cloudrechnerexternen Zeitbasis 24 synchronisiert. In einem sechsten Verfahrensschritt 36 werden die cloudrechnerexternen Zeitbasis 24 und die synchronisierte cloudrechnerinterne Zeitbasis an die Enklave 5 übermittelt. In einem optionalen siebten Verfahrensschritt 37 können Zeitbasen 24, 24' zwischen Enklaven 5, 5' ausgetauscht werden. In einem achten Verfahrensschritt 38 wird die cloudrechnerexterne Zeitbasis 24 im Grundtakt mit der synchronisierten cloudrechnerinternen Zeitbasis verglichen. Hierbei können auch im Rahmen des optionalen siebten Verfahrensschritts 37 ausgetauschte Zeitbasen miteinander verglichen werden. In einem neunten Verfahrensschritt 39 werden im Grundtakt empfangene Daten im Fall einer Zeitabweichung unterhalb eines festgelegten Schwellwerts von der Enklave 5 verwendet.
-
Im ersten Verfahrensschritt 31 können zusätzlich Daten vom Cloudrechner 1 empfangen und im zweiten Verfahrensschritt 32 zur Ausführung zumindest einer teilweise automatisierten Fahrfunktion des Kraftfahrzeugs 6 an die weitere Enklave 5' übermittelt werden. Im dritten Verfahrensschritt 33 kann zusätzlich vom weiteren Überwachungsmodul 3' der weiteren Enklave 5' geprüft werden, ob übermittelte Daten in einem Grundtakt von der weiteren Enklave 5' empfangen werden und im Grundtakt von der weiteren Enklave 5' empfangene Daten können zur Verwendung durch die weitere Enklave 5' durch das weitere Überwachungsmodul 3' freigegeben werden.
-
Im vierten Verfahrensschritt 34 kann zusätzlich eine weitere cloudrechnerexterne Zeitbasis 24' empfangen werden. Im fünften Verfahrensschritt 35 kann zusätzlich eine weitere cloudrechnerinterne Zeitbasis 25' mit der weiteren cloudrechnerexternen Zeitbasis 24' synchronisiert werden. Im sechsten Verfahrensschritt 36 kann zusätzlich die weitere cloudrechnerexternen Zeitbasis 24' und die synchronisierte cloudrechnerinterne Zeitbasis an die weitere Enklave 5' übermittelt werden. Im optionalen siebten Verfahrensschritt 37 können Zeitbasen 24, 24' zwischen Enklaven 5, 5' ausgetauscht werden. Im achten Verfahrensschritt 38 kann die cloudrechnerexterne Zeitbasis 24' zusätzlich im Grundtakt mit der synchronisierten cloudrechnerinternen Zeitbasis verglichen werden. Hierbei können auch im Rahmen des optionalen siebten Verfahrensschritts 37 ausgetauschte Zeitbasen miteinander verglichen werden. Im neunten Verfahrensschritt 39 können im Grundtakt empfangene Daten im Fall einer Zeitabweichung unterhalb eines festgelegten Schwellwerts von der weiteren Enklave 5' verwendet.
-
In einem optionalen zehnten Verfahrensschritt 40 kann eine Überwachung der Enklave 5 mittels einer redundanten Enklave 5' erfolgen. Alternativ oder zusätzlich kann auch eine Überwachung der redundanten Enklave 5' mittels der Enklave 5 erfolgen.
-
5 zeigt schematisch ein Computerprogrammprodukt 26, umfassend Befehle 27, die bei ihrer Ausführung auf einem Computer, diesen dazu veranlassen, ein Verfahren 30 gemäß einer der beschriebenen Ausführungsformen durchzuführen. Das Computerprogrammprodukt 26 kann beispielsweise auf einem maschinenlesbaren Speichermedium 28 gespeichert sein.