DE102022205517A1 - Methods for processing data - Google Patents
Methods for processing data Download PDFInfo
- Publication number
- DE102022205517A1 DE102022205517A1 DE102022205517.9A DE102022205517A DE102022205517A1 DE 102022205517 A1 DE102022205517 A1 DE 102022205517A1 DE 102022205517 A DE102022205517 A DE 102022205517A DE 102022205517 A1 DE102022205517 A1 DE 102022205517A1
- Authority
- DE
- Germany
- Prior art keywords
- data
- processing
- result data
- value
- processing path
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 156
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000004590 computer program Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 description 15
- 238000004364 calculation method Methods 0.000 description 14
- 239000003550 marker Substances 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000015654 memory Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- BUHVIAUBTBOHAG-FOYDDCNASA-N (2r,3r,4s,5r)-2-[6-[[2-(3,5-dimethoxyphenyl)-2-(2-methylphenyl)ethyl]amino]purin-9-yl]-5-(hydroxymethyl)oxolane-3,4-diol Chemical compound COC1=CC(OC)=CC(C(CNC=2C=3N=CN(C=3N=CN=2)[C@H]2[C@@H]([C@H](O)[C@@H](CO)O2)O)C=2C(=CC=CC=2)C)=C1 BUHVIAUBTBOHAG-FOYDDCNASA-N 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
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
Die Erfindung betrifft ein Verfahren zum Verarbeiten von Daten, umfassend die Schritte: Festlegen (204) eines Werts einer Kenngröße, welche eine Anzahl von Fehlern bei der Verarbeitung der Daten charakterisiert; Hinzufügen (206) von Markierungen zu den zu verarbeitenden Daten jeweils nach einer vorgegebenen Anzahl von Datennachrichten der zu verarbeitenden Daten und/oder nach einem vorgegebenen Zeitintervall; Übergeben (207) der zu verarbeitenden Daten an einen ersten Verarbeitungspfad und an einen zweiten Verarbeitungspfad; Verarbeiten (208) jeweils von Daten zwischen zwei hinzugefügten Markierungen in dem ersten Verarbeitungspfad gemäß einem ersten Verarbeitungsschema zu ersten Ergebnisdaten und in dem zweiten Verarbeitungspfad gemäß einem zweiten Verarbeitungsschema zu zweiten Ergebnisdaten; Hinzufügen (209) des festgelegten Werts der Kenngröße zu den ersten Ergebnisdaten und zu den zweiten Ergebnisdaten; Vergleichen (210) der ersten Ergebnisdaten und der zweiten Ergebnisdaten; Bereitstellen (211) der ersten Ergebnisdaten und/oder der zweiten Ergebnisdaten als ein Ergebnis, wenn die ersten Ergebnisdaten und die zweiten Ergebnisdaten einander entsprechen; Verwerfen (214) der ersten Ergebnisdaten und der zweiten Ergebnisdaten und Festlegen (213) eines neuen Werts der Kenngröße, wenn die ersten Ergebnisdaten und die zweiten Ergebnisdaten einander nicht entsprechen.The invention relates to a method for processing data, comprising the steps: determining (204) a value of a parameter which characterizes a number of errors in the processing of the data; adding (206) markings to the data to be processed after a predetermined number of data messages of the data to be processed and/or after a predetermined time interval; Transferring (207) the data to be processed to a first processing path and to a second processing path; processing (208) each of data between two added markers in the first processing path according to a first processing scheme into first result data and in the second processing path according to a second processing scheme into second result data; adding (209) the specified value of the parameter to the first result data and to the second result data; comparing (210) the first result data and the second result data; Providing (211) the first result data and/or the second result data as a result when the first result data and the second result data correspond to each other; Discarding (214) the first result data and the second result data and setting (213) a new value of the parameter if the first result data and the second result data do not correspond to one another.
Description
Die vorliegende Erfindung betrifft ein Verfahren zum Verarbeiten von Daten sowie ein Rechensystem und ein Computerprogramm zu dessen Durchführung.The present invention relates to a method for processing data as well as a computing system and a computer program for carrying it out.
Hintergrund der ErfindungBackground of the invention
In verschiedenen Bereichen, z.B. bei Fahrzeugen, werden Daten wie z.B. Sensordaten, verarbeitet, wobei z.B. verschiedene Berechnungen durchgeführt werden; die Ergebnisse können dann z.B. wieder im Fahrzeug verwendet werden. Aufgrund der hohen Datenmengen und oftmals aufwendigen Berechnungen kann eine solche Verarbeitung an ein fahrzeugfremdes, ggf. verteiltes, Rechensystem ausgelagert werden. In diesem Zusammenhang wird auch von der sog. „Cloud“ gesprochen.In various areas, e.g. in vehicles, data such as sensor data is processed, for example various calculations are carried out; The results can then be used again in the vehicle, for example. Due to the large amounts of data and often complex calculations, such processing can be outsourced to a non-vehicle, possibly distributed, computing system. In this context, the so-called “cloud” is also spoken of.
Für viele Anwendungen, insbesondere auch in Fahrzeugen, ist es zweckmäßig, oder oftmals auch erforderlich, eine bestimmte Sicherheit über die Richtigkeit der verarbeiteten Daten oder den Berechnungsvorgang zu gewährleisten. Mit anderen Worten sollen mögliche Fehler bei der Verarbeitung bzw. Berechnung weitestgehend ausgeschlossen bzw. die Wahrscheinlichkeit hierfür minimiert werden.For many applications, especially in vehicles, it is expedient or often necessary to ensure a certain degree of certainty about the accuracy of the processed data or the calculation process. In other words, possible errors in processing or calculation should be excluded as far as possible and the probability of this should be minimized.
Ein Prinzip, das hierzu herangezogen werden kann, ist ein sog. Lockstep-Verfahren. Damit wird im Bereich der Computertechnik, insbesondere bei Prozessoren und Mikrocontrollern, eine Methode zur Fehlertoleranz und Fehlererkennung in der Hardware bezeichnet, die durch den Einsatz mehrerer gleicher oder gleichartiger Einheiten wie CPU-Kerne in Mehrkernprozessoren erreicht wird. Prozessoren im Lockstep-Betrieb werden z.B. in sicherheitskritischen Anwendungen wie Motorsteuerungen (ECU) von Fahrzeugen und in autonomen Triebwerksregelungen (FADEC) von Flugzeugen eingesetzt.One principle that can be used for this is a so-called lockstep process. In the field of computer technology, especially in processors and microcontrollers, this refers to a method for fault tolerance and error detection in hardware, which is achieved by using several identical or similar units such as CPU cores in multi-core processors. Processors in lockstep operation are used, for example, in safety-critical applications such as engine control systems (ECU) in vehicles and in autonomous engine controls (FADEC) in aircraft.
Dieses Vorgehen lässt sich auch softwarebasiert umsetzen, z.B. in einem Rechensystem. Solche software-basierten Lockstep-Lösungen können z.B. entsprechend der Sicherheitsnormen ISO 26262 und IEC 61508 für sporadisch auftretende Fehler bei Rechenoperationen verwendet werden. Hierbei werden die zu verarbeitenden Daten in zwei getrennten Pfaden jeweils entsprechend einem vorgegebenen Verarbeitungsschema verarbeitet (es werden die gewünschten Berechnungen durchgeführt, und zwar dieselben in beiden Pfaden). Die in diesen zwei Pfaden verarbeiteten Daten werden dann im Rahmen einer Plausibilisierung gegeneinander plausibilisiert bzw. verglichen. Mit diesem Vorgehen können Fehler erkannt werden.This procedure can also be implemented using software, e.g. in a computing system. Such software-based lockstep solutions can be used, for example, in accordance with the security standards ISO 26262 and IEC 61508 for sporadic errors in arithmetic operations. Here, the data to be processed is processed in two separate paths, each according to a predetermined processing scheme (the desired calculations are carried out, namely the same ones in both paths). The data processed in these two paths are then checked for plausibility or compared against each other as part of a plausibility check. This procedure can be used to detect errors.
Ein Verarbeiten von Daten in einem Rechensystem im Zuge eines derartigen softwarebasierten Lockstep-Verfahrens wird beispielsweise in der nicht-vorveröffentlichten Patentanmeldung
Offenbarung der ErfindungDisclosure of the invention
Erfindungsgemäß werden ein Verfahren zum Verarbeiten von Daten sowie ein Rechensystem und ein Computerprogramm zu dessen Durchführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.According to the invention, a method for processing data as well as a computing system and a computer program for carrying it out are proposed with the features of the independent patent claims. Advantageous refinements are the subject of the subclaims and the following description.
Die vorliegende Erfindung schlägt eine Möglichkeit vor, um ein softwarebasiertes Lockstep-Verfahren weiter zu verbessern. Im Rahmen der Erfindung wird dazu ein Wert einer Kenngröße festgelegt bzw. vorgegeben, welche eine Anzahl von Fehlern bei der Verarbeitung der Daten charakterisiert. Beispielsweise kann die Kenngröße ein (erster) Zählerwert sein, welcher fortlaufend erhöht wird. Zu Beginn des Verfahrens wird als ein initialer Schritt die Kenngröße auf einen initialen Wert festgelegt, z.B. auf den Wert null zu Beginn eines Betriebs einer entsprechenden Recheneinheit, etwa nach einem Hochfahrvorgang bzw. Aufstarten der Recheneinheit.The present invention proposes a way to further improve a software-based lockstep method. In the context of the invention, a value of a parameter is defined or specified, which characterizes a number of errors in the processing of the data. For example, the parameter can be a (first) counter value, which is continuously increased. At the beginning of the method, as an initial step, the parameter is set to an initial value, for example to the value zero at the beginning of operation of a corresponding computing unit, for example after a boot-up process or starting up the computing unit.
Den zu verarbeitenden Daten wird - ebenfalls in Form von Daten jeweils nach einer vorgegebenen Anzahl von Datennachrichten der zu verarbeitenden Daten und/oder nach einem vorgegebenen Zeitintervall eine Markierung hinzugefügt. Diese Markierung charakterisiert insbesondere eine vorgegebene oder vorgebbare Menge an Daten, welche zur gemeinsamen oder zeitglichen Verarbeitung übergeben werden sollen. Beispielsweise kann es sich bei der Markierung um einen (zweiten) Zählerwert handeln, der konsekutiv erhöht wird.A marking is added to the data to be processed - also in the form of data - after a predetermined number of data messages of the data to be processed and/or after a predetermined time interval. This marking in particular characterizes a predetermined or predeterminable amount of data that is to be transferred for joint or temporal processing. For example, the marking can be a (second) counter value that is consecutively increased.
Die zu verarbeitenden Daten werden dann an einen ersten Verarbeitungspfad und an einen zweiten Verarbeitungspfad übergeben. Daten zwischen zwei hinzugefügten Markierungen werden in dem ersten Verarbeitungspfad gemäß einem ersten Verarbeitungsschema zu ersten Ergebnisdaten und in dem zweiten Verarbeitungspfad gemäß einem zweiten Verarbeitungsschema zu zweiten Ergebnisdaten verarbeitet. Somit werden in den beiden Verarbeitungspfaden zeitgleich stets die identischen Datenmengen zu den jeweiligen Ergebnisdaten verarbeitet.The data to be processed is then passed to a first processing path and to a second processing path. Data between two added markers is processed into first result data in the first processing path according to a first processing scheme and into second result data in the second processing path according to a second processing scheme. This means that identical amounts of data are always processed in both processing paths at the same time to produce the respective result data.
Ferner wird der festgelegte aktuelle Wert der Kenngröße jeweils zu den ersten Ergebnisdaten und zu den zweiten Ergebnisdaten hinzugefügt bzw. diesen zugeordnet. Sollte ein Fehler in der Verarbeitung der Daten auftreten, durch welchen die Kenngröße erhöht wird, kann anhand des den Ergebnisdaten zugeordneten Werts der Kenngröße identifiziert werden, ob diese Daten im Zuge dieser fehlerhaften Verarbeitung bestimmt wurden.Furthermore, the specified current value of the parameter is added to or assigned to the first result data and to the second result data. Should there be an error in processing of the data occurs, through which the parameter is increased, it can be identified based on the value of the parameter assigned to the result data whether this data was determined in the course of this incorrect processing.
Die ersten Ergebnisdaten und die zweiten Ergebnisdaten werden miteinander verglichen bzw. gegeneinander plausibilisiert, beispielsweise in einer Vergleichs- bzw. Plausibilisierungseinheit. Wenn die ersten Ergebnisdaten und die zweiten Ergebnisdaten einander entsprechen, werden die ersten Ergebnisdaten und/oder die zweiten Ergebnisdaten als ein Ergebnis der Verarbeitung der Daten bereitgestellt. In diesem Fall liegt insbesondere kein Fehler bei der Verarbeitung der Daten vor. Die Verarbeitung in den beiden Verarbeitungspfaden kann zweckmäßigerweise mit den aktuellen Einstellungen bzw. aktuellen Zuständen fortgesetzt werden.The first result data and the second result data are compared with one another or checked against each other for plausibility, for example in a comparison or plausibility check unit. If the first result data and the second result data correspond to each other, the first result data and/or the second result data are provided as a result of processing the data. In this case, there is in particular no error in the processing of the data. Processing in the two processing paths can expediently be continued with the current settings or current states.
Wenn die ersten Ergebnisdaten und die zweiten Ergebnisdaten einander nicht entsprechen, werden die ersten Ergebnisdaten und die zweiten Ergebnisdaten verworfen und ein neuer Wert der Kenngröße wird festgelegt. Insbesondere wird die Kenngröße um ein Inkrement (z.B. eins) erhöht. In diesem Fall liegt insbesondere ein Fehler zumindest in einem der beiden Verarbeitungspfade vor. Zweckmäßigerweise können die beiden Verarbeitungspfade bzw. deren aktuelle Einstellungen oder Zustände zurückgesetzt werden. Ferner werden insbesondere alle Ergebnisdaten, welchen der Wert der Kenngröße vor deren Veränderung zugeordnet ist, verworfen.If the first result data and the second result data do not correspond to each other, the first result data and the second result data are discarded and a new value of the parameter is set. In particular, the parameter is increased by an increment (e.g. one). In this case, there is in particular an error in at least one of the two processing paths. The two processing paths or their current settings or states can expediently be reset. Furthermore, in particular, all result data to which the value of the parameter is assigned before it is changed is discarded.
Durch das Lockstep-Verfahren können besonders zweckmäßig eine funktionale Sicherheit („Safety“) und eine Informationssicherheit („Security“) bei der Verarbeitung der Daten erreicht werden. Jedoch besteht bei der herkömmlichen Verwendung von Lockstep-Verfahren oftmals die Gefahr, dass eine Synchronisation der einzelnen Verarbeitungspfade bei auftretenden Fehlern verloren geht und dass die Ergebnisse der einzelnen Pfade nicht mehr miteinander vergleichbar sind.The lockstep process makes it particularly useful to achieve functional safety and information security when processing data. However, when using lockstep methods conventionally, there is often a risk that synchronization of the individual processing paths will be lost if errors occur and that the results of the individual paths can no longer be compared with one another.
Der Einsatz eines Lockstep-Verfahrens ist bei Funktionen, die einen Dateneingabestrom zustandslos verarbeiten, zumeist unproblematisch, da zum einen jeder Eingangsdatennachricht ein Resultat entspricht und beim Auftreten von Ausnahmen die Vergleichseinheit ein Ergebnis falsifizieren und verwerfen kann, ohne dass dies Auswirkungen auf die Verarbeitung der nachfolgenden Eingangsdaten hat. Jedoch kann die Verarbeitung mehrerer Schritte auch an einen Zustand der zuvor bearbeiteten Eingangsdaten gebunden sein, z.B. beim autonomen Fahren, d.h. das Ergebnis einer Verarbeitung hängt vom Zustand ab, der bei der Verarbeitung vorangegangener Eingangsdaten errechnet wurde. Wird dieser Zustand in einem der synchronen Verarbeitungspfade durch eine Ausnahmesituation verfälscht, z.B. durch eine fehlerhafte Berechnung, einen Hardwarefehler, einen Übertragungsfehler usw., so führt auch jede weitere Berechnung nachfolgender Eingangsdaten mit großer Wahrscheinlichkeit zu fehlerhaften Ergebnissen, da sie auf dem fehlerhaften Zustand aufbaut. Folglich sollten die verschiedenen Verarbeitungspfade hinsichtlich ihres Zustands nach einem Fehler neu synchronisiert werden. Des Weiteren kann sich die Verarbeitung von Eingangsdaten, die kontinuierlich und nicht getaktet eingelesen werden (sog. „Streaming“), in den parallel arbeitenden Lockstep-Verarbeitungspfaden unterscheiden. Dies ist insbesondere bei Funktionen bzw. Anwendungen problematisch, welche keine 1:1-Relation zwischen Eingabe und Ergebnis haben, sondern eine n:1-Beziehung. Insbesondere bedeutet dies, dass mehrere Eingangsdaten verarbeitet werden, bis ein Ergebnis ausgegeben wird. Wenn dieses Ergebnis in einem festen Zeitintervall geschrieben wird, können zeitliche Unterschiede in Verarbeitung und Übertragung dazu führen, dass die Ergebnisse der verschiedenen Lockstep-Pfade sich in der Anzahl der Nachrichten unterscheiden, die zum Erhalt eines Ergebnisses verarbeitet wurden. Dadurch wären die ermittelten Ergebnisse - obwohl jeweils für sich genommen richtig - nicht mehr für einen Vergleich geeignet.The use of a lockstep method is usually unproblematic for functions that process a data input stream statelessly, since, on the one hand, each input data message corresponds to a result and, if exceptions occur, the comparison unit can falsify and reject a result without this affecting the processing of the subsequent ones Has input data. However, the processing of several steps can also be tied to a state of the previously processed input data, e.g. in autonomous driving, i.e. the result of processing depends on the state that was calculated when processing previous input data. If this state is corrupted in one of the synchronous processing paths by an exceptional situation, e.g. due to an incorrect calculation, a hardware error, a transmission error, etc., then any further calculation of subsequent input data will most likely lead to incorrect results because it is based on the incorrect state. Consequently, the various processing paths should be resynchronized in terms of their state after an error. Furthermore, the processing of input data that is read in continuously and not in a clocked manner (so-called “streaming”) can differ in the lockstep processing paths that work in parallel. This is particularly problematic for functions or applications that do not have a 1:1 relationship between input and result, but rather an n:1 relationship. In particular, this means that multiple input data is processed until a result is output. If this result is written at a fixed time interval, temporal differences in processing and transmission may cause the results of different lockstep paths to differ in the number of messages processed to obtain a result. As a result, the results obtained - although correct in their own right - would no longer be suitable for comparison.
Die vorliegende Erfindung stellt nun eine Möglichkeit bereit, um eine Synchronisation der Lockstep-Pfade zu gewährleisten. Dabei wird sowohl eine koordinierte Verarbeitung der eingehenden Datennachrichten durch insbesondere getaktetes Einschleusen der Markierungen erreicht, als auch eine Neusynchronisation der Wirkfunktionen in den Pfaden nach dem Auftreten von Ausnahmen, insbesondere von Software- oder Hardware-Fehlern, durch Einführung der Kenngröße.The present invention now provides a way to ensure synchronization of the lockstep paths. This achieves both coordinated processing of the incoming data messages by, in particular, clocked insertion of the markings, and resynchronization of the effective functions in the paths after exceptions occur, in particular software or hardware errors, by introducing the parameter.
Beispielsweise kann eine Markierungseinheit in Form einer separaten Software- und/oder Hardwareeinheit vorgesehen sein, welche die zu verarbeitenden Daten mit den Markierungen erweitert. Insbesondere können diese Markierungen einen Index zu deren Identifizierung umfassen. Der aktuell vergebene Index bzw. die aktuell hinzugefügte Markierung kann ferner insbesondere an einer vorgegebenen Speicherstelle bzw. in einer vorgegebenen Speichereinheit hinterlegt werden, auf welche die verschiedenen Verarbeitungspfade zweckmäßigerweise zugreifen können. Gibt es zwischen den eingehenden Datennachrichten und den ausgehenden Ergebnisdaten eine 1:1-Beziehung, kann die Häufigkeit der hinzugefügten Markierungen beispielsweise auch reduziert werden z.B. bis auf eine Indizierung der Nachrichten.For example, a marking unit can be provided in the form of a separate software and/or hardware unit, which expands the data to be processed with the markings. In particular, these markings can include an index for their identification. The currently assigned index or the currently added marking can also be stored in particular in a predetermined storage location or in a predetermined storage unit, which the various processing paths can expediently access. If there is a 1:1 relationship between the incoming data messages and the outgoing result data, the frequency of added markings can also be reduced, e.g. down to indexing the messages.
Die Anreicherung der eingehenden Nachrichten mit den Markierungen führt insbesondere dazu, dass alle Funktionen der verschiedenen Lockstep-Pfade dieselbe Menge an Daten für die Berechnung eines Ergebnisses verwenden. Somit kann zweckmäßigerweise der Fall ausgeschlossen werden, dass durch Unterschiede in Laufzeiten und Verarbeitungsgeschwindigkeiten eine unterschiedliche Menge an Nachrichten zu einem Ergebnis verarbeitet wird, wodurch ein Vergleich der Ergebnisse nicht möglich wäre. Zusätzlich kann insbesondere sichergestellt werden, dass jedes Ergebnis genau einem Index zuordenbar ist.In particular, enriching the incoming messages with the markings means that all functions of the different lockstep paths use the same amount of data to calculate a result. This means that the case can be expediently excluded in which a different amount of messages is processed into one result due to differences in runtimes and processing speeds, which would make it impossible to compare the results. In addition, it can be ensured in particular that each result can be assigned to exactly one index.
Mit Hilfe der Kenngröße kann insbesondere ein Zeitraum gekennzeichnet werden, in dem die Lockstep-Pfade synchron laufen. Erkennt die Vergleichseinheit einen Fehler, wird der Wert der Kenngröße inkrementiert, während die Ergebnisse verworfen werden. Eine Änderung der Kenngröße führt insbesondere zu einer Neusynchronisation der Funktionen auf allen Lockstep-Pfaden. Die Ergebnisse, die von den Verarbeitungspfaden weitergeleitet werden, enthalten den Kenngrößenwert, der zum Zeitpunkt ihrer Berechnung gültig war. Wurde dieser aktualisiert, so kann die Vergleichseinheit alle Ergebnisse mit einem alten Kenngrößenwert verwerfen.In particular, the parameter can be used to identify a period in which the lockstep paths run synchronously. If the comparison unit detects an error, the value of the parameter is incremented while the results are discarded. A change in the parameter leads in particular to a resynchronization of the functions on all lockstep paths. The results that are forwarded by the processing paths contain the parameter value that was valid at the time they were calculated. If this has been updated, the comparison unit can reject all results with an old parameter value.
Zweckmäßigerweise erfolgt das Verarbeiten der Daten im Rahmen des vorliegenden Verfahrens in einem ggf. verteilten Rechensystem, z.B. einem Rechenzentrum, insbesondere in einer sog. „Cloud“. Die Verarbeitung der Daten in den unterschiedlichen Verarbeitungspfaden kann beispielsweise in örtlich verteilten Recheneinheiten erfolgen, damit sich Fehler in einzelnen Recheneinheiten nicht auf alle Pfade auswirken können.The data is expediently processed in the context of the present method in a possibly distributed computing system, e.g. a data center, in particular in a so-called “cloud”. The processing of the data in the different processing paths can, for example, take place in locally distributed computing units so that errors in individual computing units cannot affect all paths.
Vorteilhafterweise werden der erste Verarbeitungspfad und der zweite Verarbeitungspfad bzw. ein Zustand oder ein Verarbeitungsvorschritt des ersten und zweiten Verarbeitungspfads zurückgesetzt, wenn der neue Wert der Kenngröße festgelegt wird. In dem ersten Verarbeitungspfad und in dem zweiten Verarbeitungspfad werden dann vorteilhafterweise die Daten nach der zuletzt hinzugefügten Markierung verarbeitet. Erkennt eine Funktion der Verarbeitungspfade eine Veränderung der Kenngröße, wird insbesondere die aktuelle bzw. die zuletzt hinzugefügte Markierung ausgelesen. Der innere Zustand des jeweiligen Verarbeitungspfads wird verworfen und es wird mit einem initialen Zustand begonnen, diejenigen Datennachrichten zu prozessieren, welche der zuletzt hinzugefügten Nachricht folgen. Auf diese Weise kann insbesondere sichergestellt werden, dass eine Änderung der Kenngröße zu einer Neusynchronisation der Funktionen auf allen Lockstep-Pfaden führt. Insbesondere kann somit automatisch ein Neustart und eine Neusynchronisation der einzelnen Verarbeitungspfade bei einer Änderung des Kenngrößenwerts durchgeführt werden. Zu diesem Zweck können die einzelnen Lockstep-Pfade beispielsweise kontinuierlich den aktuellen Kenngrößenwert auslesen. Alternativ oder zusätzlich kann der aktuelle Kenngrößenwert beispielsweise auch kontinuierlich oder in vorgegebenen Zeitabständen den einzelnen Verarbeitungspfaden mitgeteilt werden, z.B. mit Hilfe von Message-Queues, Event-Handling usw.Advantageously, the first processing path and the second processing path or a state or a processing step of the first and second processing paths are reset when the new value of the parameter is set. In the first processing path and in the second processing path, the data is then advantageously processed according to the last added marking. If a function of the processing paths detects a change in the parameter, the current or most recently added marking in particular is read out. The internal state of the respective processing path is discarded and the data messages that follow the last added message are started with an initial state. In this way, it can be ensured in particular that a change in the parameter leads to a resynchronization of the functions on all lockstep paths. In particular, a restart and a resynchronization of the individual processing paths can be carried out automatically when the parameter value changes. For this purpose, the individual lockstep paths can, for example, continuously read out the current parameter value. Alternatively or additionally, the current parameter value can, for example, be communicated to the individual processing paths continuously or at predetermined time intervals, e.g. with the help of message queues, event handling, etc.
Vorzugsweise umfasst das Hinzufügen der Markierungen zu den zu verarbeitenden Daten ein Hinzufügen von Markierungsnachrichten zu den zu verarbeitenden Daten, wobei jeweils nach einer vorgegebenen Anzahl von Datennachrichten der zu verarbeitenden Daten und/oder nach einem vorgegebenem Zeitintervall jeweils eine Markierungsnachrichten zwischen zwei Datennachrichten der zu verarbeitenden Daten hinzugefügt wird und wobei jede Markierungsnachrichten jeweils einen individuellen Markierungswert aufweist. Dieser Markierungswert kann insbesondere ein entsprechender Index sein, ferner insbesondere ein fortlaufend erhöhter Zählerwert, welcher mit jeder hinzugefügten Markierungsnachricht erhöht wird. Beispielsweise können die nach der hinzugefügten Markierungsnachricht nachfolgenden Datennachrichten, also denjenigen Datennachrichten die nach der hinzugefügten Markierungsnachricht an die Pfade übergeben werden, dem entsprechende Markierungswert dieser hinzugefügten Markierungsnachricht zugewiesen sein. Somit ist insbesondere den Datennachrichten zwischen zwei Markierungsnachrichten derjenige Markierungswert der zuerst hinzugefügten (früheren) Markierungsnachricht zugewiesen.Preferably, adding the markings to the data to be processed includes adding marking messages to the data to be processed, with one marking message between two data messages of the data to be processed after a predetermined number of data messages of the data to be processed and / or after a predetermined time interval is added and each marking message has an individual marking value. This marking value can in particular be a corresponding index, furthermore in particular a continuously increased counter value, which is increased with each added marking message. For example, the data messages following the added marking message, i.e. those data messages that are passed to the paths after the added marking message, can be assigned to the corresponding marking value of this added marking message. In particular, the data messages between two marking messages are therefore assigned the marking value of the first added (earlier) marking message.
Bevorzugt umfasst das Verarbeiten der Daten zwischen zwei hinzugefügten Markierungen in dem ersten Verarbeitungspfad und in dem zweiten Verarbeitungspfad jeweils ein Empfangen einer ersten der zwei hinzugefügten Markierung bzw. einer ersten entsprechenden Markierungsnachricht und eine Verarbeitung der nach dieser ersten Markierung empfangenen Daten gemäß dem jeweiligen Verarbeitungsschema des jeweiligen Verarbeitungspfads. Ferner wird jeweils eine zweite der zwei hinzugefügten Markierung bzw. eine entsprechende zweite Markierungsnachricht von den Verarbeitungspfaden empfangen, woraufhin die Verarbeitung der nach der ersten Markierung empfangenen Daten in den Verarbeitungspfaden jeweils beendet wird. Die ersten Ergebnisdaten bzw. die zweiten Ergebnisdaten werden bestimmt und zweckmäßigerweise an die Vergleichseinheit weitergeleitet. Daraufhin wird in den Verarbeitungspfaden zweckmäßigerweise mit der Verarbeitung der nach der zweiten Markierung empfangenen Daten zu weiteren Ergebnisdaten begonnen. Die Funktionen der verschiedenen Lockstep-Pfade verarbeiten die eingehenden Nachrichten und akkumulieren dabei insbesondere einen Zustand, dem die zuletzt empfangene Markierung bzw. der zuletzt empfangene Markierungswert zugeordnet ist. Empfangen die Pfade eine neue Markierungsnachricht bzw. einen neuen Markierungswert, so leiten sie das Ergebnis zweckmäßigerweise weiter und beginnen, ein neues Ergebnis aufzubauen, dem der neue Markierungswert zugeordnet ist, indem sie zweckmäßigerweise die nachfolgend eingehenden Datennachrichten verarbeiten.Preferably, processing the data between two added markers in the first processing path and in the second processing path each includes receiving a first of the two added markers or a first corresponding marker message and processing the data received after this first marker according to the respective processing scheme of the respective one processing path. Furthermore, a second of the two added markings or a corresponding second marking message is received by the processing paths, whereupon the processing of the data received after the first marking is ended in the processing paths. The first result data or the second result data are determined and expediently forwarded to the comparison unit. Processing of the data received after the second marking into further result data is then expediently started in the processing paths. The functions of the different lockstep paths process the incoming messages and accumulate one in particular State to which the last received marking or the last received marking value is assigned. If the paths receive a new marking message or a new marking value, they expediently forward the result and begin to build a new result to which the new marking value is assigned by expediently processing the subsequently incoming data messages.
Gemäß einer vorteilhaften Ausführungsform erfolgt das Verwerfen der ersten Ergebnisdaten und der zweiten Ergebnisdaten und das Festlegen des neuen Werts der Kenngröße ferner auch dann, wenn der den ersten Ergebnisdaten und/oder der den zweiten Ergebnisdaten hinzugefügte Wert der Kenngröße nicht dem aktuell festgelegten Wert der Kenngröße entspricht. Insbesondere werden bei dem Vergleich nicht nur die Ergebnisdaten miteinander verglichen, sondern es wird ferner überprüft, ob der in den einzelnen Ergebnisdaten hinterlegte Kenngrößenwert auch dem aktuell festgelegten Kenngrößenwert entspricht. Sollte dies nicht der Fall sein, deutet dies auf einen Fehler hin, so dass auch in diesem Fall die Verarbeitungspfade zweckmäßigerweise zurückgesetzt und neu synchronisiert werden.According to an advantageous embodiment, the first result data and the second result data are discarded and the new value of the parameter is also set if the value of the parameter added to the first result data and/or the second result data does not correspond to the currently set value of the parameter . In particular, the comparison not only compares the result data with one another, but it is also checked whether the characteristic value stored in the individual result data also corresponds to the currently defined characteristic value. If this is not the case, this indicates an error, so in this case too the processing paths should be reset and resynchronized.
Vorteilhafterweise erfolgt das Festlegen des neuen Werts der Kenngröße auch nach einem Neustart einer der Verarbeitungspfade. Durch den auf diese Weise veränderten Kenngrößenwert erfolgt zweckmäßigerweise automatisch auch ein Neustart des anderen Verarbeitungspfads. Ein Neustart und eine Neusynchronisation der Pfade wird somit insbesondere nicht nur nach einem detektierten Rechenfehler durchgeführt, sondern zweckmäßigerweise auch nach einem Neustart einer der Lockstep-Funktionen. Insbesondere kann daher auch nach einem Boot-Vorgang, z.B. bei einem Neustart, der Kenngrößenwert verändert werden.The new value of the parameter is advantageously set even after a restart of one of the processing paths. The parameter value changed in this way expediently also automatically restarts the other processing path. A restart and a resynchronization of the paths is therefore carried out not only after a detected calculation error, but expediently also after a restart of one of the lockstep functions. In particular, the parameter value can therefore be changed even after a boot process, e.g. during a restart.
Bevorzugt wird der neue Wert der Kenngröße ferner festgelegt, wenn die ersten Ergebnisdaten und/oder die zweiten Ergebnisdaten jeweils nicht nach einem vorgegebenen Zeitintervall vorliegen. Die Vergleichseinheit kann zu diesem Zweck das Eintreffen der zu vergleichenden Ergebnisdaten überwachen. Das Ausbleiben von Ergebnisdaten kann insbesondere als ein Fehler bzw. Ausnahme-Ereignis angesehen werden, woraufhin zweckmäßigerweise ebenfalls eine Veränderung des Kenngrößenwerts und damit eine Neusynchronisation der Verarbeitungspfade durchgeführt wird.Preferably, the new value of the parameter is also determined if the first result data and/or the second result data are not available after a predetermined time interval. For this purpose, the comparison unit can monitor the arrival of the result data to be compared. The absence of result data can in particular be viewed as an error or exception event, whereupon a change in the parameter value and thus a resynchronization of the processing paths is also expediently carried out.
Vorzugsweise wird ein Zeitintervall zwischen zwei nacheinander bestimmten ersten Ergebnisdaten und/oder zwei nacheinander bestimmten zweiten Ergebnisdaten bestimmt, also insbesondere ein Zeitintervall, mit welchem der erste Verarbeitungspfad bzw. der zweite Verarbeitungspfad die jeweiligen zu verarbeitenden Daten zu den jeweiligen Ergebnisdaten verarbeitet. Abhängig von diesem bestimmten Zeitintervall wird vorzugsweise eine Häufigkeit bzw. Frequenz angepasst, mit welcher die Markierungen zu den zu verarbeitenden Daten hinzugefügt werden. Je nach Anwendungsfall kann es beispielswiese notwendig sein, für das Aussenden der Ergebnisse eine bestimmte Frequenz einzuhalten. Diese Frequenz wird zweckmäßigerweise durch die hinzugefügten Markierungen festgelegt und somit insbesondere zeitlich vor der Verarbeitung der Daten. Eine statische Festlegung, z.B. im Zuge einer Implementierung vor Inbetriebnahme derjeweiligen Recheneinheit, könnte im späteren regulären Betrieb zu ungenau sein oder die Verarbeitungszeiten könnten durch Lastspitzen des jeweiligen Prozessors ungünstig beeinflusst werden. Besonders zweckmäßig kann die Häufigkeit der hinzugefügten Markierungen daher dynamisch im regulären Betrieb der Recheneinheit angepasst werden. Beispielsweise kann zu diesem Zweck die Vergleichseinheit das zeitliche Eintreffen der einzelnen Ergebnisdaten vermessen und bei Bedarf an die Markierungseinheit entsprechende Korrekturnachrichten schicken.Preferably, a time interval is determined between two successively determined first result data and/or two successively determined second result data, i.e. in particular a time interval with which the first processing path or the second processing path processes the respective data to be processed into the respective result data. Depending on this specific time interval, a frequency with which the markings are added to the data to be processed is preferably adjusted. Depending on the application, it may be necessary, for example, to maintain a certain frequency for sending the results. This frequency is expediently determined by the added markings and thus in particular in time before the data is processed. A static determination, e.g. in the course of an implementation before the respective computing unit is put into operation, could be too imprecise in later regular operation or the processing times could be unfavorably influenced by load peaks on the respective processor. The frequency of the added markings can therefore be particularly expediently adjusted dynamically during regular operation of the computing unit. For example, for this purpose, the comparison unit can measure the timing of the arrival of the individual result data and, if necessary, send corresponding correction messages to the marking unit.
Gemäß einer vorteilhaften Ausführungsform kann ferner ein Bereitschaftswert bzw. ein Standby-Wert oder ein Wartewert der Kenngröße festgelegt werden, woraufhin der erste Verarbeitungspfad und der zweite Verarbeitungspfad in einen Bereitschaftszustand bzw. Standby-Zustand oder Wartezustand überführt werden. Insbesondere erfolgt in diesem Bereitschaftszustand keine Verarbeitung von Daten, sondern die Verarbeitungspfade warten zweckmäßigerweise auf eine Freigabe für die Verarbeitung. Vorteilhafterweise wird dann ein Startwert der Kenngröße festgelegt, der Bereitschaftszustand des ersten Verarbeitungspfads und des zweiten Verarbeitungspfads wird beendet und das Verarbeiten der Daten in dem ersten Verarbeitungspfad und in dem zweiten Verarbeitungspfad wird begonnen. Den Verarbeitungspfaden ist der aktuell festgelegte Kenngrößenwert zweckmäßigerweise stets bekannt, z.B. weil die Pfade den Wert selbst auslesen oder weil der Wert den Pfaden mitgeteilt wird, so dass die Pfade bei Festlegen des Bereitschaftswerts sich zweckmäßigerweise automatisch in den Bereitschaftszustand überführen können und bei Festlegen des Startwerts den Bereitschaftszustand zweckmäßigerweise automatisch beenden können. Durch das Festlegen des derartigen Bereitschafts- und Startwerts kann zweckmäßigerweise ein synchroner Beginn der Datenverarbeitung ermöglicht werden, beispielsweise bei einem Hochfahren der jeweiligen Recheneinheit. Beim Hochfahren des Gesamtsystems werden der Kenngrößenwert sowie ferner insbesondere der Markierungswert jeweils mit einem initialen Wert vorbelegt. Je nach Reihenfolge, in der die verschiedenen Komponenten der Recheneinheit starten, könnte es zu Ausnahme-Ereignissen oder Fehlern kommen, was dazu führen kann, dass die Datennachrichten des ersten Markierungsintervalls verworfen werden. Ist dies aus Applikationssicht zu vermeiden, können zweckmäßigerweise alle Prozesse zwar hochgefahren, aber durch das Festlegen des Bereitschaftswerts zunächst in dem Bereitschaftszustand verbleiben. Sind alle Prozesse in diesem Zustand, kann der Startwert als Zeichen für alle Prozesse für einen gemeinsamen Start festgelegt werden.According to an advantageous embodiment, a readiness value or a standby value or a waiting value of the parameter can also be set, whereupon the first processing path and the second processing path are transferred to a ready state or standby state or waiting state. In particular, no processing of data takes place in this standby state, but rather the processing paths expediently wait for a release for processing. Advantageously, a starting value of the parameter is then set, the standby state of the first processing path and the second processing path is ended and the processing of the data in the first processing path and in the second processing path is started. The currently set parameter value is expediently always known to the processing paths, for example because the paths read out the value themselves or because the value is communicated to the paths, so that the paths can expediently automatically switch to the standby state when the standby value is set and when the start value is set The standby state can conveniently be ended automatically. By setting such a ready and start value, a synchronous start of data processing can expediently be made possible, for example when the respective computing unit is started up. When the entire system is started up, the parameter value and, in particular, the marking value are each preassigned with an initial value. Depending on the order in which the various components of the computing unit start, exception events or errors could occur, which could result in the data messages of the first marking interval being discarded. If this can be avoided from an application perspective, all processes can be started up but initially remain in the ready state by setting the ready value. If all processes are in this state, the start value can be set as a symbol for all processes to start together.
Obgleich in der vorliegenden Beschreibung von zwei Verarbeitungspfaden gesprochen wird, versteht sich, dass das erfindungsgemäße Verfahren auf entsprechende Weise mit einer größeren Anzahl von Lockstep-Verarbeitungspfaden durchgeführt werden kann.Although two processing paths are mentioned in the present description, it is understood that the method according to the invention can be carried out in a corresponding manner with a larger number of lockstep processing paths.
Hinsichtlich weitere Details bezüglich des Lockstep-Verfahrens sei ferner vollumfänglich auf die eingangs erläuterte
Das vorliegende Verfahren eignet sich besonders zweckmäßig zum Einsatz im (Kraft-) Fahrzeugbereich. Bei den zu verarbeitenden Daten kann es sich besonders zweckmäßig um Fahrzeugdaten handeln, die beispielsweise von Sensoren des Fahrzeugs erfasst werden. Beispielsweise kann die Verarbeitung der Daten im Zuge sicherheitskritischer Funktionen erfolgen, welche zum sicheren Betrieb und zur Steuerung des Fahrzeugs ausgeführt werden, beispielsweise im Zuge einer Motorsteuerung, im Zuge von Fahrassistenzfunktionen, im Zug des unterstützten autonomen Fahrens (IAD) oder allgemein des automatisierten oder teilautomatisierten Fahrens usw. Durch das Verfahren kann insbesondere eine Sicherheit bzw. Ausfallsicherheit und Integrität des Steuergeräts erhöht werden. Insbesondere können durch das Verfahren Sicherheitsanforderungen im (Kraft-) Fahrzeugbereich erfüllt werden, wie sie beispielsweise in der Norm
Im Rahmen des teilautomatisierten oder automatisierten Fahrens sind z.B. aufwendige Berechnungen mit Sensordaten nötig, um beurteilen zu können, welche Reaktion im Fahrzeug vorgenommen werden soll. Wie eingangs erwähnt, ist es aufgrund der hohen Datenmengen und oftmals aufwendigen Berechnungen insofern zweckmäßig, eine solche Verarbeitung an ein fahrzeugfremdes, ggf. verteiltes, leistungsfähiges Rechensystem (z.B. ein Rechenzentrum) auszulagern. Die Daten können hierzu über eine geeignete, in der Regel drahtlose, Kommunikationsverbindung vom Fahrzeug an das Rechensystem übermittelt werden. Zweckmäßigerweise werden die Daten dort im Rahmen des vorliegenden Verfahrens im Zuge des Lockstep-Verfahrens verarbeitet und ggf. anschließend zurück an das Fahrzeug übermittelt. Weil die Berechnungen in dem Rechensystem gegebenenfalls nicht auf einer zertifizierten Hardware bzgl. den Safety- bzw. Sicherheitsanforderungen gemäß ASIL durchgeführt werden können, werden die Berechnungen zweckmäßigerweise im Zuge des Lockstep-Verfahrens auf zwei oder mehreren Pfaden mehrfach durchgeführt und am Ende verglichen. Diese Pfade sind insbesondere unterschiedlich realisiert und können sich auf örtlich verteilten Recheneinheiten befinden, damit sich Fehler nicht auf alle Pfade auswirken. Nur wenn die Ergebnisse identisch sind, eventuell mit Mehrheitsvotum, werden die Ergebnisse an das Fahrzeug weitergegeben.In the context of partially automated or automated driving, for example, complex calculations with sensor data are necessary in order to be able to assess what reaction should be made in the vehicle. As mentioned at the beginning, due to the large amounts of data and often complex calculations, it is advisable to outsource such processing to a powerful computing system external to the vehicle, possibly distributed (e.g. a data center). For this purpose, the data can be transmitted from the vehicle to the computing system via a suitable, usually wireless, communication connection. The data is expediently processed there as part of the present procedure as part of the lockstep procedure and, if necessary, then transmitted back to the vehicle. Because the calculations in the computing system may not be able to be carried out on certified hardware with regard to the safety requirements according to ASIL, the calculations are expediently carried out several times on two or more paths in the course of the lockstep process and compared at the end. In particular, these paths are implemented differently and can be located on locally distributed computing units so that errors do not affect all paths. Only if the results are identical, possibly with a majority vote, will the results be passed on to the vehicle.
Ein erfindungsgemäßes Rechensystem, z.B. ein Rechenzentrum oder auch ein Rechnernetzwerk mit z.B. mehreren Rechenzentren, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.A computing system according to the invention, for example a data center or a computer network with, for example, several data centers, is set up, in particular in terms of programming, to carry out a method according to the invention.
Auch die Implementierung eines erfindungsgemäßen Verfahrens in Form eines Computerprogramms oder Computerprogrammprodukts mit Programmcode zur Durchführung aller Verfahrensschritte ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn ein ausführendes Steuergerät noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Schließlich ist ein maschinenlesbares Speichermedium vorgesehen mit einem darauf gespeicherten Computerprogramm wie oben beschrieben. Geeignete Speichermedien bzw. Datenträger zur Bereitstellung des Computerprogramms sind insbesondere magnetische, optische und elektrische Speicher, wie z.B. Festplatten, Flash-Speicher, EEPROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich. Ein solcher Download kann dabei drahtgebunden bzw. kabelgebunden oder drahtlos (z.B. über ein WLAN-Netz, eine 3G-, 4G-, 5G- oder 6G-Verbindung, etc.) erfolgen.The implementation of a method according to the invention in the form of a computer program or computer program product with program code for carrying out all method steps is also advantageous because this causes particularly low costs, especially if an executing control device is used for additional tasks and is therefore present anyway. Finally, a machine-readable storage medium is provided with a computer program stored thereon as described above. Suitable storage media or data carriers for providing the computer program are, in particular, magnetic, optical and electrical memories, such as hard drives, flash memories, EEPROMs, DVDs, etc. It is also possible to download a program via computer networks (Internet, intranet, etc.). Such a download can be wired or wired or wireless (e.g. via a WLAN network, a 3G, 4G, 5G or 6G connection, etc.).
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.Further advantages and refinements of the invention result from the description and the accompanying drawing.
Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.The invention is shown schematically in the drawing using exemplary embodiments and is described below with reference to the drawing.
Kurze Beschreibung der ZeichnungenBrief description of the drawings
-
1 zeigt schematisch ein Fahrzeug mit einem Steuergerät, das dazu eingerichtet ist, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen.1 shows schematically a vehicle with a control device that is set up to carry out a preferred embodiment of a method according to the invention. -
2 zeigt schematisch eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens als ein Blockdiagramm.2 shows schematically a preferred embodiment of a method according to the invention as a block diagram.
Ausführungsform(en) der ErfindungEmbodiment(s) of the invention
In
Das Fahrzeug 100 weist eine Sensorik 110 mit einer Vielzahl von Sensoren, eine Aktorik 120 mit einer Vielzahl von Aktoren sowie ein Steuergerät 130 auf. Das Steuergerät 130 weist eine Prozessoreinheit 131 auf, z.B. einen Mehrkernprozessor. Die Sensorik 110 kann beispielsweise Kameras, Radar-Sensoren und/oder Lidar-Sensoren aufweisen.The
Das Steuergerät 130 ist dazu eingerichtet, Sensordaten der Sensorik 110 als Eingabe- oder Eingangsdaten über eine drahtlose Kommunikationsverbindung, z.B. das Internet, an ein entferntes Rechensystem 140 z.B. im Sinne des sog. Cloud-Computing zu übertragen. In dem Rechensystem 140 sollen diese Sensordaten im Zuge eines Lockstep-Verfahrens verarbeitet werden, um Ansteuerdaten für die Aktorik 120 zu bestimmen. Zu diesem Zweck empfängt eine Verteileinheit 141 des Rechensystems 140 die Sensordaten von dem Steuergerät 130 und übergibt diese Daten an zwei getrennte Verarbeitungspfade 142, 143, in welchen die Daten jeweils entsprechend einem vorgegebenen Verarbeitungsschema verarbeitet werden. Ergebnisdaten dieser beiden Pfade 142, 143 werden in einer Vergleichseinheit 144 gegeneinander plausibilisiert bzw. miteinander verglichen. Nur wenn diese Ergebnisse identisch sind, werden die Ergebnisse von der Vergleichseinheit 144 an das Steuergerät 130 zum Ansteuern der Aktoren 130 übertragen.The
Beispielsweise kann die Verarbeitung der Daten in dem Rechensystem 140 im Zuge sicherheitskritischer Funktionen des automatisierten oder teilautomatisierten Fahrens erfolgen. Die Sensordaten der Sensorik 110 ermöglichen beispielsweise eine Aussage, wo sich in einem Gebiet um das Fahrzeug 100 herum, z.B. auf einer Kreuzung, welche Objekte befinden, z.B. Fahrzeuge, Personen, Hindernisse usw. Im Zuge der Verarbeitung dieser Daten werden in dem Rechensystem 140 Ansteuerdaten für die Aktorik 130 des z.B. dahingehend bestimmt, welchen Weg das Fahrzeug 100 über die Kreuzung mit welcher Geschwindigkeit nehmen soll usw. Da die Berechnungen in dem Rechensystem 140 nicht auf einer zertifizierten Hardware bezüglich den Sicherheitsanforderungen im Fahrzeugbereich gemäß der Norm ISO 26262 und der darin spezifizierten „Automotive Safety Integrity Level“ (ASIL) durchgeführt werden können, erfolgt die Berechnungen auf mehreren Pfaden 142, 143 im Rahmen des Lockstep-Verfahrens.For example, the data can be processed in the
Zu diesem Zweck ist das Rechensystem 140, insbesondere programmtechnisch, dazu eingerichtet, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen, das in
In einem Schritt 201 erfolgt ein Hochfahren bzw. Starten des Steuergeräts 130 und es wird eine Verbindung von dem Steuergerät 130 zu dem Rechensystem 140 aufgebaut. In einem Schritt 202 wird eine Kenngröße, welche eine Anzahl von Fehlern bei der Verarbeitung der Daten charakterisiert, auf einen Bereitschaftswert festgelegt. Dieser aktuelle Wert der Kenngröße kann in einer Speichereinheit in dem Rechensystem 140 hinterlegt werden.In a
In einem Schritt 203 erfolgt ein Hochfahren der einzelnen Funktionen in dem Rechensystem 140. Sobald alle Funktionen eines entsprechenden Verarbeitungspfads 142, 143 hochgefahren sind, liest der jeweilige Verarbeitungspfad 142, 143 den hinterlegten Wert der Kenngröße aus. Da es sich hierbei um den Startwert handelt, geht der jeweilige Verarbeitungspfad 142, 143 in einen Bereitschaftszustand über.In a
Sobald sich alle Verarbeitungspfade 142, 143 in einem derartigen Bereitschaftszustand befinden, wird in Schritt 204 ein Startwert der Kenngröße festgelegt. Beispielsweise kann als dieser Startwert bzw. als initialer Wert der Wert null festgelegt werden. Dieser neu festgelegte Wert der Kenngröße wird in der Speichereinheit in dem Rechensystem 140 hinterlegt.As soon as all processing
Die beiden Verarbeitungspfade 142, 143 lesen in Schritt 205 diesen aktuellen Startwert aus und beenden ihren Bereitschaftszustand. Das Rechensystem 140 ist nun hochgefahren und bereit, um Daten im Zuge des automatisierten oder teilautomatisierten Fahrens des Fahrzeugs 100 zu verarbeiten.The two
Im Zuge dessen empfängt die Verteileinheit 141 des Rechensystems 140 in Schritt 206 im regulären Betrieb des Fahrzeugs 100 die Messwerte der Sensorik 110 als Eingangsdaten, welche als zu verarbeitende Daten an die Verarbeitungspfade 142, 143 übergeben werden sollen. Die Verteilereinheit 141 fügt diesen zu verarbeitenden Daten nach einer vorgegebenen Anzahl von Datennachrichten und/oder nach einem vorgegebenen Zeitintervall jeweils eine Markierung hinzu. Zu diesem Zweck wird jeweils nach einer vorgegebenen Anzahl von Datennachrichten und/oder nach dem vorgegebenen Zeitintervall jeweils eine Markierungsnachricht zwischen zwei Datennachrichten der zu verarbeitenden Daten hinzugefügt, wobei jede dieser Markierungsnachrichten jeweils einen individuellen Markierungswert aufweist. Dieser Markierungswert ist insbesondere ein Zählerwert, welcher mit jeder hinzugefügten Markierungsnachricht erhöht wird. Der aktuelle Zähler- bzw. Markierungswert wird wie der aktuelle Kenngrößenwert in der Speichereinheit hinterlegt.In the course of this, in
In Schritt 207 werden die zu verarbeitenden Daten von der Verteilereinheit 141 an den ersten Verarbeitungspfad 142 und an den zweiten Verarbeitungspfad 143 übergeben.In
In Schritt 208 werden die Daten zwischen zwei hinzugefügten Markierungen bzw. zwischen zwei aufeinanderfolgenden Markierungswerten in dem ersten Verarbeitungspfad 142 gemäß einem ersten Verarbeitungsschema zu ersten Ergebnisdaten und in dem zweiten Verarbeitungspfad 143 gemäß einem zweiten Verarbeitungsschema zu zweiten Ergebnisdaten verarbeitet. Auf diese Weise wird von beiden Verarbeitungspfaden 142, 143 stets die identische Datenmenge zu den jeweiligen Ergebnisdaten verarbeitet, wodurch diese Ergebnisdaten miteinander vergleichbar sind. Zu diesem Zweck kann jeder der Verarbeitungspfade 142, 143 nach dem Empfang einer Markierungsnachricht die nachfolgend empfangenen Daten verarbeiten, bis die nächste Markierungsnachricht empfangen wird. Mit dem Empfang der nächsten Markierungsnachricht wird die Verarbeitung der empfangenen Daten beendet und die Ergebnisdaten werden bestimmt und weitergeleitet. Danach wird mit der Verarbeitung der nach der zuletzt empfangenen Markierungsnachricht empfangenen Daten begonnen.In
In einem Schritt 209 fügen die Verarbeitungspfade 142, 143 den jeweiligen ersten bzw. zweiten Ergebnisdaten jeweils den festgelegten, aktuellen, in der Speichereinheit hinterlegten Wert der Kenngröße hinzu.In a
In Schritt 210 werden die ersten Ergebnisdaten und die zweiten Ergebnisdaten in der Vergleichseinheit 144 miteinander verglichen und somit gegeneinander plausibilisiert.In
Wenn die ersten und zweiten Ergebnisdaten einander entsprechen, werden in Schritt 211 beispielsweise die ersten Ergebnisdaten als Ergebnis der Datenverarbeitung bereitgestellt und dem Steuergerät 130 als Ansteuerdaten für die Aktorik 120 übergeben. Da in diesem Fall kein Fehler in den beiden Verarbeitungspfaden 142, 143 vorliegt, bedarf es keiner Veränderungen in den Pfaden 142, 143 und es wird mit der Markierung der Daten, der Übergabe der Daten, der Verarbeitung der Daten zu neuen Ergebnisdaten, dem Hinzufügen des aktuellen Kenngrößenwerts und dem erneuten Vergleich der neuen Ergebnisdaten gemäß den Schritten 206, 207, 208, 209, 210 fortgefahren.If the first and second result data correspond to one another, in
Wenn jedoch die ersten und zweiten Ergebnisdaten einander nicht entsprechen, wird von der Vergleichseinheit 144 in Schritt 212 darauf geschlossen, dass zumindest in einem der beiden Verarbeitungspfade 142, 143 ein Fehler vorliegt. Auch wenn der Vergleichseinheit 144 die ersten Ergebnisdaten und/oder die zweiten Ergebnisdaten jeweils nicht nach einem vergebenen Zeitintervall für den Vergleich vorliegen, wird gemäß Schritt 212 darauf geschlossen, dass zumindest in einem der beiden Verarbeitungspfade 142, 143 ein Fehler vorliegt.However, if the first and second result data do not correspond to one another, the
Wenn auf einen derartigen Fehler geschlossen wird, wird in Schritt 213 der Kenngröße ein neuer Wert zugewiesen, beispielsweise indem der in der Speichereinheit hinterlegte Wert der Kenngröße um ein Inkrement erhöht wird. Dieser neue Kenngrößenwert wird in der Speichereinheit entsprechend hinterlegt.If such an error is concluded, a new value is assigned to the parameter in
In Schritt 214 werden daraufhin die Ergebnisdaten verworfen. Insbesondere werden alle Ergebnisdaten verworfen, welchen der vor der Änderung in Schritt 213 gültige Kenngrößenwert hinzugefügt wurde.In
In Schritt 215 erfolgt ein Zurücksetzen des ersten Verarbeitungspfads 142 und des zweiten Verarbeitungspfads 143, insbesondere eines Zustands oder Verarbeitungsvorschritt des ersten und zweiten Verarbeitungspfads 142, 143. Beispielsweise lesen die Verarbeitungspfade 142, 143 den in der Speichereinheit hinterlegten aktuellen Kenngrößenwert kontinuierlich aus. Wenn die Verarbeitungspfade 142, 143 die Veränderung des Kenngrößenwerts gemäß Schritt 213 erkennen, können sich die Pfade 142, 143 automatisch selbst zurücksetzen.In
Mit diesem Zurücksetzen beginnen die die Verarbeitungspfade 142, 143 gemäß Schritt 208 erneut mit dem Verarbeiten der Daten, die nach der zuletzt hinzugefügten Markierung bzw. nach der zuletzt empfangenen Markierungsnachricht empfangen wurden, zu den jeweiligen Ergebnisdaten.With this reset, the
Das vorliegende Verfahren ermöglicht es, eine Synchronisation der Lockstep-Pfade 142, 143 zu gewährleisten. Durch das getaktete Einschleusen der Markierungen kann eine koordinierte Verarbeitung der eingehenden Datennachrichten ermöglicht werden. Durch Einfügen der Kenngröße kann eine Neusynchronisation der Wirkfunktionen in den Pfaden 142, 143 nach Auftreten von Fehlern ermöglicht werden.The present method makes it possible to ensure synchronization of the
ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN THE DESCRIPTION
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of documents listed by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.
Zitierte PatentliteraturCited patent literature
- DE 102021211908 [0006, 0030]DE 102021211908 [0006, 0030]
Zitierte Nicht-PatentliteraturNon-patent literature cited
- ISO 26262 [0031]ISO 26262 [0031]
Claims (12)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102022205517.9A DE102022205517A1 (en) | 2022-05-31 | 2022-05-31 | Methods for processing data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102022205517.9A DE102022205517A1 (en) | 2022-05-31 | 2022-05-31 | Methods for processing data |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102022205517A1 true DE102022205517A1 (en) | 2023-11-30 |
Family
ID=88697251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102022205517.9A Pending DE102022205517A1 (en) | 2022-05-31 | 2022-05-31 | Methods for processing data |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102022205517A1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102021211908A1 (en) | 2021-10-21 | 2023-04-27 | Robert Bosch Gesellschaft mit beschränkter Haftung | Methods for processing data |
-
2022
- 2022-05-31 DE DE102022205517.9A patent/DE102022205517A1/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102021211908A1 (en) | 2021-10-21 | 2023-04-27 | Robert Bosch Gesellschaft mit beschränkter Haftung | Methods for processing data |
Non-Patent Citations (1)
Title |
---|
ISO 26262 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102014102582A1 (en) | Fault-tolerant control system | |
EP2513796B1 (en) | Method for operating a processor | |
EP3211533A1 (en) | Fault-tolerant system architecture for controlling a physical installation, particularly of a machine or of a motor vehicle | |
DE112011105021B4 (en) | redundancy device | |
WO2018233934A1 (en) | Device and method for controlling a vehicle module | |
DE102021211908A1 (en) | Methods for processing data | |
DE102016001034A1 (en) | Apparatus and method for controlling an electronic parking brake | |
DE112016006679B4 (en) | Control device and recovery processing method for control device | |
DE102015218898A1 (en) | Method for the redundant processing of data | |
DE102022205517A1 (en) | Methods for processing data | |
WO2022084176A1 (en) | Data processing network for performing data processing | |
DE102015218890A1 (en) | Method and apparatus for generating an output data stream | |
DE102018222086A1 (en) | Control arrangement for a vehicle, vehicle and method for configuring an in-vehicle system | |
DE102012212680A1 (en) | Method and system for fault-tolerant control of actuators for a limited time based on pre-calculated values | |
EP3797352B1 (en) | Method for exchanging a first executable program code and a second executable program code, and control unit | |
WO2021144271A1 (en) | Method and apparatus for reconfiguring an autonomous vehicle in the event of a fault | |
WO2023066625A1 (en) | Data processing network for performing data processing | |
DE102021211709A1 (en) | Data processing network for data processing | |
DE102022208390A1 (en) | Methods for processing data | |
DE19801992C2 (en) | Process for improving system availability after processor processor failure | |
DE102021213472A1 (en) | Method for executing a driving task in a decentralized control unit system and decentralized control unit system | |
EP2701065A1 (en) | Method for operating a redundant automation system | |
DE102020216481A1 (en) | Method of operating a controller and controller | |
DE102021206133A1 (en) | Control system for at least one receiving device in safety-critical applications | |
EP3331740B1 (en) | Method for operating a control device and diagnosis system |