DE102021211712A1 - Datenverarbeitungsnetzwerk zur Datenverarbeitung - Google Patents

Datenverarbeitungsnetzwerk zur Datenverarbeitung Download PDF

Info

Publication number
DE102021211712A1
DE102021211712A1 DE102021211712.0A DE102021211712A DE102021211712A1 DE 102021211712 A1 DE102021211712 A1 DE 102021211712A1 DE 102021211712 A DE102021211712 A DE 102021211712A DE 102021211712 A1 DE102021211712 A1 DE 102021211712A1
Authority
DE
Germany
Prior art keywords
data processing
module
data
network
processing module
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.)
Pending
Application number
DE102021211712.0A
Other languages
English (en)
Inventor
Stefan Egenter
Michael Poehnl
Raphael Diziol
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch 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
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102021211712.0A priority Critical patent/DE102021211712A1/de
Priority to PCT/EP2022/076912 priority patent/WO2023066625A1/de
Publication of DE102021211712A1 publication Critical patent/DE102021211712A1/de
Pending legal-status Critical Current

Links

Images

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/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • 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/1629Error detection by comparing the output of redundant processing systems
    • 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/1695Error detection or correction of the data by redundancy in hardware which are operating with time diversity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

Datenverarbeitungsnetzwerk (1) zur redundanten und validierten Durchführung einer Mehrzahl von aufeinanderfolgenden Datenverarbeitungsschritten (2), die jeweils dazu dienen aus Eingangsdaten (3) Ausgangsdaten (4) zu generieren, wobei Ausgangsdaten (3) eines ersten Datenverarbeitungsschrittes (2) zumindest teilweise gleichzeitig Eingangsdaten (3) eines weiteren Datenverarbeitungsschritten (2) sind, wobei für die Durchführung jedes Datenverarbeitungsschrittes (2) mindestens ein erstes Datenverarbeitungsmodul (5) und ein zweites Datenverarbeitungsmodul (6) vorgesehen sind, wobei das Datenverarbeitungsnetzwerk (1) weiter ein Komparatormodul (7) aufweist, wobei die ersten Datenverarbeitungsmodule (5) und die zweiten Datenverarbeitungsmodule (6) dazu eingerichtet sind Datenverarbeitungsschritte (2) wahlweise in einer ersten Arbeitsweise mit parallelem Betrieb oder in einer zweiten Arbeitsweise mit einem vorrechnenden Datenverarbeitungsmodul (5,6) und einem nachrechnenden Datenverarbeitungsmodul (6,5) durchzuführen

Description

  • Stand der Technik
  • Systeme für Fahrerassistenz oder automatisiertes Fahren bestehen aus vielen einzelnen Software-Einheiten, die in der Regel bezüglich des Datenflusses mit Graphen beschrieben werden können. Diese Software-Einheiten (oft auch Runnables, Nodes oder Datenverarbeitungskomponenten genannt) zeichnen sich dadurch aus, dass eine Menge von Eingangsdaten verarbeitet werden und daraus eine Menge von Ausgangsdaten erzeugt werden.
  • In den zuvor genannten Systemen werden Eingangsdaten von Sensoren wie Radar oder Video in einem Graphen aus Datenverarbeitungskomponenten verarbeitet, der in einer statischen Sicht den Datenfluss visualisiert.
  • Die verschiedenen Software-Einheiten bilden regelmäßig ein komplexes Datenverarbeitungsnetzwerk mit welchem Sensordaten verarbeitet werden, um basierend auf den Sensordaten Aktionen durchzuführen. Solche Aktionen können beispielsweise Steuerungsaufgaben im Rahmen eines autonomen Fahrbetriebs eines Fahrzeugs sein. Die Datenverarbeitung in dem Datenverarbeitungsnetzwerk umfasst üblicherweise eine Mehrzahl aufeinander aufbauender Datenverarbeitungsschritte oder Datenverarbeitungsaufgaben, die mit den Datenverarbeitungskomponenten ausgeführt werden.
  • Als Teil der Anforderungen an die funktionale Sicherheit von Fahrerassistenzsystemen und dem (hoch-)automatisierten Fahren (HAD) darf die Wahrscheinlichkeit für systematische und sporadische Hardwarefehler eine vorgegebene Häufigkeit nicht überschreiten, die in Relation zum Risiko und dem zu erwartenden Schaden der Systemfunktionen steht. Weil neu entwickelte Fahrerassistenzsysteme regelmäßig in einer großen Vielzahl von Fahrzeugen parallel zueinander im Einsatz sind und das Risiko in Bezug auf die gesamte entsprechend ausgestatte Fahrzeugflotte zu bewerten ist, ist die akzeptable Wahrscheinlichkeit für das Auftreten von Hardwarefehlern außerordentlich gering.
  • Im Vergleich mit den heutigen High-End-Prozessoren ist die Rechenleistung von üblichen verfügbaren Mikrocontroller, die diese Sicherheitslevel erfüllen, sehr begrenzt. Ihre maximale Taktung liegt bei ca. 10% (300 MHz vs. 3 GHz) und es fehlen interne Optimierer, wie sie bei den off-the-shelf Mikroprozessoren (µP) Standard sind und einen großen Anteil an deren Performance haben.
  • Hiervon ausgehend soll ein neuartiger Ansatz zum Aufbau eines Datenverarbeitungsnetzwerks für ein Kraftfahrzeug beschrieben werden, welcher eine Lösung für die begrenzten Rechenleistungen von üblichen verfügbaren Mikrocontrollern für derartige Sicherheitslevels adressiert und gleichzeitig eine umfangreiche Realisierung der Perfomance-Vorteile heutiger High-End-Prozessoren ermöglicht.
  • Offenbarung der Erfindung:
  • Hier beschrieben wird ein Datenverarbeitungsnetzwerk zur redundanten und validierten Durchführung einer Mehrzahl von aufeinanderfolgenden Datenverarbeitungsschritten, die jeweils dazu dienen, aus Eingangsdaten Ausgangsdaten zu generieren, wobei Ausgangsdaten eines ersten Datenverarbeitungsschrittes zumindest teilweise gleichzeitig Eingangsdaten eines weiteren Datenverarbeitungsschrittes sind, wobei für die Durchführung jedes Datenverarbeitungsschrittes mindestens ein erstes Datenverarbeitungsmodul und ein zweites Datenverarbeitungsmodul vorgesehen sind, wobei das Datenverarbeitungsnetzwerk weiter ein Komparatormodul aufweist, wobei die ersten Datenverarbeitungsmodule und die zweiten Datenverarbeitungsmodule dazu eingerichtet sind Datenverarbeitungsschritte wahlweise in einer ersten Arbeitsweise mit parallelem Betrieb oder in einer zweiten Arbeitsweise mit einem vorrechnenden Datenverarbeitungsmodul und einem nachrechnenden Datenverarbeitungsmodul durchzuführen,
    • - wobei bei der ersten Arbeitsweise mit parallelem Betrieb Kontrollparameter der einzelnen Datenverarbeitungsschritte an das Komparatormodul übermittelt werden und das Komparatormodul dazu eingerichtet ist, mindestens einen Vergleich sich entsprechender Kontrollparameter, die von den ersten Datenverarbeitungsmodulen und den zweiten Datenverarbeitungsmodulen übermittelt wurden, durchzuführen und basierend auf diesem Vergleich mindestens einen synchronisierten Kontrollparameter bereitzustellen, welcher eine Kontrollinformation bezüglich mindestens eines durchgeführten Datenverarbeitungsschrittes beinhaltet,
    • - und wobei bei der zweiten Arbeitsweise mit einem vorrechnenden Datenverarbeitungsmodul und einem nachrechnenden Datenverarbeitungsmodul, eine Sequenz von aufeinanderfolgenden Datenverarbeitungsschritte im vorrechnenden Datenverarbeitungsmodul ausgeführt wird, ohne das zwischen den Datenverarbeitungsschritten Kontrollparameter an das Komparatormodul übermittelt und dort zur Überprüfung verglichen werden, wobei nach der Durchführung der Sequenz von aufeinanderfolgenden Datenverarbeitungsschritten Kontrollparameter an das Komparatormodul übermittelt werden, mit denen eine Nachberechnung der Sequenz von Datenverarbeitungsschritten in dem nachrechnenden Datenverarbeitungsmodul veranlasst wird.
  • In dem beschriebenen Datenverarbeitungsnetzwerk wird es ermöglicht, einen Software-Lockstep basierend auf einer Hardware zu realisieren, die die entsprechenden Anforderungen (bspw. ASIL-D-Konformität) nicht von Haus aus erfüllt. Dies gelingt insbesondere für Datenverarbeitungsnetzwerke, deren Datenverarbeitung hohe Rechenleistungen erfordern, für welche üblicherweise Hardware mit sehr hoher Leistungsfähigkeit erforderlich ist.
  • Der Grundansatz ist, dass für das erste Datenverarbeitungsmodul und das zweite Datenverarbeitungsmodul jeweils voneinander getrennte Hardware (voneinander getrennte Cores) verwendet werden, die eine hohe Rechenleistung haben und beide die gleiche Berechnung durchführen. Durch das Komparatormodul erfolgt ein Vergleich der Berechnungen und nur in dem Fall der Gleichheit des Berechnungsergebnisses wird dieses für die weitere Datenverarbeitung in dem Datenverarbeitungsnetzwerk benutzt. Die Gleichheit wird anhand der Kontrollparameter von dem Datenverarbeitungsmodul überwacht und zur Steuerung des Kontrollflusses der Datenverarbeitung wird in dem Datenverarbeitungsnetzwerk der synchronisierte Kontrollparameter verwendet.
  • Die Punkte, an denen das erste Datenverarbeitungsmodul und das zweite Datenverarbeitungsmodul die Kontrollparameter bereitstellen, um diese dann an das Komparatormodul weiterzuleiten werden regelmäßig auch als Synchronisationspunkte bezeichnet.
  • Das hier beschriebene Verfahren betrifft wie schon ausgeführt einen sogenannten Software-Lockstep. Ein Software-Lockstep ist von einem Hardware-Lockstep abzugrenzen. Für einen Hardware-Lockstep ist erheblich komplexere Hardware erforderlich.
  • Der hier nicht beanspruchte Hardware Lockstep wird regelmäßig so implementiert, dass eine Hardware verwendet wird, welche jeden Berechnungsschritt der darauf betriebenen Software-Programme zweimal ausführt. Das bedeutet, dass das Software-Programm selbst nur einmal auf der Hardware läuft. Ein Betriebssystem sieht nur eine Instanz des jeweiligen Software-Programms. Die Hardware führt unterhalb der einen Betriebssystemebene jeden Schritt der Software zweimal aus.
  • Dem gegenüber bedeutet der hier beschriebene Software-Lockstep, dass das Programm doppelt ausgeführt wird, und zwar auf Betriebssystemebene doppelt. Gegebenenfalls können auch zwei voneinander unabhängige Betriebssysteme (ein erstes Betriebssystem auf dem ersten Datenverarbeitungsmodul mit einer ersten Hardware/Core und ein zweites Betriebssystem auf dem zweiten Datenverarbeitungsmodul mit einer zweiten Hardware/Core) betrieben werden, die die jeweiligen Datenverarbeitungsschritte jeweils (und damit doppelt) ausführen.
  • Ein Software-Lockstep kann auch auf einem Betriebssystem betrieben werden, wobei dann ggf. auf der Ebene des Betriebssystems die Anweisung gegeben wird unterschiedliche Hardware (zwei verschiedene Cores) für die doppelte Ausführung zu verwenden.
  • Sobald es zwei Instanzen gibt, die ohne Hardwareveränderung replizierbar/vermehrbar sind handelt es sich bei der doppelten Ausführung um einen sogenannten Software-Lockstep. Ein Hardware-Lockstep bedeutet immer, dass für eine zusätzliche redundante Ausführung auch zusätzliche Hardware (Schaltkreise, Transistoren etc. notwendig sein müssen), die unterhalb der Betriebssystemebene angesiedelt sind und die für das Betriebssystem nicht als getrennt voneinander erkennbar sind, sondern sich aus Sicht des Betriebssystems wie eine Hardware darstellen. Durch die Verwendung eines Hardware-Lockstep wird also immer mindestens die doppelte Anzahl von Transistoren notwendig, um die gleiche Leistung zu erreichen wie ohne Hardware-Lockstep.
  • Durch das beschriebene Datenverarbeitungsnetzwerk bzw. mit dem beschriebenen Datenverarbeitungsnetzwerk ist ein Lockstep-Ansatz auch auf Controllern/Prozessoren möglich, die dafür nicht speziell entwickelt wurden.
  • Der Normalfall ist allerdings, dass das erste Datenverarbeitungsmodul und das zweite Datenverarbeitungsmodul mit identischer Software ausgeführt sind und auch von ihrer Spezifikation her identische Hardware (identische Cores) verwendet werden. So lange das jeweilige Datenverarbeitungsmodul bzw. die zugrunde liegende Hardware korrekt funktionieren, produzieren dieselben Eingangsdaten in beiden Datenverarbeitungsmodulen auch dieselben Ausgangsdaten.
  • Wird ein Software-Lockstep für Echtzeit-(nahe) Anwendungen genutzt, so basieren viele bekannte Architekturen auf Zeitscheibenrastern, bei denen die Verarbeitung der Rechenschritte in keinem Fall den vorgegebenen Rahmen überschreiten darf. In diesem Zusammenhang wird oft von der sogenannten WCET (WCET = Worst Case Execution Time) gesprochen. Welche Rechenschritte in welcher Reihenfolge in den Zeitscheiben ausgeführt werden, ist dabei a priori festgelegt. Da die Rechenschritte im Voraus bekannt sind, können die beiden eingesetzten Einheiten die Rechenschritte parallel ausführen. Häufig besteht eine hohe Variabilität wie groß der Rechenaufwand zur Verarbeitung der Eingangsdaten zur Erzeugung von Ausgangsdaten ist. Ein Beispiel ist der Fall einer Bildanalyse zur Ermittlung aller sichtbaren Verkehrszeichen. Ein Datenverarbeitungsschritt zur Durchführung einer solchen Analyse benötigt bspw. eine sehr viel längere Zeit, wenn hundert Verkehrsschilder gleichzeitig sichtbar sind als wenn nur zwei Verkehrsschilder im Sichtbereich liegen. In einem üblichen Software-Lockstep-Ansatz müssten Zeitscheiben anhand einer WCET so ausgelegt werden, dass für alle denkbaren relevanten Fälle jedenfalls ausreichend Zeit zur Durchführung des Datenverarbeitungsschrittes vorgesehen ist.
  • Im Vergleich dazu sind datengetriebene Systeme flexibler, bei denen aber die Ausführungsreihenfolge vom Ergebnis und der Dauer der vorangegangenen Berechnungen abhängen kann. Die Reihenfolge der Rechenschritte ist dann nicht mehr a priori bekannt. Für einen SW-Lockstep bedeutet diese Eigenschaft, dass mögliche Verzweigungspunkte immer auch Synchronisierungspunkte sein müssen. Bei parallelem Einsatz der Recheneinheiten muss dabei immer erst das Ergebnis eines Rechenschrittes validiert sein, bevor der nächste Schritt sicher feststeht und ausgeführt werden kann.
  • Daher kann es für datengetriebene Architekturen effizienter sein, nicht parallel zu rechnen, sondern eine Recheneinheit (ohne Synchronisierung vor-) laufen zu lassen und das erzielte Ergebnis - unter Vorgabe der identischen Ausführungsreihenfolge - auf den anderen Einheiten nach zu rechnen und zu verifizieren. Man hat in diesem Fall also ein Primärmodul, welches die Berechnung auf den untergeordneten Sekundärmodulen vorgibt.
  • Heutige Hardware-Lockstep-fähige Microcontroller erfüllen nicht die Anforderungen an die Rechenleistung, wie sie für das hochautomatisierte Fahren benötigt werden; gleichzeitig erfüllen aktuelle High-Performance-Prozessoren nicht die geforderten ASIL-D Sicherheitseinstufungen.
  • Um trotzdem ein Rechensystem für das hochautomatisierte Fahren zu erhalten, muss man einen Weg finden, die schnellen, aber unsicheren Prozessoren in entsprechender Weise abzusichern. Dazu wird hier vorgeschlagen einen Software-Lockstep zu verwenden.
  • Die simpelste Art und Weise dies zu versuchen, wäre den Software-Lockstep auf einem entsprechenden Mikroprozessor zu verwirklichen. Das würde aber nicht nur dessen Rechenleistung (mindestens) halbieren, sondern hätte auch zwei gravierende Probleme: zum einen könnte man systematische Fehler bei redundantem Rechnen auf der identischen Hardware nicht ausschließen, zum anderen würde ein notwendiger Komparator zum Vergleich der Ausgangsdaten/Berechnungsergebnisse ebenfalls auf der unsicheren Hardware laufen, weshalb man den Ergebnissen nicht ausreichend trauen könnte.
  • Um dieses Problem zu lösen wird hier vorgeschlagen einen Software-Lockstep auf Basis von mindestens zwei Modulen mit voneinander getrennter Hardware und einer Vergleicher-Einheit (Komparator-Modul) zu implementieren, wobei die Vergleicher-Einheit/das Komparator-Modul auf einer zusätzlichen ASIL-D konformen Hardware läuft.
  • Da bei den weiter oben beschriebenen Ansätzen unter Berücksichtigung einer WCET die maximal benötigte Rechenzeit vorgehalten werden muss, diese typischerweise aber nur in Ausnahmen benötigt wird, bleibt in den meisten Schritten Zeit „übrig“, die sich über die Verarbeitungskette des Systems zu einer nicht akzeptablen Latenz aufsummiert und zu einer schlechteren Auslastung der Hardware führt. Die Gefahr bei einem parallelen Software-Lockstep mit einer a priori festgelegten Ausführungsreihenfolge und der Verwendung von WCET ist also, dass die geforderte maximale Latenz im Gesamtsystem nicht erreicht bzw. unterschritten werden kann.
  • Eine deutlich bessere Nutzung könnte man mit einer datengetriebenen Architektur erreichen, wie sie weiter oben beispielsweise mit einem Primärmodul und nachrechnenden Sekundärmodulen aufgebaut sein kann. In einer solchen Architektur wird der jeweils nächste Datenverarbeitungsschritt ad hoc ausgeführt, wobei der genaue Ablauf a priori nicht bekannt sein muss und damit eine hohe Flexibilität besteht.
  • Eine solche Architektur hat allerdings insbesondere für die hier beschriebenen automobilen Anwendungen Nachteile, die im Folgenden kurz erläutert werden sollen:
    • Die Ausführungsreihenfolge wird vom Primärmodul vorgegeben. Die abhängigen Sekundärmodule rechnen gewissermaßen „blind“ nach. Daher kann die Reihenfolge der Ausführung - wenn überhaupt - nur anhand von Invarianten bzw. allgemeiner Regeln überprüft werden. Daraus ergibt sich für den Kontrollfluss dieselbe Sicherheitseinstufung wie für die jeweilige verwendete Hardware einzeln. Ein hohes ASIL-D-Level ist mit solchen Architekturen nicht erreichbar. In anderen Worten: Es kann durch das Nachrechnen mit den Sekundärmodulen zwar nachträglich festgestellt werden, dass die Berechnungen im Primärmodul fehlerhaft gewesen sein könnten - dann ist es jedoch bereits zu spät, weil die Ergebnisse der Berechnungen bereits vorher benötigt worden wären.
  • Der Vergleich der Berechnungen kann immer erst nach Beendigung des redundanten Rechenschrittes und der anschließenden Ergebniskommunikation stattfinden. Die Zeit, bis ein Fehler bei der Berechnung auffällt, hat sich prinzipbedingt verdoppelt. Daraus ergibt sich eine erhöhte Fehlerlatenz, gegebenenfalls auch eine unnötige Latenz im regulären Ablauf.
  • Das heißt, bekannte Ansätze eines Locksteps mit Primärmodul und Sekundärmodul(en) erlauben zwar eine flexiblere und datengetriebene Ausführung, haben aber auch das Problem einer erhöhten Latenz.
  • Das vorgestellte Datenverarbeitungsnetzwerk und damit implementierte Datenverarbeitungsverfahren ermöglichen eine ausreichende Performance für das hochautonome Fahren. Das vorgestellte Datenverarbeitungsnetzwerk ermöglicht eine kombinierte Zeit- als auch Daten-getriebene Architektur. D.h. es ist im Vergleich zu Ansätzen mit einer a priori festgelegten Ausführungsreihenfolge eine flexible Ausführungsreihenfolge im Software-Lockstep möglich.
  • Dazu wird ein parallel durchgeführter, aber nicht auf Zeitscheiben basierender Software-Lockstep-Ansatz gewählt, der auf mindestens zwei Mikroprozessoren (dem ersten Datenverarbeitungsmodul und dem zweiten Datenverarbeitungsmodul) als Recheneinheiten und einer Kontrollkomponente verwirklicht wird, die auf einer zusätzlichen, vertrauenswürdigen Hardware (dem Komparator-Modul) läuft.
  • Diese der Sicherheitszielnorm entsprechende Kontrolleinheit synchronisiert den Ablauf auf den Recheneinheiten und vergleicht deren Ergebnisse.
  • Im Vergleich zum Primär/Sekundärmodul-Lockstep werden die redundanten Berechnungsschritte (quasi) gleichzeitig verarbeitet, ergeben somit keine Kaskade und damit ein besseres Latenzverhalten (siehe ).
  • Anstatt die kompletten Datenpakete zum Vergleicher zu senden, ist es in dem hier beschriebenen Datenverarbeitungsnetzwerk auch möglich nur die Quersummen der Daten(-pakete) als Kontrollparameter von den Datenverarbeitungsmodulen zum Komparatormodul zu übertragen, was ggf. den Kommunikationsaufwand deutlich vermindern kann.
  • Durch diese Optimierungen und den gemischten, also Daten- und Zeitgetriebenen Betrieb wird eine gute und effiziente Auslastung der Hardware erreicht.
  • Aus Sicht einer Sicherheitsarchitektur entspricht der Aufbau des beschriebenen Datenverarbeitungsnetzwerks der Dekomposition einer sicherheitskritischen Aufgabe. Für die einzelnen Recheneinheiten ergibt sich daraus eine reduzierte ASIL-Anforderung, so dass sich bereits mit heute existierenden High-Performance-Prozessoren eine ASIL-D Einstufung des Gesamtsystems erreichen lässt.
  • Um das beschriebene Datenverarbeitungsnetzwerk für die Ausführung einer Software anwenden zu können, bestehen folgende Voraussetzungen:
    • - alle Daten- und alle relevanten Kontrollevents werden auf einen Zeitstrahl oder einer dazu äquivalenten Struktur, wie z.B. eine Event-Queue, abgebildet. Der Zeitstrahl kann auch als „Common Logical Timeline“ bezeichnet werden.
    • - jeder Berechnungsschritt, der durch ein Kontrollevent gestartet wird, ist Daten-deterministisch. D.h. bei gleichem Startzustand führen identische Eingangsdaten auch immer zu den gleichen Ausgangsdaten.
  • Die wesentliche Besonderheit des hier beschriebenen Verfahrens ist, dass gezielt (je nach Anforderung an die Sicherheit der jeweiligen Berechnungen in einem einzelnen Datenverarbeitungsschritt bzw. einer bestimmten (Teil-)Sequenz von Datenverarbeitungsschritten zwischen der ersten Arbeitsweise mit parallelem Betrieb oder der zweiten Arbeitsweise mit vorrechnendem Datenverarbeitungsmodul und nachrechnendem Datenverarbeitungsmodul gewechselt werden kann.
  • Die erste Arbeitsweise entsprechend dem beschriebenen Lockstep-Ansatz, während die zweite Arbeitsweise der weiter oben beschriebenen Arbeitsweise mit einem vorrechnendem Primärmodul und abhängigen nachrechnenden Sekundärmodulen entspricht. In dieser Arbeitsweise kann temporär eine besonders hohe Performance erreicht werden, weil das vorrechnende Datenverarbeitungsmodul im Wesentlichen unbeeinflusst von dem zweiten Datenverarbeitungsmodul und dem Komparatormodul arbeiten kann wie eine übliche Hochleistungshardware. Die Besonderheit des hier beschriebenen Datenverarbeitungsnetzwerks besteht darin, dass dieser Performance-Vorteil Temporär genutzt werden kann und gleichzeitig als übergeordnete Struktur der Aufbau mit zwei parallel rechnenden Datenverarbeitungsmodulen und einem Komparatormodul vorhanden ist, so dass insbesondere für sicherheitskritische Aspekte die gewünschten hohen ASIL-Level erreicht werden können.
  • In diesem Zusammenhang ist es besonders vorteilhaft, wenn das Datenverarbeitungsnetzwerk einen Scheduling-Recorder aufweist, der bei einem Betrieb gemäß der zweiten Arbeitsweise dazu eingerichtet ist Sequenzdaten betreffend die Sequenz von aufeinanderfolgenden Datenverarbeitungsschritten aufzuzeichnen und dem nachrechnenden Datenverarbeitungsmodul zur Nachberechnung der Sequenz von Datenverarbeitungsschritten zur Verfügung zu stellen.
  • Der Einführung des Scheduling-Recorders liegt die Erkenntnis zu Grunde, dass die Reihenfolge der Ausführung der einzelnen Datenverarbeitungsschritte innerhalb einer Sequenz unter Umständen je nach Daten, die verarbeitet werden bzw. die während der Datenverarbeitung entstehen, variabel sein kann. Um ein fehlerfreies Nachrechnen der Datenverarbeitungsschritte zu ermöglichen ist es aus diesem Grund unter Umständen erforderlich diese Reihenfolge als Sequenzdaten aufzuzeichnen für die Nachberechnung in dem nachrechnenden Datenverarbeitungsmodul zur Verfügung zu stellen.
  • Bevorzugt ist das Datenverarbeitungsnetzwerk so eingerichtet, dass Situationsabhängig (je nach Anforderung) zwischen der ersten Arbeitsweise und der zweiten Arbeitsweise gewechselt werden kann. In Ausführungsvarianten ist für bestimmte Datenverarbeitungsschritte innerhalb des Datenverarbeitungsnetzwerks festgelegt, ob diese gemäß der ersten Arbeitsweise oder gemäß der zweiten Arbeitsweise bearbeitet werden. Es sind allerdings auch Varianten möglich, bei denen für bestimmte Datenverarbeitungsschritte situationsabhängig (beispielsweise in Abhängigkeit einer vorliegenden Betriebssituation/Fahrsituation eines Kraftfahrzeugs in/für welches das beschriebene Verfahren betrieben wird) eine bestimmte Art der Datenverarbeitung ausgewählt werden kann.
  • Besonders vorteilhaft ist es, wenn der Vergleich der Kontrollparameter eine Identitätsprüfung umfasst und ein synchronisierter Kontrollparameter eine Identität der Kontrollparameter von dem ersten Datenverarbeitungsmodul und dem zweiten Datenverarbeitungsmodul voraussetzen.
  • Außerdem ist es vorteilhaft, wenn das Datenverarbeitungsnetzwerk dazu eingerichtet ist von dem Komparatormodul bereitgestellte synchronisierte Kontrollparameter zu verwenden, um eine weitere Datenverarbeitung der Ausgangsdaten mit weiteren Datenverarbeitungsschritten des Datenverarbeitungsnetzwerks zu steuern.
  • Darüber hinaus ist es vorteilhaft, wenn der synchronisierte Kontrollparameter ein Validitätsparameter ist, welcher eine Validitätsinformation bezüglich mindestens eines durchgeführten Datenverarbeitungsschrittes beinhaltet.
  • Außerdem ist es vorteilhaft, wenn das Datenverarbeitungsnetzwerk mindestens ein Sequentialisierungsmodul aufweist, welches jeweils dazu eingerichtet ist Kontrollparameter von den Datenverarbeitungsmodulen und/oder den Datenverarbeitungsschritten zu sortieren und zu synchronisieren und diese dann mit einer Sortierung an das Komparatormodul weiterzuleiten, damit das Komparatormodul synchronisierte Kontrollparameter unabhängig von der Reihenfolge ermitteln kann, in der die Datenverarbeitungsmodule die Datenverarbeitungsschritte ausgeführt haben.
  • Das Sequentialisierungsmodul dient insbesondere dazu nachzuvollziehen in welcher Reihenfolge Datenverarbeitungsschritte in den einzelnen Datenverarbeitungsmodulen und insbesondere auf der jeweils zur Verfügung stehenden Hardware abgeschlossen sind. Auf diese Art- und Weise kann eine Verfügbarkeit der Hardware zur Durchführung weiterer Datenverarbeitungsaufgaben festgestellt werden. Das Sequentialisierungsmodul ist jeweils dem Datenverarbeitungsmodul zugeordnet und übermittelt den Kontrollparameter an das Komparatormodul bzw. die (dritte) Hardwarekomponente auf welcher das Komparatormodul betrieben wird.
  • Zusätzlich existiert bevorzugt ein Synchronizer, der jeweils zueinander gehörende (sich so lange kein Fehler aufgetreten ist genau entsprechende) Kontrollparameter der beiden Datenverarbeitungsmodule miteinander synchronisiert und ggf. Kontrollparametertupel bildet, die dem Komparatormodul zugeführt werden. Der Synchronizer und das Komparatormodul bilden bevorzugt gemeinsam eine Zentraleinheit, die auf einer (dritten) Hardware-Komponente betrieben wird. Durch den Synchronizer wird eine Flexibilität in der Ausführungsreihenfolge der Datenverarbeitungsschritte erreicht. Die Hardware des jeweiligen Datenverarbeitungsmoduls kann (wenn diese Hardware mit der Durchführung eines Datenverarbeitungsschrittes fertig ist) auch genutzt werden, um weitere Datenverarbeitungsschritte durchzuführen.
  • Da auf dem ersten Datenverarbeitungsmodul und dem zweiten Datenverarbeitungsmodul der gleiche Datenverarbeitungsschritt durchgeführt wird, werden bei erfolgreichem Ablauf auf jedem die gleichen Kontroll- und Datenereignisse wie auf dem anderen erzeugt, können aufgrund der parallelen Verarbeitung auf den Einheiten aber in unterschiedlicher Reihenfolge generiert werden.
  • Die Zentraleinheit (bestehend aus Komparatormodul und Synchronizer) speichert nun Events (Kontrollparameter) zwischen, bis von allen Datenverarbeitungsmodulen das passende Event (der entsprechende Kontrollparameter) angekommen ist. Die zusammengehörigen Kontrollparameter können dann verglichen und bei Gleichheit ausgewertet werden bzw. es kann der synchronisierte Kontrollparameter ausgegeben werden.
  • Bevorzugt existiert zusätzlich ein Aufgabenverteilungsmodul, welches dann anschließend beim Vorliegen von synchronisierten Kontrollparametern von dem Hardwaremodul das Starten der einzelnen (nächsten) Datenverarbeitungsschritte auf der jeweiligen Hardware plant und beauftragt, so dass eine besonders gute Auslastung der Hardware erreicht werden kann.
  • Das Aufgabenverteilungsmodul setzt bevorzugt eine Art Stimuli an die einzelnen Datenverarbeitungsmodule ab, um diese zu aktivieren. Durch den Einsatz der Zentraleinheit bzw. der dritten Hardwarekomponente und des Komparatormoduls tritt zwar eine geringfügige Erhöhung der Latenz zwischen der Durchführung von zwei Datenverarbeitungsaufgaben auf. Insgesamt ist diese Steigerung der Latenz jedoch akzeptabel, insbesondere im Vergleich zu üblichen Primär/Sekundär- Mod ul- Architektu ren.
  • Für den Fall, dass die Zentraleinheit bzw. der Synchronizer und die Sequentialisierungs-module und das Komparatormodul keine eindeutige Reihenfolge der empfangenen Kontrollparameter/Events feststellen können, so kann ein Fehlerfall festgestellt werden. Je nach Anwendungsfall kann dies ein erneutes Nachrechnen oder einen Abbruch der Datenverarbeitung mit dem Datenverarbeitungsnetzwerk nach sich ziehen.
  • Stimuli werden von der Zentraleinheit in gewisser Weise aufgefunden. Immer dann, wenn von dem Komparatormodul ein korrektes Berechnungsergebnis durch den Vergleich von Kontrollparametern ermittelt wurde und ein synchronisierter Kontrollparameter berechnet werden konnte, kann dies ddies einen Stimulus erzeugen, vorausgesetzt der Kontrollfluss des Datenverarbeitungsnetzwerks gibt dies vor. Mit bzw. von diesem Stimulus kann dann eine weitere Datenverarbeitung ausgelöst werden, die mit dem jeweiligem ersten Datenverarbeitungsmodul und dem jeweiligen zweiten Datenverarbeitungsmodul berechnete Ausgangsdaten als Eingangsdaten benötigt.
  • Daneben können Zeit-.Events als Stimuli für eine zeitgetriebene Ausführung generiert werden.
  • Die Zentraleinheit verwaltet gewissermaßen den weiter oben schon beschriebenen Zeitstrahl (Common Logical Timeline) der Datenverarbeitung.
  • Damit ergibt sich im Erfolgsfall ein Ergebnis-identischer Ablauf auf allen Recheneinheiten, daten- wie auch zeitgetrieben, trotz möglicher Unterschiede in den lokalen Ausführungsreihenfolgen.
  • Vorteilhaft ist es, wenn erste Datenverarbeitungsmodule mit ersten Hardwarekomponenten und zweite Datenverarbeitungsmodule mit zweiten Hardwarekomponenten realisiert sind, wobei erste Hardwarekomponenten und zweite Hardwarekomponenten physisch voneinander getrennt sind.
  • Auch ist es vorteilhaft, wenn mindestens eines der Datenverarbeitungsmodule eine Hardwarekomponente aufweist, die nicht ASIL-D konform ist.
  • Besonders vorteilhaft ist es, wenn beide Hardwarekomponenten der Datenverarbeitungsmodule nicht ASIL-D konform sind.
  • Außerdem ist es vorteilhaft, wenn das Komparatormodul mit dritten Hardwarekomponenten realisiert ist, welche physisch von den ersten Hardwarekomponenten und den zweiten Hardwarekomponenten getrennt ist.
  • In diesem Zusammenhang ist es vorteilhaft, wenn die dritte Hardwarekomponente ASIL-D-konform ist.
  • Auch ist es vorteilhaft, wenn das Komparatormodul einen Datenspeicher aufweist, in welchem ermittelte Kontrollparameter mit Zeitinformationen abgelegt werden, so dass ein logischer Zeitstrahl entsteht, welcher die Reihenfolge der Abarbeitung der Datenverarbeitungsschritte mit den Datenverarbeitungsmodulen des Datenverarbeitungsnetzwerks abbildet.
  • In diesem Zusammenhang ist es auch vorteilhaft, wenn eine Hardwarekomponente der Datenverarbeitungsmodule deutlich leistungsstärker ist als eine Hardwarekomponente des Komparatormoduls. Die möglichen Leistungsunterschiede zwischen der dritten Hardwarekomponente des Komparatormoduls und den (ersten und zweiten) Hardwarekomponenten der Datenverarbeitungsmodule richten sich nach dem jeweiligen Anwendungsfall des Datenverarbeitungsnetzwerks. Üblich ist beispielsweise, dass ein Prozessortakt der erste und zweiten Hardwarekomponente mindestens 5 mal ggf. sogar 10 mal so groß ist, wie der Prozessortakt der dritten Hardwarekomponente.
  • Um die Kommunikationsstrecke zwischen den Datenverarbeitungsmodulen und der Zentraleinheit (Komparatormodul und ggf. Sequentialsierungsmodul und Aufgabenverteilungsmodul) zu entlasten, können für große Datenmengen als Ausgangsdaten ggf. Kontrollparameter als deren Quersumme (CRC) berechnet werden und nur diese werden zusammen mit der eindeutigen Paket-Identifikation (alias Meta-Sample) als Kontrollparameter an das Komparatormodul gesendet. Der eigentliche Fluss von Ausgangsdaten eines Datenverarbeitungsschrittes als Eingangsdaten zum nächsten Datenverarbeitungsschritt kann auf der ersten Hardwarekomponente und der zweiten Hardwarekomponente (und ggf. auch noch auf weiteren Hardwarekomponenten) unabhängig voneinander bzw. parallel zueinander stattfinden, wobei ggf. Datenübertragungsschnittstellen zwischen verschiedenen Hardwarekomponenten existieren, die auch unabhängig von der Zentraleinheit bzw. dem Komparatormodul sind. Die Zentraleinheit bzw. das Komparatormodul überprüft dann nicht die Originaldaten, sondern bspw. deren Quersummen, was zu einem Bit-weisen Vergleich des Originalinhalts führt. Dabei ist zu beachten, dass die erste Hardwarekomponente und die zweite Hardwarekomponente die originalen Datenpakete zwischenpuffern müssen, bis sie vom Vergleicher bestätigt sind und ausgeliefert werden können.
  • Da die hier vorgeschlagene Berechnung der Quersummen als Kontrollparameter zur Übergabe an das Komparatormodul auch einen nicht zu vernachlässigenden Ressourcenverbrauch darstellt, ist es auch möglich, dass je nach Datenmenge der Ausgangsdaten entschieden wird, ob ein unmittelbarer Vergleich der Ausgangsdaten oder ein Vergleich von Quersummen der Ausgangsdaten erfolgt.
  • Besonders vorteilhaft ist es, wenn der Vergleich der Kontrollparameter eine Prüfung umfasst, ob ein bei der Datenverarbeitung im ersten Datenverarbeitungsmodul und/oder im zweiten Datenverarbeitungsmodul aufgetretener Fehler unterhalb einer Toleranzgrenze liegt und in diesem Fall der synchronisierte Kontrollparameter erzeugt wird. Dies bedeutet insbesondere, dass in solchen Fällen der synchronisierte Kontrollparameter ggf. erzeugt wird, obwohl ein Fehler aufgetreten ist, der allerdings unterhalb der Toleranzgrenze liegt.
  • Hier auch beschrieben werden soll ein Verfahren zum Betrieb eines beschriebenen Datenverarbeitungsnetzwerks, aufweisend zumindest die folgenden Schritte:
    1. a) Festlegen, ob eine Sequenz von aufeinanderfolgenden Datenverarbeitungsschritten mit einer ersten Arbeitsweise mit parallelem Betrieb des ersten Datenverarbeitungsmoduls und des zweiten Datenverarbeitungsmoduls oder mit einer zweiten Arbeitsweise mit einem vorrechnenden Datenverarbeitungsmodul und einem nachrechnenden Datenverarbeitungsmodul betrieben werden soll,
    2. b) Betreiben des ersten Datenverarbeitungsmoduls und des zweiten Datenverarbeitungsmoduls gemäß der ersten Arbeitsweise oder gemäß der zweiten Arbeitsweise zur Durchführung der Datenverarbeitungsschritte, wobei in der ersten Arbeitsweise der folgende Schritt c1) nach jedem Datenverarbeitungsschritt durchgeführt wird und wobei bei der zweiten Arbeitsweise der folgende Schritt c2) nach dem Abschluss der Sequenz von aufeinanderfolgenden Datenverarbeitungsschritten durchgeführt wird:
      • c1) Durchführen eines Vergleichs entsprechender Kontrollparameter, die von dem ersten Datenverarbeitungsmodul und dem zweiten Datenverarbeitungsmodul übermittelt wurden mit einem Komparatormodul und basierend auf diesem Vergleich, das Bereitstellen mindestens eines synchronisierten Kontrollparameter, welcher eine Kontrollinformation bezüglich mindestens eines durchgeführten Datenverarbeitungsschrittes beinhaltet, und
      • c2) Nachberechnung der Sequenz von Datenverarbeitungsschritten in dem nachrechnenden Datenverarbeitungsmodul anhand von Kontrollparameter, die bei der Berechnung der Sequenz von Datenverarbeitungsschritten in dem vorrechnenden Datenverarbeitungsmodul ermittelt wurden und Durchführen eines Vergleichs der Berechnungen mit dem Komparatormodul und basierend auf diesem Vergleich Bereitstellen mindestens einen synchronisierten Kontrollparameter, welcher eine Kontrollinformation bezüglich mindestens eines durchgeführten Sequenz von Datenverarbeitungsschritten beinhaltet.
  • Das beschriebene Datenverarbeitungsnetzwerk sowie das technische Umfeld werden nachfolgend anhand der Figuren erläutert. Die Figuren zeigen bevorzugte Ausführungsbeispiele, die auf die Offenbarung nicht begrenzt sind. Die Figuren sind nur schematisch und sie verdeutlichen jeweils einzelne Aspekte des beschriebenen Datenverarbeitungsnetzwerks. Es zeigen:
    • 1: ein beschriebenes Datenverarbeitungsnetzwerk;
    • 2: eine Bearbeitung der einzelnen Datenverarbeitungsschritte auf einem logischen Zeitstrahl;
    • 3: die Bearbeitung eines einzelnen Datenverarbeitungsschrittes mit den verschiedenen Datenverarbeitungsmodulen,
    • 4: eine Darstellung der zweiten Arbeitsweise des beschriebenen Datenverarbeitungsnetzwerks, und
    • 5: ein Ablaufdiagramm des beschriebenen Verfahrens;
  • 1 zeigt ein beschriebenes Datenverarbeitungsnetzwerk 1 in einem Kraftfahrzeug 23. Beispielhaft ist hier gezeigt, dass das Datenverarbeitungsnetzwerk 1 zur Verarbeitung von Daten von Sensoren 19 dient und von dem System ein Ausgangsdatenempfänger 20 mit Daten versorgt wird. Ein solcher Ausgangsdatenempfänger 20 kann beispielsweise ein System für einen autonomen Fahrbetrieb oder ein ähnliches System sein. Das Datenverarbeitungsnetzwerk 1 dient beispielsweise zur Reduktion der Sensordaten auf entscheidungserhebliche Parameter, die Ausgangsdaten 4 des Datenverarbeitungs-netzwerks 1 sein können. In der Darstellung in 1 ist der Schwerpunkt auf die parallele erste Arbeitsweise des Datenverarbeitungsnetzwerks gelegt.
  • Mit dem Datenverarbeitungsnetzwerk 1 sind hier auch Hardwarekomponenten umfasst, auf denen das Datenverarbeitungsnetzwerk 1 bzw. dessen Komponenten und Module betrieben werden können.
  • Das Datenverarbeitungsnetzwerk 1 führt einzelne Datenverarbeitungsschritte 2 aus, die aufeinander aufbauen. Ausgangsdaten 4 eines Datenverarbeitungsschrittes 2 können Eingangsdaten 3 eines weiteren Datenverarbeitungsschrittes 2 sein. Jeder Datenverarbeitungsschritt 2 wird hier mit mehreren möglichst unabhängig voneinander ausgeführten Datenverarbeitungsmodulen 5,6 realisiert. Hier sind jeweils ein erstes Datenverarbeitungsmodul 5 und ein zweites Datenverarbeitungsmodul 6 gezeigt. Es können auch mehr als zwei Datenverarbeitungsmodule vorgesehen sein, die einen Datenverarbeitungsschritt 2 (parallel) durchführen.
  • Das Datenverarbeitungsnetzwerk 1 umfasst noch weitere Komponenten, die anhand der weiteren Figuren noch detailliert erläutert werden. Dazu gehört insbesondere das Komparatormodul 7 und ggf. auch ein Synchronizer 27, die hier nur schematisch mit angedeutet sind. Schematisch in 1 ebenfalls angedeutet ein Scheduling-Recorder 30, welcher zur Aufzeichnung einer Scheduling-Reihenfolge der Ausführung der einzelnen Datenverarbeitungsschritte 2 dient. Der Scheduling-Recorder gewinnt insbesondere an Bedeutung, wenn das Datenverarbeitungsnetzwerk in der zweiten Arbeitsweise betrieben wird, weil dann ein Scheduling unter Umständen sehr wichtig wird, um eine Nachberechnung der vorberechneten Sequenz von Datenverarbeitungsschritten in dem nachrechnenden Datenverarbeitungsmodul zu ermöglichen.
  • 2 wählt eine andere Darstellung des beschriebenen Datenverarbeitungsnetzwerks 1 in der ersten Arbeitsweise. In der 2 sind untereinander drei Pfeile dargestellt, die die einzelnen Hardwarekomponenten definieren und die gleichzeitig auch die einzelnen Verfahrensschritte a), b) und c) des beschriebenen Verfahrens wiedergeben. Die Pfeile bieten gleichzeitig eine Darstellung der Abläufe auf den jeweiligen Hardwarekomponenten auf einem logischen Zeitstrahl 17. Der obere Pfeil ist eine erste Hardwarekomponente 12 auf welchem erste Datenverarbeitungsmodule 5 implementiert sind. Der untere Pfeil ist eine zweite Hardwarekomponente 13 auf der zweite Datenverarbeitungsmodule 6 implementiert sind. Der mittlere Pfeil ist eine dritte Hardwarekomponente 14 auf welcher das Komparatormodul 7 realisiert ist. In ersten Datenverarbeitungsmodulen 5 und zweiten Datenverarbeitungsmodulen 6 werden jeweils Datenverarbeitungsschritte 2 des Datenverarbeitungsnetzwerks 1 ausgeführt. Immer wenn ein Datenverarbeitungsschritt 2 abgeschlossen ist, wird ein Kontrollparameter 8 an das Komparatormodul 7 übermittelt, welches dann durch einen Vergleich der Kontrollparameter 8 erkennt, ob der Datenverarbeitungsschritt 2 korrekt (d.h. fehlerfrei) ausgeführt wurde. Das Komparatormodul 7 erzeugt dann synchronisierte Kontrollparameter 9, die zur Auslösung weiterer Datenverarbeitungsschritte 2 verwendet werden, welche dann hier (hier nicht dargestellte) Ausgangsdaten vorangegangener Datenverarbeitungsschritte 2 weiterverarbeiten. Das Komparatormodul 8 und die zugehörigen Komponenten können auch als Zentraleinheit 24 des beschriebenen Datenverarbeitungsnetzwerks 1 verstanden werden. Die synchronisierten Kontrollparameter 9 können als Stimuli 25 für die Auslösung weiterer Datenverarbeitungsschritte 2 verstanden werden.
  • In 3 ist die parallele Bearbeitung eines Datenverarbeitungsschrittes 2 gemäß der ersten Arbeitsweise durch ein erstes Datenverarbeitungsmodul 5 und durch ein zweites Datenverarbeitungsmodul 6 noch detaillierter dargestellt. Zu erkennen ist, dass das erste Datenverarbeitungsmodul 5 auf einer ersten Hardwarekomponente 12 realisiert ist, während das zweite Datenverarbeitungsmodul 6 auf einer zweiten Hardwarekomponente 13 realisiert ist. Das erste Datenverarbeitungsmodul 5 und das zweite Datenverarbeitungsmodul 6 verarbeiten jeweils dieselben Eingangsdaten 3 und es soll auch jeweils dieselben Ausgangsdaten 4 erzeugen.
  • Ein Datenverarbeitungsschritt 2 bzw. ein Datenverarbeitungsmodul 5, 6 kann in sich nochmal in eine Mehrzahl von einzelnen Datenverarbeitungskomponenten 18 untergliedert sein, welche jeweils Unterschritte der Datenverarbeitung betreffen. Der Datenverarbeitungsschritt 2 bzw. das Datenverarbeitungsmodul 5, 6 wie sie hier definiert sind betreffen also schon je nach Anwendungsfall sinnvoll gewählte bzw. festgelegte Vorgruppierungen von Unterschritten, die mit den Datenverarbeitungskomponenten 18 ausgeführt werden. Die Vorgruppierung von Unterschritten ist bevorzugt so gewählt, dass keine Datenspeicherung innerhalb eines Datenverarbeitungsschrittes 2 bzw. eines Datenverarbeitungsmoduls 5,6 erforderlich ist und das für die Ausführung insbesondere nicht auf andere Daten als die Eingangsdaten zugegriffen wird.
  • Das erste Datenverarbeitungsmodul 5 und das zweite Datenverarbeitungsmodul 6 erzeugen jeweils Kontrollparameter 8, die von dem Komparatormodul 7 ausgewertet werden. Das Komparatormodul 7 ist auf einer dritten Hardwarekomponente 14 realisiert, welche von der ersten Hardwarekomponente 12 und der zweiten Hardwarekomponente 13 unabhängig ist, welche eine Zentraleinheit 24 bildet und welche bevorzugt die weiter oben schon beschriebene höhere Sicherheit (höheres ASIL-Level) der Ausführung bietet. In bevorzugten Ausführungsvarianten ist jedem Datenverarbeitungsmodul 5, 6 jeweils noch ein Sequentialisierungsmodul 11 zur Gewinnung der Kontrollparameter 8 aus der Datenverarbeitung und dem Komparatormodul 7 hier noch ein Synchronizer 27 vorgeschaltet. Zusätzlich kann dem Komparatormodul 7 ein Aufgabenverteilungsmodul 22 nachgeschaltet sein, welches synchronisierte Kontrollparameter 9 bzw. Stimuli 25 zur Auslösung weiterer Datenverarbeitungsschritte 2 ausgibt. Synchronizer 27, Komparatormodul 7 und Aufgabenverteilungsmodul 22 können gemeinsam auf der dritten Hardwarekomponente 14 als die beschriebene Zentraleinheit 24 realisiert sein. Bevorzugt wird das beschriebene Datenverarbeitungsnetzwerk 1 so betrieben, dass Datenverarbeitungsschritte 2 auf der jeweils verfügbaren und nicht vollständig ausgelasteten Hardware ausgeführt werden. Das Aufgabenverteilungsmodul 22 kann diese Verteilung der Datenverarbeitungsschritte 2 auf die verfügbare Hardware veranlassen. Darüber hinaus dauert die Ausführung der durchgeführten Datenverarbeitungsschritte 2 auf jeder Hardware unterschiedlich lange. Durch den Synchronizer 27 wird eine Sortierung der eintreffenden Kontrollparameter 8 erreicht, so dass das Komparatormodul 7 dann auch bei einer hohen Auslastung der Hardware jeweils die richtigen Kontrollparameter 8 miteinander vergleicht, um korrekte synchronisierte Kontrollparameter 9 zu erzeugen. Dazu werden die Kontrollparameter 8 als Kontrollparametertupel 28 von dem Synchronizer 27 an das Komparatormodul 7 übergeben. Es ist nicht erforderlich, dass Eingangsdaten 3 und Ausgangsdaten 4 jeweils über die Zentraleinheit 24 bzw. das Komparatormodul 7 von einem Datenverarbeitungsschritt 2 zum nächsten Datenverarbeitungsschritt 2 übergeben werden. Zu diesem Zweck können auch zusätzliche Datenübertragungsschnittstellen 26 zwischen den Datenverarbeitungsmodulen 5,6 bzw. den jeweiligen Hardwarekomponenten 12, 13 existieren, die unabhängig von dem Komparatormodul 7 existieren. Auf über diese Datenübertragungsschnittstellen 26 bereitgestellte Daten wird bevorzugt dann zugegriffen, wenn mit Hilfe des Komparatormoduls 7 eine fehlerfreie Bearbeitung des jeweiligen Ausgangsdaten 4 erzeugenden Datenverarbeitungsschrittes 2 in beiden Datenverarbeitungsmodulen 5, 6 festgestellt wurde.
  • In 4 ist für eine Sequenz 29 von drei Datenverarbeitungsschritten 2 gezeigt, wie wahlweise eine zweite Arbeitsweise realisiert sein kann. Zu erkennen ist, dass die Sequenz von Datenverarbeitungsschritten mit dem ersten Datenverarbeitungsmodul 5 ausgeführt wird. Mit 5.1, 5.2 und 5.3 sind hier jeweils mehrere entlang des Datenflusses durch das Datenverarbeitungsnetzwerk 1 hintereinander angeordnete Datenverarbeitungsmodule 5 dargestellt, die jeweils eine Mehrzahl von Datenverarbeitungsschritten 2 umfassen. Zu erkennen ist, dass die mit dem Datenverarbeitungsmodul 5.1 ausgeführte Sequenz 29 mit dem (nachrechnenden) zweiten Datenverarbeitungsmodul 6 nachgerechnet wird und ein Vergleich der Kontrollparameter 8 mit dem Komparatormodul 7 erst nachträglich durchgeführt wird. Wenn das Komparatormodul 7 ermittelt, das alles in Ordnung läuft das beschriebene Datenverarbeitungsnetzwerk ganz normal weiter. Wenn das Komparatormodul 7 einen Fehler feststellt, der üblicherweise in einer Abweichung zwischen den Kontrollparameter 8 besteht, wird ein Fehlersignal 31 ausgelöst.
  • Das hier dargestellten nächsten ersten Datenverarbeitungsmodul 5.2 und 5.3 können wieder in der ersten Arbeitsweise im parallelen Betrieb mit hier nicht dargestellten zweiten Datenverarbeitungsmodulen 6.2 und 6.3 betrieben werden. Wenn in dem Komparatormodul 7 festgestellt wird, dass die Berechnung der Sequenz 29 korrekt war, läuft alles ganz normal weiter. Wenn ein Fehlersignal 31 auftritt, sind derartige auf der Berechnung der Sequenz 29 aufgebauten Datenverarbeitungsschritte 2 unter Umständen zu verwerfen.
  • In 5 ist noch eine andere Darstellung des beschriebenen Verfahrens gewählt, bei welcher die Verfahrensschritte a), b) und c) für jeden Datenverarbeitungsschritt 2 jeweils durchgeführt werden. Es erfolgt immer die Ausführung der eigentlichen Datenverarbeitungsschritte 2 redundant zueinander mit dem ersten Datenverarbeitungsmodul 5 und mit dem zweiten Datenverarbeitungsmodul 6. Anschließend erfolgt jeweils mit dem Komparatormodul 7 eine Prüfung, ob der Datenverarbeitungsschritt 2 korrekt ausgeführt wurde bevor ein nächster Datenverarbeitungsschritt 2 gestartet wird.

Claims (14)

  1. Datenverarbeitungsnetzwerk (1) zur redundanten und validierten Durchführung einer Mehrzahl von aufeinanderfolgenden Datenverarbeitungsschritten (2), die jeweils dazu dienen aus Eingangsdaten (3) Ausgangsdaten (4) zu generieren, wobei Ausgangsdaten (3) eines ersten Datenverarbeitungsschrittes (2) zumindest teilweise gleichzeitig Eingangsdaten (3) eines weiteren Datenverarbeitungsschritten (2) sind, wobei für die Durchführung jedes Datenverarbeitungsschrittes (2) mindestens ein erstes Datenverarbeitungsmodul (5) und ein zweites Datenverarbeitungsmodul (6) vorgesehen sind, wobei das Datenverarbeitungsnetzwerk (1) weiter ein Komparatormodul (7) aufweist, wobei die ersten Datenverarbeitungsmodule (5) und die zweiten Datenverarbeitungsmodule (6) dazu eingerichtet sind Datenverarbeitungsschritte (2) wahlweise in einer ersten Arbeitsweise mit parallelem Betrieb oder in einer zweiten Arbeitsweise mit einem vorrechnenden Datenverarbeitungsmodul (5,6) und einem nachrechnenden Datenverarbeitungsmodul (6,5) durchzuführen, - wobei bei der ersten Arbeitsweise mit parallelem Betrieb Kontrollparameter (8) der einzelnen Datenverarbeitungsschritte (2) an das Komparatormodul (7) übermittelt werden und das Komparatormodul (7) dazu eingerichtet ist mindestens einen Vergleich sich entsprechender Kontrollparameter (8), die von den ersten Datenverarbeitungsmodulen (5) und den zweiten Datenverarbeitungsmodulen (6) übermittelt wurden, durchzuführen und basierend auf diesem Vergleich mindestens einen synchronisierten Kontrollparameter (9) bereitzustellen, welcher eine Kontrollinformation bezüglich mindestens eines durchgeführten Datenverarbeitungsschrittes (2) beinhaltet, - und wobei bei der zweiten Arbeitsweise mit einem vorrechnenden Datenverarbeitungsmodul (5,6) und einem nachrechnenden Datenverarbeitungsmodul (6,5), eine Sequenz (29) von aufeinanderfolgenden Datenverarbeitungsschritte (2) im vorrechnenden Datenverarbeitungsmodul (5,6) ausgeführt wird, ohne das zwischen den Datenverarbeitungsschritten (2) Kontrollparameter (8) an das Komparatormodul (7) übermittelt und dort zur Überprüfung verglichen werden, wobei nach der Durchführung der Sequenz (29) von aufeinanderfolgenden Datenverarbeitungsschritten (2) Kontrollparameter (8) an das Komparatormodul (7) übermittelt werden, mit denen eine Nachberechnung der Sequenz von Datenverarbeitungsschritten (2) in dem nachrechnenden Datenverarbeitungsmodul (6,5) veranlasst wird.
  2. Datenverarbeitungsnetzwerk (1) nach Anspruch 1, aufweisend einen Scheduling-Recorder (30), der bei einem Betrieb gemäß der zweiten Arbeitsweise dazu eingerichtet ist Sequenzdaten betreffend die Sequenz von aufeinanderfolgenden Datenverarbeitungsschritten (2) aufzuzeichnen und dem nachrechnenden Datenverarbeitungsmodul (6,5) zur Nachberechnung der Sequenz von Datenverarbeitungsschritten (2) zur Verfügung zu stellen.
  3. Datenverarbeitungsnetzwerk (1) nach Anspruch 1 oder 2, wobei der Vergleich der Kontrollparameter (8) eine Identitätsprüfung umfasst und ein synchronisierter Kontrollparameter (9) eine Identität der Kontrollparameter (8) von dem ersten Datenverarbeitungsmodul (5) und dem zweiten Datenverarbeitungsmodul (6) voraussetzen.
  4. Datenverarbeitungsnetzwerk (1) nach einem der vorhergehenden Ansprüche dazu eingerichtet von dem Komparatormodul (7) bereitgestellte synchronisierte Kontrollparameter (9) zu verwenden, um eine weitere Datenverarbeitung der Ausgangsdaten mit weiteren Datenverarbeitungsschritten (10) des Datenverarbeitungsnetzwerks (1) zu steuern.
  5. Datenverarbeitungsnetzwerk (1) nach einem der vorhergehenden Ansprüche, wobei der synchronisierte Kontrollparameter (9) ein Validitätsparameter ist, welcher eine Validitätsinformation bezüglich mindestens eines durchgeführten Datenverarbeitungsschrittes (2) beinhaltet.
  6. Datenverarbeitungsnetzwerk (1) nach einem der vorhergehenden Ansprüche aufweisend weiter mindestens ein Sequentialisierungsmodul (11), welches dazu eingerichtet ist Kontrollparameter (8) von den Datenverarbeitungsmodulen (5,6) und/oder den Datenverarbeitungsschritten (2,10) jeweils zu sortieren und zu synchronisieren und diese dann mit einer Sortierung an das Komparatormodul (7) weiterzuleiten, damit das Komparatormodul (7) synchronisierte Kontrollparameter (9) unabhängig von der Reihenfolge ermitteln kann, in der die Datenverarbeitungsmodule (5,6) die Datenverarbeitungsschritte (2, 10) ausgeführt haben.
  7. Datenverarbeitungsnetzwerk (1) nach einem der vorhergehenden Ansprüche, wobei erste Datenverarbeitungsmodule (5) mit ersten Hardwarekomponenten (12) und zweite Datenverarbeitungsmodule (6) mit zweiten Hardwarekomponenten (13) realisiert sind, wobei erste Hardwarekomponenten (12) und zweite Hardwarekomponenten (13) physisch voneinander getrennt sind.
  8. Datenverarbeitungsnetzwerk (1) nach Anspruch 6, wobei mindestens eines der Datenverarbeitungsmodule (5,6) eine Hardwarekomponente (12, 13) aufweist, die nicht ASIL-D konform ist.
  9. Datenverarbeitungsnetzwerk (1) nach einem der vorhergehenden Ansprüche, wobei das Komparatormodul (7) mit dritten Hardwarekomponenten (14) realisiert ist, welche physisch von ersten Hardwarekomponenten (12) und zweiten Hardwarekomponenten (13) getrennt ist.
  10. Datenverarbeitungsnetzwerk (1) nach Anspruch 8, wobei die dritte Hardwarekomponente (14) ASIL-D-konform ist.
  11. Datenverarbeitungsnetzwerk (1) nach einem der vorhergehenden Ansprüche, wobei das Komparatormodul (7) einen Datenspeicher (15) aufweist in welchem ermittelte Kontrollparameter (8) mit Zeitinformationen (16) abgelegt werden, so dass ein logischer Zeitstrahl (17) entsteht, welcher die Reihenfolge der Abarbeitung der Datenverarbeitungsschritte (2) mit den Datenverarbeitungsmodulen (5,6) des Datenverarbeitungsnetzwerks (1) abbildet.
  12. Datenverarbeitungsnetzwerk (1) nach einem der vorhergehenden Ansprüche, wobei eine Hardwarekomponente (12,13) der Datenverarbeitungsmodule (5,6) deutlich leistungsstärker ist als eine Hardwarekomponente (14) des Komparatormoduls (7).
  13. Datenverarbeitungsnetzwerk (1) nach einem der vorhergehenden Ansprüche, wobei der Vergleich der Kontrollparameter (8) eine Prüfung umfasst, ob ein bei der Datenverarbeitung im ersten Datenverarbeitungsmodul (5) und/oder im zweiten Datenverarbeitungsmodul (6) aufgetretener Fehler unterhalb einer Toleranzgrenze liegt und in diesem Fall der synchronisierte Kontrollparameter (9) erzeugt wird.
  14. Verfahren zum Betrieb eines Datenverarbeitungsnetzwerks (1) nach einem der vorhergehenden Ansprüche, aufweisend zumindest die folgenden Schritte: a) Festlegen, ob eine Sequenz von aufeinanderfolgenden Datenverarbeitungsschritten (1) mit einer ersten Arbeitsweise mit parallelem Betrieb des ersten Datenverarbeitungsmoduls (5) und des zweiten Datenverarbeitungsmoduls (6) oder mit einer zweiten Arbeitsweise mit einem vorrechnenden Datenverarbeitungsmodul (5,6) und einem nachrechnenden Datenverarbeitungsmodul (6,5) betrieben werden soll, b) Betreiben des ersten Datenverarbeitungsmoduls (5) und des zweiten Datenverarbeitungsmoduls (6) gemäß der ersten Arbeitsweise oder gemäß der zweiten Arbeitsweise zur Durchführung der Datenverarbeitungsschritte, wobei in der ersten Arbeitsweise der folgende Schritt c1) nach jedem Datenverarbeitungsschritt durchgeführt wird und wobei bei der zweiten Arbeitsweise der folgende Schritt c2) nach dem Abschluss der Sequenz von aufeinanderfolgenden Datenverarbeitungsschritten (1) durchgeführt wird: c1) Durchführen eines Vergleichs sich entsprechender Kontrollparameter (8), die von dem ersten Datenverarbeitungsmodul (5) und dem zweiten Datenverarbeitungsmodul (6) übermittelt wurden mit einem Komparatormodul (7) und basierend auf diesem Vergleich bereitstellen mindestens einen synchronisierten Kontrollparameter (9), welcher eine Kontrollinformation bezüglich mindestens eines durchgeführten Datenverarbeitungsschrittes (2) beinhaltet, oder c2) Nachberechnung der Sequenz (29) von Datenverarbeitungsschritten (2) in dem nachrechnenden Datenverarbeitungsmodul (6,5) anhand von Kontrollparameter (8), die bei der Berechnung der Sequenz (29) von Datenverarbeitungsschritten (2) in dem vorrechnenden Datenverarbeitungsmodul (5,6) ermittelt wurden und Durchführen eines Vergleichs der Berechnungen mit dem Komparatormodul (7) und basierend auf diesem Vergleich Bereitstellung mindestens eines synchronisierten Kontrollparameter (9), welcher eine Kontrollinformation bezüglich mindestens eines durchgeführten Sequenz (29) von Datenverarbeitungsschritten (2) beinhaltet.
DE102021211712.0A 2021-10-18 2021-10-18 Datenverarbeitungsnetzwerk zur Datenverarbeitung Pending DE102021211712A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102021211712.0A DE102021211712A1 (de) 2021-10-18 2021-10-18 Datenverarbeitungsnetzwerk zur Datenverarbeitung
PCT/EP2022/076912 WO2023066625A1 (de) 2021-10-18 2022-09-28 Datenverarbeitungsnetzwerk zur datenverarbeitung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102021211712.0A DE102021211712A1 (de) 2021-10-18 2021-10-18 Datenverarbeitungsnetzwerk zur Datenverarbeitung

Publications (1)

Publication Number Publication Date
DE102021211712A1 true DE102021211712A1 (de) 2023-04-20

Family

ID=83903064

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021211712.0A Pending DE102021211712A1 (de) 2021-10-18 2021-10-18 Datenverarbeitungsnetzwerk zur Datenverarbeitung

Country Status (2)

Country Link
DE (1) DE102021211712A1 (de)
WO (1) WO2023066625A1 (de)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10761925B2 (en) * 2015-03-24 2020-09-01 Nxp Usa, Inc. Multi-channel network-on-a-chip
DE102015218882A1 (de) * 2015-09-30 2017-03-30 Robert Bosch Gmbh Verfahren und Vorrichtung zum Prüfen von Berechnungsergebnissen in einem System mit mehreren Recheneinheiten
JP7042709B2 (ja) * 2018-06-28 2022-03-28 ルネサスエレクトロニクス株式会社 半導体装置、制御システムおよび半導体装置の制御方法

Also Published As

Publication number Publication date
WO2023066625A1 (de) 2023-04-27

Similar Documents

Publication Publication Date Title
DE10291119B4 (de) Verfahren und Vorrichtung zur Synchronisation der Zykluszeit von mehreren Bussen, wobei mindestens einer der Busse ein TTCAN Bus ist, sowie entsprechendes Bussystem
EP0048767A1 (de) Prioritätsstufengesteuerte Unterbrechungseinrichtung
EP2513796B1 (de) Verfahren zum betreiben einer recheneinheit
DE102016220197A1 (de) Verfahren zum Verarbeiten von Daten für ein automatisiertes Fahrzeug
DE19811864B4 (de) Redundante Steuervorrichtung und Fehlerbehebungsverfahren dafür
EP0974901A2 (de) Verfahren zur Ermittlung einer einheitlichen globalen Sicht vom Systemzustand eines verteilten Rechnernetzwerkes
WO2006045754A1 (de) Verfahren, betriebssystem und rechengerät zum abarbeiten eines computerprogramms
WO2022084176A1 (de) Datenverarbeitungsnetzwerk zur datenverarbeitung
DE102017200669A1 (de) Verfahren und Vorrichtung zum Betreiben eines Steuergeräts, Computerprogramm und Verfahren zum Generieren des Computerprogramms
DE102019202527A1 (de) Sicherheitssystem und Verfahren zum Betreiben eines Sicherheitssystems
DE102015222321A1 (de) Verfahren zum Betrieb eines Mehrkernprozessors
DE102021211712A1 (de) Datenverarbeitungsnetzwerk zur Datenverarbeitung
DE102013021231A1 (de) Verfahren zum Betrieb eines Assistenzsystems eines Fahrzeugs und Fahrzeugsteuergerät
EP1320047B1 (de) Verfahren zur Analyse des Zeitverhaltens komplexer verteilter Systeme
EP1812853B1 (de) Verfahren, betriebssystem und rechengerät zum abarbeiten eines computerprogramms
DE102015218898A1 (de) Verfahren zur redundanten Verarbeitung von Daten
DE102021211709A1 (de) Datenverarbeitungsnetzwerk zur Datenverarbeitung
DE112016006679T5 (de) Steuerungsvorrichtung und Recovery-Verarbeitungsverfahren für Steuerungsvorrichtung
WO2009127697A1 (de) Verfahren zum automatischen erzeugen eines zeitschemas für über einen zeitgesteuerten gemeinsamen datenbus kommunizierende verteilte anwendungen oder prozesse eines digitalen netzwerks
DE19801992C2 (de) Verfahren zur Verbesserung der Systemverfügbarkeit nach dem Ausfall von Prozessoren einer Prozessorplattform
DE102014213826B4 (de) Verfahren zum Synchronisieren von Zustandswechseln in Mehrkernrechnern eingebetteter Systeme
WO2022063663A1 (de) Verfahren, datenverarbeitungsmodul und datenverarbeitungsnetzwerk zur verarbeitung von daten
DE102022205517A1 (de) Verfahren zum Verarbeiten von Daten
DE102009061083B3 (de) Modifizieren periodischer Signale, die von einem Mikrocontroller erzeugt worden sind
WO2023066626A1 (de) Verfahren zur verarbeitung von daten mit einem datenverarbeitungsnetzwerk umfassend eine mehrzahl von datenverarbeitungsmodulen, datenverarbeitungsmodul und datenverarbeitungsnetzwerk