DE102015218898A1 - Verfahren zur redundanten Verarbeitung von Daten - Google Patents

Verfahren zur redundanten Verarbeitung von Daten Download PDF

Info

Publication number
DE102015218898A1
DE102015218898A1 DE102015218898.1A DE102015218898A DE102015218898A1 DE 102015218898 A1 DE102015218898 A1 DE 102015218898A1 DE 102015218898 A DE102015218898 A DE 102015218898A DE 102015218898 A1 DE102015218898 A1 DE 102015218898A1
Authority
DE
Germany
Prior art keywords
data
arithmetic unit
unit
processing
arithmetic
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
DE102015218898.1A
Other languages
English (en)
Inventor
Roland Schleser
Mikkel Liisberg
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 DE102015218898.1A priority Critical patent/DE102015218898A1/de
Priority to CN201610864467.XA priority patent/CN107038095B/zh
Priority to US15/279,585 priority patent/US10089195B2/en
Publication of DE102015218898A1 publication Critical patent/DE102015218898A1/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/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • 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/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
    • G06F11/184Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components where the redundant components implement processing functionality
    • 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/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/181Eliminating the failing redundant component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/845Systems in which the redundancy can be transformed in increased performance

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)
  • Safety Devices In Control Systems (AREA)

Abstract

Es wird ein Verfahren zur redundanten Verarbeitung von Daten durch mindestens zwei Recheneinheiten vorgestellt. Dabei empfängt eine erste Recheneinheit der mindestens zwei Recheneinheiten nach ihrem Neustart oder ihrer Zurücksetzung erste Teile der Daten zur Verarbeitung von mindestens einer zweiten Recheneinheit der mindestens zwei Recheneinheiten.

Description

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

Claims (22)

  1. Verfahren zur redundanten Verarbeitung von Daten durch mindestens zwei Recheneinheiten (120, 130, 140), dadurch gekennzeichnet, dass nach einem Neustart oder einer Zurücksetzung einer ersten Recheneinheit (120) der mindestens zwei Recheneinheiten (120, 130, 140) die erste Recheneinheit (120) erste Teile der Daten zur Verarbeitung von mindestens einer zweiten Recheneinheit (130, 140) der mindestens zwei Recheneinheiten (120, 130, 140) empfängt.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die erste Recheneinheit (120) nach dem Neustart oder der Zurücksetzung die ersten Teil der Daten von mindestens der zweiten Recheneinheit (130, 140) anfordert.
  3. Verfahren nach einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, dass ein System umfassend die mindestens zwei Recheneinheiten (120, 130, 140) mit dem Neustart oder der Zurücksetzung der ersten Recheneinheit (120) in einen abgesicherten Systemzustand, insbesondere mit reduzierter Funktionalität, überführt wird.
  4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass der abgesicherte Systemzustand beendet wird, wenn die erste Recheneinheit (120) die Verarbeitung der Daten wieder aufgenommen hat oder wenn die erste Recheneinheit (120) für die Verarbeitung der Daten nicht mehr die ersten Teile der Daten benötigt.
  5. Verfahren nach einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, dass für die Verarbeitung der Daten durch jede der mindestens zwei Recheneinheiten (120, 130, 140) aktuell empfangene Teile der Daten und zuvor empfangene Teile der Daten notwendig sind und dass die von der ersten Recheneinheit (120) angeforderten ersten Teile der Daten zur Verarbeitung der Daten notwendige, zuvor empfangene Teile der Daten umfassen, welche der ersten Recheneinheit (120) durch den Neustart oder die Zurücksetzung verloren gingen oder von der ersten Recheneinheit (120) durch den Neustart oder die Zurücksetzung verpasst wurden.
  6. Verfahren nach einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, dass nach dem Neustart oder der Zurücksetzung und nach dem Empfang der ersten Teile der Daten die erste Recheneinheit (120) die Verarbeitung der Daten fortsetzt.
  7. Verfahren nach einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, dass die erste Recheneinheit (120) die ersten Teile mindestens jeweils von der zweiten Recheneinheit (130) und von einer dritten Recheneinheit (140) der mindestens zwei Recheneinheiten (120, 130, 140) empfängt.
  8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass die erste Recheneinheit (120) die von der zweiten Recheneinheit (130) empfangenen ersten Teile und die von der dritten Recheneinheit (140) empfangenen ersten Teile vergleicht und die Verarbeitung der Daten fortsetzt, wenn die jeweiligen ersten Teile übereinstimmen.
  9. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass die erste Recheneinheit (120) die ersten Teile der Daten von der zweiten Recheneinheit empfängt, dass die erste Recheneinheit (120) zweite Teile der Daten von einer dritten Recheneinheit empfängt und dass die erste Recheneinheit (120) aus den ersten Teilen der Daten und den zweiten Teilen der Daten für die Verarbeitung benötigte Daten zusammen setzt.
  10. Verfahren nach einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, dass von mindestens der zweiten Recheneinheit (130, 140) an die erste Recheneinheit (120) gesendete Teile von Daten abgesichert übermittelt werden, insbesondere über eine Prüfsumme oder eine Zählerinformation.
  11. Verfahren nach einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, dass erste Ergebnisse einer Verarbeitung der Daten durch die erste Recheneinheit (120) und mindestens zweite Ergebnisse einer Verarbeitung der Daten durch mindestens die zweite Recheneinheit (130, 140) von einer Vergleichereinheit (110) auf Übereinstimmung überprüft werden.
  12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, dass die erste Recheneinheit (120) und mindestens die zweite Recheneinheit (130, 140) Mikroprozessoren sind und die Vergleichereinheit (110) ein Mikrocontroller ist.
  13. Verfahren nach einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, dass ein Neustart oder eine Zurücksetzung der ersten Recheneinheit (120) durchgeführt wird, wenn für die erste Recheneinheit (120) ein Fehler festgestellt wird.
  14. Verfahren nach Anspruch 13, dadurch gekennzeichnet, dass die erste Recheneinheit (120) den Fehler selbst feststellt.
  15. Verfahren nach Anspruch 13, dadurch gekennzeichnet, dass der Fehler von einer externen Überwachung der ersten Recheneinheit (120), insbesondere durch eine Vergleichereinheit (110), festgestellt wird.
  16. Verfahren nach einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, dass die Daten auf Sensormessungen basieren.
  17. Verfahren nach Anspruch 16, dadurch gekennzeichnet, dass die Verarbeitung der Daten im Rahmen einer Umfelderkennung erfolgt, insbesondere in einer Anwendung für hochautomatisiertes Fahren, und die Sensormessungen mindestens eines von Radarmessungen, Lidarmessungen, Videoaufnahmen und Ultraschallmessungen umfassen.
  18. Verfahren nach einem der vorangegangenen Antworten, dadurch gekennzeichnet, dass bei einem Start eines Systems umfassend die mindestens zwei Recheneinheiten (120, 130, 140) und eine Vergleichereinheit (110) die mindestens zwei Recheneinheiten (120, 130, 140) und die Vergleichereinheit (110) Informationen über die jeweils im System angebotenen Dienste austauschen.
  19. Verfahren nach Anspruch 18, dadurch gekennzeichnet, dass nach dem Neustart der ersten Recheneinheit (120) die erste Recheneinheit (120) Informationen über die von den anderen der mindestens zwei Recheneinheiten (130, 140) angebotenen Dienste und über die von der Vergleichereinheit (110) angebotenen Dienste empfängt.
  20. Computerprogramm, welches dazu eingerichtet ist, die Schritte eines Verfahrens nach einem der Ansprüche 1 bis 19 durchzuführen.
  21. Elektronisches Speichermedium mit einem Computerprogramm nach Anspruch 20.
  22. Recheneinheit (120), welche dazu eingerichtet ist, die Schritte eines Verfahrens nach einem der Ansprüche 1 bis 19 durchzuführen.
DE102015218898.1A 2015-09-30 2015-09-30 Verfahren zur redundanten Verarbeitung von Daten Pending DE102015218898A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102015218898.1A DE102015218898A1 (de) 2015-09-30 2015-09-30 Verfahren zur redundanten Verarbeitung von Daten
CN201610864467.XA CN107038095B (zh) 2015-09-30 2016-09-29 用于冗余地处理数据的方法
US15/279,585 US10089195B2 (en) 2015-09-30 2016-09-29 Method for redundant processing of data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102015218898.1A DE102015218898A1 (de) 2015-09-30 2015-09-30 Verfahren zur redundanten Verarbeitung von Daten

Publications (1)

Publication Number Publication Date
DE102015218898A1 true DE102015218898A1 (de) 2017-03-30

Family

ID=58281889

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015218898.1A Pending DE102015218898A1 (de) 2015-09-30 2015-09-30 Verfahren zur redundanten Verarbeitung von Daten

Country Status (3)

Country Link
US (1) US10089195B2 (de)
CN (1) CN107038095B (de)
DE (1) DE102015218898A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102020215332A1 (de) 2020-12-04 2022-06-09 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Durchführen eines Berechnungsvorgangs auf zwei verschiedenen Recheneinheiten

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102020204095A1 (de) * 2020-03-30 2021-09-30 Siemens Mobility GmbH Verfahren und System zur Datenverwaltung in einem Transportmittel
CN112572464A (zh) * 2021-01-08 2021-03-30 蔚来汽车科技(安徽)有限公司 用于辅助驾驶的数据处理装置、方法、存储介质和车辆

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10332700A1 (de) 2003-06-24 2005-01-13 Robert Bosch Gmbh Verfahren zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit sowie entsprechende Prozessoreinheit

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9205842D0 (en) * 1992-03-18 1992-04-29 Marconi Gec Ltd Distributed processor arrangement
US5812757A (en) * 1993-10-08 1998-09-22 Mitsubishi Denki Kabushiki Kaisha Processing board, a computer, and a fault recovery method for the computer
US5903717A (en) * 1997-04-02 1999-05-11 General Dynamics Information Systems, Inc. Fault tolerant computer system
DE19720618A1 (de) * 1997-05-16 1998-11-19 Itt Mfg Enterprises Inc Mikroprozessorsystem für Kfz-Regelungssysteme
US6687851B1 (en) * 2000-04-13 2004-02-03 Stratus Technologies Bermuda Ltd. Method and system for upgrading fault-tolerant systems
JP4477739B2 (ja) * 2000-04-19 2010-06-09 エアロアストロ インコーポレイテッド 冗長系情報処理システム
DE10243713B4 (de) * 2002-09-20 2006-10-05 Daimlerchrysler Ag Redundante Steuergeräteanordnung
US7467326B2 (en) * 2003-02-28 2008-12-16 Maxwell Technologies, Inc. Self-correcting computer
US20050240806A1 (en) * 2004-03-30 2005-10-27 Hewlett-Packard Development Company, L.P. Diagnostic memory dump method in a redundant processor
US7272813B2 (en) * 2004-09-15 2007-09-18 Omnivision Technologies, Inc. Transparent re-mapping of parallel computational units
CN1755660B (zh) * 2004-09-28 2010-09-29 惠普开发有限公司 冗余处理器中的诊断存储器转储方法
DE102004051937A1 (de) * 2004-10-25 2006-05-04 Robert Bosch Gmbh Verfahren und Vorrichtung zur Synchronisierung in einem Mehrprozessorsystem
US20080320287A1 (en) * 2004-10-25 2008-12-25 Roberts Bosch Gmbh Method and Device for Performing Switchover Operations in a Computer System Having at Least Two Processing Units
US7747932B2 (en) * 2005-06-30 2010-06-29 Intel Corporation Reducing the uncorrectable error rate in a lockstepped dual-modular redundancy system
US20070220369A1 (en) * 2006-02-21 2007-09-20 International Business Machines Corporation Fault isolation and availability mechanism for multi-processor system
JP2008152594A (ja) * 2006-12-19 2008-07-03 Hitachi Ltd マルチコアプロセッサ計算機の高信頼化方法
US8886994B2 (en) * 2009-12-07 2014-11-11 Space Micro, Inc. Radiation hard and fault tolerant multicore processor and method for ionizing radiation environment
DE102011086530A1 (de) * 2010-11-19 2012-05-24 Continental Teves Ag & Co. Ohg Mikroprozessorsystem mit fehlertoleranter Architektur
EP2884392B1 (de) * 2013-12-13 2018-08-15 Thales Fehlertolerante Rahmenarchitektur mit dreifacher Software-Redundanz
US10397019B2 (en) * 2015-11-16 2019-08-27 Polysync Technologies, Inc. Autonomous vehicle platform and safety architecture

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10332700A1 (de) 2003-06-24 2005-01-13 Robert Bosch Gmbh Verfahren zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit sowie entsprechende Prozessoreinheit

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102020215332A1 (de) 2020-12-04 2022-06-09 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Durchführen eines Berechnungsvorgangs auf zwei verschiedenen Recheneinheiten

Also Published As

Publication number Publication date
US10089195B2 (en) 2018-10-02
CN107038095B (zh) 2021-09-24
CN107038095A (zh) 2017-08-11
US20170091051A1 (en) 2017-03-30

Similar Documents

Publication Publication Date Title
EP2641176B1 (de) Mikroprozessorsystem mit fehlertoleranter architektur
EP3211533B1 (de) Fehlertolerante systemarchitektur zur steuerung einer physikalischen anlage, insbesondere einer maschine oder eines kraftfahrzeugs
DE10255111A1 (de) System und Verfahren zum Laden von Firmware mit hoher Verfügbarkeit
AT515454A2 (de) Verfahren zur Behandlung von Fehlern in einem zentralen Steuergerät sowie Steuergerät
EP2513796A1 (de) Verfahren zum betreiben einer recheneinheit
DE112015001283T5 (de) Fehlertolernate Systeme und Verfahren zu deren Benutzung
DE102015218898A1 (de) Verfahren zur redundanten Verarbeitung von Daten
DE102015202326A1 (de) Verfahren zum Betreiben einer Datenverarbeitungseinheit eines Fahrerassistenzsystems und Datenverarbeitungseinheit
EP1358554A1 (de) Automatische inbetriebnahme eines clustersystems nach einem heilbaren fehler
WO2004034260A2 (de) Verfahren und schaltungsanordnung zur synchronisation synchron oder asynchron getakteter verarbeitungseinheiten
EP2520989B1 (de) Verfahren zum Betrieb eines hochverfügbaren Systems mit funktionaler Sicherheit sowie ein hochverfügbares System mit funktionaler Sicherheit
DE112019007432B4 (de) Elektronische steuereinheit und programm
DE112016006679B4 (de) Steuerungsvorrichtung und Recovery-Verarbeitungsverfahren für Steuerungsvorrichtung
DE102015218890A1 (de) Verfahren und Vorrichtung zum Generieren eines Ausgangsdatenstroms
WO2022084176A1 (de) Datenverarbeitungsnetzwerk zur datenverarbeitung
DE102021202935A1 (de) Verfahren und Vorrichtung zum Steuern einer Fahrfunktion
DE102020201859A1 (de) Elektronische Client-Einrichtung, ein Fahrzeug und ein Verfahren zur Steuerung desselben
DE102017219195B4 (de) Verfahren zum gewährleisten eines betriebs eines rechners
EP1287435B1 (de) Vorrichtung und verfahren zur synchronisation eines systems von gekoppelten datenverarbeitungsanlagen
DE102005061394A1 (de) Fehlertolerantes Prozessorsystem
DE102020201757B4 (de) Verfahren, computerprogramm und vorrichtung zum zurücksetzen eines steuergeräts
DE4332881C2 (de) Fehlertolerantes Multicomputersystem
DE102019109353B3 (de) Dynamische Anomalieerkennung und -behandlung
DE102021211709A1 (de) Datenverarbeitungsnetzwerk zur Datenverarbeitung
WO2024099723A1 (de) Redundante prozessorarchitektur für sicherheitskritische anwendungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed